Enviado el viernes, 30 de mayo de 2008 15:51
Phrap es uno de esos programas bioinformáticos muuuuy usado a la hora de
ensamblar todos los
contigs (¡que no hay que confundir con los EST contigs!) obtenidos de
secuenciadores que usan técnicas similares a la de
shotgun. Este programa es gratuito para uso académico (previa solicitud a los autores), y está disponible tanto en código fuente como en módulos precompilados. El problema al instalar Phrap viene de que fue diseñado y escrito en entornos de 32 bits, con compiladores de 32 bits, en lenguaje
C de Kerningan & Ritchie, y no compila muy bien que digamos en entornos de 64 bits con los compiladores actuales. El otro inconveniente es que no incluye un conjunto de datos de prueba, para ver si realmente funciona o falla.
Tras estar José Manuel Rodríguez, Andrés Cañada y yo toda una mañana
probando combinaciones de arquitecturas y compiladores, llegamos a las
siguientes conclusiones:
- Phrap se puede compilar y funciona en un Linux de 32 bits con el GCC, con la limitación de la cantidad de memoria que puede usar un proceso en este entorno (a lo sumo, 2GB~3GB).
- El software no funciona muy bien en entornos Linux x86-64 (32 y 64 bits) cuando es compilado con el GCC. Aquí tuvimos que forzar una compilación de 32 bits para que los programas del paquete Phrap no dieran el temido Segmentation Fault al empezar a ensamblar, imponíendoles así una restricción artifical (estos ejecutables no pueden usar más de 2GB~3GB por ser de 32 bits). Como no teníamos otros compiladores a mano, tuvimos que dejarlo así.
- En entornos Linux IA64 (64 bits) la cosa salió mejor de lo que esperábamos. En la máquina que tenemos con esta arquitectura (32 procesadores, 64GB de memoria), además del GCC, tenemos instalado el compilador de pago de Intel de C y C++. Con el GCC volvimos a tener problemas, pero con el ICC los ejecutables obtenidos funcionaron sin problemas. Creo que es debido a cómo empaqueta las estructuras de C y los tamaños de los tipos básicos.
Todavía nos queda hacer pruebas en Mac OS X, que tuvimos que postergar por temas de mantenimiento de nuestro
CPD, pero sospechamos que se repetirá la misma historia: en 32 bits el programa funcionará, y en 64 bits el programa "petará", salvo que encontremos cómo compilarlo para que funcione.
Actualización 3 de Juio de 2008, 22:19:52: En un
post de hoy mismo
he publicado una solución mejor a la publicada en
el segundo comentario para las arquitecturas de 64 bits.