[Bioperl-l] SeqFeature/AnnotatableI and rel. 1.6

Chris Fields cjfields at uiuc.edu
Thu Aug 23 00:53:55 EDT 2007


As many of the devs know, there are a number of Feature/Annotation  
issues that need to be resolved prior to a 1.6 release:

http://www.bioperl.org/wiki/Release_Schedule#SeqFeature. 
2FAnnotation_changes:_Keep_or_roll_back.3F

There has been little work done over the last 2 1/2 years to undo or  
rectify problems associated with those additions; I feel like those  
of us still routinely contributing have been left holding the bag.   
There has also been very little attempt to document any of this  
adequately enough; as an example see POD for  
Bio::SeqFeature::Annotated (what little there is).

I would like to suggest the radical idea of rolling back AnnotatableI/ 
SeqFeatureI changes to a much simpler rel. 1.4-like behavior (tags  
are simple scalars) and possibly work in implementing Ewan's  
SeqFeature::TypedSeqFeatureI for those who want strong data types  
(i.e. Bio::FeatureIO/Bio::SeqFeature::Annotated).  The various  
AnnotatableI changes, odd inheritance, and operator overloading have  
really obfuscated the code to the point where no one wants to touch  
it in case it breaks something important.  However, I believe it is  
the one serious impediment to a new stable release.

My thought is we simplify all the relevant interfaces, essentially  
reverting back to rel 1.4.  For instance, we move the various  
Bio::AnnotatableI tag methods back into Bio::SeqFeatureI.   
Bio::SeqFeature::Annotated would implement Bio::AnnotatableI  
directly, and (if needed) also implement  
Bio::SeqFeature::TypedSeqFeatureI, so the impetus is on  
Bio::SeqFeature::Annotated to overload the relevant SeqFeatureI  
methods correctly, just as any other class would when implementing an  
abstract interface.  I have played around with this a bit and managed  
to get most tests working again for Bio::SeqFeature::Generic and  
FeatureIO but a number of others break.

If needed I can try this out on a branch (a bit ironic, since the  
changes instigating this mess should have been tested on a branch!).   
Maybe this will get the ball rolling towards a 1.6 release.  Any  
thoughts?

chris



More information about the Bioperl-l mailing list