Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use Bio::DB::GenBank;
- print (ORFseek("NC_000908") . "\n");
- #--------------------------------------------------------------------------
- sub ORFseek {
- my ($acc) = @_;
- $gb_obj = Bio::DB::GenBank->new;
- $geneData = $gb_obj -> get_Seq_by_acc($acc);
- $seq = $geneData -> seq();
- $seqLength = length ($seq);
- INIT:
- for (my $readingFrame = 0; $readingFrame < 3; $readingFrame++) {
- for (my $i = $readingFrame; $i < $seqLength; $i+=3) {
- $codon = substr($seq, $i, 3);
- if ($codon eq "ATG" and not defined($metPos)){
- $metPos = $i;
- }
- elsif( ($codon eq "TAG") ||
- ($codon eq "TGA") ||
- ($codon eq "TAA") and defined($metPos)){
- $stop = $i;
- if (($stop-$metPos)/3 >= 63) {
- $results++;
- }
- undef($metPos)
- }
- }
- }
- if (not defined($reversed)){
- $seq = reverse ($seq);
- $seq =~ tr/ACGT/TGCA/;
- $reversed = 1;
- #si aún no hemos revertido la secuencia, lo hacemos y repetimos las operaciones.
- goto INIT;
- }
- return($results);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement