
Bio::AnnotatableI - the base interface an annotatable object must implement

use Bio::SeqIO;
# get an annotatable object somehow: for example, Bio::SeqI objects
# are annotatable
my $seqio = Bio::SeqIO->new(-fh => \*STDIN, -format => 'genbank');
while (my $seq = $seqio->next_seq()) {
# $seq is-a Bio::AnnotatableI, hence:
my $ann_coll = $seq->annotation();
# $ann_coll is-a Bio::AnnotationCollectionI, hence:
my @all_anns = $ann_coll->get_Annotations();
# do something with the annotation objects
}

This is the base interface that all annotatable objects must implement. A good example is Bio::Seq which is an AnnotableI object.

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.
bioperl-l@bioperl.org - General discussion http://bioperl.org/wiki/Mailing_lists - About the mailing lists
Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:
http://bugzilla.open-bio.org/

Hilmar Lapp E<lt>hlapp@gmx.netE<gt> Allen Day E<lt>allenday@ucla.eduE<gt>

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
Title : annotation
Usage : $obj->annotation($newval)
Function: Get the annotation collection for this annotatable object.
Example :
Returns : a Bio::AnnotationCollectionI implementing object, or undef
Args : on set, new value (a Bio::AnnotationCollectionI
implementing object, optional) (an implementation may not
support changing the annotation collection)
See Bio::AnnotationCollectionI

The methods below allow mapping of the old "get_tag_values()"-style annotation access to Bio::AnnotationCollectionI. These need not be implemented in a Bio::AnnotationCollectionI compliant class, as they are built on top of the methods.
DEPRECATED: DO NOT USE THESE FOR FUTURE DEVELOPMENT.
Usage : $count = $obj->has_tag($tag) Function: returns the number of annotations corresponding to $tag Returns : an integer Args : tag name Note : DEPRECATED
Use "get_Annotations" instead.
Usage : See add_Annotation Function: Returns : Args : DEPRECATED
See Bio::AnnotationCollectionI::add_Annotation
Usage : my $parent = $obj->get_Annotations('Parent');
my @parents = $obj->get_Annotations('Parent');
Function: a wrapper around Bio::Annotation::Collection::get_Annotations().
Returns : returns annotations as
Bio::Annotation::Collection::get_Annotations() does, but
additionally returns a single scalar in scalar context
instead of list context so that if an annotation tag
contains only a single value, you can do:
$parent = $feature->get_Annotations('Parent');
instead of:
($parent) = ($feature->get_Annotations('Parent'))[0];
if the 'Parent' tag has multiple values and is called in a
scalar context, the number of annotations is returned.
Args : an annotation tag name.
Usage : @annotations = $obj->get_tag_values($tag) Function: returns annotations corresponding to $tag Returns : a list of scalars Args : tag name Note : DEPRECATED
This method is essentially "get_Annotations", use it instead.
Usage : @annotations = $obj->get_tagset_values($tag1,$tag2)
Function: returns annotations corresponding to a list of tags.
this is a convenience method equivalent to multiple calls
to get_tag_values with each tag in the list.
Returns : a list of Bio::AnnotationI objects.
Args : a list of tag names
Note : DEPRECATED
See Bio::AnnotationCollectionI::get_Annotations
Usage : @tags = $obj->get_all_tags() Function: returns a list of annotation tag names. Returns : a list of tag names Args : none Note : DEPRECATED
See Bio::AnnotationCollectionI::get_all_annotation_keys
Usage : See remove_Annotations().
Function:
Returns :
Args : DEPRECATED
Note : Contrary to what the name suggests, this method removes
all annotations corresponding to $tag, not just a
single anntoation.