danusol escribiste:> incluye dos genes que se llaman ACO2 (hacia el final) pero en distintos cromosomas
Los genes duplicados, sí, iba a preguntarte por ellos... tienes que definir previamente qué vas a hacer con eso... veo tres posibles enfoques:
1.- Simplemente quieres una lista única de todos los genes y sus ID y al mismo nombre corresponde la misma ID siempre, en cuyo caso tu sistema actual para separarlos no es óptimo porque corre muchos más ciclos de lo necesario, estás haciendo 70 millones de comparaciones para encontrar 2000 nombres y 2000 números.
Meter una comprobación previa debería ahorrar un considerable tiempo de cálculo.
if gen_ID YA existe en tu arreglo ... saltar al siguiente elemento en la comparación
else push gen_ID
2.- O bien quieres una lista de todos los genes por cromosoma, serán "diferentes" genes si están en diferentes cromosomas aunque tengan la misma información y tendrán ID distintas, en cuyo caso tienes que encontrar el modo de diferenciarlos, (y de entrada sería práctico denominarlos como cromosoma_gen-symbol, es decir aplicar un join() de los elementos 1+3 después de hacer el split() y trabajar sobre ello)
3.- O lo que buscas en realidad es sacar un
hash con
key = gen_symbol y como valor una lista de valores ID con un número indeterminado de elementos, que sería una variante de la segunda vía.