<div dir="ltr">Embora não acho que isso ajude no quesito velocidade, there's a module for that!<div><br></div><div><a href="https://metacpan.org/pod/Tie::RegexpHash">https://metacpan.org/pod/Tie::RegexpHash</a><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">2016-04-13 5:30 GMT-03:00 Stanislaw Pusep <span dir="ltr"><<a href="mailto:creaktive@gmail.com" target="_blank">creaktive@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>Aureliano, o Perl não é suficientemente inteligente para interpretar expressão regular como chave do hash :)</div><div>Pelo que entendi, vc quer algo assim:</div><div><br></div>my %codon = (<div>    (map { "CG".$_ => "A" } qw(A C T G)),</div><div>    (map { "TT".$_ => "F" } qw(C T)),</div><div>    (map { "TT".$_ => "L" } qw(A G)),</div><div>    (map { "CU".$_ => "L" } qw(A C T G)),</div><div>);<br></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">2016-04-13 2:24 GMT+02:00 Aureliano Guedes <span dir="ltr"><<a href="mailto:guedes_1000@hotmail.com" target="_blank">guedes_1000@hotmail.com</a>></span>:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5">


<div><div dir="ltr">Ola monges,<div><br></div><div>Eu tenho uma dúvida, caso possam me ajudar.</div><div>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).<br><br></div><div>Exemplo:<br><span style="font-size:12pt">Aminoacido -> Códons</span></div><div><span style="font-size:12pt"><br></span></div><div>Sendo os aminoácidos representados por 20 letras diferentes mais o X (stop códon).<br>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).</div><div>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, 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. <br></div><div>Dessa forma:</div><div><ul><li><span style="font-size:12pt">A -> CGA ou CGC ou CGT ou CGG</span></li></ul>Outros:<br><ul><li><span style="font-size:12pt">F -> TTC || TTT</span></li><li><span style="font-size:12pt">L -> TTA || TTG || CTA || CTG || CTC || CTT</span></li></ul></div><div><br></div><div>Bom, meu objetivo é simplesmente criar um hash, como esse:<br><div><ul><li><span style="font-size:10pt">my %aa = (</span><span style="font-size:10pt;white-space:pre-wrap">     </span><span style="font-size:10pt">"UUU" => "F", "UUC" => "F",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"UUA" => "L", </span><span style="font-size:10pt">"UUG" => "L", "UCU" => "S",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"UCC" => "S",</span><span style="font-size:10pt"> </span><span style="font-size:10pt">"UCA" => "S", "UCG" => "S", </span><span style="font-size:10pt">"UAU" => "Y",</span><span style="font-size:10pt"> </span><span style="font-size:10pt">"UAC" => "Y", "UAA" => "X",</span><span style="font-size:10pt;white-space:pre-wrap">     </span><span style="font-size:10pt">"UAG" => "X",</span><span style="font-size:10pt"> </span><span style="font-size:10pt">"UGU" => "C", "UGC" => "C", "UGA" => "X", </span><span style="font-size:10pt">"UGG" => "W", "CUU" => "L",</span><span style="font-size:10pt;white-space:pre-wrap">  </span><span style="font-size:10pt">"CUC" => "L", </span><span style="font-size:10pt">"CUA" => "L", "CUG" => "L",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"CCU" => "P", </span><span style="font-size:10pt">"CCC" => "P", "CCA" => "P",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"CCG" => "P", </span><span style="font-size:10pt">"CAU" => "H", "CAC" => "H",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"CAA" => "Q", </span><span style="font-size:10pt">"CAG" => "Q", "CGU" => "R",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"CGC" => "R", </span><span style="font-size:10pt">"CGA" => "R", "CGG" => "R",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"AUU" => "I", </span><span style="font-size:10pt">"AUC" => "I", "AUA" => "I",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"AUG" => "M", </span><span style="font-size:10pt">"ACU" => "T", "ACC" => "T",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"ACA" => "T", </span><span style="font-size:10pt">"ACG" => "T", "AAU" => "N",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"AAC" => "N", </span><span style="font-size:10pt">"AAA" => "K", "AAG" => "K",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"AGU" => "S", </span><span style="font-size:10pt">"AGC" => "S", "AGA" => "R",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"AGG" => "R", </span><span style="font-size:10pt">"GUU" => "V", "GUC" => "V",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"GUA" => "V", </span><span style="font-size:10pt">"GUG" => "V", "GCU" => "A",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"GCC" => "A", </span><span style="font-size:10pt">"GCA" => "A", "GCG" => "A",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"GAU" => "D", </span><span style="font-size:10pt">"GAC" => "D", "GAA" => "E",</span><span style="font-size:10pt;white-space:pre-wrap">      </span><span style="font-size:10pt">"GAG" => "E", </span><span style="font-size:10pt">"GGU" => "G", "GGC" => "G", </span><span style="font-size:10pt">"GGA" => "G", </span><span style="font-size:10pt">"GGG" => "G",);</span></li></ul></div></div><div><span style="font-size:12pt"><br></span></div><div><span style="font-size:12pt">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:</span></div><div><ul><li><span style="font-size:10pt">my %codon = ( "CG"./[ACTG]/ => "A", "TT"./[CT]/ => "F", ("TT"./[AG]/||"CU"./[ACTG]/) => "L",);</span></li></ul></div><div>Mas não funcionou.<br><br></div><div>Pensei em pegar uma abordagem mais IUPAC, onde:</div><div><ul><li><span style="font-size:12pt">Y = C ou T</span></li><li><span style="font-size:12pt">R = A ou G</span></li><li><span style="font-size:12pt">N = A, C, G ou T</span></li></ul></div><div>*tem outros, mas por enquanto apenas estou vendo a possibilidade.<br>Então fiz:<br><div><ul><li><span style="font-size:10pt">my $Y = /[CT]/;</span></li><li><span style="font-size:10pt">my $R = /[AG]/;</span></li><li><span style="font-size:10pt">my $N = /[ACTG]/;</span></li><li><font size="2"><br></font></li><li><span style="font-size:10pt">my %codon = ( "CG".$N => "A", "TT".$Y => "F", ("TT".$R||"CU".$N) => "L",);</span></li></ul><font size="3">Mas não funcionou.</font></div></div><div><br></div>                                        </div></div>
<br></div></div>_______________________________________________<br>
Rio-pm mailing list<br>
<a href="mailto:Rio-pm@pm.org" target="_blank">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></blockquote></div><br></div>
<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></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div><font color="#333333" size="1">YAGNI</font><span style="color:rgb(51,51,51);font-size:x-small">,</span></div><div><span style="color:rgb(51,51,51);font-size:x-small">Renato CRON</span></div><div><div style="text-align:right"><font size="1" color="#333333"><a href="http://www.renatocron.com/blog/" target="_blank">http://www.renatocron.com/blog/</a></font></div></div><div style="text-align:right"><font size="1" color="#333333"><a href="http://twitter.com/#!/renato_cron" target="_blank">@renato_cron</a></font></div></div></div></div>
</div>