annotate variant_effect_predictor/Bio/SeqFeature/SimilarityPair.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: SimilarityPair.pm,v 1.21 2002/12/24 15:15:32 jason Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::SeqFeature::SimilarityPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Hilmar Lapp <hlapp@gmx.net>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Hilmar Lapp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 Bio::SeqFeature::SimilarityPair - Sequence feature based on the similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16 of two sequences.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20 $sim_pair = Bio::SeqFeature::SimilarityPair->from_searchResult($blastHit);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22 $sim = $sim_pair->query(); # a Bio::SeqFeature::Similarity object - the query
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 $sim = $sim_pair->hit(); # dto - the hit.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 # some properties for the similarity pair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 $expect = $sim_pair->significance();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 $score = $sim_pair->score();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 $bitscore = $sim_pair->bits();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 # this will not write the description for the sequence (only its name)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 print $sim_pair->query()->gff_string(), "\n";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 Lightweight similarity search result as a pair of Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 features. This class inherits off Bio::SeqFeature::FeaturePair and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 therefore implements Bio::SeqFeatureI, whereas the two features of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 pair are descendants of Bio::SeqFeature::Generic, with better support
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 for representing similarity search results in a cleaner way.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46 Bioperl modules. Send your comments and suggestions preferably to one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 of the Bioperl mailing lists. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50 http://bio.perl.org/MailList.html - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 the bugs and their resolution. Bug reports can be submitted via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 email or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 =head1 AUTHOR - Hilmar Lapp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 Email hlapp@gmx.net or hilmar.lapp@pharma.novartis.com
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65 Describe contact details here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 package Bio::SeqFeature::SimilarityPair;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 use Bio::SeqFeature::FeaturePair;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 use Bio::SeqFeature::Similarity;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 use Bio::SearchIO;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 @ISA = qw(Bio::SeqFeature::FeaturePair);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 Usage : my $similarityPair = new Bio::SeqFeature::SimilarityPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 (-hit => $hit,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 -query => $query,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 -source => 'blastp');
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Function: Initializes a new SimilarityPair object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95 Returns : Bio::SeqFeature::SimilarityPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 Args : -query => The query in a Feature pair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 -hit => (formerly '-subject') the subject/hit in a Feature pair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 my($class,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 my $self = $class->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 # Hack to deal with the fact that SimilarityPair calls strand()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 # which will lead to an error in Bio::Search::HSP::BlastHSP
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 # because parsing hasn't yet occurred.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 # TODO: Remove this when BlastHSP doesn't do lazy parsing.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 $self->{'_initializing'} = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 my ($primary, $hit, $query, $fea1, $source,$sbjct) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 $self->_rearrange([qw(PRIMARY
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 HIT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 QUERY
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 FEATURE1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118 SOURCE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 SUBJECT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 )],@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 if( $sbjct ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 # undeprecated by Jason before 1.1 release
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 # $self->deprecated("use of -subject deprecated: SimilarityPair now uses 'hit'");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 if(! $hit) { $hit = $sbjct }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 $self->warn("-hit and -subject were specified, using -hit and ignoring -subject");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131 # make sure at least the query feature exists -- this refers to feature1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132 if($query && ! $fea1) { $self->query( $query); }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 else { $self->query('null'); } # call with no args sets a default value for query
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 $hit && $self->hit($hit);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 # the following refer to feature1, which has been ensured to exist
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137 if( defined $primary || ! defined $self->primary_tag) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 $primary = 'similarity' unless defined $primary;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 $self->primary_tag($primary);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 $source && $self->source_tag($source);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 $self->strand(0) unless( defined $self->strand() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 $self->{'_initializing'} = 0; # See "Hack" note above
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150 # Everything else is just inherited from SeqFeature::FeaturePair.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 =head2 query
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 Title : query
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 Usage : $query_feature = $obj->query();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 $obj->query($query_feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 Function: The query object for this similarity pair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 Returns : Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 Args : [optional] Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 See L<Bio::SeqFeature::Similarity>, L<Bio::SeqFeature::FeaturePair>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 sub query {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 my $f = $self->feature1();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 if( ! @args || ( !ref($args[0]) && $args[0] eq 'null') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 if( ! defined( $f) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171 @args = Bio::SeqFeature::Similarity->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 } elsif( ! $f->isa('Bio::SeqFeature::Similarity') &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 $f->isa('Bio::SeqFeatureI') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 # a Bio::SeqFeature::Generic was placeholder for feature1
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 my $newf = new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 Bio::SeqFeature::Similarity( -start => $f->start(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 -end => $f->end(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 -strand => $f->strand(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 -primary => $f->primary_tag(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 -source => $f->source_tag(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 -seq_id => $f->seq_id(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 -score => $f->score(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 -frame => $f->frame(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 foreach my $tag ( $newf->all_tags ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 $tag->add_tag($tag, $newf->each_tag($tag));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 @args = $newf;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 @args = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193 return $self->feature1(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 =head2 subject
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 Title : subject
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202 Usage : $sbjct_feature = $obj->subject();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 $obj->subject($sbjct_feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 Function: Get/Set Subject for a SimilarityPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205 Returns : Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 Args : [optional] Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 Notes : Deprecated. Use the method 'hit' instead
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 sub subject {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 # $self->deprecated("Method subject deprecated: use hit() instead");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 $self->hit(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 *sbjct = \&subject;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 =head2 hit
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 Title : hit
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 Usage : $sbjct_feature = $obj->hit();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 $obj->hit($sbjct_feature);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 Function: Get/Set Hit for a SimilarityPair
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 Returns : Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 Args : [optional] Bio::SeqFeature::Similarity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 sub hit {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 my $f = $self->feature2();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 if(! @args || (!ref($args[0]) && $args[0] eq 'null') ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 if( ! defined( $f) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 @args = Bio::SeqFeature::Similarity->new();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 } elsif( ! $f->isa('Bio::SeqFeature::Similarity') &&
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 $f->isa('Bio::SeqFeatureI')) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 # a Bio::SeqFeature::Generic was placeholder for feature2
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 my $newf = new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 Bio::SeqFeature::Similarity( -start => $f->start(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 -end => $f->end(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 -strand => $f->strand(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 -primary => $f->primary_tag(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 -source => $f->source_tag(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 -seq_id => $f->seq_id(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 -score => $f->score(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 -frame => $f->frame(),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 foreach my $tag ( $newf->all_tags ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $tag->add_tag($tag, $newf->each_tag($tag));
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 @args = $newf;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 return $self->feature2(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 =head2 source_tag
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261 Title : source_tag
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262 Usage : $source = $obj->source_tag(); # i.e., program
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 $obj->source_tag($evalue);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264 Function: Gets the source tag (program name typically) for a feature
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 Returns : string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 Args : [optional] string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 sub source_tag {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 if(@args) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 $self->hit()->source_tag(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 return $self->query()->source_tag(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 =head2 significance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 Title : significance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 Usage : $evalue = $obj->significance();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 $obj->significance($evalue);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 sub significance {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 if(@args) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 $self->hit()->significance(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 return $self->query()->significance(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301 =head2 score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303 Title : score
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 Usage : $score = $obj->score();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 $obj->score($value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 sub score {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 if(@args) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317 $self->hit()->score(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 return $self->query()->score(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 =head2 bits
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 Title : bits
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325 Usage : $bits = $obj->bits();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 $obj->bits($value);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327 Function:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334 sub bits {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335 my ($self, @args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337 if(@args) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 $self->hit()->bits(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 return $self->query()->bits(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 1;