Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Bio::SeqFeature::AnnotUsernContributed PeBio::SeqFeature::AnnotationAdaptor(3)

       Bio::SeqFeature::AnnotationAdaptor - integrates SeqFeatureIs annotation

	  use Bio::SeqFeature::Generic;
	  use Bio::SeqFeature::AnnotationAdaptor;

	  # obtain a SeqFeatureI implementing object somehow
	  my $feat = Bio::SeqFeature::Generic->new(-start => 10, -end => 20);

	  # add	tag/value annotation
	  $feat->add_tag_value("mytag",	"value of tag mytag");
	  $feat->add_tag_value("mytag",	"another value of tag mytag");

	  # Bio::SeqFeature::Generic also provides annotation(), which returns a
	  # Bio::AnnotationCollectionI compliant object
	  $feat->annotation->add_Annotation("dbxref", $dblink);

	  # to integrate tag/value annotation with AnnotationCollectionI
	  # annotation,	use this adaptor, which	also implements
	  # Bio::AnnotationCollectionI
	  my $anncoll =	Bio::SeqFeature::AnnotationAdaptor->new(-feature => $feat);

	  # this will now return tag/value pairs as
	  # Bio::Annotation::SimpleValue objects
	  my @anns = $anncoll->get_Annotations("mytag");
	  # other added	before annotation is available too
	  my @dblinks =	$anncoll->get_Annotations("dbxref");

	  # also supports transparent adding of	tag/value pairs	in
	  # Bio::AnnotationI flavor
	  my $tagval = Bio::Annotation::SimpleValue->new(-value	=> "some value",
							 -tagname => "some tag");
	  # this is now	also available from the	feature's tag/value system
	  my @vals = $feat->get_tag_values("some tag");

       Bio::SeqFeatureI	defines	light-weight annotation	of features through
       tag/value pairs.	Conversely, Bio::AnnotationCollectionI together	with
       Bio::AnnotationI	defines	an annotation bag, which is better typed, but
       more heavy-weight because it contains every single piece	of annotation
       as objects. The frequently used base implementation of
       Bio::SeqFeatureI, Bio::SeqFeature::Generic, defines an additional slot
       for AnnotationCollectionI-compliant annotation.

       This adaptor provides a Bio::AnnotationCollectionI compliant, unified,
       and integrated view on the annotation of	Bio::SeqFeatureI objects,
       including tag/value pairs, and annotation through the annotation()
       method, if the object supports it. Code using this adaptor does not
       need to worry about the different ways of possibly annotating a
       SeqFeatureI object, but can instead assume that it strictly follows the
       AnnotationCollectionI scheme. The price to pay is that retrieving and
       adding annotation will always use objects instead of light-weight
       tag/value pairs.

       In other	words, this adaptor allows us to keep the best of both worlds.
       If you create tens of thousands of feature objects, and your only
       annotation is tag/value pairs, you are best off using the features'
       native tag/value	system.	If you create a	smaller	number of features,
       but with	rich and typed annotation mixed	with tag/value pairs, this
       adaptor may be for you. Since its implementation	is by double-
       composition, you	only need to create one	instance of the	adaptor. In
       order to	transparently annotate a feature object, set the feature using
       the feature() method. Every annotation you add will be added to the
       feature object, and hence will not be lost when you set feature() to
       the next	object.

   Mailing Lists
       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.			- General discussion	- About	the mailing lists

       Please direct usage questions or	support	issues to the mailing list:

       rather than to the module maintainer directly. Many experienced and
       reponsive experts will be able look at the problem and quickly address
       it. Please include a thorough description of the	problem	with code and
       data examples if	at all possible.

   Reporting Bugs
       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

