• Publicidad

Traducción de secuencia y su complementaria

Perl aplicado a la bioinformática

Re: Traducción de secuencia y su complementaria

Notapor frido » 2013-04-20 20:04 @877

Ahora me sale otro problema, he hecho lo del cambio de secuencia proteica a secuencia de dna tal como me has explicado, pero no funciona:

use strict;
my $n=1;
my $seq;
my $secuencia_final;
my %seq_to_amino;
open (FHANDLE, "Fasta.txt") or die ("missatge d'error!");
while ($seq=<FHANDLE>)
{

my %seq_to_amino = (
F => {
secuencias => [ qw (TTT TTC ) ],
pesos => [ qw ( 10 90 ) ],
}
L => {
secuencias => [ qw (TTA TTG CTT CTC CTA CTG ) ],
pesos => [ qw ( 10 20 5 5 30 30 ) ],
}
I => {
secuencias => [ qw (ATT ATC ATA ) ],
pesos => [ qw ( 10 40 50 ) ],
}
M => {
secuencias => [ qw (ATG ) ],
pesos => [ qw (100 ) ],
}
V => {
secuencias => [ qw (GTT GTC GTA GTG ) ],
pesos => [ qw ( 10 40 30 20 ) ],
}
S => {
secuencias => [ qw (TCT TCC TCA TCG ) ],
pesos => [ qw ( 10 15 25 50 ) ],
}
P => {
secuencias => [ qw (CCT CCC CCA CCG ) ],
pesos => [ qw ( 10 10 50 30) ],
}
T => {
secuencias => [ qw (ACT ACC ACA ACG ) ],
pesos => [ qw ( 20 20 30 30) ],
}
A => {
secuencias => [ qw (GCT GCC GCA GCG ) ],
pesos => [ qw ( 2 8 10 80 ) ],
}
Y => {
secuencias => [ qw (TAT TAC ) ],
pesos => [ qw ( 25 75 ) ],
}
H => {
secuencias => [ qw (CAT CAC ) ],
pesos => [ qw ( 45 55 ) ],
}
Q => {
secuencias => [ qw (CAA CAG ) ],
pesos => [ qw ( 85 15 ) ],
}
N => {
secuencias => [ qw (AAT AAC ) ],
pesos => [ qw ( 35 65 ) ],
}
K => {
secuencias => [ qw (AAA AAG ) ],
pesos => [ qw ( 10 90 ) ],
}
D => {
secuencias => [ qw (GAT GAC ) ],
pesos => [ qw ( 68 32 ) ],
}

E => {
secuencias => [ qw (GAA GAG ) ],
pesos => [ qw ( 10 90 ) ],
}
C => {
secuencias => [ qw (TGT TGC ) ],
pesos => [ qw ( 15 85 ) ],
}
W => {
secuencias => [ qw (TGG ) ],
pesos => [ qw (100 ) ],
}
R => {
secuencias => [ qw (CGT CGC CGA CGG AGA AGG ) ],
pesos => [ qw ( 10 15 25 5 5 40 ) ],
}
S => {
secuencias => [ qw (AGT AGC ) ],
pesos => [ qw ( 48 52 ) ],
}
G => {
secuencias => [ qw (GGT GGC GGA GGG ) ],
pesos => [ qw ( 10 20 30 40 ) ],
}

);
}
my $secuencia_final;
for (my $i = 0; $i < length $seq; $i++)
{
my $letra = substr $seq, $i, 1;
$secuencia_final
.= choose_weighted ($seq_to_amino{$letra}{secuencias}, $seq_to_amino{$letra}{pesos});
}
say $secuencia_final;
close (FHANDLE);
frido
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2013-04-16 15:55 @705

Publicidad

Re: Traducción de secuencia y su complementaria

Notapor explorer » 2013-04-20 20:12 @883

Si lo ejecutas te dirá que no sabe lo que es choose_weighted(). Eso es porque no has puesto la línea

