• Publicidad

Buscar identificadores en GenBank

Perl aplicado a la bioinformática

Buscar identificadores en GenBank

Notapor wampaier » 2010-04-14 13:11 @591

¿Qué tal? Tengo una duda... Tengo este código que me cuenta cuántas veces aparece una palabra. Ejemplo: "lupus". Quisiera saber si me pueden ayudar a ver en qué registros se encuentran... es un formato de Genbank de bioinformática.

Este es el código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use strict;
  3. use warnings;
  4. use diagnostics;
  5.  
  6. open (my $fh, $ARGV[0]) || die "No puedo abrir el fichero: $!\n";
  7. print "Palabra a buscar...!\n";
  8. my $busqueda = <STDIN>;
  9. chomp($busqueda);
  10. my $total = 0;
  11. my @registros;
  12. {
  13.    local $/ = "//\n";                     # Suponemos que // no aparece más que como separador de registros
  14.  
  15.    @registros = <$fh>;
  16. }
  17. close $fh;
  18.  
  19. print "Leídos ", scalar @registros, " registros\n";
  20.  
  21. for (my $i = 0; $i < @registros; $i++) {
  22.  
  23.     my $veces = () = $registros[$i] =~ /$busqueda/i;
  24.     $total += $veces;
  25. }
  26.  print "El total es... $total\n";
  27.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4

Este es mi archivo de entrada:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
LOCUS       Z18825                   324 bp    mRNA    linear   PRI 04-OCT-2000
DEFINITION  Homo sapiens rearranged Ig kappa chain V-domain cDNA.
ACCESSION   Z18825
VERSION     Z18825.1  GI:33415
KEYWORDS    Ig kappa chain; immunoglobulin; variable region.
SOURCE      Homo sapiens (human)
  ORGANISM  Homo sapiens
            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
            Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
            Catarrhini; Hominidae; Homo.
REFERENCE   1  (bases 1 to 324)
  AUTHORS   Griffiths,A.D., Malmqvist,M., Marks,J.D., Bye,J.M., Embleton,M.J.,
            McCafferty,J., Baier,M., Holliger,K.P., Gorick,B.D.,
            Hughes-Jones,N.C., Hoogenboom,H.R. and Winter,G.
  TITLE     Human anti-self antibodies with high specificity from phage display
            libraries
  JOURNAL   EMBO J. 12 (2), 725-734 (1993)
   PUBMED   7679990
REFERENCE   2  (bases 1 to 324)
  AUTHORS   Griffiths,A.D.
  TITLE     Direct Submission
  JOURNAL   Submitted (25-NOV-1992) Griffiths A.D., MRC Centre for Protein
            Engineering, Hills Road, Cambridge, CB2 2QH, U.K
FEATURES             Location/Qualifiers
     source          1..324
                     /organism="Homo sapiens"
                     /macronuclear
                     /mol_type="mRNA"
                     /isolate="two unimmunised humans"
                     /db_xref="taxon:9606"
                     /clone="FOG1-VLH6"
                     /sex="Male"
                     /cell_type="peripheral lymphocyte"
                     /tissue_type="blood"
                     /dev_stage="adult"
     gene            <1..>324
                     /gene="IgK"
     CDS             <1..>324
                     /gene="IgK"
                     /codon_start=1
                     /product="Ig kappa chain V-domain"
                     /protein_id="CAA79277.1"
                     /db_xref="GI:939908"
                     /translation="DIQMTQSPSTLSASIGDRVTITCRASQNIDSWLAWFQHKPGKAP
                     KPLIYGAFTLQNGVPSRFSGSGSGTEFSLTISSLQPDDFATYFCQQAHSFPPTFGGGT
                     RLEIKR"
     V_region        <1..>324
                     /gene="IgK"
                     /product="Ig kappa chain V-domain"
ORIGIN      
        1 gacatccaga tgacccagtc tccctccacc ctgtctgcat ctataggaga cagagtcacc
       61 atcacttgcc gggccagtca gaatattgat agctggttgg cctggtttca acacaaacca
      121 gggaaagccc ccaagcccct gatctacggt gcattcactt tgcaaaatgg cgtcccgtcc
      181 agattcagcg gcagtggctc tgggacagag ttctccctca ctatcagcag cctgcagcct
      241 gacgattttg caacttactt ctgtcaacag gctcacagtt tccctcccac tttcggcgga
      301 gggacacgac tggagattaa acgt
//

LOCUS       Z18840                   315 bp    mRNA    linear   PRI 04-OCT-2000
DEFINITION  Homo sapiens rearranged Ig kappa region V-domain cDNA.
ACCESSION   Z18840
VERSION     Z18840.1  GI:33423
KEYWORDS    Ig kappa chain; immunoglobulin; variable region.
SOURCE      Homo sapiens (human)
  ORGANISM  Homo sapiens
            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
            Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
            Catarrhini; Hominidae; Homo.
