Lectura y extracción de datos de multiFASTA
Publicado: 2019-06-13 08:14 @385
Hola a todos, este es mi primer mensaje y aprovecho para presentarme.
Lo primero decir que en programación soy cinturón blanco. Y estoy haciendo un curso y la tarea final no consigo sacarla.
No pretendo que nadie me escriba el código porque de nada me serviría, pero agradecería mucho que me indicasen dónde me equivoco y el motivo del error.
Estoy realizando un pequeño script para leer de un multiFASTA, con una particularidad, y es que al final de la secuencia proteica tiene un "*"; y posteriormente realizar un blast.
Para ello he pensado que lo mejor sería quedarme solo con el ID de cada proteína y con la secuencia, para luego pasar esta por el blast, además de eliminar el "*".
Pero llevo mucho tiempo atascado y no consigo avanzar y además veo que pierdo el tiempo.
Este es el código que he escrito, pero hace cosas extrañas: me da el ID como pido, pero la secuencia me la da por partes. Primero, la primera línea, después las dos primeras, tres primeras, hasta acabar, y por otra parte no sé cómo quitarle el '*', pero eso me seguiré peleando.
Adjunto el FASTA (la extensión para mi es .fa, pero la he tenido que cambiar para subirla).
Gracias mil, por adelantado.
Lo primero decir que en programación soy cinturón blanco. Y estoy haciendo un curso y la tarea final no consigo sacarla.
No pretendo que nadie me escriba el código porque de nada me serviría, pero agradecería mucho que me indicasen dónde me equivoco y el motivo del error.
Estoy realizando un pequeño script para leer de un multiFASTA, con una particularidad, y es que al final de la secuencia proteica tiene un "*"; y posteriormente realizar un blast.
Para ello he pensado que lo mejor sería quedarme solo con el ID de cada proteína y con la secuencia, para luego pasar esta por el blast, además de eliminar el "*".
Pero llevo mucho tiempo atascado y no consigo avanzar y además veo que pierdo el tiempo.
Using perl Syntax Highlighting
- #!/usr/bin/perl
- die "USAGE: capturador.pl file.fa\n" unless ( $ARGV[0] );
- open( QUERY, "$ARGV[O]" );
- while (<QUERY>) {
- #print; primer print control.
- if (/^>(\S+)/) {
- @seq = ();
- $id = $1;
- print "$id\n";
- }
- else { push( @seq, $_ ) }
- $juntos = join( "", @seq );
- #print "$juntos";
- print "@seq\n";
- }
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
Este es el código que he escrito, pero hace cosas extrañas: me da el ID como pido, pero la secuencia me la da por partes. Primero, la primera línea, después las dos primeras, tres primeras, hasta acabar, y por otra parte no sé cómo quitarle el '*', pero eso me seguiré peleando.
Adjunto el FASTA (la extensión para mi es .fa, pero la he tenido que cambiar para subirla).
Gracias mil, por adelantado.