use List::Util::WeightedChoice qw( choose_weighted );

(antes debes instalarlo, claro).

Debes también quitarle a $seq el carácter o caracteres de fin de línea. Eso se hace con chomp().

Una cosa más: es mejor que definas %seq_to_amino fuera del bucle while(). Ponlo al principio del programa, después de los 'uses', justo donde ahora lo estás declarando.

Y te recomiendo que le pongas marcas Perl al código que publicas, para que aparezca más claro. Fíjate que encima de la caja de edición hay una serie de botones. En la segunda fila, primer botón de la izquierda, pone Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducción de secuencia y su complementaria

Notapor frido » 2013-04-20 22:56 @997

Hola de nuevo... Tengo problemas al instalar el módulo List::Util::WeightedChoice (ya me lo he descargado y he leído el Readme, pero nada).

He puesto esta comando pero tampoco funciona: use lib '/home/turko/List-Util-WeightedChoice-0.06';
¿Dónde me equivoco?
Gracias.
frido
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2013-04-16 15:55 @705

Re: Traducción de secuencia y su complementaria

Notapor explorer » 2013-04-21 05:31 @271

Aquí hay una guía para saber si está bien instalado un módulo.

¿En qué sistema operativo estás?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducción de secuencia y su complementaria

Notapor frido » 2013-04-21 09:43 @447

En Ubuntu. Exactamente el archivo que carga ¿qué nombre tiene?

He puesto: use lib '/home/turko/Weighted';

porque la carpeta que contiene el programa se llama Weighted, pero me dice:

Can't locate List/Util/WeightedChoice.pm in @INC (@INC contains: /home/turko/Weighted /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at proteinadna.pl line 4.
BEGIN failed--compilation aborted at proteinadna.pl line 4.


Lo he probado todo y no funciona.
Última edición por frido el 2013-04-21 10:44 @488, editado 3 veces en total
frido
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2013-04-16 15:55 @705

Re: Traducción de secuencia y su complementaria

Notapor explorer » 2013-04-21 09:49 @450

Ese módulo no se encuentra entre la lista de paquetes de software de Ubuntu (ni de Debian), así que debes usar entonces el comando cpan o cpanp para instalarlo. Mira en la guía cómo se hace. Yo lo he hecho en mi máquina (siendo root) con este comando:

cpanp i List::Util::WeightedChoice

Si solo tienes el comando cpan, será así:

cpan List::Util::WeightedChoice
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducción de secuencia y su complementaria

Notapor explorer » 2013-04-21 11:56 @539

frido escribiste:me dice: Can't locate List/Util/WeightedChoice.pm in @INC (@INC contains: /home/turko/Weighted /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at proteinadna.pl line 4. BEGIN failed--compilation aborted at proteinadna.pl line 4.

Lo he probado todo y no funciona.
El mensaje indica que el módulo no está bien instalado. Mira mi mensaje anterior.

He descubierto más fallos en el código: tienes dos entradas para la 'S'. Y las entradas deben separarse con comas. Algo así:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my %seq_to_amino = (
  2.     A => {
  3.         secuencias => [qw (GCT GCC GCA GCG)],
  4.         pesos      => [qw (  2   8  10  80)],
  5.     },
  6.     C => {
  7.         secuencias => [qw (TGT TGC)],
  8.         pesos      => [qw ( 15  85)],
  9.     },
  10.     D => {
  11.         secuencias => [qw (GAT GAC)],
  12.         pesos      => [qw ( 68  32)],
  13.     },
  14. # aquí, el resto. Observa las comas entre cada par de entradas
  15. );
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducción de secuencia y su complementaria

Notapor frido » 2013-04-21 12:10 @549

El modulo ha sido instalado con éxito.
El programa esta así:

