[Bioperl-l] Bio::SeqFeature::Annotated API change
Sendu Bala
bix at sendu.me.uk
Thu Oct 11 10:40:24 UTC 2007
Following Chris's changes to SF::Annotated et al., lots of existing user
code breaks. Also, at least some Bioperl code breaks, notably
Bio::DB::SeqFeature::Store, which in mysql mode calls
_get_location_and_bin() which calls $feature->seq_id which ends up
storing something like 'Bio::Annotation::SimpleValue=HASH(0x1f435d0)' in
the database, instead of an actual sequence id (which completely breaks
searching by seq_id).
I propose its API be changed to be more consistent with
Bio::SeqFeatureI, eg. instead of:
seq_id()
Usage : $obj->seq_id($newval)
Function: holds a string corresponding to the unique
seq_id of the sequence underlying the feature
(e.g. database accession or primary key).
Returns : a Bio::Annotation::SimpleValue object representing the
seq_id.
Args : on set, some string or a Bio::Annotation::SimpleValue object.
we have:
seq_id()
Usage : $obj->seq_id($newval)
Function: holds a string corresponding to the unique
seq_id of the sequence underlying the feature
(e.g. database accession or primary key).
Returns : string representing the seq_id.
Args : on set, some string or a Bio::Annotation::SimpleValue object.
This would apply to seq_id(), name(), type(), source(), phase() and
frame(). Internally the implementation could store the string value in a
SimpleValue object.
However, I'm obviously missing something, because I have no idea what
the justification for returning SimpleValue objects was in the first
place (what other module needs them?), nor even what the point of
SimpleValue objects is in the first place.
More information about the Bioperl-l
mailing list