AT5G64760 Chr5 25891505 25896582
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Es obvio que las líneas 3 y 28 solo se usan para mostrar el aspecto de la estructura de datos tridimensional que vamos a usar. Es solo un visionado. Cuando se termina de entender, se comentan o eliminan esas líneas.danusol escribiste:De momento como ya he dicho anteriormente, suprimiría la línea 28 porque no necesito saber qué hay en cada cromosoma.
split() sin argumentos, parte a la variable $_ usando como delimitador cualquier conjunto de espacios en blanco. Más información en perldoc -f split.danusol escribiste:me sorprende que el "split" sea tan inteligente que no le tenga que decir cuál es el separador.
¡Bah!, ¡no tanto! Solo son tres dimensiones... Mi récord son 8 dimensionesdanusol escribiste:la estructura creada para almacenar la información de mi lista la tengo que estudiar porque eso de un hash de arrays de arrays ¡me crea cortocircuito!
En el bucle recorremos todas las posiciones para el mismo cromosoma. Por cada $posición, analizamos:danusol escribiste:Por último el bucle for() es muy curioso. También tengo que estudiármelo.
Nos ahorramos poner un "\n" al final. Más(?) información en perldoc -f say.danusol escribiste:Por cierto, ¿qué ventaja o diferencia hay entre usar "say" y "print"?
explorer escribiste:¡Bah!, ¡no tanto! Solo son tres dimensiones... Mi récord son 8 dimensiones
explorer escribiste:En el bucle recorremos todas las posiciones para el mismo cromosoma. Por cada $posición, analizamos:
* Si la $posición es menor que el $inicio, hacemos un next para que analice la siguiente posición, pues eso significa que aún no hemos entrado en el rango [$inicio,$final] (en notación matemática)
* Si la $posición es mayor que el $final, es que nos hemos pasado del rango, así que terminamos inmediatamente con un last. No es necesario seguir mirando más posiciones, pues, al estar ordenadas (líneas 24 a 26), ya sabemos que las restantes seguirán quedando fuera del rango.
* Si llega a la línea 50, es que se trata de una $posición que está en el rango [$inicio,$final], así que lo imprimimos.
Estrictamente, y viendo el código original sí, pero...
explorer escribiste:En el ejemplo que pusiste, el gen ACO2 sale dos veces, pero está en posiciones distintas, por lo que es correcto que salga, pero lo que quieres es que no salga si coinciden las posiciones, ¿no?
Y según las reglas que has puesto, la salida es posible que no tenga las mismas líneas que la "lista": los genes con posiciones que están fuera de los rangos, no salen.
Usuarios navegando por este Foro: Google [Bot] y 0 invitados