Re: Traducción de secuencia y su complementaria
Publicado: 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);
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);