[Bioperl-l] new GFF3 support methods added

Hilmar Lapp hlapp at gmx.net
Sat Mar 6 00:33:15 EST 2004

Nice work Chris. I don't have very many comments.

On Friday, March 5, 2004, at 05:52  PM, Chris Mungall wrote:

>   FeatureHolderI->set_ParentIDs_from_hierarchy
>     sets both ID and ParentID from FeatureHolder hierarchy
>   FeatureHolderI->create_hierarchy_from_ParentIDs
>     the inverse of set_ParentIDs_from_hierarchy

Hmm - is this unique to feature graphs or to GFF3?

>   SeqFeatureI->generate_unique_persistent_id
>     this is required by the above method
>     Lincoln wanted this to be private, but I think it has
>     to be called from outside

I wouldn't want it to be private, but I'd rather make this a property 
representing a generator (with a single required method 
$generator->generate_id($feature)), or alternatively - and also simpler 
- a closure, than a method. The reason is that if you wanted to change 
the way the ID is generated you'd have to subclass an entire 
SeqFeatureI implementation instead of just setting the property to some 
anonymous method you whip up.

> Unique IDs in bioperl:
> In the discussion that preceeded this, it seemed that people liked the
> idea of persistent unique IDs, but there was no suggestions as to how 
> to
> go about it. This is inherently difficult with objects, but I borrowed 
> a
> solution from relational modeling.
> A persistent unique ID is generated using
>   seq_id
>   primary_tag
>   start
>   end
> It is assumed that these are all set and comprise a "unique key" over
> features.

Hmm. Wouldn't you need to include source_tag()? (Source_tag is part of 
the unique key in biosql.) Without the source_tag being part of this, 
wouldn't that mean you cannot have the exact (start+end) same segment 
predicted as exon by different methods and have those different 
predictions co-exist as separate features in the graph? (Presumably 
those would only differ in source_tag)

> Another assumption is that seq_id is unique and persistent.

I don't think that's going to be a very safe assumption.

> * A GeneModel factory
> This would take the output of the unflattener (a set of feature graphs
> typed to SO) and make SeqFeature::Gene objects

Yeah, that'd be cool ...


Hilmar Lapp                            email: lapp at gnf.org
GNF, San Diego, Ca. 92121              phone: +1-858-812-1757

More information about the Bioperl-l mailing list