[Cascavel-pm] Call for Papers +Dúvida de Biotecnologia [Was: Chamada de Artigos para WorkshopAlemão!! [Fwd: Call For Papers for 6th German Perl-Workshop]
Adriano Vivan Borro
vivan em dim.fm.usp.br
Sexta Setembro 12 14:18:10 CDT 2003
Legal. Vou procurar o Sr. Nicolas com certeza. Tks.
Qto a minha duvida, eh o seguinte. A frase q estou verificando eh na verdade um
gene. E como todos sabem, um gene eh uma frase em um alfabeto de 4 caracteres (nao
deem essa definicao a um biologo ou biomedico, cnao eles podem ateh brigar. :-D ).
Ae, o q acontece... Eu nunca sei qual eh o tamanho dessa frase. E preciso cortar (
ou como eles tratam... "clivar" ) o gene em pontos especificos. De todos estes
pedacos de gene, tenho q retirar o ultimo, o penultimo, e assim por diante, ateh
achar determinada sequencia de caracteres.
Tenho, entao, que quero cortar minha frase em toda sequencia TACA por exemplo. E
quero achar a seguencia CAGA.
Vai, entao um "exemplo de gene":
AGATAATACAATATACAGGCAGACGCATACAGGGATACAGACCTACAATTCGTACACCGCAGATACAGACCAGC
Entao, executando um split /TACA/,$seq , supondo $seq a variavel em q cologuei meu
"gene", temos:
AGATAA ATA GGCAGACGCA GGGA GACC
ATTCG CCGCAGA GACCAGC
Lembrando q a cada execucao, tenho um gene diferente a ser analizado, que tem o
tamanho diferente e terao diferentes numeros de clivagem, ou seja, nao sei nunca o
tamanho e nem o numero de elementos do meu array.
A sequencia procurada estah, entao, em $seq[-2] e em $seq[-6], pois estou contando
do final para o inicio. Mas a que quero eh a ultima ocorrencia, entao $seq[-2]. A
saida vai ser entao, o pedaco de gene q tem a sequencia procurada, ou seja, CCGCAGA
. Com isso, finalizo minha rotina, e serah feita a leitura de outro gene.
Espero ter conseguido, desta vez, explicar meu problema.
Ah.... A rotina... Tah ae embaixo, mas vai ae d novo pra nao ter q ficar dando
scrool, q eh um saco:
$x=-1;
@divide = split /TACA/, $seq;
while( $divide[$x] !~ qr/CAGA/ ) {
$x--;
}
print $divide[$x]."\n";
E tb uma coisa... Existe alguma diferenca entre usar $divide[$x] e @divide[$x] ? Pq
eu testei isso e, ao menos no compilador q uso aki, deu o mesmo resultado....
[]'s
Luis Campos de Carvalho wrote:
> Adriano Vivan Borro wrote:
> > Nossa,
> > Jah tava pensando q nossa lista tinha ido pro beleleu :-D
>
> Não, ainda não... estamos nos organizando.
> Você deveria ler mais emails.
> Temos registrado agora o perl.org.br, e o brasil.pm.org, e ainda o
> cascavel.pm.org, e estamos crescendo... =-]
>
> > Enfim. Eu trabalho em um centro de pesquisas relacionado ao Genoma Humano, na
> > area de Bioinformatica. Na verdade, isso eh relacionado a Genetica, porem,
> > estah sendo muito utilizada a Perl, por motivos obvios. Nao sei c algo a este
> > nivel seria interessante, jah q nao eh extritamente sobre programacao (mas eh
> > uma outra area da tecnologia em q todos nos podemos nos empregar :-D ). Aguardo
> > comentarios.
>
> Tenho certeza de que biotecnologia interessa a todos aqui e na Europa.
> Contate o senhor Nicolas Clark, diga a ele como você chegou e ofereça
> papers. Tenho certeza de que ele vai gostar.
>
> > E aproveitando a oportunidade, tenho a seguinte duvida...
> >
> > Quero verificar em uma frase, qual seu n-esimo elemento, contando d tras para
> > frente. Olhando o exemplo q fiz, parece obvio e mais facil indicar apenas o
> > n-esimo elemento. Porem, tenho um problema nas maos de maior nivel, e preciso
> > resolver o problema desta forma. Abaixo segue a rotina q escrevi, que supre as
> > necessidades. Porem, como estou iniciando na Perl, gostaria da opiniao d vcs
> > para saber c existe uma maneira mais facil e eficiente de resolver este
> > problema (fazer uma leitura de tras pra frente em uma variavel). Agradeco desde
> > jah a ajuda. Ae vai ela:
>
> Desculpe, mas eu não consegui entender qual o problema.
> Você está procurando todos os elementos de uma frase, na ordem
> inversa de ocorrência, que contenham uma seqüência de caracteres
> arbitrária?
>
> Que tal um pouco mais de feed-back, para que o pessoal mais poderoso
> da lista se interesse um pouco pelo problema? Temos gente muito
> experiente aqui, e com bons níveis de graduação. Tenho certeza de que um
> pouco mais de informação não prejudicará o problema.
>
> Em especial, o que você pediu que fosse executado pode ser escrito
> assim: no lugar de
>
> my $x=-1;
> my @divide = split /\. /, $texto;
> while( $divide[$x] !~ qr/Segunda/ ) {
> $x--;
> }
> print $divide[$x]."\n";
>
> use apenas
>
> print map "$_\n", reverse
> do{my em d;push em d,$1 while$texto=~m/([^.]+Segunda[^.]+\.)/g;@d;};
>
> E, se isso ainda não resolver seu problema, por favor não deixe de
> postar novamente para a lista. =-] É bom jogar Perl Golf de vez em
> quando...
>
> --
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
> Luis Campos de Carvalho is Computer Scientist,
> PerlMonk [SiteDocClan], Cascavel-pm Moderator,
> Unix Sys Admin && Certified Oracle DBA
> http://br.geocities.com/monsieur_champs/
> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
>
> _______________________________________________
> Cascavel-pm mailing list
> Cascavel-pm em mail.pm.org
> http://cascavel.pm.org/mailman/listinfo/cascavel-pm
>
> --------------------------
> Esta mensagem foi verificada
> pelo sistema de antivírus DIM e
> acredita-se estar livre de Virus.
> Virus data file v4292 created Sep 10 2003
Mais detalhes sobre a lista de discussão Cascavel-pm