Humm... será que Bioperl pode ajudar? http://search.cpan.org/dist/BioPerl/Bio/Tools/CodonTable.pm
http://search.cpan.org/dist/BioPerl/Bio/CodonUsage/Table.pm Cheers! 2016-04-13 10:01 GMT-03:00 Ronaldo Ferreira de Lima <jimmy....@gmail.com>: > Saudações Aureliano, > > Vou sugerir a abordagem mais simplista que consegui pensar: > > Criar um hash com a correspondência entre aminoácidos e códons: > > my %a2c = ( > A => [qw[CGA CGC CGT CGG]], > F => [qw[TTC TTT]], > L => [qw[TTA TTG CTA CTG CTC CTT]], > ... > ); > > E em seguida criar o hash %aa do seu exemplo: > > my %aa; > foreach my $aminoacido ( keys %a2c ) { > foreach my $codom ( @{ $a2c{$aminoacido} } ) { > $aa{$codom} = $aminoacido; > } > } > > Uma vez que você tem o conhecimento de "o quê gera quem", seria possível > ainda modelar o problema no código apenas codificando as regras do > negócio. A implementação (acho) que poderia ser apenas com permutações > e/ou funções/métodos. Eu entendo nada de BIO e fico sem poder ajudar > neste aspecto. > > On Wed, Apr 13, 2016 at 12:24:53AM +0000, Aureliano Guedes wrote: > [...] > > Eu tenho varias códigos que acessam o mesmo valor (no caso que uso são > vários > > códons que traduzem o mesmo aminoácido). > > > > Exemplo: > > Aminoacido -> Códons > > Sendo os aminoácidos representados por 20 letras diferentes mais o X > (stop > > códon). > > E os codons, combinações de 3 nucleotídeos, sendo um total de 4 > nucleotídeos > > (A, T, C e G), logo temos 64 combinações de 3 nucleotídeos (64 codons > > possíveis). > > Por isso um mesmo aminoácido pode ser codificado por mais de um códon. > > No caso do aminoácido Alanina (Ala || A) é códificado pelos códons GCA, > GCC, > > GCT ou GCU. Observe que os dois primeiros nucleotídeos são C e G, > > respectivamente, e o terceiro pode ser ocupado por qualquer um dos 4 > > nucleotídeo possíveis. > > Dessa forma: > > > > o A -> CGA ou CGC ou CGT ou CGG > > > > Outros: > > > > o F -> TTC || TTT > > o L -> TTA || TTG || CTA || CTG || CTC || CTT > > > > Bom, meu objetivo é simplesmente criar um hash, como esse: > > > > o my %aa = ( "UUU" => "F", "UUC" => "F", "UUA" => "L", > "UUG" => > > "L", "UCU" => "S", "UCC" => "S", "UCA" => "S", "UCG" => "S", > "UAU" > > => "Y", "UAC" => "Y", "UAA" => "X", "UAG" => "X", "UGU" => "C", > "UGC" => > > "C", "UGA" => "X", "UGG" => "W", "CUU" => "L", "CUC" => "L", > "CUA" > > => "L", "CUG" => "L", "CCU" => "P", "CCC" => "P", "CCA" => > "P", > > "CCG" => "P", "CAU" => "H", "CAC" => "H", "CAA" => "Q", > "CAG" > > => "Q", "CGU" => "R", "CGC" => "R", "CGA" => "R", "CGG" => > "R", > > "AUU" => "I", "AUC" => "I", "AUA" => "I", "AUG" => "M", > "ACU" > > => "T", "ACC" => "T", "ACA" => "T", "ACG" => "T", "AAU" => > "N", > > "AAC" => "N", "AAA" => "K", "AAG" => "K", "AGU" => "S", > "AGC" > > => "S", "AGA" => "R", "AGG" => "R", "GUU" => "V", "GUC" => > "V", > > "GUA" => "V", "GUG" => "V", "GCU" => "A", "GCC" => "A", > "GCA" > > => "A", "GCG" => "A", "GAU" => "D", "GAC" => "D", "GAA" => > "E", > > "GAG" => "E", "GGU" => "G", "GGC" => "G", "GGA" => "G", "GGG" => > "G",); > > > > Contudo pensei em tomar outra abordagem, informar pra chave quem ela > pode ser. > > Não sei se é possível, mas eu comecei tentando algo como: > > > > o my %codon = ( "CG"./[ACTG]/ => "A", "TT"./[CT]/ => "F", > > ("TT"./[AG]/||"CU"./[ACTG]/) => "L",); > > > > Mas não funcionou. > > > > Pensei em pegar uma abordagem mais IUPAC, onde: > > > > o Y = C ou T > > o R = A ou G > > o N = A, C, G ou T > > > > *tem outros, mas por enquanto apenas estou vendo a possibilidade. > > Então fiz: > > > > o my $Y = /[CT]/; > > o my $R = /[AG]/; > > o my $N = /[ACTG]/; > > o > > > > o my %codon = ( "CG".$N => "A", "TT".$Y => "F", ("TT".$R||"CU".$N) => > "L",); > > > > Mas não funcionou. > > -- > "Não manejo bem as palavras > Mas manipulo bem as strings." > ------------------------------ > http://perspicazsite.wordpress.com > > _______________________________________________ > Rio-pm mailing list > Rio-pm@pm.org > http://mail.pm.org/mailman/listinfo/rio-pm > -- André Garcia Carneiro Software Engineer (11)982907780
_______________________________________________ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm