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.

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.

$feature->each_tag_value() =item $feature->all_tags() =item $feature->add_tag_value() =item $feature->remove_tag() =item $feature->attributes()

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'