[Bioperl-l] Bio::AnnotatableI function annotation()

Chris Fields cjfields at illinois.edu
Fri Mar 27 20:25:10 UTC 2009


On Mar 27, 2009, at 3:09 PM, Mark A. Jensen wrote:

> Probably folks just starting to use 1.6 will be shunted in the
> right direction by the docs, but those making the switch
> might reasonably get confused (resulting in this thread, e.g.).
> If someone tries to do $feature->annotation- 
> >getAnnotations('locus_tag')
> when $feature->annotation is undef, then probably that user is
> not hip to $feature->get_tag_values('locus_tag'), and would appreciate
> something like
> "Annotation property undefined. Did you mean $feature- 
> >get_tag_values?"
> (not nec. that specific, but you get my drift?)
> MAJ

Yes, but the result of $feature->annotation is never undef (the  
collection is created on the fly):

perl -MBio::SeqFeature::Generic -e 'my $sf = Bio::SeqFeature::Generic- 
 >new(-start => 1, -end => 100); print ref($sf->annotation)."\n"'
Bio::Annotation::Collection

We can't add a warning for lazy instantiation of the Collection w/o  
running into significant issues, as it'll pop up with code like this:

# don't create the annotation or the collection unless needed
if (defined $val) {
     $seq->annotation->add_Annotation(
     Bio::Annotation::SimpleValue->new(-tagname => 'foo', -value =>  
$val)
     );
}

-c



More information about the Bioperl-l mailing list