Bio::SeqFeature
FeaturePair
Toolbar
Summary
Bio::SeqFeature::FeaturePair - hold pair feature information e.g. blast hits
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
my $feat = new Bio::SeqFeature::FeaturePair(-feature1 => $f1,
-feature2 => $f2,
);
# Bio::SeqFeatureI methods can be used
my $start = $feat->start;
my $end = $feat->end;
# Bio::FeaturePair methods can be used
my $hstart = $feat->hstart;
my $hend = $feat->hend;
my $feature1 = $feat->feature1; # returns feature1 object
Description
A sequence feature object where the feature is itself a feature on
another sequence - e.g. a blast hit where residues 1-40 of a protein
sequence SW:HBA_HUMAN has hit to bases 100 - 220 on a genomic sequence
HS120G22. The genomic sequence coordinates are used to create one
sequence feature $f1 and the protein coordinates are used to create
feature $f2. A FeaturePair object can then be made
my $fp = new Bio::SeqFeature::FeaturePair(-feature1 => $f1, # genomic
-feature2 => $f2, # protein
);
This object can be used as a standard Bio::SeqFeatureI in which case
my $gstart = $fp->start # returns start coord on feature1 - genomic seq.
my $gend = $fp->end # returns end coord on feature1.
In general standard Bio::SeqFeatureI method calls return information
in feature1.
Data in the feature 2 object are generally obtained using the standard
methods prefixed by h (for hit!)
my $pstart = $fp->hstart # returns start coord on feature2 = protein seq.
my $pend = $fp->hend # returns end coord on feature2.
If you wish to swap feature1 and feature2 around :
$feat->invert
so...
$feat->start # etc. returns data in $feature2 object
No sub_SeqFeatures or tags can be stored in this object directly. Any
features or tags are expected to be stored in the contained objects
feature1, and feature2.
Methods
Methods description
Title : end Usage : $end = $featpair->end $featpair->end($end) Function: get/set on the end coordinate of feature1 Returns : integer Args : [optional] ending point of feature |
Title : feature1 Usage : $f = $featpair->feature1 $featpair->feature1($feature) Function: Get/set for the query feature Returns : Bio::SeqFeatureI Args : Bio::SeqFeatureI |
Title : feature2 Usage : $f = $featpair->feature2 $featpair->feature2($feature) Function: Get/set for the hit feature Returns : Bio::SeqFeatureI Args : Bio::SeqFeatureI |
Title : frame Usage : $frame = $feat->frame() $feat->frame($frame) Function: get/set on frame information Returns : 0,1,2 Args : none if get, the new value if set |
Title : hend Usage : $end = $featpair->hend $featpair->hend($end) Function: get/set on the end coordinate of feature2 Returns : integer Args : none |
Title : hframe Usage : $frame = $feat->frame() $feat->frame($frame) Function: get/set on frame information Returns : 0,1,2 Args : none if get, the new value if set |
Title : hprimary_tag Usage : $ptag = $featpair->hprimary_tag Function: Get/set on the primary_tag of feature2 Returns : 0,1,2 Args : none if get, the new value if set |
Title : hscore Usage : $score = $feat->score() $feat->score($score) Function: get/set on score information Returns : float Args : none if get, the new value if set |
Title : hseqname Usage : $featpair->hseqname($newval) Function: Get/set method for the name of feature2. Returns : value of $feature2->seq_id Args : newvalue (optional) |
Title : hsource_tag Usage : $tag = $feat->hsource_tag() $feat->source_tag('genscan'); Function: Returns the source tag for a feature, eg, 'genscan' Returns : a string Args : none |
Title : hstart Usage : $start = $featpair->hstart $featpair->hstart(20) Function: Get/set on the start coordinate of feature2 Returns : integer Args : none |
Title : hstrand Usage : $strand = $feat->strand() $feat->strand($strand) Function: get/set on strand information, being 1,-1 or 0 Returns : -1,1 or 0 Args : none |
Title : invert Usage : $tag = $feat->invert Function: Swaps feature1 and feature2 around Returns : Nothing Args : none |
Title : location Usage : $location = $featpair->location $featpair->location($location) Function: Get/set location object (using feature1) Returns : Bio::LocationI object Args : [optional] LocationI to store |
Title : primary_tag Usage : $ptag = $featpair->primary_tag Function: get/set on the primary_tag of feature1 Returns : 0,1,2 Args : none if get, the new value if set |
Title : score Usage : $score = $feat->score() $feat->score($score) Function: get/set on score information Returns : float Args : none if get, the new value if set |
Title : seqname Usage : $obj->seq_id($newval) Function: There are many cases when you make a feature that you do know the sequence name, but do not know its actual sequence. This is an attribute such that you can store the seqname.
This attribute should *not* be used in GFF dumping, as
that should come from the collection in which the seq
feature was found.
Returns : value of seqname
Args : newvalue (optional) |
Title : source_tag Usage : $tag = $feat->source_tag() $feat->source_tag('genscan'); Function: Returns the source tag for a feature, eg, 'genscan' Returns : a string Args : none |
Title : start Usage : $start = $featpair->start $featpair->start(20) Function: Get/set on the start coordinate of feature1 Returns : integer Args : [optional] beginning of feature |
Title : strand Usage : $strand = $feat->strand() $feat->strand($strand) Function: get/set on strand information, being 1,-1 or 0 Returns : -1,1 or 0 Args : [optional] strand information to set |
Methods code
sub end
{ my ($self,$value) = @_;
return $self->feature1->end($value); } |
sub feature1
{ my ($self,$arg) = @_;
if ( defined($arg) || !defined $self->{'feature1'} ) {
$arg = new Bio::SeqFeature::Generic() unless( defined $arg);
$self->throw("Argument [$arg] must be a Bio::SeqFeatureI")
unless (ref($arg) && $arg->isa("Bio::SeqFeatureI"));
$self->{'feature1'} = $arg;
}
return $self->{'feature1'}; } |
sub feature2
{ my ($self,$arg) = @_;
if ( defined($arg) || ! defined $self->{'feature2'}) {
$arg = new Bio::SeqFeature::Generic unless( defined $arg);
$self->throw("Argument [$arg] must be a Bio::SeqFeatureI")
unless (ref($arg) && $arg->isa("Bio::SeqFeatureI"));
$self->{'feature2'} = $arg;
}
return $self->{'feature2'}; } |
sub frame
{ my ($self,$arg) = @_;
return $self->feature1->frame($arg); } |
sub hend
{ my ($self,$value) = @_;
return $self->feature2->end($value); } |
sub hframe
{ my ($self,$arg) = @_;
return $self->feature2->frame($arg); } |
sub hprimary_tag
{ my ($self,$arg) = @_;
return $self->feature2->primary_tag($arg); } |
sub hscore
{ my ($self,$arg) = @_;
return $self->feature2->score($arg); } |
sub hseqname
{ my ($self,$arg) = @_;
return $self->feature2->seq_id($arg); } |
sub hsource_tag
{ my ($self,$arg) = @_;
return $self->feature2->source_tag($arg); } |
sub hstart
{ my ($self,$value) = @_;
return $self->feature2->start($value); } |
sub hstrand
{ my ($self,$arg) = @_;
return $self->feature2->strand($arg); } |
sub invert
{ my ($self) = @_;
my $tmp = $self->feature1;
$self->feature1($self->feature2);
$self->feature2($tmp);
return undef;
}
1; } |
sub location
{ my ($self,$value) = @_;
return $self->feature1->location($value); } |
sub new
{ my ($class, @args) = @_;
my $self = $class->SUPER::new(@args);
my ($feature1,$feature2) =
$self->_rearrange([qw(FEATURE1
FEATURE2
)],@args);
$feature1 && $self->feature1($feature1);
$feature2 && $self->feature2($feature2);
return $self; } |
sub primary_tag
{ my ($self,$arg) = @_;
return $self->feature1->primary_tag($arg); } |
sub score
{ my ($self,$arg) = @_;
return $self->feature1->score($arg); } |
sub seqname
{ my ($self,$arg) = @_;
return $self->feature1->seq_id($arg); } |
sub source_tag
{ my ($self,$arg) = @_;
return $self->feature1->source_tag($arg); } |
sub start
{ my ($self,$value) = @_;
return $self->feature1->start($value); } |
sub strand
{ my ($self,$arg) = @_;
return $self->feature1->strand($arg); } |
General documentation
Ewan Birney <birney@sanger.ac.uk>
The rest of the documentation details each of the object
methods. Internal methods are usually preceded with a _