use strict;
use v5.14;
use List::Util::WeightedChoice qw( choose_weighted );
use warnings;
my %seq_to_amino = (
F => {
secuencias => [ qw (TTT TTC ) ],
pesos => [ qw ( 10 90 ) ],
},
L => {
secuencias => [ qw (TTA TTG CTT CTC CTA CTG ) ],
pesos => [ qw ( 10 20 5 5 30 30 ) ],
},
I => {
secuencias => [ qw (ATT ATC ATA ) ],
pesos => [ qw ( 10 40 50 ) ],
},
M => {
secuencias => [ qw (ATG ) ],
pesos => [ qw (100 ) ],
},
V => {
secuencias => [ qw (GTT GTC GTA GTG ) ],
pesos => [ qw ( 10 40 30 20 ) ],
},
S => {
secuencias => [ qw (TCT TCC TCA TCG AGT AGC) ],
pesos => [ qw ( 10 15 15 30 25 5 ) ],
},
P => {
secuencias => [ qw (CCT CCC CCA CCG ) ],
pesos => [ qw ( 10 10 50 30) ],
},
T => {
secuencias => [ qw (ACT ACC ACA ACG ) ],
pesos => [ qw ( 20 20 30 30) ],
},
A => {
secuencias => [ qw (GCT GCC GCA GCG ) ],
pesos => [ qw ( 2 8 10 80 ) ],
},
Y => {
secuencias => [ qw (TAT TAC ) ],
pesos => [ qw ( 25 75 ) ],
},
H => {
secuencias => [ qw (CAT CAC ) ],
pesos => [ qw ( 45 55 ) ],
},
Q => {
secuencias => [ qw (CAA CAG ) ],
pesos => [ qw ( 85 15 ) ],
},
N => {
secuencias => [ qw (AAT AAC ) ],
pesos => [ qw ( 35 65 ) ],
},
K => {
secuencias => [ qw (AAA AAG ) ],
pesos => [ qw ( 10 90 ) ],
},
D => {
secuencias => [ qw (GAT GAC ) ],
pesos => [ qw ( 68 32 ) ],
},

E => {
secuencias => [ qw (GAA GAG ) ],
pesos => [ qw ( 10 90 ) ],
},
C => {
secuencias => [ qw (TGT TGC ) ],
pesos => [ qw ( 15 85 ) ],
},
W => {
secuencias => [ qw (TGG ) ],
pesos => [ qw (100 ) ],
},
R => {
secuencias => [ qw (CGT CGC CGA CGG AGA AGG ) ],
pesos => [ qw ( 10 15 25 5 5 40 ) ],
},
G => {
secuencias => [ qw (GGT GGC GGA GGG ) ],
pesos => [ qw ( 10 20 30 40 ) ],
},

);
my $n=1;
my $seq;
my $secuencia_final;
my %seq_to_amino;
my $letra;
open (FHANDLE, "Fasta.txt") or die ("missatge d'error!");
while ($seq=<FHANDLE>)
{
chomp;


my $secuencia_final;
for (my $i = 0; $i < length $seq; $i++)
{
my $letra = substr $seq, $i, 1;
$secuencia_final .= choose_weighted ($seq_to_amino{$letra}{secuencias}, $seq_to_amino{$letra}{pesos});
print $secuencia_final;
}

}
close (FHANDLE);


Pero me da el error:

Parameter #1 (undef) to List::Util::WeightedChoice::choose_weighted was an 'undef', which is not one of the allowed types: arrayref
at /usr/local/share/perl/5.14.2/List/Util/WeightedChoice.pm line 37
List::Util::WeightedChoice::choose_weighted(undef, undef) called at proteinadna.pl line 103

Gracias por la ayuda y por tu tiempo.
frido
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2013-04-16 15:55 @705

Re: Traducción de secuencia y su complementaria

Notapor explorer » 2013-04-21 13:23 @599

En efecto, se puede hacer sin el módulo. De hecho, el código del módulo apenas son esas quince líneas.

Para aplicarlo a cada letra, debes llamar a este código por cada letra que leas de la secuencia. Como ya tienes guardada todas las secuencias y los pesos, solo tienes que modificar los valores de @porcentajes y @secuencias con los que el hash te devuelve para una letra en concreto.

Esta es una primera versión del programa:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Generador de secuencias almacenadas en un archivo FASTA.
  4. #
  5. # Lee un archivo FASTA multisecuencia, buscar la secuencia por el ID indicado como argumento,
  6. # y mostrarla traducida a ADN así como su complementaria.
  7. #
  8. # Joaquin Ferrero. 20130421
  9. #
  10.  
  11. use v5.14;
  12. use autodie;
  13.  
  14. ### Comprobar los argumentos ##################################################
  15. @ARGV == 1
  16.     or die "Uso: $0 <ID secuencia a mostrar>\n";
  17.  
  18. my $ID_a_mostrar = $ARGV[0];
  19.  
  20.  
  21. ### Leemos el archivo FASTA ###################################################
  22. my %secuencias;
  23.  
  24. open my $FHANDLE, "Fasta.txt";
  25.  
  26. my $secuencia_leida;
  27. my $ID;
  28.  
  29. while (my $linea = <$FHANDLE>) {
  30.  
  31.     my $c = substr $linea, 0, 1;                        # primera letra de la $linea
  32.  
  33.     if ($c eq '>'  or  eof $FHANDLE) {                  # llegamos a una nueva secuencia o fin de archivo
  34.         chomp $linea;
  35.  
  36.         if (eof $FHANDLE) {                             # caso de fin de archivo
  37.             $secuencia_leida .= $linea;                 # agregamos la última línea
  38.         }
  39.  
  40.         if ($secuencia_leida) {                         # si hemos leído antes una secuencia
  41.             $secuencias{$ID} = $secuencia_leida;        # la guardamos
  42.             $secuencia_leida = '';                      # inicializamos almacén de la secuencia
  43.         }
  44.  
  45.         $ID = (split /\|/, $linea)[1];                  # extraemos el nuevo ID
  46.  
  47.         next;                                           # leemos la siguiente línea
  48.     }
  49.  
  50.     $secuencia_leida .= $linea;                         # vamos guardando las líneas
  51. }
  52.  
  53. close $FHANDLE;
  54.  
  55. #use Data::Dumper;
  56. #say Dumper \%secuencias;
  57.  
  58. ### Comprobamos la existencia de la secuencia dentro del archivo ##############
  59. if (not exists $secuencias{ $ID_a_mostrar }) {
  60.     say "No existe la secuencia [$ID_a_mostrar]";
  61.     say "Los posibles valores son:";
  62.     say "\t", join "\n\t", sort keys %secuencias;
  63.  
  64.     exit 1;
  65. }
  66.  
  67. ### Generamos la secuencia de ADN de forma aleatoria ##########################
  68. my %seq_to_amino = (
  69.     A => {
  70.         secuencias => [qw (GCT GCC GCA GCG)],
  71.         pesos      => [qw (  2   8  10  80)],
  72.     },
  73.     C => {
  74.         secuencias => [qw (TGT TGC)],
  75.         pesos      => [qw ( 15  85)],
  76.     },
  77.     D => {
  78.         secuencias => [qw (GAT GAC)],
  79.         pesos      => [qw ( 68  32)],
  80.     },
  81.     E => {
  82.         secuencias => [qw (GAA GAG)],
  83.         pesos      => [qw ( 10  90)],
  84.     },
  85.     F => {
  86.         secuencias => [qw (TTT TTC)],
  87.         pesos      => [qw ( 10  90)],
  88.     },
  89.     G => {
  90.         secuencias => [qw (GGT GGC GGA GGG)],
  91.         pesos      => [qw ( 10  20  30  40)],
  92.     },
  93.     H => {
  94.         secuencias => [qw (CAT CAC)],
  95.         pesos      => [qw ( 45  55)],
  96.     },
  97.     I => {
  98.         secuencias => [qw (ATT ATC ATA)],
  99.         pesos      => [qw ( 10  40  50)],
  100.     },
  101.     K => {
  102.         secuencias => [qw (AAA AAG)],
  103.         pesos      => [qw ( 10  90)],
  104.     },
  105.     L => {
  106.         secuencias => [qw (TTA TTG CTT CTC CTA CTG)],
  107.         pesos      => [qw ( 10  20   5   5  30  30)],
  108.     },
  109.     M => {
  110.         secuencias => [qw (ATG)],
  111.         pesos      => [qw (100)],
  112.     },
  113.     N => {
  114.         secuencias => [qw (AAT AAC)],
  115.         pesos      => [qw ( 35  65)],
  116.     },
  117.     P => {
  118.         secuencias => [qw (CCT CCC CCA CCG)],
  119.         pesos      => [qw ( 10  10  50  30)],
  120.     },
  121.     Q => {
  122.         secuencias => [qw (CAA CAG)],
  123.         pesos      => [qw ( 85  15)],
  124.     },
  125.     R => {
  126.         secuencias => [qw (CGT CGC CGA CGG AGA AGG)],
  127.         pesos      => [qw ( 10  15  25   5   5  40)],
  128.     },
  129.     S => {
  130.         secuencias => [qw (TCT TCC TCA TCG)],
  131.         pesos      => [qw ( 10  15  25  50)],
  132.     },
  133.     T => {
  134.         secuencias => [qw (ACT ACC ACA ACG)],
  135.         pesos      => [qw ( 20  20  30  30)],
  136.     },
  137.     V => {
  138.         secuencias => [qw (GTT GTC GTA GTG)],
  139.         pesos      => [qw ( 10  40  30  20)],
  140.     },
  141.     W => {
  142.         secuencias => [qw (TGG)],
  143.         pesos      => [qw (100)],
  144.     },
  145.     Y => {
  146.         secuencias => [qw (TAT TAC)],
  147.         pesos      => [qw ( 25  75)],
  148.     },
  149. );
  150.  
  151. my $secuencia = $secuencias{$ID_a_mostrar};
  152. my $adn;
  153.  
  154. for my $linea (split /\n/, $secuencia) {                                # para todas las líneas
  155.     for ( my $i = 0; $i < length $linea; $i++ ) {                       # por cada letra de la línea
  156.         my $letra = substr $linea, $i, 1;
  157.  
  158. #        if (not exists $seq_to_amino{$letra}) {
  159. #            die "ERROR: No hay traducción para la letra [$letra]\n";
  160. #        }
  161.                                                                         # generamos adn para esa letra
  162.         $adn .= choose_weighted( $seq_to_amino{$letra}{secuencias}, $seq_to_amino{$letra}{pesos} );
  163.     }
  164.  
  165.     $adn .= "\n";                                                       # fin de línea cosmético
  166. }
  167. chomp $adn;                                                             # el último sobra
  168.  
  169. my $adn_complementaria = $adn =~ tr/ACGT/TGCA/r;                        # transliteración
  170. $adn_complementaria    = reverse $adn_complementaria;                   # inversión
  171.  
  172. ### Salida del resultado ######################################################
  173. say "Secuencia:\n$adn";
  174. say "=" x 60;
  175. say "Complementaria:\n$adn_complementaria";
  176.  
  177.  
  178. ### Subrutinas ################################################################
  179. sub choose_weighted {
  180.  
  181.     my ($objects, $weights ) = @_;
  182.     if ( @$objects != @$weights ) {
  183.         die "No son de igual longitud, el número de secuencias y el de pesos\n";
  184.     }
  185.  
  186.     my @ranges = ();            # actually upper bounds on ranges
  187.     my $left = 0;
  188.    
  189.     for my $weight (@$weights){
  190.         $weight = 0 if $weight < 0; # the world is hostile...
  191.         $left += $weight;
  192.         push @ranges, $left;
  193.     }
  194.  
  195.     my $weightIndex = rand $left;
  196.     for( my $i =0; $i< @$objects; $i++){
  197.         return $objects->[$i] if $weightIndex < $ranges[$i];
  198.     }
  199. }
  200.  
  201. __END__
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

