annotate variant_effect_predictor/Bio/Tools/Est2Genome.pm @ 0:2bc9b66ada89 draft default tip

Uploaded
author mahtabm
date Thu, 11 Apr 2013 06:29:17 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: Est2Genome.pm,v 1.11 2002/12/05 13:46:36 heikki Exp $
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
2 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Tools::Est2Genome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
4 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Jason Stajich <jason@bioperl.org>
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
6 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Jason Stajich
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
8 #
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
10
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
12
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
14
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
15 Bio::Tools::Est2Genome - Parse est2genome output, makes simple Bio::SeqFeature::Generic objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
16
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
18
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
19 use Bio::Tools::Est2Genome;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
20
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
21 my $featureiter = new Bio::Tools::Est2Genome(-file => 'output.est2genome');
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
22
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
23 # This is going to be fixed to use the SeqAnalysisI next_feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
24 # Method eventually when we have the objects to put the data in
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
25 # properly
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
26 while( my $f = $featureiter->parse_next_gene ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
27 # process Bio::SeqFeature::Generic objects here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
28 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
29
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
30 =head1 DESCRIPTION
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
31
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
32 This module is a parser for est2genome [EMBOSS] alignments of est/cdna
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
33 sequence to genomic DNA. This is generally accepted as the best
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
34 program for predicting splice sites based on est/cdnas*.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
35
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
36 This module currently does not try pull out the ungapped alignments
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
37 (Segment) but may in the future.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
38
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
39
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
40 * AFAIK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
41
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
42 =head1 FEEDBACK
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
43
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
44 =head2 Mailing Lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
45
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
46 User feedback is an integral part of the evolution of this and other
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
47 Bioperl modules. Send your comments and suggestions preferably to
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
48 the Bioperl mailing list. Your participation is much appreciated.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
49
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
50 bioperl-l@bioperl.org - General discussion
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
51 http://bioperl.org/MailList.shtml - About the mailing lists
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
52
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
53 =head2 Reporting Bugs
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
54
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
55 Report bugs to the Bioperl bug tracking system to help us keep track
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
56 of the bugs and their resolution. Bug reports can be submitted via
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
57 email or the web:
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
58
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
59 bioperl-bugs@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
60 http://bugzilla.bioperl.org/
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
61
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
62 =head1 AUTHOR - Jason Stajich
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
63
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
64 Email jason@bioperl.org
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
65
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
66 Describe contact details here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
67
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
68 =head1 CONTRIBUTORS
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
69
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
70 Additional contributors names and emails here
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
71
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
72 =head1 APPENDIX
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
73
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
74 The rest of the documentation details each of the object methods.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
75 Internal methods are usually preceded with a _
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
76
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
77 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
78
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
79
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
80 # Let the code begin...
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
81
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
82
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
83 package Bio::Tools::Est2Genome;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
84 use vars qw(@ISA);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
85 use strict;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
86
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
87 # Object preamble - inherits from Bio::Root::Root
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
88
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
89 use Bio::Root::Root;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
90 use Bio::Tools::AnalysisResult;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
91 use Bio::SeqFeature::Gene::Exon;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
92 use Bio::SeqFeature::Gene::Intron;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
93 use Bio::SeqFeature::Gene::GeneStructure;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
94 use Bio::SeqFeature::SimilarityPair;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
95
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
96 @ISA = qw(Bio::Tools::AnalysisResult );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
97
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
98 =head2 new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
99
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
100 Title : new
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
101 Usage : my $obj = new Bio::Tools::Est2Genome();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
102 Function: Builds a new Bio::Tools::Est2Genome object
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
103 Returns : an instance of Bio::Tools::Est2Genome
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
104 Args : -file => 'output.est2genome' or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
105 -fh => \*EST2GENOMEOUTPUT
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
106 -genomefirst => 1 # genome was the first input (not standard)
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
107
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
108 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
109
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
110 sub _initialize_state {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
111 my($self,@args) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
112
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
113 # call the inherited method first
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
114 my $make = $self->SUPER::_initialize_state(@args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
115
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
116 my ($genome_is_first) = $self->_rearrange([qw(GENOMEFIRST)], @args);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
117
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
118 delete($self->{'_genome_is_first'});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
119 $self->{'_genome_is_first'} = $genome_is_first if(defined($genome_is_first));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
120 $self->analysis_method("est2genome");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
121 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
122
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
123 =head2 analysis_method
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
124
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
125 Usage : $sim4->analysis_method();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
126 Purpose : Inherited method. Overridden to ensure that the name matches
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
127 /est2genome/i.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
128 Returns : String
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
129 Argument : n/a
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
130
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
131 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
132
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
133 #-------------
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
134 sub analysis_method {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
135 #-------------
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
136 my ($self, $method) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
137 if($method && ($method !~ /est2genome/i)) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
138 $self->throw("method $method not supported in " . ref($self));
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
139 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
140 return $self->SUPER::analysis_method($method);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
141 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
142
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
143 =head2 parse_next_gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
144
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
145 Title : parse_next_gene
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
146 Usage : @gene = $est2genome_result->parse_next_gene;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
147 foreach $exon (@exons) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
148 # do something
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
149 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
150
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
151 Function: Parses the next alignments of the est2genome result file and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
152 returns the found exons as an array of
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
153 Bio::SeqFeature::SimilarityPair objects. Call
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
154 this method repeatedly until an empty array is returned to get the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
155 results for all alignments.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
156
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
157 The $exon->seq_id() attribute will be set to the identifier of the
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
158 respective sequence for both sequences.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
159 The length is accessible via the seqlength()
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
160 attribute of $exon->query() and
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
161 $exon->est_hit().
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
162 Returns : An array (or array reference) of Bio::SeqFeature::SimilarityPair and Bio::SeqFeature::Generic objects
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
163 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
164
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
165
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
166 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
167
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
168 sub parse_next_gene {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
169 my ($self) = @_;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
170 my $seensegment = 0;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
171 my @features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
172 my ($qstrand,$hstrand) = (1,1);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
173 my $lasthseqname;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
174 while( defined($_ = $self->_readline) ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
175 if( /Note Best alignment is between (reversed|forward) est and (reversed|forward) genome, (but|and) splice\s+sites imply\s+(forward gene|REVERSED GENE)/) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
176 if( $seensegment ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
177 $self->_pushback($_);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
178 return wantarray ? @features : \@features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
179 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
180 $hstrand = -1 if $1 eq 'reversed';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
181 $qstrand = -1 if $4 eq 'REVERSED GENE';
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
182 $self->debug( "1=$1, 2=$2, 4=$4\n");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
183 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
184 elsif( /^Exon/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
185 my ($name,$len,$score,$qstart,$qend,$qseqname,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
186 $hstart,$hend, $hseqname) = split;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
187 $lasthseqname = $hseqname;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
188 my $query = new Bio::SeqFeature::Similarity(-primary => $name,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
189 -source => $self->analysis_method,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
190 -seq_id => $qseqname, # FIXME WHEN WE REDO THE GENERIC NAME CHANGE
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
191 -start => $qstart,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
192 -end => $qend,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
193 -strand => $qstrand,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
194 -score => $score,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
195 -tag => {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
196 # 'Location' => "$hstart..$hend",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
197 'Sequence' => "$hseqname",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
198 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
199 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
200 my $hit = new Bio::SeqFeature::Similarity(-primary => 'exon_hit',
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
201 -source => $self->analysis_method,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
202 -seq_id => $hseqname,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
203 -start => $hstart,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
204 -end => $hend,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
205 -strand => $hstrand,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
206 -score => $score,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
207 -tag => {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
208 # 'Location' => "$qstart..$qend",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
209 'Sequence' => "$qseqname",
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
210
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
211 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
212 );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
213 push @features, new Bio::SeqFeature::SimilarityPair
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
214 (-query => $query,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
215 -hit => $hit,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
216 -source => $self->analysis_method);
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
217 } elsif( /^([\-\+\?])(Intron)/) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
218 my ($name,$len,$score,$qstart,$qend,$qseqname) = split;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
219 push @features, new Bio::SeqFeature::Generic(-primary => $2,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
220 -source => $self->analysis_method,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
221 -start => $qstart,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
222 -end => $qend,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
223 -strand => $qstrand,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
224 -score => $score,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
225 -seq_id => $qseqname,
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
226 -tag => {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
227 'Sequence' => $lasthseqname});
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
228 } elsif( /^Span/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
229 } elsif( /^Segment/ ) {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
230 $seensegment = 1;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
231 } elsif( /^\s+$/ ) { # do nothing
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
232 } else {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
233 $self->warn( "unknown line $_\n");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
234 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
235 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
236 return undef unless( @features );
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
237 return wantarray ? @features : \@features;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
238 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
239
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
240 =head2 next_feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
241
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
242 Title : next_feature
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
243 Usage : $seqfeature = $obj->next_feature();
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
244 Function: Returns the next feature available in the analysis result, or
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
245 undef if there are no more features.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
246 Example :
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
247 Returns : A Bio::SeqFeatureI implementing object, or undef if there are no
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
248 more features.
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
249 Args : none
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
250
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
251 =cut
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
252
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
253 sub next_feature {
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
254 my ($self) = shift;
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
255 $self->throw("We haven't really done this right, yet, use parse_next_gene");
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
256 }
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
257
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
258
2bc9b66ada89 Uploaded
mahtabm
parents:
diff changeset
259 1;