Bio::SeqFeature FeaturePair
SummaryIncluded librariesPackage variablesSynopsisDescriptionGeneral documentationMethods
Toolbar
WebCvsRaw content
Summary
Bio::SeqFeature::FeaturePair - hold pair feature information e.g. blast hits
Package variables
No package variables defined.
Included modules
Bio::SeqFeature::Generic
Bio::SeqFeatureI
Inherit
Bio::SeqFeature::Generic
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
endDescriptionCode
feature1DescriptionCode
feature2DescriptionCode
frameDescriptionCode
hendDescriptionCode
hframeDescriptionCode
hprimary_tagDescriptionCode
hscoreDescriptionCode
hseqnameDescriptionCode
hsource_tagDescriptionCode
hstartDescriptionCode
hstrandDescriptionCode
invertDescriptionCode
locationDescriptionCode
new
No description
Code
primary_tagDescriptionCode
scoreDescriptionCode
seqnameDescriptionCode
source_tagDescriptionCode
startDescriptionCode
strandDescriptionCode
Methods description
endcode    nextTop
 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
feature1codeprevnextTop
 Title   : feature1
Usage : $f = $featpair->feature1
$featpair->feature1($feature)
Function: Get/set for the query feature
Returns : Bio::SeqFeatureI
Args : Bio::SeqFeatureI
feature2codeprevnextTop
 Title   : feature2
Usage : $f = $featpair->feature2
$featpair->feature2($feature)
Function: Get/set for the hit feature
Returns : Bio::SeqFeatureI
Args : Bio::SeqFeatureI
framecodeprevnextTop
 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
hendcodeprevnextTop
 Title   : hend
Usage : $end = $featpair->hend
$featpair->hend($end)
Function: get/set on the end coordinate of feature2
Returns : integer
Args : none
hframecodeprevnextTop
 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
hprimary_tagcodeprevnextTop
 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
hscorecodeprevnextTop
 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
hseqnamecodeprevnextTop
 Title   : hseqname
Usage : $featpair->hseqname($newval)
Function: Get/set method for the name of
feature2.
Returns : value of $feature2->seq_id
Args : newvalue (optional)
hsource_tagcodeprevnextTop
 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
hstartcodeprevnextTop
 Title   : hstart
Usage : $start = $featpair->hstart
$featpair->hstart(20)
Function: Get/set on the start coordinate of feature2
Returns : integer
Args : none
hstrandcodeprevnextTop
 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
invertcodeprevnextTop
 Title   : invert
Usage : $tag = $feat->invert
Function: Swaps feature1 and feature2 around
Returns : Nothing
Args : none
locationcodeprevnextTop
 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
primary_tagcodeprevnextTop
 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
scorecodeprevnextTop
 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
seqnamecodeprevnextTop
 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)
source_tagcodeprevnextTop
 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
startcodeprevnextTop
 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
strandcodeprevnextTop
 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
enddescriptionprevnextTop
sub end {
    my ($self,$value) = @_;    
    return $self->feature1->end($value);
}
feature1descriptionprevnextTop
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'};
}
feature2descriptionprevnextTop
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'};
}
framedescriptionprevnextTop
sub frame {
    my ($self,$arg) = @_;
    return $self->feature1->frame($arg);
}
henddescriptionprevnextTop
sub hend {
    my ($self,$value) = @_;
    return $self->feature2->end($value);
}
hframedescriptionprevnextTop
sub hframe {
    my ($self,$arg) = @_;
    return $self->feature2->frame($arg);
}
hprimary_tagdescriptionprevnextTop
sub hprimary_tag {
    my ($self,$arg) = @_;
    return $self->feature2->primary_tag($arg);
}
hscoredescriptionprevnextTop
sub hscore {
    my ($self,$arg) = @_;
    return $self->feature2->score($arg);
}
hseqnamedescriptionprevnextTop
sub hseqname {
    my ($self,$arg) = @_;
    return $self->feature2->seq_id($arg);
}
hsource_tagdescriptionprevnextTop
sub hsource_tag {
    my ($self,$arg) = @_;
    return $self->feature2->source_tag($arg);
}
hstartdescriptionprevnextTop
sub hstart {
    my ($self,$value) = @_;
    return $self->feature2->start($value);
}
hstranddescriptionprevnextTop
sub hstrand {
    my ($self,$arg) = @_;
    return $self->feature2->strand($arg);
}
invertdescriptionprevnextTop
sub invert {
    my ($self) = @_;

    my $tmp = $self->feature1;
    
    $self->feature1($self->feature2);
    $self->feature2($tmp);
    return undef;
}

1;
}
locationdescriptionprevnextTop
sub location {
    my ($self,$value) = @_;    
    return $self->feature1->location($value);
}
newdescriptionprevnextTop
sub new {
    my ($class, @args) = @_;
    my $self = $class->SUPER::new(@args);
    
    my ($feature1,$feature2) = 
	$self->_rearrange([qw(FEATURE1
			      FEATURE2
			      )],@args);
    
    # Store the features in the object
$feature1 && $self->feature1($feature1); $feature2 && $self->feature2($feature2); return $self;
}
primary_tagdescriptionprevnextTop
sub primary_tag {
    my ($self,$arg) = @_;
    return $self->feature1->primary_tag($arg);
}
scoredescriptionprevnextTop
sub score {
    my ($self,$arg) = @_;
    return $self->feature1->score($arg);
}
seqnamedescriptionprevnextTop
sub seqname {
    my ($self,$arg) = @_;
    return $self->feature1->seq_id($arg);
}
source_tagdescriptionprevnextTop
sub source_tag {
    my ($self,$arg) = @_;
    return $self->feature1->source_tag($arg);
}
startdescriptionprevnextTop
sub start {
    my ($self,$value) = @_;    
    return $self->feature1->start($value);
}
stranddescriptionprevnextTop
sub strand {
    my ($self,$arg) = @_;
    return $self->feature1->strand($arg);
}
General documentation
CONTACTTop
Ewan Birney <birney@sanger.ac.uk>
APPENDIXTop
The rest of the documentation details each of the object
methods. Internal methods are usually preceded with a _