AUTHOR - Hilmar	Lapp
       Email hlapp at

       The rest	of the documentation details each of the object	methods.
       Internal	methods	are usually preceded with a _

	Title	: new
	Usage	: my $obj = Bio::SeqFeature::AnnotationAdaptor->new();
	Function: Builds a new Bio::SeqFeature::AnnotationAdaptor object
	Returns	: an instance of Bio::SeqFeature::AnnotationAdaptor
	Args	: Named	parameters
		   -feature    the Bio::SeqFeatureI implementing object	to adapt
			       (mandatory to be	passed here, or	set via	feature()
			       before calling other methods)
		   -annotation the Bio::AnnotationCollectionI implementing object
			       for storing richer annotation (this will	default	to
			       the $feature->annotation() if it	supports it)
		   -tagvalue_factory the object	factory	to use for creating tag/value
			       pair representing objects

	Title	: feature
	Usage	: $obj->feature($newval)
	Function: Get/set the feature that this	object adapts to an
	Example	:
	Returns	: value	of feature (a Bio::SeqFeatureI compliant object)
	Args	: new value (a Bio::SeqFeatureI	compliant object, optional)

	Title	: annotation
	Usage	: $obj->annotation($newval)
	Function: Get/set the AnnotationCollectionI implementing object	used by
		  this adaptor to store	additional annotation that cannot be stored
		  by the SeqFeatureI itself.

		  If requested before having been set, the value will default to the
		  annotation object of the feature if it has one.
	Example	:
	Returns	: value	of annotation (a Bio::AnnotationCollectionI compliant object)
	Args	: new value (a Bio::AnnotationCollectionI compliant object, optional)

AnnotationCollectionI implementing methods
	Title	: get_all_annotation_keys
	Usage	: $ac->get_all_annotation_keys()
	Function: gives	back a list of annotation keys,	which are simple text strings
	Returns	: list of strings
	Args	: none

	Title	: get_Annotations
	Usage	: my @annotations = $collection->get_Annotations('key')
	Function: Retrieves all	the Bio::AnnotationI objects for a specific key
	Returns	: list of Bio::AnnotationI - empty if no objects stored	for a key
	Args	: string which is key for annotations

	Title	: get_num_of_annotations
	Usage	: my $count = $collection->get_num_of_annotations()
	Function: Returns the count of all annotations stored in this collection
	Returns	: integer
	Args	: none

Implementation specific	functions - to allow adding
	Title	: add_Annotation
	Usage	: $self->add_Annotation('reference',$object);
	Function: Adds an annotation for a specific key.

		  If the key is	omitted, the object to be added	must provide a value
		  via its tagname().

		  If the archetype is provided,	this and future	objects	added under
		  that tag have	to comply with the archetype and will be rejected

		  This implementation will add all Bio::Annotation::SimpleValue
		  objects to the adapted features as tag/value pairs. Caveat: this
		  may potentially result in information	loss if	a derived object
		  is supplied.

	Returns	: none
	Args	: annotation key ('disease', 'dblink', ...)
		  object to store (must	be Bio::AnnotationI compliant)
		  [optional] object archetype to map future storage of object
			     of	these types to

	Title	: remove_Annotations
	Usage	:
	Function: Remove the annotations for the specified key from this

		  If the key happens to	be a tag, then the tag is removed
		  from the feature.

	Example	:
	Returns	: an array Bio::AnnotationI compliant objects which were stored
		  under	the given key(s)
	Args	: the key(s) (tag name(s), one or more strings)	for which to
		  remove annotations (optional;	if none	given, flushes all

Additional methods
	Title	: tagvalue_object_factory
	Usage	: $obj->tagval_object_factory($newval)
	Function: Get/set the object factory to	use for	creating objects that
		  represent tag/value pairs (e.g.,

		  The object to	be created is expected to follow
		  Bio::Annotation::SimpleValue in terms	of supported
		  arguments at creation	time, and the methods.

	Example	:
	Returns	: A Bio::Factory::ObjectFactoryI compliant object
	Args	: new value (a Bio::Factory::ObjectFactoryI compliant object,

perl v5.32.1			  2019-12Bio::SeqFeature::AnnotationAdaptor(3)

NAME | SYNOPSIS | DESCRIPTION | FEEDBACK | AUTHOR - Hilmar Lapp | APPENDIX | AnnotationCollectionI implementing methods | Implementation specific functions - to allow adding | Additional methods

Want to link to this manual page? Use this URL:

home | help