• Publicidad

Unir condiciones

Perl aplicado a la bioinformática

Unir condiciones

Notapor akire » 2011-01-31 20:32 @897

Hola, ¿qué tal?

¿Podrían orientarme en el siguiente código?

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
  2.  
  3. open(my $file, $ARGV[0]) or die "no se pudo abrir\n"; #abrir archivo
  4.  
  5. while (<$file>){
  6.  
  7. if(/>/)
  8. {
  9. $_=~ s/>|length=|uaccno=/,/g;
  10.  
  11. print "proyecto$_";
  12.  
  13.  }elsif (/^[ATGCNatgcn ]+$/) {
  14.  
  15.           print ",$_";
  16.  
  17.   }  
  18. }
  19.  
  20. close (FH);
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Obtengo una salida:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
proyecto,000359_0207_2153 ,64 ,GK7VQPO01ASH53
,CGTATGTAAATGGTTCTTGCTTCTCCCTCCCTAATGATAAGACAGGCACTGATGGCGCGA
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero necesito que esto se imprima en una sola línea, ¿cómo puedo realizarlo?

Agradecería mucho tu atención.
akire
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-01-24 16:44 @739

Publicidad

Re: unir condiciones

Notapor danimera » 2011-01-31 20:43 @905

Intenta eliminando el retorno de carro con la función chomp() antes de imprimir el valor.

:? aunque no sé si se puede hacer esto
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. chomp($_);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
100% Telch - Perl Web Programming
Cali PerlMongers: http://cali.pm.org
Avatar de Usuario
danimera
Perlero frecuente
Perlero frecuente
 
Mensajes: 871
Registrado: 2005-06-23 19:02 @834
Ubicación: Colombia

Re: Unir condiciones

Notapor explorer » 2011-01-31 21:16 @928

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

El problema es que no sabemos qué aspecto tiene la entrada... Solo vemos cómo ha de quedar la salida.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/local/bin/perl
  2.  
  3. open (my $file, $ARGV[0]) or die "no se pudo abrir\n"; #abrir archivo
  4.  
  5. while (<$file>) {
  6.     chomp;
  7.     if (/>/) {
  8.         s/>|length=|uaccno=/,/g;
  9.         print "proyecto$_";
  10.     } elsif (/^[ATGCNatgcn ]+$/) {
  11.         print ",$_\n";
  12.     }
  13. }
  14.  
  15. close (FH);
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: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Unir condiciones

Notapor akire » 2011-01-31 21:47 @949

Esta es mi entrada:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
>011056_1155_3243 length=278 uaccno=FJY9U6Q05C3Q5P
ACAGATGGTGCAGCCACTATTAAAGGTTCGTTTGTTCAACGATTAAAGTCCTACGTGATCTGAGTTCAGA
CCGGAGTAATCCAGGTCGGTTTCTATCTACTTCAAATTCCTCCCTGTACGAAAGGACAAGAGAAATAAGG
CCTACTTCACAAAGCGCCTTCCCCCGTAAATGATATCATCTCAACTTAGTATTAAACCCTGTTCTTGGGT
GGGTGTGGGTATAATACTAAGTTGAGATGATATCCCCACGTACTCTGCGTTAATACCACTGCTGATGG
>038113_1085_1147 length=278 uaccno=FJY9U6Q05CXKA1
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCCTTGGGCCCGAAACGTCCCGAGGAGT
AGTGTAATATTGGGTGACAGAAATAAAGTGCCACATCTTCAGCCTGCAGGTTGTTGATGGTGAGAGTAAA
AATCTGTCCCAGCCCCGCTGCCACTGAATCGGTCAGGGACCCCCGGATTTTCGGGTAGATGCCCAGTAAA
TGAGTAACTTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTG
>032842_1076_2582 length=273 uaccno=FJY9U6Q05CWSYW
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGAGTAGTGT
AATATTGGTGACAGAAATAAAGTGCCACATCTTCAGCCTGCAGGTTGTTGATGGTGAGAGTAAAATCTGT
CCCAGCCCCGCTGCCACTGAATCGGTAAGGGACCCCGGATTTTCGGGTAGATGCCCAGTAAATGAGTAAC
TTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTGTAA
>035360_1188_0754 length=273 uaccno=FJY9U6Q05C6LI8
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGAGTAGTGT
AATATTGGTGACAGAAATAAAGTGCCACATCTTCAGCCTGCAGGTTGTCGATGGTGAGAGTAAAATCTGT
CCCAGCCCCGCTGCCACTGAATCGGTCAGGGACCCCGGATTTTCGGGTAGATACCCAGTAAATGAGTAAC
TTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTGTAA
>037701_1198_2734 length=273 uaccno=FJY9U6Q05C7IN0
ACAGATGGTGCAGCCACAGTTTCGTTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGAGTAGT
GTAATATTGGTGACAGAAATAAAGTGCCACATCCTCAGCCTGCAGGTTGTTGATGGTGAGAGTAAAATCT
GTCCCAGCCCCGCTGCCACTGAATCGGTCAGGGACCCCGGATTTTTCGGGTAGATGCCCAGTAAATGAGT
AACTTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTG
>038393_1092_1471 length=273 uaccno=FJY9U6Q05CX6OH
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGAGTAGTGT
AATATTGGTGACAGAAATAAAGTGCCACATCTTCAGCCTGCAGGTTGTTGATGGTGAAAGTAAAATCTGT
CCCAGCCCCGCTGCCACTGAATCGGTCAGGGACCCCGGATTTTCGGGTAGATGCCCAGTAAATGAGTAAC
TTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTGTAA
>020783_1407_3060 length=273 uaccno=FJY9U6Q06DPVGM
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGAGTAGTGT
AATATTGGTGACAGAAATAAAGTGCCGCATCTTCAGCCTGCAGGTTGTTGATGGTGAGAGTAAAATCTGT
CCCAGCCCCGCTGCCACTGAATCGGTCAGGGACCCCGGATTTTCGGGTAGATACCCAGTAAATGAGTAAC
TTAGGAGGCTGTCCTGGTTTCTGCTGGTACCAACCTAAGGCGTTCTTATTATTGGAGGTGTAA
>030129_1147_3027 length=272 uaccno=FJY9U6Q05C21PH
ACAGATGGTGCAGCCACAGTTCGTTTGATTTCCACCTTGGTCCCTTGGCCGAACGTCCGAGGGGTACTGT
AACTCTGTTGACAGTAGTAAGTTGCAAAATCTTCAGGTTGCAGACTGCTGATGGTGAGAGTGAAATCTGT
CCCAGATCCATTGCCACTGAACCTTGAGGGGACCCCCACTTTCTAAAATGGACGCAGCATAAATCAGGAC
CCTAGGGGCTTTCCCGGGTTTTGTTGGTACCAGCCCAATTGATTCCCAATGCCCTGACTTCG
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
akire
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-01-24 16:44 @739

Re: Unir condiciones

Notapor explorer » 2011-01-31 22:32 @981

Según los datos que das, esta podría ser una solución:
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 $file, $ARGV[0]) or die "no se pudo abrir\n";  # abrir archivo
  7.  
  8. my $salida;
  9.  
  10. while (<$file>) {
  11.     chomp;
  12.  
  13.     if (/^>/) {
  14.         print "$salida\n" if $salida;   # pinta la anterior secuencia, si la hubiera
  15.  
  16.         s/^>| length=| uaccno=/,/g;
  17.  
  18.         $salida = "proyecto$_";         # nueva secuencia
  19.     }
  20.     elsif (/^[ATGCNatgcn ]+$/) {
  21.         $salida .= ",$_";               # acumulamos bases
  22.     }
  23. }
  24.  
  25. close ($file);
  26.  
  27. print "$salida\n" if $salida;           # pinta última secuencia, si la hubiera
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: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Unir condiciones

Notapor akire » 2011-02-01 11:21 @515

:D ¡¡¡¡Muchas gracias!!!!
akire
Perlero nuevo
Perlero nuevo
 
Mensajes: 8
Registrado: 2008-01-24 16:44 @739


Volver a Bioinformática

¿Quién está conectado?

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

cron