[Rio-pm] [DÚVIDA]Hash: varias key pra um mesmo value
Andre Carneiro
andregarciacarneiro em gmail.com
Quarta Abril 13 06:29:10 PDT 2016
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.tty em 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 em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
>
--
André Garcia Carneiro
Software Engineer
(11)982907780
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20160413/efcc593c/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm