Página 1 de 1

Unir condiciones

NotaPublicado: 2011-01-31 20:32 @897
por akire
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.002 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.

Re: unir condiciones

NotaPublicado: 2011-01-31 20:43 @905
por danimera
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

Re: Unir condiciones

NotaPublicado: 2011-01-31 21:16 @928
por explorer
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

Re: Unir condiciones

NotaPublicado: 2011-01-31 21:47 @949
por akire
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

Re: Unir condiciones

NotaPublicado: 2011-01-31 22:32 @981
por explorer
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

Re: Unir condiciones

NotaPublicado: 2011-02-01 11:21 @515
por akire
:D ¡¡¡¡Muchas gracias!!!!