REFERENCE   1  (bases 1 to 315)
  AUTHORS   Griffiths,A.D., Malmqvist,M., Marks,J.D., Bye,J.M., Embleton,M.J.,
            McCafferty,J., Baier,M., Holliger,K.P., Gorick,B.D.,
            Hughes-Jones,N.C., Hoogenboom,H.R. and Winter,G.
  TITLE     Human anti-self antibodies with high specificity from phage display
            libraries
  JOURNAL   EMBO J. 12 (2), 725-734 (1993)
   PUBMED   7679990
REFERENCE   2  (bases 1 to 315)
  AUTHORS   Griffiths,A.D.
  TITLE     Direct Submission
  JOURNAL   Submitted (25-NOV-1992) Griffiths A.D., MRC Centre for Protein
            Engineering, Hills Road, Cambridge, CB2 2QH, U.K
FEATURES             Location/Qualifiers
     source          1..315
                     /organism="Homo sapiens"
                     /macronuclear
                     /mol_type="mRNA"
                     /isolate="two unimmunised humans"
                     /db_xref="taxon:9606"
                     /clone="TNF-VLE1"
                     /sex="Male"
                     /cell_type="peripheral lymphocyte"
                     /tissue_type="blood"
                     /dev_stage="adult"
     gene            <1..>315
                     /gene="IgK"
     CDS             <1..>315
                     /gene="IgK"
                     /codon_start=1
                     /product="Ig kappa chain V-domain"
                     /protein_id="CAA79292.1"
                     /db_xref="GI:939916"
                     /translation="EIVLTQSPSSVSASVGDRVTITCRASQGIRSWLAWYQQKPGKAP
                     NLLIYAASTLETGVPSRFSGSGSGTDFTLTISSLQPEDFATYYCQQANSFPLTFGGGT
                     KLE"
     V_region        <1..>315
                     /gene="IgK"
                     /product="Ig kappa chain V-domain"
ORIGIN      
        1 gaaattgtgc tgactcagtc tccatcttcc gtgtctgcat ctgtaggaga cagagtcacc
       61 atcacttgtc gggcgagtca gggtattcgc agctggttag cctggtatca gcagaaacca
      121 gggaaagccc ctaacctcct gatctatgct gcatccactt tggaaactgg ggtcccatca
      181 aggttcagcg gcagtggatc tgggacagat ttcactctca ccatcagcag cctgcagcct
      241 gaagattttg caacttacta ttgtcaacag gctaacagtt tccctctcac tttcggcgga
      301 gggaccaagc tggag
//

LOCUS       S59162                   433 bp    mRNA    linear   PRI 26-JUN-2000
DEFINITION  Ig V kappa =anti-single/double-stranded DNA antibody NE-13 light
            chain variable region [human, B-cells, mRNA Partial, 433 nt].
ACCESSION   S59162
VERSION     S59162.1  GI:299955
KEYWORDS    .
SOURCE      Homo sapiens (human)
  ORGANISM  Homo sapiens
            Eukaryota; Metazoa; Chordata; Craniata; Vertebrata; Euteleostomi;
            Mammalia; Eutheria; Euarchontoglires; Primates; Haplorrhini;
            Catarrhini; Hominidae; Homo.
REFERENCE   1  (bases 1 to 433)
  AUTHORS   Hirabayashi,Y., Munakata,Y., Takai,O., Shibata,S., Sasaki,T. and
            Sano,H.
  TITLE     Human B-cell clones expressing lupus nephritis-associated anti-DNA
            idiotypes are preferentially expanded without somatic mutation
  JOURNAL   Scand. J. Immunol. 37 (5), 533-540 (1993)
   PUBMED   8387226
  REMARK    GenBank staff at the National Library of Medicine created this
            entry [NCBI gibbsq 130630] from the original journal article.
            This sequence comes from Fig. 6.
FEATURES             Location/Qualifiers
     source          1..433
                     /organism="Homo sapiens"
                     /mol_type="mRNA"
                     /db_xref="taxon:9606"
                     /cell_type="B cells"
     gene            1..>433
                     /gene="Ig Vkappa"
     CDS             1..>433
                     /gene="Ig Vkappa"
                     /note="mismatches(74[Y->T],122[N->D]); conceptual
                     translation presented here differs from translation in
                     publication"
                     /codon_start=1
                     /product="anti-single/double-stranded DNA antibody NE-13
                     light chain variable region"
                     /protein_id="AAB26430.2"
                     /db_xref="GI:8176528"
                     /translation="MDMGVLVQLLGLLLLWFPGSRCDIQMTQSPSSVSASVGDRVTIT
                     CRASQGISSWLAWYQQKPGKAPKLLIYAASSLQSGVPSRFSGSGSGTDFTLTISSLQP
                     EDFATYYCQQANSFPYPFGGGTKVEIKRTVAAPSVFIFPPSD"
ORIGIN      
        1 atggacatgg gagtcctagt tcagcttctg gggctcctgc tgctctggtt cccaggttcc
       61 agatgcgaca tccagatgac ccagtctcca tcttccgtgt ctgcatctgt aggagacaga
      121 gtcaccatca cttgtcgggc gagtcagggt attagcagct ggttagcctg gtatcagcag
      181 aaaccaggga aagcccctaa gctcctgatc tacgctgcat ccagtttgca aagtggggtc
      241 ccatcaaggt tcagcggcag tggatctggg acagatttca ctctcaccat cagcagcctg
      301 cagcctgaag attttgcaac ttactattgt caacaggcta acagtttccc ttaccctttc
      361 ggcggaggga ccaaggtgga gatcaaacga actgtggctg caccatctgt cttcatcttc
      421 ccgccatctg atg
//
 
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

Me serviria de mucho su ayuda

Gracias...
wampaier
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2008-08-12 12:50 @576

Publicidad

Re: Buscar identificadores en GenBank

Notapor explorer » 2010-04-14 14:25 @642

Con el siguiente programa podemos buscar por una palabra concreta.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. #
  3. # Búsqueda de palabras en registros GenBank
  4. # Joaquín Ferrero. 2010-04-14.
  5. #
  6. use common::sense;    # Un poco de sentido común
  7. use open 'locale';    # Las salidas y entradas, localizadas según nuestro terminal
  8. $|++;                 # No caché de salida
  9.  
  10. # Uso del programa
  11. die "Uso: $0 <fichero genbank a analizar>\n" if ! @ARGV;
  12.  
  13. # Leer el fichero GenBank
  14. open my $fichero_genbank, q[<], $ARGV[0]
  15.     or die "ERROR: No puedo abrir el fichero $ARGV[0]: $!\n";
  16.  
  17. # Análisis
  18. print "Palabra a buscar: ";
  19. my $busqueda = <STDIN>;
  20. chomp $busqueda;
  21.  
  22. local $/ = "//\n";      # Redefinimos el separador de registros en lectura
  23.  
  24. # Buscamos la palabra por todos los registros
  25. my $i = 1;
  26. while ( my $registro = <$fichero_genbank> ) {
  27.     if ($registro =~ /$busqueda/i) {
  28.         say "Encontrado en el registro número $i";
  29.     }
  30.     $i++;
  31. }
  32.  
  33. close $fichero_genbank;
  34.  
  35. __END__
  36.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

sale
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Palabra a buscar: lupus
Encontrado en el registro número 2
 
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

El detalle principal es usar una expresión regular, donde la aplicamos a cada $registro, y con la opción /i, para buscar tanto en mayúsculas como minúsculas. Si la encontramos, sacamos el número de registro.

Atención: los números de registro comienzan en 1.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Buscar identificadores en GenBank

Notapor wampaier » 2010-04-14 14:47 @658

Pero por ejemplo, si yo busco la palabra "lupus", ¿cómo puedo hacer para que cuando me encuentre dicha palabra me imprima el número que aparece delante de ACCESSION? Por ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
palabra a buscar: "lupus"
aparece en el registro: "S59162"
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Más o menos así sería la salida...

Perdón, otra pregunta... La librería de common::sense, ¿la tengo que instalar o se utiliza igual que BeginPerlBioinfo.pm?

Gracias por el apoyo.
wampaier
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2008-08-12 12:50 @576

Re: Buscar identificadores en GenBank

Notapor explorer » 2010-04-14 16:45 @740

Sí, la librería common::sense hay que instalarla. Sirve para activar las nuevas capacidades del Perl v5.10.

Para sacar el número que dices, se puede usar otra expresión regular para extraerlo (no probado):
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     if ($registro =~ /$busqueda/i) {
  2.         if ($registro =~ /ACCESSION\s+(\w+)/) {
  3.             say "aparece en el registro: $1";
  4.         }
  5.     }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Lo que estamos haciendo es capturar la palabra que sigue a ACCESSION.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Buscar identificadores en GenBank

Notapor wampaier » 2010-04-15 08:27 @394

¡¡¡Ok!!!... Gracias por la ayuda... Ya quedó resuelto el problema...
Nuevamente, gracias...

¡¡¡Saludos!!!
wampaier
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2008-08-12 12:50 @576


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados