Bio::SeqFeature
SimilarityPair
Toolbar
Summary
Bio::SeqFeature::SimilarityPair - Sequence feature based on the similarity
of two sequences.
Package variables
No package variables defined.
Included modules
Inherit
Synopsis
$sim_pair = Bio::SeqFeature::SimilarityPair->from_searchResult($blastHit);
$sim = $sim_pair->query(); # a Bio::SeqFeature::Similarity object - the query
$sim = $sim_pair->hit(); # dto - the hit.
# some properties for the similarity pair
$expect = $sim_pair->significance();
$score = $sim_pair->score();
$bitscore = $sim_pair->bits();
# this will not write the description for the sequence (only its name)
print $sim_pair->query()->gff_string(), "\n";
Description
Lightweight similarity search result as a pair of Similarity
features. This class inherits off Bio::SeqFeature::FeaturePair and
therefore implements Bio::SeqFeatureI, whereas the two features of the
pair are descendants of Bio::SeqFeature::Generic, with better support
for representing similarity search results in a cleaner way.
Methods
Methods description
Title : bits Usage : $bits = $obj->bits(); $obj->bits($value); Function: Returns : Args : |
Title : hit Usage : $sbjct_feature = $obj->hit(); $obj->hit($sbjct_feature); Function: Get/Set Hit for a SimilarityPair Returns : Bio::SeqFeature::Similarity Args : [optional] Bio::SeqFeature::Similarity |
Title : new Usage : my $similarityPair = new Bio::SeqFeature::SimilarityPair (-hit => $hit, -query => $query, -source => 'blastp'); Function: Initializes a new SimilarityPair object Returns : Bio::SeqFeature::SimilarityPair Args : -query => The query in a Feature pair -hit => (formerly '-subject') the subject/hit in a Feature pair |
Title : query Usage : $query_feature = $obj->query(); $obj->query($query_feature); Function: The query object for this similarity pair Returns : Bio::SeqFeature::Similarity Args : [optional] Bio::SeqFeature::Similarity
See Bio::SeqFeature::Similarity, Bio::SeqFeature::FeaturePair |
Title : score Usage : $score = $obj->score(); $obj->score($value); Function: Returns : Args : |
Title : significance Usage : $evalue = $obj->significance(); $obj->significance($evalue); Function: Returns : Args : |
Title : source_tag Usage : $source = $obj->source_tag(); # i.e., program $obj->source_tag($evalue); Function: Gets the source tag (program name typically) for a feature Returns : string Args : [optional] string |
Title : subject Usage : $sbjct_feature = $obj->subject(); $obj->subject($sbjct_feature); Function: Get/Set Subject for a SimilarityPair Returns : Bio::SeqFeature::Similarity Args : [optional] Bio::SeqFeature::Similarity Notes : Deprecated. Use the method 'hit' instead |
Methods code
sub bits
{ my ($self, @args) = @_;
if(@args) {
$self->hit()->bits(@args);
}
return $self->query()->bits(@args);
}
1; } |
sub hit
{ my ($self, @args) = @_;
my $f = $self->feature2();
if(! @args || (!ref($args[0]) && $args[0] eq 'null') ) {
if( ! defined( $f) ) {
@args = Bio::SeqFeature::Similarity->new();
} elsif( ! $f->isa('Bio::SeqFeature::Similarity') &&
$f->isa('Bio::SeqFeatureI')) {
my $newf = new
Bio::SeqFeature::Similarity( -start => $f->start(),
-end => $f->end(),
-strand => $f->strand(),
-primary => $f->primary_tag(),
-source => $f->source_tag(),
-seq_id => $f->seq_id(),
-score => $f->score(),
-frame => $f->frame(),
);
foreach my $tag ( $newf->all_tags ) {
$tag->add_tag($tag, $newf->each_tag($tag));
}
@args = $newf;
}
}
return $self->feature2(@args); } |
sub new
{ my($class,@args) = @_;
my $self = $class->SUPER::new(@args);
$self->{'_initializing'} = 1;
my ($primary, $hit, $query, $fea1, $source,$sbjct) =
$self->_rearrange([qw(PRIMARY
HIT
QUERY
FEATURE1
SOURCE
SUBJECT
)],@args);
if( $sbjct ) {
if(! $hit) { $hit = $sbjct }
else {
$self->warn("-hit and -subject were specified, using -hit and ignoring -subject");
}
}
if($query && ! $fea1) { $self->query( $query); }
else { $self->query('null'); }
$hit && $self->hit($hit);
if( defined $primary || ! defined $self->primary_tag) {
$primary = 'similarity' unless defined $primary;
$self->primary_tag($primary);
}
$source && $self->source_tag($source);
$self->strand(0) unless( defined $self->strand() );
$self->{'_initializing'} = 0; return $self;
}
} |
sub query
{ my ($self, @args) = @_;
my $f = $self->feature1();
if( ! @args || ( !ref($args[0]) && $args[0] eq 'null') ) {
if( ! defined( $f) ) {
@args = Bio::SeqFeature::Similarity->new();
} elsif( ! $f->isa('Bio::SeqFeature::Similarity') &&
$f->isa('Bio::SeqFeatureI') ) {
my $newf = new
Bio::SeqFeature::Similarity( -start => $f->start(),
-end => $f->end(),
-strand => $f->strand(),
-primary => $f->primary_tag(),
-source => $f->source_tag(),
-seq_id => $f->seq_id(),
-score => $f->score(),
-frame => $f->frame(),
);
foreach my $tag ( $newf->all_tags ) {
$tag->add_tag($tag, $newf->each_tag($tag));
}
@args = $newf;
} else {
@args = ();
}
}
return $self->feature1(@args); } |
sub score
{ my ($self, @args) = @_;
if(@args) {
$self->hit()->score(@args);
}
return $self->query()->score(@args); } |
sub significance
{ my ($self, @args) = @_;
if(@args) {
$self->hit()->significance(@args);
}
return $self->query()->significance(@args); } |
sub source_tag
{ my ($self, @args) = @_;
if(@args) {
$self->hit()->source_tag(@args);
}
return $self->query()->source_tag(@args); } |
sub subject
{ my $self = shift;
$self->hit(@_);
}
*sbjct =\& subject; } |
General documentation
User feedback is an integral part of the evolution of this and other
Bioperl modules. Send your comments and suggestions preferably to one
of the Bioperl mailing lists. Your participation is much appreciated.
bioperl-l@bioperl.org - General discussion
http://bio.perl.org/MailList.html - About the mailing lists
Report bugs to the Bioperl bug tracking system to help us keep track
the bugs and their resolution. Bug reports can be submitted via
email or the web:
bioperl-bugs@bio.perl.org
http://bugzilla.bioperl.org/
The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _