¡Hola perleros!
Tengo dos tablas de datos que quiero cruzar. En la más pequeña (llamémosla "pequeña") tengo posiciones cromosómicas en esta forma:
Using text Syntax Highlighting
chr1 1356442
chr1 1740013
chr1 21332987
.
.
.
chr2 34298384
chr2 34299811
chr2 70007885
.
.
.
chr3 12335789
.
.
.
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Así para cada cromosoma, cientos de entradas.
Y quiero cruzar esta tabla con otra principal (llamémosla "general") enorme con casi todas las posiciones en el genoma que tiene tres columnas (cromosoma, coordenada y un valor numérico), ordenado por cromosoma y posición.
Using text Syntax Highlighting
chr1 1 10
chr1 2 11
chr1 3 11
chr1 4 12
.
.
.
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Lo que quiero hacer es buscar las posiciones de "pequeña" en "general" y sacar a otro archivo la posición y el valor numérico para dicha posición. Es decir quiero filtrar el archivo "general" en función de las posiciones en "pequeña".
¿Cómo puedo manejar estos datos? Me imagino que el archivo "general" no lo puedo cargar en memoria por lo que éste lo tendría que abrir línea a linea. Pero entonces no sé cómo hacer la búsqueda de cada entrada de "pequeña". Como los archivos están ordenados por cromosoma, si quiero buscar el valor numérico para, por ejemplo,
chr18 12224555 tendría que leer prácticamente todo "general" hasta llegar a la sección de chr18.
Espero haberlo explicado de manera entendible. Gracias por vuestra ayuda.
D.