Re: [Rio-pm] Dúvida com split
Got it! :D 2014-11-07 21:31 GMT-02:00 Aureliano Guedes : > 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 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 : > > 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
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 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 : > 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
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 : > 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
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
Obrigado. Ajudou muito mesmo. Vou salvar aqui pois depois posso precisar dessas dicas. Enrique Pessoa 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=gkxxbshF4Ic&feature=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 : > > 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
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=gkxxbshF4Ic&feature=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 : > > 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
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 : > 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
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 list Rio-pm@pm.org http://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
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 list Rio-pm@pm.org http://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] 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