Advertisement
Guest User

Untitled

a guest
Oct 11th, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.97 KB | None | 0 0
  1. use Bio::DB::GenBank;
  2.  
  3. print (ORFseek("NC_000908") . "\n");
  4.  
  5.  
  6.  
  7.  
  8.  
  9. #--------------------------------------------------------------------------
  10. sub ORFseek {
  11.     my ($acc) = @_;
  12. $gb_obj = Bio::DB::GenBank->new;
  13. $geneData = $gb_obj -> get_Seq_by_acc($acc);
  14. $seq = $geneData -> seq();
  15. $seqLength = length ($seq);
  16.  
  17. INIT:
  18. for (my $readingFrame = 0; $readingFrame < 3; $readingFrame++) {
  19.     for (my $i = $readingFrame; $i < $seqLength; $i+=3) {
  20.         $codon = substr($seq, $i, 3);
  21.         if ($codon eq "ATG" and not defined($metPos)){
  22.             $metPos = $i;
  23.         }
  24.         elsif(  ($codon eq "TAG") ||
  25.                 ($codon eq "TGA") ||
  26.                 ($codon eq "TAA") and defined($metPos)){
  27.  
  28.             $stop = $i;
  29.             if (($stop-$metPos)/3 >= 63) {
  30.                 $results++;
  31.             }
  32.             undef($metPos)
  33.         }
  34.     }
  35. }
  36.  
  37. if (not defined($reversed)){
  38.     $seq = reverse ($seq);
  39.     $seq =~ tr/ACGT/TGCA/;
  40.     $reversed = 1;
  41.     #si aún no hemos revertido la secuencia, lo hacemos y repetimos las operaciones.
  42.     goto INIT;
  43. }
  44.  
  45. return($results);
  46.  
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement