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