Llevo esto:
Using perl Syntax Highlighting
- #!/usr/bin/perl
- use strict;
- use warnings;
- my $cadena = '';
- my $file = 'archivo.fna'; # archivo .fna que contiene el #genoma de un procariota
- if ( -e $file ) {
- open IN, "<$file" or die "No pasa nada $!\n";
- my $cont = 0;
- while ( my $linea = <IN> ) {
- if ( $cont >= 1 ) {
- chomp $linea;
- $cadena = $cadena . $linea;
- }
- $cont++;
- }
- }
- # Diccionario codones -> aminoácido
- my %hash = (
- 'AAA' => 'K', # Lisina
- 'AAC' => 'N', # Asparagina
- 'AAG' => 'K', # Lisina
- 'AAT' => 'N', # Asparagina
- 'ACA' => 'T', # Treonina
- 'ACC' => 'T', # Treonina
- 'ACG' => 'T', # Treonina
- 'ACT' => 'T', # Treonina
- 'AGA' => 'R', # Arginina
- 'AGC' => 'S', # Serina
- 'AGG' => 'R', # Arginina
- 'AGT' => 'S', # Serina
- 'ATA' => 'I', # Isoleucina
- 'ATC' => 'I', # Isoleucina
- 'ATG' => 'M', # Metionina
- 'ATT' => 'I', # Isoleucina
- 'CAA' => 'Q', # Glutamina
- 'CAC' => 'H', # Histidina
- 'CAG' => 'Q', # Glutamina
- 'CAT' => 'H', # Histidina
- 'CCA' => 'P', # Prolina
- 'CCC' => 'P', # Prolina
- 'CCG' => 'P', # Prolina
- 'CCT' => 'P', # Prolina
- 'CGA' => 'R', # Arginina
- 'CGC' => 'R', # Arginina
- 'CGG' => 'R', # Arginina
- 'CGT' => 'R', # Arginina
- 'CTA' => 'L', # Leucina
- 'CTC' => 'L', # Leucina
- 'CTG' => 'L', # Leucina
- 'CTT' => 'L', # Leucina
- 'GAA' => 'E', # Ácido glutámico
- 'GAC' => 'D', # Ácido aspártico
- 'GAG' => 'E', # Ácido glutámico
- 'GAT' => 'D', # Ácido aspártico
- 'GCA' => 'A', # Alanina
- 'GCC' => 'A', # Alanina
- 'GCG' => 'A', # Alanina
- 'GCT' => 'A', # Alanina
- 'GGA' => 'G', # Glicina
- 'GGC' => 'G', # Glicina
- 'GGG' => 'G', # Glicina
- 'GGT' => 'G', # Glicina
- 'GTA' => 'V', # Valina
- 'GTC' => 'V', # Valina
- 'GTG' => 'V', # Valina
- 'GTT' => 'V', # Valina
- 'TAA' => '*', # Stop
- 'TAC' => 'Y', # Tirosina
- 'TAG' => '*', # Stop
- 'TAT' => 'Y', # Tirosina
- 'TCA' => 'S', # Serina
- 'TCC' => 'S', # Serina
- 'TCG' => 'S', # Serina
- 'TCT' => 'S', # Serina
- 'TGA' => '*', # Stop
- 'TGC' => 'C', # Cisteina
- 'TGG' => 'W', # Triptófano
- 'TGT' => 'C', # Cisteina
- 'TTA' => 'L', # Leucina
- 'TTC' => 'F', # Fenilalanina
- 'TTG' => 'L', # Leucina
- 'TTT' => 'F'
- ); # Fenilalanina
- ############################ MÉTODO UNO #########################
- my $bandera = 1;
- my $posicion = 0;
- my $posicionarreglo = 0;
- my @orf;
- my $largo = length $cadena;
- for ( my $i = 0; $i < $largo; $i++ ) {
- $bandera = 1;
- my $string = substr $cadena, $i, 3;
- if ( $string eq 'ATG' ) {
- $posicion = $i;
- $orf[$posicionarreglo] = $string;
- print "lo logramos esta en la posicion: $posicion\n";
- for ( my $j = $posicion; $bandera == 1; $j++ ) {
- my $string2 = substr $cadena, $posicion, 3;
- $orf[$posicionarreglo] = $orf[$posicionarreglo] . $string2;
- if ( $string2 eq 'TAA' or $string2 eq 'TGA' or $string2 eq 'TAG' ) {
- print "$orf[$posicionarreglo]";
- $bandera = 0;
- $posicionarreglo++;
- }
- }
- }
- }
- #print "\n$orf[0]\n$orf[1]\n$orf[2]\n$orf[3]\n$orf[4]\n";
- close IN;
Coloreado en 0.006 segundos, usando GeSHi 1.0.8.4