• Publicidad

Impresión de determinadas líneas

Perl aplicado a la bioinformática

Impresión de determinadas líneas

Notapor wampaier » 2010-10-08 15:40 @694

Hola, ¿qué tal?

¿Podrían orientarme en cómo imprimir el header, la primera y la última línea antes de un '>' (que es mi siguiente secuencia).

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

Publicidad

Re: Impresión de determinadas líneas

Notapor explorer » 2010-10-08 16:00 @708

Sería interesante ver algún ejemplo de entrada, aunque sea de forma reducida.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Impresión de determinadas líneas

Notapor wampaier » 2010-10-08 16:09 @714

Hola, gracias. El ejemplo es el siguiente:

Necesito imprimir en una sola línea lo que te pongo de color:

>Cluster 53
0 84aa, >001354_2208_2784... *
1 84aa, >002597_2216_2936... at 100%
2 84aa, >010618_2176_1588... at 100%
3 84aa, >014924_2258_2885... at 100%
4 84aa, >018206_2216_1313... at 100%
5 84aa, >020274_2136_2420... at 100%
6 84aa, >021422_2242_0732... at 100%

y obtener el total de líneas porque deseo saber cuántas lecturas (en mi caso, secuencias) hay en ese continuo (grupo).
wampaier
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2008-08-12 12:50 @576

Re: Impresión de determinadas líneas

Notapor explorer » 2010-10-08 16:30 @729

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use 5.010;
  3. use strict;
  4. use warnings;
  5. use diagnostics;
  6. use File::Slurp;
  7. use autodie;
  8.  
  9. my @lineas = read_file('kk.txt');           # leemos el fichero
  10.  
  11. chomp($lineas[0], $lineas[1]);              # quitamos los finales de línea de las dos primeras
  12.  
  13. $lineas[1] =~ s/^.*?>(.+?)\..+$/$1/;        # de la segunda, nos quedamos con lo que queremos
  14.  
  15. say "$lineas[0] $lineas[1]";                # imprimimos las dos líneas juntas
  16.  
  17. say "Número de líneas: ", scalar @lineas;   # y el número de líneas leídas
  18.  
  19. __END__
  20. >Cluster 53 001354_2208_2784
  21. Número de líneas: 8
Coloreado en 0.005 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: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Impresión de determinadas líneas

Notapor wampaier » 2010-10-09 13:31 @605

Disculpa, es que tengo una versión muy viejita de Perl. ¿El read_file() es lo mismo para la versión viejita?

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

Re: Impresión de determinadas líneas

Notapor explorer » 2010-10-09 13:41 @612

La función read_file() se importa desde el módulo File::Slurp. Puedes usar otro método para leer ficheros, desde luego.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Impresión de determinadas líneas

Notapor wampaier » 2010-10-09 13:51 @618

Es que la versión que tengo es la 5.8 y la verdad no sé qué diferencia haya con la versión 5.010 porque evidentemente hay librerías que no puedo utilizar...

¿Hay alguna otra manera de mandar llamar el archivo de entrada...?
wampaier
Perlero nuevo
Perlero nuevo
 
Mensajes: 66
Registrado: 2008-08-12 12:50 @576

Re: Impresión de determinadas líneas

Notapor explorer » 2010-10-09 13:58 @623

Para leer un fichero de texto te vale con la terna open(), <> y close(). Hay centenares de ejemplos en este foro y seguro que tu has usado tus propios métodos para meter un fichero de texto en un array.

Si quieres que mi código funcione en tu Perl viejito (más de tres años), te vale con quitar el use 5.010; y cambiar los say() por print() (con un "\n" al final).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Impresión de determinadas líneas

Notapor wampaier » 2010-10-09 14:32 @647

¡Ah!, Ok, Ok, gracias... Sí, de hecho, eso ya lo había cambiado... pero esa era mi duda :P

¡¡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 2 invitados

cron