[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.1, Thu Jan 11 17:06:22 2007 UTC revision 1.2, Tue Jan 16 20:29:55 2007 UTC
# Line 5  Line 5 
5  use strict;  use strict;
6  use FIG;  use FIG;
7  use FIGV;  use FIGV;
8  use URI::Escape; # this is used to escape the sequences and comes from http://search.cpan.org/~rse/lcwa-1.0.0/  use URI::Escape;
9  use Bio::FeatureIO;  use Bio::FeatureIO;
10  use Bio::SeqIO;  use Bio::SeqIO;
11  use Bio::Seq;  use Bio::Seq;
12  use Bio::SeqFeature::Generic;  use Bio::SeqFeature::Generic;
13    use Bio::SeqFeature::Annotated;
14  use File::Basename;  use File::Basename;
15    
16  sub export {  sub export {
# Line 30  Line 31 
31          $format_ending = "gbk";          $format_ending = "gbk";
32      } elsif ($format eq "GTF") {      } elsif ($format eq "GTF") {
33          $format_ending = "gtf";          $format_ending = "gtf";
34        } elsif ($format eq "gff") {
35          $format = "GTF";
36          $format_ending = "gff";
37        } elsif ($format eq "embl") {
38          $format_ending = "embl";
39      } else {      } else {
40          die "unknown export format: $format\n";          die "unknown export format: $format\n";
41      }      }
# Line 71  Line 77 
77    
78      # create the variable for the bio object      # create the variable for the bio object
79      my $bio;      my $bio;
80        my $bio2;
81    
82      # get the contigs      # get the contigs
83      foreach my $contig ($fig->contigs_of($genome)) {      foreach my $contig ($fig->contigs_of($genome)) {
84          my $cloc = $contig.'_1_'.$fig->contig_ln($genome, $contig);          my $cloc = $contig.'_1_'.$fig->contig_ln($genome, $contig);
85          my $seq = $fig->dna_seq($genome, $cloc);          my $seq = $fig->dna_seq($genome, $cloc);
86            $seq =~ s/>//;
87          $bio->{$contig} = Bio::Seq->new(-id => "$contig", seq => $seq);          $bio->{$contig} = Bio::Seq->new(-id => "$contig", seq => $seq);
88          $bio->{$contig}->desc("Contig $contig from $gs");          $bio->{$contig}->desc("Contig $contig from $gs");
89          my $feature = Bio::SeqFeature::Generic->new(          my $feature = Bio::SeqFeature::Generic->new(
# Line 178  Line 186 
186              my ($contig, $start, $stop)=($1, $2, $3);              my ($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;
190              next if (defined $beg && ($start < $beg || $stop < $beg));              if ($start > $stop) {
191              next if (defined $end && ($start > $end || $stop > $end));                $frame = $stop % 3;
192                  ($start, $stop, $strand) = ($stop, $start, '-1');
193              if ($start > $stop) {($start, $stop, $strand)=($stop, $start, '-1')}              }
194              elsif ($start == $stop) {$strand="."}              elsif ($start == $stop) {
195                  $strand = ".";
196                  $frame = ".";
197                }
198                my $source = "FIG";
199              my $type = $fig->ftype($peg);              my $type = $fig->ftype($peg);
200              my $feature;              my $feature;
201              if ($type eq "peg") {              if ($type eq "peg") {
# Line 202  Line 213 
213                  foreach my $tagtype (keys %$note) {                  foreach my $tagtype (keys %$note) {
214                      $feature->add_tag_value($tagtype, @{$note->{$tagtype}});                      $feature->add_tag_value($tagtype, @{$note->{$tagtype}});
215                  }                  }
216    
217                    my $feature2 = Bio::SeqFeature::Annotated->new( -start    => $start,
218                                                                    -end      => $stop,
219                                                                    -strand   => $strand,
220                                                                    -phase    => 0,
221                                                                    -frame    => $frame,
222                                                                    -source   => $source,
223                                                                    -type     => "CDS",
224                                                                    -seq_id   => $contig );
225    
226                    push(@$bio2, $feature2);
227    
228              } elsif ($type eq "rna") {              } elsif ($type eq "rna") {
229                  $feature = Bio::SeqFeature::Generic->new(                  $feature = Bio::SeqFeature::Generic->new(
230                      -start    => $start,                      -start    => $start,
# Line 226  Line 249 
249    
250      # check for FeatureIO or SeqIO      # check for FeatureIO or SeqIO
251      if ($format eq "GTF") {      if ($format eq "GTF") {
252          my $fio = Bio::FeatureIO->new(-file => ">$filename", -format => $format);        my $fio = Bio::FeatureIO->new(-file => ">$filename", -format => "GTF");
253          foreach my $seq (keys %$bio) {        foreach my $feature (@$bio2) {
             my $feat = Bio::FeatureIO->new(-seq => $seq , -format => 'features');  
             while ( my $feature = $feat->next_feature() ) {  
254                  $fio->write_feature($feature);                  $fio->write_feature($feature);
255              }              }
         }  
   
256      } else {      } else {
257          my $sio = Bio::SeqIO->new(-file => ">$filename", -format => $format);          my $sio = Bio::SeqIO->new(-file => ">$filename", -format => $format);
258          foreach my $seq (keys %$bio) {          foreach my $seq (keys %$bio) {

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3