[Biopython-dev] [biopython-dev] SeqFeature comparison for equality

Joshua Ismael Haase Hernández hahj87 at gmail.com
Mon Oct 17 13:57:53 EDT 2011


El 17 de octubre de 2011 12:15, Peter Cock <p.j.a.cock at googlemail.com>escribió:

> Hi Joshua,
>
> Could you CC the biopython-dev mailing list, unless you
> specifically want to discuss something in private?
>

Sorry about that, I thought i was answering to mailin list.

>
> 2011/10/17 Joshua Ismael Haase Hernández <hahj87 at gmail.com>:
> > I'm on it.
> >
> > Will add __eq__ to FeatureLocation on trunk.
>
> Great.
>
> In the short term, you can just work on it directly with a copy of the
> official repository and send me a patch (use git patch > file.patch)
>
> The "best" way is to fork biopython on github, and create your
> own branch with these changes.
>
> > I think BeforeLocation should check if the second is before,
> > After check if it is after, etc, and this can be done in locations.
> >
> > Before I implement those: do you agree?
> >
> > In that case, AbstractLocation instances
> > should check if ExactLocation instances are
> > inside their range, and AbstractLocation
> > instances to be exactly the same.
>
>
This positions would be the same:

OneOfPosition(5, 11, 15),
ExactPosition(11),
AfterPosition(4),
BeforePosition(16),
WithinPosition(5, 16),


> No. Having tried this myself, it is very complicated.
>

I think I'm missing something, why is it hard?,
I see it as a cases listing.


> Also, there are constraints with the Python language
> about equality, hashing and comparisons (e.g. for
> membership in lists, or use as dictionary keys).
>

I don't think anyone should use Features as dictionary keys,
they will use Feature Id for that, but maybe someona wants a
set of features (which just now is like a list of all sequences)...

I which cases that should be a problem? (I'm biothechnology
engineer, so I don't see all caveats, and i don't really have
deep undestanding about how python works)

The current behaviour of simple comparison of
> the positions as an integer is at least simple.
>
> > About SeqFeature, I think they should be
> > the same if they share all locations.
>
> You don't care about feature type and ID?  ;)
>

maybe not, a comparison could skip iterating
the locations if we have the same type and id,
still not sure that's a good method (thus the comment
«# Can we trust this?» on my patch) but a feature
'CDS' is sometimes equivalent to feature 'mRNA',
in that case ID and type would both be different
in seqfeatures.

>
> Peter
>



More information about the Biopython-dev mailing list