Lo que he hecho es copiar casi tal cual el código del módulo.

Ahora, si lo ejecuto como perl frido.pl P18460, sale:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Secuencia:
ATGCGTGCGGCGTGGGGGTCGGTATGGTGCTTGTGCCTAGCGGCGGCGGTCGGGGCCCTACCGGCGGCGCGCAGGCGTGGGGCGGAGCGCTCGGGAGGGCAAGCGGCAGAGTATTTGCGATCTGAGACAGCGTTCCTGGAAGAGCTGGTCTTCGGTTCGGGAGATACCATAGAGCTGTCG
TGCAACACACAATCTTCGTCGGTCTCGGTATTCTGGTTCAAGGACGGTATAGGGATTGCGCCATCGAACCGAACCCATATCGGACAAAAGCTATTAAAGATCATTAATGTGTCATATGATGACTCAGGGCTATATTCATGTAAGCCACGCCATTCCAATGAGGTACTAGGCAATTTCACT
GTACGTGTAACTGATTCGCCCTCATCCGGAGACGACGAGGATGACGATGACGAGTCGGAGGATACGGGGGTCCCATTCTGGACACGCCCAGATAAGATGGAAAAGAAGTTGCTAGCTGTGCCGGCGGCGAACACGGTCCGTTTCCGCTGCCCGGCAGGCGGGAATCCAACTCCTACGATC
TACTGGTTGAAGAACGGAAAGGAGTTCAAGGGAGAGCACAGGATCGGGGGAATCAAGCTCCGACATCAACAGTGGTCACTGGTAATGGAGTCGGTCGTCCCGTCCGATCGGGGCAACTACACATGCGTCGTCGAGAACAAGTACGGAAACATCAGGCATACCTACCAACTTGATGTTCTG
GAGCGATCGCCACACAGGCCAATCTTACAGGCAGGTCTGCCGGCGAACCAAACGGTAGTAGTTGGCTCGAACGTAGAGTTCCATTGCAAGGTTTACTCCGATGCGCAACCGCACATACAATGGCTTAAGCACGTAGAGGTAAACGGTTCGAAGTACGGACCGGATGGGACTCCATATGTC
ACGGTTCTGAAGACGGCGGGGGTAAACACGACTGATAAGGAGCTAGAAATACTATACCTAAGGAATGTGACTTTCGAGGATGCGGGGGAGTACACTTGCTTGGCGGGGAACTCCATTGGGTTCTCGCACCACTCAGCGTGGTTGACAGTTCTACCGGCAGAGGAGCTCATGGAGATGGAT
GATTCGGGTTCAGTATATGCGGGGATATTGTCGTATGGAACTGGCTTGGTCTTATTCATACTGGTATTGGTGATAGTAATCATTTGCAGGATGAAGATGCCAAACAAGAAGGCGATGAACACTACGACAGTCCAAAAGGTATCGAAGTTTCCTCTAAAGAGGCAACAAGTATCGCTGGAG
TCAAACTCATCGATGAATTCCAACACACCATTAGTTCGAATAACCCGACTGTCGTCGTCTGATGGCCCAATGTTAGCGAACGTCTCAGAGCTGGAGCTACCGCCGGATCCGAAGTGGGAGTTGGCGCGATCTCGACTAACGTTAGGGAAACCGCTGGGAGAGGGATGTTTCGGGCAAGTG
GTCATGGCAGAGGCAATTGGAATAGATAAGGACAAGCCGAACAAGGCGATCACAGTCGCGGTTAAAATGCTGAAGGATGATGCGACAGATAAAGACCTATCTGATCTAGTCTCGGAGATGGAGATGATGAAGATGATAGGCAAACACAAGAACATCATTAACCTGCTAGGGGCGTGCACA
CAAGATGGGCCGCTGTACGTACTGGTTGAGTATGCGTCAAAGGGAAACCTAAGGGAGTATTTGAGGGCGAGACGCCCACCAGGCATGGATTATTCGTTCGATACATGCAAGCTACCAGAAGAGCAGTTGACGTTCAAGGACTTAGTCTCGTGCGCGTACCAAGTAGCGAGAGGGATGGAG
TACCTAGCGTCGCAAAAGTGCATACACCGCGATCTGGCGGCGCGTAACGTACTGGTCACGGAGGACAATGTCATGAAGATCGCCGATTTCGGGCTAGCGCGAGATGTCCACAATATCGATTACTACAAGAAGACTACTAACGGGCGACTACCCGTGAAGTGGATGGCGCCTGAGGCGTTA
TTCGACCGAGTATACACACACCAATCAGACGTGTGGTCATTCGGGGTTTTGTTGTGGGAGATCTTCACGCTAGGGGGATCTCCGTACCCGGGAATCCCAGTCGAGGAGTTATTCAAGCTATTGAAGGAGGGCCATAGGATGGATAAGCCGGCGAACTGCACCCATGATTTGTACATGATA
ATGAGGGAGTGCTGGCATGCAGTGCCCTCGCAACGCCCGACCTTCAAGCAACTGGTAGAGGATCTGGACCGAGTACTAACCATGACCTCGACAGATGAGTACCTAGATCTGTCGGTACCATTCGAGCAATACTCGCCCGCCGGGCAAGATACACACTCGACCTGCTCGTCGGGGGACGAT
TCGGTCTTCGCACACGATCTACTGCCAGATGAACCGTGCTTGCCCAAGCACGTTCCGTGCAATGGGGTCATCCGAACA
============================================================
Complementaria:
TGTTCGGATGACCCCATTGCACGGAACGTGCTTGGGCAAGCACGGTTCATCTGGCAGTAGATCGTGTGCGAAGACCGA
ATCGTCCCCCGACGAGCAGGTCGAGTGTGTATCTTGCCCGGCGGGCGAGTATTGCTCGAATGGTACCGACAGATCTAGGTACTCATCTGTCGAGGTCATGGTTAGTACTCGGTCCAGATCCTCTACCAGTTGCTTGAAGGTCGGGCGTTGCGAGGGCACTGCATGCCAGCACTCCCTCAT
TATCATGTACAAATCATGGGTGCAGTTCGCCGGCTTATCCATCCTATGGCCCTCCTTCAATAGCTTGAATAACTCCTCGACTGGGATTCCCGGGTACGGAGATCCCCCTAGCGTGAAGATCTCCCACAACAAAACCCCGAATGACCACACGTCTGATTGGTGTGTGTATACTCGGTCGAA
TAACGCCTCAGGCGCCATCCACTTCACGGGTAGTCGCCCGTTAGTAGTCTTCTTGTAGTAATCGATATTGTGGACATCTCGCGCTAGCCCGAAATCGGCGATCTTCATGACATTGTCCTCCGTGACCAGTACGTTACGCGCCGCCAGATCGCGGTGTATGCACTTTTGCGACGCTAGGTA
CTCCATCCCTCTCGCTACTTGGTACGCGCACGAGACTAAGTCCTTGAACGTCAACTGCTCTTCTGGTAGCTTGCATGTATCGAACGAATAATCCATGCCTGGTGGGCGTCTCGCCCTCAAATACTCCCTTAGGTTTCCCTTTGACGCATACTCAACCAGTACGTACAGCGGCCCATCTTG
TGTGCACGCCCCTAGCAGGTTAATGATGTTCTTGTGTTTGCCTATCATCTTCATCATCTCCATCTCCGAGACTAGATCAGATAGGTCTTTATCTGTCGCATCATCCTTCAGCATTTTAACCGCGACTGTGATCGCCTTGTTCGGCTTGTCCTTATCTATTCCAATTGCCTCTGCCATGAC
CACTTGCCCGAAACATCCCTCTCCCAGCGGTTTCCCTAACGTTAGTCGAGATCGCGCCAACTCCCACTTCGGATCCGGCGGTAGCTCCAGCTCTGAGACGTTCGCTAACATTGGGCCATCAGACGACGACAGTCGGGTTATTCGAACTAATGGTGTGTTGGAATTCATCGATGAGTTTGA
CTCCAGCGATACTTGTTGCCTCTTTAGAGGAAACTTCGATACCTTTTGGACTGTCGTAGTGTTCATCGCCTTCTTGTTTGGCATCTTCATCCTGCAAATGATTACTATCACCAATACCAGTATGAATAAGACCAAGCCAGTTCCATACGACAATATCCCCGCATATACTGAACCCGAATC
ATCCATCTCCATGAGCTCCTCTGCCGGTAGAACTGTCAACCACGCTGAGTGGTGCGAGAACCCAATGGAGTTCCCCGCCAAGCAAGTGTACTCCCCCGCATCCTCGAAAGTCACATTCCTTAGGTATAGTATTTCTAGCTCCTTATCAGTCGTGTTTACCCCCGCCGTCTTCAGAACCGT
GACATATGGAGTCCCATCCGGTCCGTACTTCGAACCGTTTACCTCTACGTGCTTAAGCCATTGTATGTGCGGTTGCGCATCGGAGTAAACCTTGCAATGGAACTCTACGTTCGAGCCAACTACTACCGTTTGGTTCGCCGGCAGACCTGCCTGTAAGATTGGCCTGTGTGGCGATCGCTC
CAGAACATCAAGTTGGTAGGTATGCCTGATGTTTCCGTACTTGTTCTCGACGACGCATGTGTAGTTGCCCCGATCGGACGGGACGACCGACTCCATTACCAGTGACCACTGTTGATGTCGGAGCTTGATTCCCCCGATCCTGTGCTCTCCCTTGAACTCCTTTCCGTTCTTCAACCAGTA
GATCGTAGGAGTTGGATTCCCGCCTGCCGGGCAGCGGAAACGGACCGTGTTCGCCGCCGGCACAGCTAGCAACTTCTTTTCCATCTTATCTGGGCGTGTCCAGAATGGGACCCCCGTATCCTCCGACTCGTCATCGTCATCCTCGTCGTCTCCGGATGAGGGCGAATCAGTTACACGTAC
AGTGAAATTGCCTAGTACCTCATTGGAATGGCGTGGCTTACATGAATATAGCCCTGAGTCATCATATGACACATTAATGATCTTTAATAGCTTTTGTCCGATATGGGTTCGGTTCGATGGCGCAATCCCTATACCGTCCTTGAACCAGAATACCGAGACCGACGAAGATTGTGTGTTGCA
CGACAGCTCTATGGTATCTCCCGAACCGAAGACCAGCTCTTCCAGGAACGCTGTCTCAGATCGCAAATACTCTGCCGCTTGCCCTCCCGAGCGCTCCGCCCCACGCCTGCGCGCCGCCGGTAGGGCCCCGACCGCCGCCGCTAGGCACAAGCACCATACCGACCCCCACGCCGCACGCAT
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El error que te sale es del chomp; dentro del while(). Debe ser chomp $seq;

Edito: como ya has instalado el módulo, lo único que habría que hacer a esta versión es agregar la línea del 'use' y quitar la subrutina choose_weighted() del final, para que el programa use la del módulo.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Traducción de secuencia y su complementaria

Notapor frido » 2013-04-21 16:12 @716

Muchas gracias, el programa que has hecho es lo que buscaba... Solo que quería que me saliera la ID conjuntamente con las cadenas de ADN. Pero bueno, ya no te molesto más.

Muchas gracias.
frido
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2013-04-16 15:55 @705

Siguiente

Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron