NAME
Bio::Das::Segment::Feature - A genomic annotation
SYNOPSIS
use Bio::Das;
# contact a DAS server using the "elegans" data source
my $das = Bio::Das->new('http://www.wormbase.org/db/das' => 'elegans');
# fetch a segment
my $segment = $das->segment(-ref=>'CHROMOSOME_I',-start=>10_000,-stop=>20_000);
# get features from segment
for my $feature ($segment->features) {
my $id = $feature->id;
my $label = $feature->label;
my $type = $feature->type;
my $category = $feature->category;
my $refseq = $feature->refseq;
my $reference = $feature->reference;
my $start = $feature->start;
my $stop = $feature->stop;
my $score = $feature->score;
my $orientation = $feature->orientation;
my $phase = $feature->phase;
my $link = $feature->link;
my $group = $feature->group;
my @subs = $feature->sub_seqFeature;
}
DESCRIPTION
A Bio::Das::Segment::Feature object contains information about a feature on the genome retrieve from a DAS server. Each feature -- also known as an "annotation" -- has a start and end position on the genome relative to a reference sequence, as well as a human-readable label, a feature type, a category, and other information. Some features may have subfeatures. The attributes of a feature are described at http://biodas.org.
OBJECT CREATION
Bio::Das::Segment::Feature objects are created by calling the features() method of a Bio::Das::Segment object created earlier. See Bio::Das::Segment for details.
OBJECT METHODS
The following methods provide access to the attributes of a feature. Most are implemented as read/write accessors: calling them without an argument returns the current value of the attribute. Calling the methods with an argument sets the attribute and returns its previous value.
- $id = $feature->id([$newid])
-
Get or set the feature ID. This is an identifier for the feature, unique across the DAS server from which it was retrieved.
- $label = $feature->label([$newlabel])
-
Get or set the label for the feature. This is an optional human-readable label that may be used to display the feature in text form. You may use the ID if label() returns undef.
- $type = $feature->type([$newtype])
-
Get or set the type of the feature. This is a required attribute. The value returned is an object of type Bio::Das::Type, which contains information about the type of the annotation and the method used to derive it.
- $segment = $feature->([$newsegment])
-
Get or set the Bio::Das::Segment from which this feature was derived.
- $source = $feature->source
-
Get the Bio::Das object from which this feature was retrieved. This method is a front end to the associated segment's source() method, and is therefore read-only.
- $refseq = $feature->refseq
-
Get the reference sequence on which this feature's coordinates are based. This method is a front end to the associated segment's refseq() method, and is therefore read-only.
- $start = $feature->start([$newstart])
-
Get or set the starting position of the feature, in refseq coordinates.
- $stop = $feature->stop([$newstop])
-
Get or set the stopping position of the feature, in refseq coordinates.
- $isreference = $feature->stop([$newreference])
-
Get or set the value of the "reference" flag, which is true if the feature can be used as a sequence coordinate landmark.
- $method = $feature->method
-
Return the ID of the method used to derive this feature. This is a front end to the feature type's method() method (redundancy intended) and is therefore read-only.
- $category = $feature->category
-
Return the ID of the category in which this feature calls. This is a front end to the feature type's category() method and is therefore read-only.
- $score = $feature->score([$newscore])
-
Get or set the score of this feature, a floating point number which might mean something in the right context.
- $orientation = $feature->orientation([$neworientation])
-
Get or set the orientation of this feature relative to the genomic reference sequence. This is one of the values +1, 0 or -1.
- $phase = $feature->phase([$newphase])
-
Get or set the phase of the feature (its position relative to a reading frame). The returned value can be 0, 1, 2 or undef if the phase is irrelevant to this feature type.
- $group = $feature->group([$newgroup])
-
Get or set the group ID for the feature. Groups are used to group together logically-related features, such as the exons of a gene model.
- $url = $feature->link([$newurl])
-
Get or set the URL that will return additional information about the feature.
- $label = $feature->link_label([$newlabel])
-
Get or set the label that the DAS server recommends should be used for the link.
- $note = $feature->note([$newnote])
-
Get or set the human-readable note associated with the feature.
-
The tag* methods work just like they do in Bio::SeqFeatureI. The attributes() method follows the conventions in Bio::DB::SeqFeature.
- $target = $feature->target
- ($target,$start,$stop) = $feature->target
- $feature->target($target,$start,$stop)
-
These three methods get or set the target that is optionally associated with alignments. In a scalar context, target() returns the ID of the target, while in an array context, the method returns a three-element list consisting of the target ID, and the start and end position of the alignment.
You may pass a three-element list to change the target and range.
- $target_label = $feature->target_label([$newlabel])
-
This method returns an optional label assigned to the target.
- $description = $feature->description
-
This method returns a human-readable description of the feature. It returns the value of note(), link_label() or target_label(), in that priority.
- @segments = $feature->segments
- @segments = $feature->sub_seqFeature
-
These methods are aliases. Both return an array of sub-parts of the feature in the form of Das::Sequence::Feature objects. Currently (March 2001) this is only implemented for grouped objects of type "similarity" and for transcripts (the union of introns and exons in a group).
Bio::SeqFeatureI METHODS
In addition to the methods listed above, Bio::Das::Segment::Feature implements all the methods required for the Bio::SeqFeatureI class.
get_SeqFeatures
Title : get_SeqFeatures
Usage : @feat = $feature->get_SeqFeatures([$method])
Function: get subfeatures
Returns : a list of Bio::DB::GFF::Feature objects
Args : a feature method (optional)
Status : Public
This method returns a list of any subfeatures that belong to the main feature. For those features that contain heterogeneous subfeatures, you can retrieve a subset of the subfeatures by providing a method name to filter on.
add_subfeature
Title : add_subfeature
Usage : $feature->add_subfeature($feature)
Function: add a subfeature to the feature
Returns : nothing
Args : a Bio::DB::GFF::Feature object
Status : Public
This method adds a new subfeature to the object. It is used internally by aggregators, but is available for public use as well.
adjust_bounds
Title : adjust_bounds
Usage : $feature->adjust_bounds
Function: adjust the bounds of a feature
Returns : ($start,$stop,$strand)
Args : none
Status : Public
This method adjusts the boundaries of the feature to enclose all its subfeatures. It returns the new start, stop and strand of the enclosing feature.
sort_features
Title : sort_features
Usage : $feature->sort_features
Function: sort features
Returns : nothing
Args : none
Status : Public
This method sorts subfeatures in ascending order by their start position. For reverse strand features, it sorts subfeatures in descending order. After this is called sub_SeqFeature will return the features in order.
This method is called internally by merged_segments().
compound
Title : compound
Usage : $flag = $f->compound([$newflag])
Function: get or set the compound flag
Returns : a boolean
Args : a new flag (optional)
Status : Public
This method gets or sets a flag indicated that the feature is not a primary one from the DAS server, but the result of aggregation.
STRING OVERLOADING
When used in a string context, Bio::Das::Segment::Feature objects invoke the toString() method. This returns the value of the feature's label, or invokes the inherited Bio::Das::Segment->toString() method if no label is available.
AUTHOR
Lincoln Stein <lstein@cshl.org>.
Copyright (c) 2001 Cold Spring Harbor Laboratory
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.
SEE ALSO
Bio::Das, Bio::Das::Type, Bio::Das::Segment, Bio::Das::Transcript, Bio::Das::Segment::GappedAlignment, Bio::RangeI
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 709:
You forgot a '=back' before '=head2'