[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.7, Thu Feb 15 22:41:39 2007 UTC revision 1.9, Tue Oct 2 18:01:00 2007 UTC
# Line 22  Line 22 
22    my $genome          = $parameters->{'genome'};    my $genome          = $parameters->{'genome'};
23    my $directory       = $parameters->{'directory'};    my $directory       = $parameters->{'directory'};
24    my $format          = $parameters->{'export_format'};    my $format          = $parameters->{'export_format'};
25      my $strip_ec        = $parameters->{'strip_ec'};
26    
27    # set some variables    # set some variables
28    my $user = "master:master";    my $user = "master:master";
# Line 86  Line 87 
87      my $cloc = $contig.'_1_'.$fig->contig_ln($genome, $contig);      my $cloc = $contig.'_1_'.$fig->contig_ln($genome, $contig);
88      my $seq = $fig->dna_seq($genome, $cloc);      my $seq = $fig->dna_seq($genome, $cloc);
89      $seq =~ s/>//;      $seq =~ s/>//;
90      $bio->{$contig} = Bio::Seq->new(-id => "$contig", seq => $seq);      $bio->{$contig} = Bio::Seq->new( -id => $contig,
91                                         -seq => $seq,
92                                       );
93      $bio->{$contig}->desc("Contig $contig from $gs");      $bio->{$contig}->desc("Contig $contig from $gs");
94    
95      my $feature = Bio::SeqFeature::Generic->new(      my $feature = Bio::SeqFeature::Generic->new(
96                                                  -start  => 1,                                                  -start  => 1,
97                                                  -end    => $fig->contig_ln($genome, $contig),                                                  -end    => $fig->contig_ln($genome, $contig),
98                                                  -tag        => { dbxref     => "taxon: $taxid",                                                  -tag        => { db_xref     => "taxon: $taxid",
99                                                                   organism   => $gs,                                                                   organism   => $gs,
100                                                                   mol_type   => "genomic DNA",                                                                   mol_type   => "genomic DNA",
101                                                                   genome_id  => $genome,                                                                   genome_id  => $genome,
# Line 133  Line 137 
137      my %gos = map { $_ => 1 } @gos if (scalar(@gos));      my %gos = map { $_ => 1 } @gos if (scalar(@gos));
138    
139      # add GOs      # add GOs
140      push @{$note->{"Dbxref"}}, @gos;      push @{$note->{"db_xref"}}, @gos;
141    
142      # add ECs      # add ECs
143      push @{$note->{"EC_number"}}, keys(%ecs);      push @{$note->{"EC_number"}}, keys(%ecs);
# Line 143  Line 147 
147      my @rw_aliases = map { $fig->rewrite_db_xrefs($_->[0]) } $fig->mapped_prot_ids($pid);      my @rw_aliases = map { $fig->rewrite_db_xrefs($_->[0]) } $fig->mapped_prot_ids($pid);
148      my @aliases;      my @aliases;
149      foreach my $a (@rw_aliases) {      foreach my $a (@rw_aliases) {
150        push @{$note->{"Dbxref"}}, $a if ( $a );        push @{$note->{"db_xref"}}, $a if ( $a );
151      }      }
152    
153      # get the links      # get the links
# Line 162  Line 166 
166          print STDERR "Ignored link: $ln\n";          print STDERR "Ignored link: $ln\n";
167          next;          next;
168        }        }
169        push @{$note->{"Dbxref"}}, "$db:$id";        push @{$note->{"db_xref"}}, "$db:$id";
170      }      }
171    
172      # add FIG id as a note      # add FIG id as a note
173      push @{$note->{"Dbxref"}}, "FIG_ID:$peg";      # push @{$note->{"db_xref"}}, "FIG_ID:$peg";
174    
175      # get the features      # get the features
176      my @location = $fig->feature_location($peg);      my @location = $fig->feature_location($peg);
# Line 186  Line 190 
190        my $source = "FIG";        my $source = "FIG";
191        my $type = $fig->ftype($peg);        my $type = $fig->ftype($peg);
192        my $feature;        my $feature;
193    
194          # strip EC from function
195          my $func_ok = $func;
196          if ($strip_ec) {
197            $func_ok =~ s/\s+\(EC \d+\.(\d+|-)\.(\d+|-)\.(\d+|-)\)//g;
198            $func_ok =~ s/\s+\(TC \d+\.(\d+|-)\.(\d+|-)\.(\d+|-)\)//g;
199          }
200    
201        if ($type eq "peg") {        if ($type eq "peg") {
202          $feature = Bio::SeqFeature::Generic->new(          $feature = Bio::SeqFeature::Generic->new(
203                                                   -start    => $start,                                                   -start    => $start,
# Line 193  Line 205 
205                                                   -strand   => $strand,                                                   -strand   => $strand,
206                                                   -primary  => 'CDS',                                                   -primary  => 'CDS',
207                                                   -tag      => {                                                   -tag      => {
208                                                                 product     => $func,                                                                 product     => $func_ok,
209                                                                 translation => $fig->get_translation($peg),                                                                 translation => $fig->get_translation($peg),
210                                                                },                                                                },
211                                                  );                                                  );
# Line 202  Line 214 
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,  #       my $feature2 = Bio::SeqFeature::Annotated->new( -start    => $start,
218                                                          -end      => $stop,  #                                                       -end      => $stop,
219                                                          -strand   => $strand,  #                                                       -strand   => $strand,
220                                                          -phase    => 0,  #                                                       -phase    => 0,
221                                                          -frame    => $frame,  #                                                       -frame    => $frame,
222                                                          -source   => $source,  #                                                       -source   => $source,
223                                                          -type     => "CDS",  #                                                       -type     => "CDS",
224                                                          -seq_id   => $contig );  #                                                       -seq_id   => $contig );
225    
226          push(@$bio2, $feature2);  #       push(@$bio2, $feature2);
227    
228          # work around to get annotations into gff          # work around to get annotations into gff
229          push @$gff_export, "$contig\t$source\tCDS\t$start\t$stop\t.\t$strand\t$frame\t$func\n"          push @$gff_export, "$contig\t$source\tCDS\t$start\t$stop\t.\t$strand\t$frame\t$func\n"
230    
231    
232        } elsif ($type eq "rna") {        } elsif ($type eq "rna") {
233              my $primary;
234              if ( $func =~ /tRNA/ ) {
235                  $primary = 'tRNA';
236              } elsif ( $func =~ /(Ribosomal RNA|5S RNA)/ ) {
237                  $primary = 'rRNA';
238              } else {
239                  $primary = 'RNA';
240              }
241    
242          $feature = Bio::SeqFeature::Generic->new(          $feature = Bio::SeqFeature::Generic->new(
243                                                   -start    => $start,                                                   -start    => $start,
244                                                   -end      => $stop,                                                   -end      => $stop,
245                                                   -strand   => $strand,                                                   -strand   => $strand,
246                                                   -primary  => 'RNA',                                                   -primary  => $primary,
247                                                     -tag      => {
248                                                                   product => $func,
249                                                               },
250    
251                                                  );                                                  );
252          foreach my $tagtype (keys %$note) {          foreach my $tagtype (keys %$note) {
253            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});            $feature->add_tag_value($tagtype, @{$note->{$tagtype}});
254    
255            # work around to get annotations into gff
256            push @$gff_export, "$contig\t$source\t$primary\t$start\t$stop\t.\t$strand\t.\t$func\n"
257          }          }
258    
259        } else {        } else {
260          print STDERR "unhandled feature type: $type\n";          print STDERR "unhandled feature type: $type\n";
261        }        }
   
262        $bio->{$contig}->add_SeqFeature($feature);        $bio->{$contig}->add_SeqFeature($feature);
263      }      }
264    }    }

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

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3