[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