[Biojava-l] RichLocation.Tools.merge(Collection members) method
Richard Holland
holland at ebi.ac.uk
Wed Mar 5 08:35:24 UTC 2008
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Not that I'm aware of.
Mark Schreiber wrote:
> Just to follow up...
>
> Has there been a fix checked in for this?
>
> - Mark
>
> On Mon, Mar 3, 2008 at 4:41 PM, Richard Holland <holland at ebi.ac.uk> wrote:
>> -----BEGIN PGP SIGNED MESSAGE-----
>> Hash: SHA1
>>
>> Arnaud - you are correct.
>>
>> cheers,
>> Richard
>>
>>
>>
>> Arnaud Kerhornou wrote:
>> > Hi everyone,
>> >
>> > I don't think the RichLocation.Tools.merge(Collection members) method is
>> > doing it right.
>> >
>> > e.g. Input:
>> > biojavax:join:[1157624..1158025,1158025..1158420,1158420..1158893]
>> > Expected output:1157624..1158895
>> >
>> > But I get: join:[1157624..1158420,1158420..1158894]
>> >
>> > I think the code should have the extra line: parent = union;
>> > just after c=p; statement line 18 (See source code below),
>> > otherwise it doesn't take into account the newly generated location.
>> >
>> > Is that right ?
>> >
>> > Thanks
>> > Arnaud
>> >
>> > Source code:
>> >
>> > 1 public static Collection merge(Collection members) {
>> > 2 // flatten them out first so we don't end up recursing
>> > 3 List membersList = new ArrayList(flatten(members));
>> > 4 // all members are now singles so we can use single vs
>> > single union operations
>> > 5 if (membersList.size()>1) {
>> > 6 for (int p = 0; p < (membersList.size()-1); p++) {
>> > 7 RichLocation parent =
>> > (RichLocation)membersList.get(p);
>> > 8 for (int c = p+1; c < membersList.size(); c++) {
>> > 9 RichLocation child =
>> > (RichLocation)membersList.get(c);
>> > 10 RichLocation union =
>> > (RichLocation)parent.union(child);
>> > 11 // if parent can merge with child
>> > 12 if (union.isContiguous()) {
>> > 13 // replace parent with union
>> > 14 membersList.set(p,union);
>> > 15 // remove child
>> > 16 membersList.remove(c);
>> > 17 // check all children again
>> > 18 c=p;
>> > 19 }
>> > 20 }
>> > 21 }
>> > 22 }
>> > 23 return membersList;
>> > 24 }
>> > _______________________________________________
>> > Biojava-l mailing list - Biojava-l at lists.open-bio.org
>> > http://lists.open-bio.org/mailman/listinfo/biojava-l
>> >
>>
>> - --
>> Richard Holland (BioMart)
>> EMBL EBI, Wellcome Trust Genome Campus,
>> Hinxton, Cambridgeshire CB10 1SD, UK
>> Tel. +44 (0)1223 494416
>>
>> http://www.biomart.org/
>> http://www.biojava.org/
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.2.2 (GNU/Linux)
>> Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
>>
>> iD8DBQFHy7m04C5LeMEKA/QRAj05AJ9SBrv6yz8qvhwbmTrLZVfmwBuHTACgiq57
>> +J0EpviSyp2Qq00m4A8xLUA=
>> =re75
>> -----END PGP SIGNATURE-----
>>
>>
>> _______________________________________________
>> Biojava-l mailing list - Biojava-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/biojava-l
>>
>
- --
Richard Holland (BioMart)
EMBL EBI, Wellcome Trust Genome Campus,
Hinxton, Cambridgeshire CB10 1SD, UK
Tel. +44 (0)1223 494416
http://www.biomart.org/
http://www.biojava.org/
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
iD8DBQFHzltM4C5LeMEKA/QRAnk9AKCP7/0jmWk7h7rGd4+jwPkmUK9qUgCfe9Oz
j+UWAU+q9orPHtpWgg48N70=
=lBUD
-----END PGP SIGNATURE-----
More information about the Biojava-l
mailing list