[Rio-pm] Dúvida com split

2014-11-07 Por tôpico Aureliano Guedes
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

2014-11-07 Por tôpico Daniel Vinciguerra
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

2014-11-07 Por tôpico Aureliano Guedes
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

2014-11-07 Por tôpico 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


Re: [Rio-pm] Dúvida com split

2014-11-07 Por tôpico Andre Carneiro
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

2014-11-07 Por tôpico 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 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

2014-11-07 Por tôpico Andre Carneiro
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