Página 1 de 2 12 ÚltimoÚltimo
Resultados 1 a 10 de 14
  1. #1
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70

    criar um @array de termos dentro de um arquivo

    Gostaria de saber qual a melhor forma(de processamento) para criar um array que extraia apenas as nomenclaturas RF'S de algumas famílias de RNA

    >AP005088.1/113502-113610 RF00378;Qrr
    >AE016812.1/152096-152205 RF00378;Qrr
    >AE004422.1/7546-7440 RF00378;Qrr
    >AP005346.1/123943-124051 RF00378;Qrr
    >AP005346.1/21019-21127 RF00378;Qrr
    >AE016808.1/48481-48589 RF00378;Qrr
    >AP005344.1/77804-77914 RF00378;Qrr
    >AF228519.1/623-518 RF00378;Qrr
    >AP005089.1/186779-186671 RF00378;Qrr
    >AP005084.1/200580-200688 RF00378;Qrr
    >AE004410.1/8668-8777 RF00378;Qrr
    >AP005349.1/120219-120326 RF00378;Qrr
    >AE016813.1/290205-290312 RF00378;Qrr
    >AP005086.1/178803-178910 RF00378;Qrr
    >S83323.1/50-200 RF00484;IRES_Cx32
    >AL683892.12/123280-123428 RF00484;IRES_Cx32
    >AY303808.1/346-495 RF00484;IRES_Cx32
    >L47127.1/400-550 RF00484;IRES_Cx32
    >BC022426.1/1-118 RF00484;IRES_Cx32
    >M23565.1/710-859 RF00484;IRES_Cx32
    >L02971.1/1-115 RF00499;Parecho_CRE
    >AJ005695.1/1-113 RF00499;Parecho_CRE
    >S45208.1/1-115 RF00499;Parecho_CRE
    >AB084913.1/1-113 RF00499;Parecho_CRE
    >AF055846.1/1-102 RF00499;Parecho_CRE

    essa familia no caso teria que dar o array (RF00378, RF484,RF499) tipo extrair essa familias!..

  2. #2
    White Hat Administrador Avatar de fvox
    Data de Ingresso
    Sep 2005
    Localização
    São Paulo - SP
    Posts
    4.428
    Hi.

    Código PHP:
    #!/usr/bin/env perl

    use common::sense;
    use 
    Data::Printer colored => 1;

    my @family = ();

    while(<
    DATA>) {
        
    push @family, $1
          
    if /\s(RF\d{5});/;
    }

    @family;

    __DATA__

    >AP005088.1/113502-113610 RF00378;Qrr
    >AE016812.1/152096-152205 RF00378;Qrr
    >AE004422.1/7546-7440 RF00378;Qrr
    >AP005346.1/123943-124051 RF00378;Qrr
    >AP005346.1/21019-21127 RF00378;Qrr
    >AE016808.1/48481-48589 RF00378;Qrr
    >AP005344.1/77804-77914 RF00378;Qrr
    >AF228519.1/623-518 RF00378;Qrr
    >AP005089.1/186779-186671 RF00378;Qrr
    >AP005084.1/200580-200688 RF00378;Qrr
    >AE004410.1/8668-8777 RF00378;Qrr
    >AP005349.1/120219-120326 RF00378;Qrr
    >AE016813.1/290205-290312 RF00378;Qrr
    >AP005086.1/178803-178910 RF00378;Qrr
    >S83323.1/50-200 RF00484;IRES_Cx32
    >AL683892.12/123280-123428 RF00484;IRES_Cx32
    >AY303808.1/346-495 RF00484;IRES_Cx32
    >L47127.1/400-550 RF00484;IRES_Cx32
    >BC022426.1/1-118 RF00484;IRES_Cx32
    >M23565.1/710-859 RF00484;IRES_Cx32
    >L02971.1/1-115 RF00499;Parecho_CRE
    >AJ005695.1/1-113 RF00499;Parecho_CRE
    >S45208.1/1-115 RF00499;Parecho_CRE
    >AB084913.1/1-113 RF00499;Parecho_CRE
    >AF055846.1/1-102 RF00499;Parecho_CRE 
    []'s
    Última edição por fvox; 24 Jan 2012 às 14:34.
    Acha que está caindo na insanidade? Mergulhe!

    Twitter | Blog | Facebook | Github

  3. #3
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    fi de um outro jeito, ja eu posto p vc ver, mas axo que o seu eh bem mais rapido

    agora to c outra duvida tipo

    >A
    >B
    >C
    >D
    > h 3
    15
    24 29
    8 15 28

    A,B,C,D são familias

    e 15,24,29,8,15,28 sçao distancias entre elas, por exemplo

    15 é de B - A
    24 é de C - B
    29 é de C - A
    8 é de D - C
    15 é de D - B
    28 é de D - A

    tipo como faço p somar a distantia total de A e B por exemplo, tipo eu penso que eu teria que ter uma matriz inteira e nao metade, esse resultado seria uma matriz de dois lados iguais pois a distancia de D-A é a mesma de A-D, porém eu queria saber, que..por exemplo quando estivesse na familia A, como que eu somaria a soma de suas distancias com todas as familias entendem...
    alguem da uma luz!
    28

  4. #4
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    cara isso é mais especifico de bioinformatica, nem eu me liguei no que vc quer e olha que eu estudei 6 geneticas, 2 biomol e faço pesquisa academica na área

    seria melhor você dar um exemplo... tipo diga como faz os calculos

    olha so esse esquema, ve se te ajuda a pensar em um algoritimo

    Código PHP:
    RF00001_A  <- dado 1
    RF00002_B  <- dado 2
    RF00003_B  <- dado 3
    RF00004_A  <- dado 4
    RF00005_A  <- dado 5
    RF00007_B  <- dado 6
    RF00008_B  <- dado 7
    RF00009_A  <- dado 8
    RF00010_A  <- dado 9
    h 9        <- dado 10

    coluna  
    |1| |2| |3| |4| |5| |6| |7| |8|
    linha 0 119
    linha 1 140 143
    linha 2 120 107 142
    linha 3 105 108 125 107
    linha 4 120  93 142 120 85
    linha 5 103 126 131 115 42 103
    linha 6 255 246 245 243 262 247 268
    linha 7 259 250 237 237 250 245 258 304

    # Primeiro criterio: cada linha refere a um dado, o primeiro dado é o 2 e não o 1
    dado 2 pra linha 0
    dado 3 pra linha 1
    dado 4 pra linha 2
    ...

    # Segundo criterio: cada coluna refere a um dado de traz para frente,
    # e o numero de colunas depende do numero de linhas
    # tah faltando linhas...
    # o numero do dado indica o numero de colunas menos 1, logo dado 6 tem 5 colunas 
    portanto:
    SE dado 6 
    atribuir os dados de 5 a 1 
    (ou de 1 a 5 ao contrario
    Última edição por M4CK; 24 Jan 2012 às 18:26.
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  5. #5
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    tipo no algoritmo eu ate pensei ja, só nao sei como faço pra percorrer no arquivo e jogar na matriz..

    >A
    >B
    >C
    >D
    > h 3
    15
    24 29
    8 15 28 =


    A B C D
    A ** 15 24 8 = 47
    B 15 ** 29 15 = 59
    C 24 29 ** 28 = 81
    D 8 15 28 ** = 51






    D-A = 8
    D-B = 15
    D-C = 28


    C-B = 29
    C-A = 24


    B-A = 15


    o que eu preciso eh calcular o centroid e o intervalo, tipo o centroid eh: a a letra que tem a menor soma de distancia, no caso desse exemplo eh o centroid eh o elemento A, pois tem o menor valor e o intervalo eh o mais distante do centroid que no caso eh o elemento C.


    tipo minha duvida eh como faço para preencher a matriz do outro lado, mesmo sabendo que ela eh, pq tipo, como vou calcular a soma da familia A? como faço para percorrer essas linhas e capturar numero á numero? tipo só uma dica

    minha saida dever ser a matriz com o nome da familia - valor do centroid - valor do intervalo

  6. #6
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    deixa eu te falar, explica melhor de forma clara sua duvida, sem usar termos que não tem nada haver.

    os valores das distancia você ja tem, certo? o que você que não é "calcular" é "atribuir"!

    logo cada uma combinação de pontos(sequencias) tera um valor diferente, ou seja
    do B para o A tem 15
    do C para o B tem 29
    do C para o A tem 24

    e assim vai, o meu exemplo lah em cima tah certo

    Por ultimo, no final vem a parte mais fácil que é somar as distancias comuns a um unico ponto!

    Eu ja to tentando fazer isso aqui pra você, mas a parte dificil é atribuir os valores!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  7. #7
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    eh tipo assim, eu ja tenho o valora das distancias, porém eu devo somar esses valores para cada termo, tipo a soma das distancias de A com todas os termos, a soma das distancias de B com todas os termos, a soma de C com todos os termos, tipo observe que na ultima linha no exemplo daria 51 a soma da distancia de D com todos os termos, o que preciso eh dessa soma de distancia, porem observe que para mim pegar a soma de A com D, por exemplo eu nao tenho, o que eu tenho que fazer eh pegar a de D com A, (que esta presente na ultima linha)..

    só uma observação, naquele exemplo seu o h 9 (dado 10) nao representa um dado nao, eh só uma denotação para especificar a qtd de termos...

    fico claro o q estou tentando fazer?? vou tentando aqui tbm, pq nunca mexi com perl, mexo mais c java, mas nao posso usar...rsrsrsrsrsr

    valeuss

  8. #8
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    se vc conseguir fazer em C, perl é facil...

    eu tbm to tentando aqui, mas to sem tempo... hoje a noite olho com calma!!

    qualquer coisa faz em C e manda pra mim!
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

  9. #9
    Newbie
    Data de Ingresso
    Jan 2012
    Posts
    70
    nao prog em c, esse c java eh "com java",

    tava pensando um negocio, como faria pra multiplicar a matriz e prencher o outro lado dela que eh igual? h eh regex puro neh?

  10. #10
    Hacker Avatar de acpguedes
    Data de Ingresso
    Sep 2011
    Localização
    #!/usr/bin/env perl
    Posts
    955
    como assim??? não entendi...

    se você quiser atribuir valores a uma martiz a partir de outra, se estiver em ordem basicamente você faz

    Código PHP:
    my @array1 = (termos do array);

    my @array2 = (termos do array);

    my $n1 = @array1;
    my $n2 = @array2

    if (
    $n1 == $n2){
    for (
    my $i 0$i <= $n1 1Si++){
    print 
    $array1[$i], " "$array2[$i], " /n";
    }
    }

    else{
    retunr 0

    Aqui -> http://www.forum-invaders.com.br/vb/...l-Use-um-array

    ensino usar arrays

    mas não entendi sua pergunta direito, explica melhor...
    So respondo se a consiencia perguntar!!!
    Não Respondo MP's de perguntas, as faça em um tópico!

    Perl User, Bioinformatcs Programmer!

Permissões de Postagem

  • Você não pode iniciar novos tópicos
  • Você não pode enviar respostas
  • Você não pode enviar anexos
  • Você não pode editar suas mensagens
  •