my $sequence = "sequence.fa"; my @starts; open (FASTA, "$sequence") || die "Cannot open $sequence: $!.\n"; chomp (my @seq = ); close FASTA; shift @seq; $sequence = join ('', @seq); @seq = split ('', $sequence); for (my $i=0; $i<=$#seq-5; $i++){ ## -5 könnte man weglassen # start codon: ATG # stopp codon: TAG, TAA, TGA # multiple of 3 between start and stop if ($seq[$i] eq 'A' && $seq[$i+1] eq 'T' && $seq[$i+2] eq 'G'){ push (@starts, $i); for (my $j=$i+3; $j<=$#seq-2; $j=$j+3){ if (($seq[$j] eq 'T' && $seq[$j+1] eq 'A' && $seq[$j+2] eq 'A') || ($seq[$j] eq 'T' && $seq[$j+1] eq 'G' && $seq[$j+2] eq 'A') || ($seq[$j] eq 'T' && $seq[$j+1] eq 'A' && $seq[$j+2] eq 'G')){ print "ORF: $i-", ($j+2), "\n"; last; ##lasts the j loop } } } }