[Bio] / FortyEight / SeedExport.pm Repository:
ViewVC logotype

Diff of /FortyEight/SeedExport.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.9, Tue Oct 2 18:01:00 2007 UTC revision 1.10, Mon Feb 11 17:33:08 2008 UTC
# Line 10  Line 10 
10  use Bio::FeatureIO;  use Bio::FeatureIO;
11  use Bio::SeqIO;  use Bio::SeqIO;
12  use Bio::Seq;  use Bio::Seq;
13    use Bio::Location::Split;
14    use Bio::Location::Simple;
15  use Bio::SeqFeature::Generic;  use Bio::SeqFeature::Generic;
16  use Bio::SeqFeature::Annotated;  use Bio::SeqFeature::Annotated;
17  use File::Basename;  use File::Basename;
# Line 173  Line 175 
175      # push @{$note->{"db_xref"}}, "FIG_ID:$peg";      # push @{$note->{"db_xref"}}, "FIG_ID:$peg";
176    
177      # get the features      # get the features
178    
179            my $loc_obj;
180      my @location = $fig->feature_location($peg);      my @location = $fig->feature_location($peg);
181            my @loc_info;
182            my $contig;
183      foreach my $loc (@location) {      foreach my $loc (@location) {
184                my($start, $stop);
185        $loc =~ /^(.*)\_(\d+)\_(\d+)$/;        $loc =~ /^(.*)\_(\d+)\_(\d+)$/;
186        my ($contig, $start, $stop) = ($1, $2, $3);              ($contig, $start, $stop) = ($1, $2, $3);
187        my $original_contig = $contig;        my $original_contig = $contig;
188        my $strand = '1';        my $strand = '1';
189        my $frame = $start % 3;        my $frame = $start % 3;
# Line 187  Line 194 
194          $strand = ".";          $strand = ".";
195          $frame = ".";          $frame = ".";
196        }        }
197    
198                push(@loc_info, [$contig, $start, $stop, $strand, $frame]);
199    
200                my $sloc = new Bio::Location::Simple(-start => $start,
201                                                     -end => $stop,
202                                                     -strand => $strand);
203                if (@location == 1)
204                {
205                    $loc_obj = $sloc;
206                }
207                else
208                {
209                    $loc_obj = new Bio::Location::Split() if !$loc_obj;
210                    $loc_obj->add_sub_Location($sloc);
211                }
212            }
213    
214        my $source = "FIG";        my $source = "FIG";
215        my $type = $fig->ftype($peg);        my $type = $fig->ftype($peg);
216        my $feature;        my $feature;
# Line 199  Line 223 
223        }        }
224    
225        if ($type eq "peg") {        if ($type eq "peg") {
226          $feature = Bio::SeqFeature::Generic->new(              $feature = Bio::SeqFeature::Generic->new(-location => $loc_obj,
                                                  -start    => $start,  
                                                  -end      => $stop,  
                                                  -strand   => $strand,  
227                                                   -primary  => 'CDS',                                                   -primary  => 'CDS',
228                                                   -tag      => {                                                   -tag      => {
229                                                                 product     => $func_ok,                                                                 product     => $func_ok,
# Line 214  Line 235 
235            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});
236          }          }
237    
 #       my $feature2 = Bio::SeqFeature::Annotated->new( -start    => $start,  
 #                                                       -end      => $stop,  
 #                                                       -strand   => $strand,  
 #                                                       -phase    => 0,  
 #                                                       -frame    => $frame,  
 #                                                       -source   => $source,  
 #                                                       -type     => "CDS",  
 #                                                       -seq_id   => $contig );  
   
 #       push(@$bio2, $feature2);  
   
238          # work around to get annotations into gff          # work around to get annotations into gff
239          push @$gff_export, "$contig\t$source\tCDS\t$start\t$stop\t.\t$strand\t$frame\t$func\n"              # this is probably still wrong for split locations.
240                for my $l (@loc_info)
241                {
242                    my($contig, $start, $stop, $strand, $frame) = @$l;
243                    push @$gff_export, "$contig\t$source\tCDS\t$start\t$stop\t.\t$strand\t$frame\t$func\n";
244                }
245    
246    
247        } elsif ($type eq "rna") {        } elsif ($type eq "rna") {
# Line 239  Line 254 
254                $primary = 'RNA';                $primary = 'RNA';
255            }            }
256    
257          $feature = Bio::SeqFeature::Generic->new(              $feature = Bio::SeqFeature::Generic->new(-location => $loc_obj,
                                                  -start    => $start,  
                                                  -end      => $stop,  
                                                  -strand   => $strand,  
258                                                   -primary  => $primary,                                                   -primary  => $primary,
259                                                   -tag      => {                                                   -tag      => {
260                                                                 product => $func,                                                                 product => $func,
# Line 253  Line 265 
265            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});
266    
267          # work around to get annotations into gff          # work around to get annotations into gff
268          push @$gff_export, "$contig\t$source\t$primary\t$start\t$stop\t.\t$strand\t.\t$func\n"                  for my $l (@loc_info)
269                    {
270                        my($contig, $start, $stop, $strand, $frame) = @$l;
271                        push @$gff_export, "$contig\t$source\t$primary\t$start\t$stop\t.\t$strand\t.\t$func\n";
272                    }
273          }          }
274    
275        } else {        } else {
# Line 261  Line 277 
277        }        }
278        $bio->{$contig}->add_SeqFeature($feature);        $bio->{$contig}->add_SeqFeature($feature);
279      }      }
280    }  
281    
282    # generate filename    # generate filename
283    my $filename = $directory . $genome . "." . $format_ending;    my $filename = $directory . $genome . "." . $format_ending;

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.10

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3