[Rio-pm] Dúvida com split
Ola monges, Tenho uma dúvida simples. Digamos que eu tenha uma string com uma sequencia de RNA: $rna = 'AUGACGAAGCGUUGAUCC'; Só hipotético mesmo. Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons: AUG ACG AAG CGU UGA UCC Para isso eu acho conveniente colocar em um array, e faço isso usando um split my @codons = split /condição/, $dna; O meu problema é na condição, não estou conseguindo uma condição para agrupar de 3 em 3 letras já tentei: /(A|C|U|G){3}/ /(A|C|U|G)(A|C|U|G)(A|C|U|G)/ /(d+){3}/ /d+\d+\d+\/ /d+{3}/ /d+d+d+/ Ate tentei mexer no split my @codons = /(A|U|C|G)/, $rna, 3; Sei que a dúvida é besta, mas alguém de daria uma luz? Obrigado. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
pode usar o split mesmo... my @array = split '(\w{3})', $rna; *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-11-07 12:03 GMT-02:00 Aureliano Guedes guedes_1...@hotmail.com: Funcionou, o fato é que ainda não aprendi bem regex então não conhecia o \w. Mas compreendi completamente o código. Obrigado. -- Date: Fri, 7 Nov 2014 11:47:06 -0200 From: leprevos...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Dúvida com split Oi Aureliano, tenta o seguinte: my @codons = $rna =~ m/\w{3}/g; abraços On 07-11-2014 11:44, Aureliano Guedes wrote: Ola monges, Tenho uma dúvida simples. Digamos que eu tenha uma string com uma sequencia de RNA: $rna = 'AUGACGAAGCGUUGAUCC'; Só hipotético mesmo. Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons: AUG ACG AAG CGU UGA UCC Para isso eu acho conveniente colocar em um array, e faço isso usando um split my @codons = split /condição/, $dna; O meu problema é na condição, não estou conseguindo uma condição para agrupar de 3 em 3 letras já tentei: /(A|C|U|G){3}/ /(A|C|U|G)(A|C|U|G)(A|C|U|G)/ /(d+){3}/ /d+\d+\d+\/ /d+{3}/ /d+d+d+/ Ate tentei mexer no split my @codons = /(A|U|C|G)/, $rna, 3; Sei que a dúvida é besta, mas alguém de daria uma luz? Obrigado. ___ Rio-pm mailing listRio-pm@pm.orghttp://mail.pm.org/mailman/listinfo/rio-pm -- Felipe da Veiga Leprevost, PhD.www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
Obrigado. Ajudou muito mesmo. Vou salvar aqui pois depois posso precisar dessas dicas. Enrique Pessoa enrique.pes...@rrd.com escreveu: Aureliano, Sobre, \w, \W, \s, \S, mais informações em http://perldoc.perl.org/perlre.html#Regular-Expressions , item Character Classes and other Special Escapes. Para casar apenas com um A, C, U ou G você deveria usar /[ACUG]/. Para casar com 3 dessas letras acrescente {3} para indicar 'três vezes', assim: / [ACUG]{3}/ No caso da sequências de caracteres com as quais você está trabalhando (que contém sempre apenas essas letras), todas as outras opções abaixo são válidas, mas não necessariamente apropriadas. /.{3}/ - três caracteres quaisquer /\w{3}/ - três letras /\D{3}/ - três não digitos /\S{3}/ - três não espaço /[^vV]{3}/ - três caracteres que não sejam a letra v /[ACUG]{3}/i - três caracteres que sejam A, C, U ou G (podendo ser minúsculas) Quanto às formas de se obter partes de uma sequência de caracteres, eu só tenho o hábito de usar split quando quero remover o delimitador. my $lista_de_numeros = '12,23,34'; my $delimitador = ','; my @numeros = split($delimitador, $lista_de_numeros); Uma outra forma possível de fazer esse mesmo trabalho é: my @codons; # global continue pegando de um a três caracteres (para caso len($ma) mod 3 não dê zero) while ($ma =~ /\G(.{1,3})/gc) { push @codons, $1; } Abraços, Enrique Pessôa *Enrique Pessôa | Technology Products Manager, Brazil | RR Donnelley | Global Capital Markets* +55 21 2103.0508 | enrique.pes...@rrd.com | +55 21 9.8127.0077 * http://www.infoinvest.com.br/ | 15 anos de tecnologia para RI | Clique para conferir https://www.youtube.com/watch?v=gkxxbshF4Icfeature=youtu.be* Em 7 de novembro de 2014 12:51, Daniel Vinciguerra dan.vincigue...@gmail.com escreveu: pode usar o split mesmo... my @array = split '(\w{3})', $rna; *Daniel Vinciguerra (@dvinciguerra)* Web solution architect, perl dev, vegetarian, geek and co-founder at *Bivee* bivee.com.br - github.com/Bivee 2014-11-07 12:03 GMT-02:00 Aureliano Guedes guedes_1...@hotmail.com: Funcionou, o fato é que ainda não aprendi bem regex então não conhecia o \w. Mas compreendi completamente o código. Obrigado. -- Date: Fri, 7 Nov 2014 11:47:06 -0200 From: leprevos...@gmail.com To: rio-pm@pm.org Subject: Re: [Rio-pm] Dúvida com split Oi Aureliano, tenta o seguinte: my @codons = $rna =~ m/\w{3}/g; abraços On 07-11-2014 11:44, Aureliano Guedes wrote: Ola monges, Tenho uma dúvida simples. Digamos que eu tenha uma string com uma sequencia de RNA: $rna = 'AUGACGAAGCGUUGAUCC'; Só hipotético mesmo. Então quero agrupar de 3 em 3 letras (nucleotídeos) formando codons: AUG ACG AAG CGU UGA UCC Para isso eu acho conveniente colocar em um array, e faço isso usando um split my @codons = split /condição/, $dna; O meu problema é na condição, não estou conseguindo uma condição para agrupar de 3 em 3 letras já tentei: /(A|C|U|G){3}/ /(A|C|U|G)(A|C|U|G)(A|C|U|G)/ /(d+){3}/ /d+\d+\d+\/ /d+{3}/ /d+d+d+/ Ate tentei mexer no split my @codons = /(A|U|C|G)/, $rna, 3; Sei que a dúvida é besta, mas alguém de daria uma luz? Obrigado. ___ Rio-pm mailing listRio-pm@pm.orghttp://mail.pm.org/mailman/listinfo/rio-pm -- Felipe da Veiga Leprevost, PhD.www.leprevost.com.br Laboratory for Proteomics and Protein Engineering. Fiocruz, Brazil. ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
Saudações Aureliano, On Fri, Nov 07, 2014 at 02:03:08PM +, Aureliano Guedes wrote: [...] o fato é que ainda não aprendi bem regex então não conhecia \w. [...] Sendo regexp uma limitação, você poderia fazer a manipulação de strings sem o uso de regexp neste caso. Dois exemplos (de provavelmente dezenas): 1. # Obs.: Destrói o conteúdo de $rna my @condom; push @condom, substr $rna, 0, 3, q() while length $rna 2; 2. # Trata o conteúdo da scalar $rna como um filehandle local $/ = \3; open my $fh, q(), \$rna; my @condom = $fh; []'s -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.com ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
Aureliano, Você considerou usar Bioperl, para auxiliá-lo na 'lida' com bioinformática? É uma biblioteca bastante madura e amplamente usada. Seria bom dar uma olhada - http://www.bioperl.org/wiki/Main_Page https://metacpan.org/pod/distribution/BioPerl/BioPerl.pm Atenciosamente 2014-11-07 20:35 GMT-02:00 Ronaldo Ferreira de Lima jimmy@gmail.com: Saudações Aureliano, On Fri, Nov 07, 2014 at 02:03:08PM +, Aureliano Guedes wrote: [...] o fato é que ainda não aprendi bem regex então não conhecia \w. [...] Sendo regexp uma limitação, você poderia fazer a manipulação de strings sem o uso de regexp neste caso. Dois exemplos (de provavelmente dezenas): 1. # Obs.: Destrói o conteúdo de $rna my @condom; push @condom, substr $rna, 0, 3, q() while length $rna 2; 2. # Trata o conteúdo da scalar $rna como um filehandle local $/ = \3; open my $fh, q(), \$rna; my @condom = $fh; []'s -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.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
Re: [Rio-pm] Dúvida com split
Eu conheço o BioPerl. Mas eu preciso fazer essas pequenas rotinas eu mesmo. Porque alem de serem pequenas pra necessitar de módulos externos, fica mais portável para sistemas que nao possuem o BioPerl instalado. E também são exercícios. Mesmo assim obrigado. Andre Carneiro andregarciacarne...@gmail.com escreveu: Aureliano, Você considerou usar Bioperl, para auxiliá-lo na 'lida' com bioinformática? É uma biblioteca bastante madura e amplamente usada. Seria bom dar uma olhada - http://www.bioperl.org/wiki/Main_Page https://metacpan.org/pod/distribution/BioPerl/BioPerl.pm Atenciosamente 2014-11-07 20:35 GMT-02:00 Ronaldo Ferreira de Lima jimmy@gmail.com: Saudações Aureliano, On Fri, Nov 07, 2014 at 02:03:08PM +, Aureliano Guedes wrote: [...] o fato é que ainda não aprendi bem regex então não conhecia \w. [...] Sendo regexp uma limitação, você poderia fazer a manipulação de strings sem o uso de regexp neste caso. Dois exemplos (de provavelmente dezenas): 1. # Obs.: Destrói o conteúdo de $rna my @condom; push @condom, substr $rna, 0, 3, q() while length $rna 2; 2. # Trata o conteúdo da scalar $rna como um filehandle local $/ = \3; open my $fh, q(), \$rna; my @condom = $fh; []'s -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.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___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm
Re: [Rio-pm] Dúvida com split
Got it! :D 2014-11-07 21:31 GMT-02:00 Aureliano Guedes guedes_1...@hotmail.com: Eu conheço o BioPerl. Mas eu preciso fazer essas pequenas rotinas eu mesmo. Porque alem de serem pequenas pra necessitar de módulos externos, fica mais portável para sistemas que nao possuem o BioPerl instalado. E também são exercícios. Mesmo assim obrigado. Andre Carneiro andregarciacarne...@gmail.com escreveu: Aureliano, Você considerou usar Bioperl, para auxiliá-lo na 'lida' com bioinformática? É uma biblioteca bastante madura e amplamente usada. Seria bom dar uma olhada - http://www.bioperl.org/wiki/Main_Page https://metacpan.org/pod/distribution/BioPerl/BioPerl.pm Atenciosamente 2014-11-07 20:35 GMT-02:00 Ronaldo Ferreira de Lima jimmy@gmail.com: Saudações Aureliano, On Fri, Nov 07, 2014 at 02:03:08PM +, Aureliano Guedes wrote: [...] o fato é que ainda não aprendi bem regex então não conhecia \w. [...] Sendo regexp uma limitação, você poderia fazer a manipulação de strings sem o uso de regexp neste caso. Dois exemplos (de provavelmente dezenas): 1. # Obs.: Destrói o conteúdo de $rna my @condom; push @condom, substr $rna, 0, 3, q() while length $rna 2; 2. # Trata o conteúdo da scalar $rna como um filehandle local $/ = \3; open my $fh, q(), \$rna; my @condom = $fh; []'s -- Não manejo bem as palavras Mas manipulo bem as strings. -- http://tecnoveneno.blogspot.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 -- André Garcia Carneiro Software Engineer (11)982907780 ___ Rio-pm mailing list Rio-pm@pm.org http://mail.pm.org/mailman/listinfo/rio-pm