• Publicidad

Hacer un contador a partir de un archivo FASTA

Perl aplicado a la bioinformática

Hacer un contador a partir de un archivo FASTA

Notapor Anee0131 » 2012-10-05 12:30 @562

Hola. Necesito hacer un programa que sirva como contador de elementos de un archivo FASTA.

Un ejemplo de la primera línea es

>GI:238029083 |[Influenza A virus (A/Shandong/1/2009(H1N1))]|A/Shandong/1/2009(H1N1)|1410|GQ200288|unpubl|

De ahí me interesa que el programa busque las ciudades (Shandong, p.ej.) y luego que haga una lista de cuántas veces aparece la ciudad-país.

Les agradecería la ayuda :D
Anee0131
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-10-05 12:18 @554

Publicidad

Re: Hacer un contador a partir de un archivo FASTA

Notapor explorer » 2012-10-05 13:02 @585

Bienvenido a los foros de Perl en Español, Anee0131.

¿Y estamos seguros que las ciudades siguen siempre a la primera aparición de 'A/'?

Si es así, podríamos hacer un bucle con una expresión regular, para contar las apariciones de las ciudades mediante un hash.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Hacer un contador a partir de un archivo FASTA

Notapor Anee0131 » 2012-10-05 13:40 @611

Sí, todos comienzan con esa "A" y justo uno de los problemas es que no sé cómo definir en el programa los parámetros para hacer el hash.

Te adjunto el archivo FASTA, ¡¡¡muchas gracias!!!
Anee0131
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-10-05 12:18 @554

Re: Hacer un contador a partir de un archivo FASTA

Notapor Anee0131 » 2012-10-05 16:08 @713

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2.  
  3. # El siguiente programa abre un archivo fasta y cuenta el numero de veces que se encuentra un pais declarad
  4.  
  5.  
  6. #$file = "secuencia2.faa";
  7. open (INFILE,"sec_virus_influenza.faa") || die "[x] No se puede abrir archivo\n";
  8.  
  9. while (my $file = <INFILE>) {
  10.         if ($file =~ m/\/(\w+)\//){
  11.                 print "$1\n";
  12.         }
  13. }
  14. close INFILE ;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Este es un primer intento para resolver el problema, les agradezco su ayuda :D
Última edición por explorer el 2012-10-05 17:46 @781, editado 1 vez en total
Razón: Poner bien las marcas Perl
Anee0131
Perlero nuevo
Perlero nuevo
 
Mensajes: 3
Registrado: 2012-10-05 12:18 @554

Re: Hacer un contador a partir de un archivo FASTA

Notapor explorer » 2012-10-05 18:17 @804

No probado.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. # El siguiente programa abre un archivo fasta
  3. # y cuenta el número de veces que se encuentra un país declarado
  4. use v5.12;
  5. use autodie;
  6.  
  7. @ARGV == 2 or die "Uso: $0 <archivo FASTA> <ciudad>\n";
  8.  
  9. my($archivo, $ciudad) = @ARGV;
  10. my %ciudades;
  11.  
  12. open my $INFILE, '<', $archivo;
  13. while (my $linea = <INFILE>) {
  14.     if ($linea =~ m{^>.+?A/(.+?)/}) {
  15.         $ciudades{$1}++;
  16.     }
  17. }
  18. close $INFILE;
  19.  
  20. say "La ciudad $ciudad sale $ciudades{$ciudad} veces.";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14476
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Bioinformática

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado