Buscar secuencias en ficheros
Publicado: 2011-01-21 09:35 @441
¡Hola! ¡Nuevamente necesito ayuda! Bueno, lo que ocurre es que tengo un archivo de esta manera (mucho más largo, de unas 22200 líneas)
Y un archivo similar pero contiene solo nombres, no las secuencias. Hice un código que lee nombres en archivo que contiene los nombres y los busca en el segundo archivo (el que muestro) y si lo encuentra, copia nombre y la secuencia, pero en ese caso lo hice separando en el archivo que contiene nombres y secuencias (nombre y la secuencia separados por un tabulador no por un salto de línea), pero es muy largo el archivo para modificarlo, por lo que quisiera saber si puedo modificar mi código para que busque en un archivo de la forma que muestro más arriba, es decir que si encuentra el nombre copie esa línea del nombre y la línea siguiente que contiene la secuencia.
¿Cómo se podría hacer eso?
¡Ah!, olvidé adjuntar el código que llevaba
Using text Syntax Highlighting
gn0058461_int_gn0085512
\ACAAACACAATTCACTCATCGGACCCGCTGGTTCCGGCTAC/
gn0020660_int_gn0260994
\TTAAAAATAAATAAAAATAAAGAAAATATATAAATCTATGAC/
gn0260994_int_gn0046706
\GACAACTTGGAGGAGACACCCGGCGGACCCGGAATCCAAGTC/
_int_gn0031208
\CGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTG/
gn0031208_int_gn0002121
\AAAAACAATGCGAATAGGGACGTATTAATTGCCGAATCTCT/
gn0002121_int_gn0031209
\GTGCCCGTGTATCTCTATCGAAAAAATCATATATTTTTTAGA/
gn0031209_int_gn0051973
\ATCGAGCGCAAGTTTGGAGTTCGATGTGTTTTCAGCTGTGAGC/
gn0051973_int_gn0067779
\GTGCGGACGAGTGTCTTGAGACTCTGGGCAAGCGCAGCCAGCCA/
\ACAAACACAATTCACTCATCGGACCCGCTGGTTCCGGCTAC/
gn0020660_int_gn0260994
\TTAAAAATAAATAAAAATAAAGAAAATATATAAATCTATGAC/
gn0260994_int_gn0046706
\GACAACTTGGAGGAGACACCCGGCGGACCCGGAATCCAAGTC/
_int_gn0031208
\CGACAATGCACGACAGAGGAAGCAGAACAGATATTTAGATTG/
gn0031208_int_gn0002121
\AAAAACAATGCGAATAGGGACGTATTAATTGCCGAATCTCT/
gn0002121_int_gn0031209
\GTGCCCGTGTATCTCTATCGAAAAAATCATATATTTTTTAGA/
gn0031209_int_gn0051973
\ATCGAGCGCAAGTTTGGAGTTCGATGTGTTTTCAGCTGTGAGC/
gn0051973_int_gn0067779
\GTGCGGACGAGTGTCTTGAGACTCTGGGCAAGCGCAGCCAGCCA/
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Y un archivo similar pero contiene solo nombres, no las secuencias. Hice un código que lee nombres en archivo que contiene los nombres y los busca en el segundo archivo (el que muestro) y si lo encuentra, copia nombre y la secuencia, pero en ese caso lo hice separando en el archivo que contiene nombres y secuencias (nombre y la secuencia separados por un tabulador no por un salto de línea), pero es muy largo el archivo para modificarlo, por lo que quisiera saber si puedo modificar mi código para que busque en un archivo de la forma que muestro más arriba, es decir que si encuentra el nombre copie esa línea del nombre y la línea siguiente que contiene la secuencia.
¿Cómo se podría hacer eso?
¡Ah!, olvidé adjuntar el código que llevaba
Using perl Syntax Highlighting
- my %nombre;
- open my $ARCHIVO_1, q[<], 'salidan5.sence';
- while (my $linea = <$ARCHIVO_1>) {
- chomp $linea;
- $nombre {$linea} = 1;
- }
- open my $OUT, q[>], 'salida';
- open my $ARCHIVO_2, q[<], 'dmel.interg.nuc';
- while (<$ARCHIVO_2>) {
- my $columna_nombre = (split q[ ])[0];
- if( $nombre {$columna_nombre }) {
- print $OUT $_;
- }
- }
- close $ARCHIVO_1;
- close $ARCHIVO_2;
- ##################
- close $OUT;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4