Simulación de Biomoléculas en Python

Examinamos otro caso de éxito, en esta ocasión el que trata del MMTK. Este proyecto, Molecular Modeling Toolkit (MMTK), iniciado por Konrad Hinsen, investigador del Centre Nationale de la Recherche Scientifique (CNRS), consiste en un conjunto de herramientas (toolkit) para modelar y hacer simulación con moléculas.

MMTK está escrito en una mezcla de Python y C. Mientras que C es usado en la parte de bajo nivel de la modelación, la cual es muy costosa en tiempo y requiere de la máxima eficiencia, Python se usa en el control y ejecución de la aplicación a alto nivel.

Desde 1970 existían ya varios paquetes de modelación de moléculas escritos en FORTRAN, pero eran difíciles de usar y sobre todo de extender. Hinsen estaba interesado en la modelación y en el desarrollo de nuevas técnicas de simulación, por lo que era importante que el paquete se pudiera modificar con facilidad.

Con requerimientos contrarios en principio, de un desarrollo rápido junto con gran eficiencia de recursos y velocidad, Hinsen concluyó que sólo una mezcla de un lenguaje para "scripts" y otro compilado muy eficiente podría servir para sus propósitos.

Para la parte de alto nivel, Tcl fue descartado porque no podía manejar las estructuras de datos complejas que requería el proyecto. Se eliminó a Perl por su sintaxis -aunque esta fue una decisión subjetiva personal del autor- y por su soporte para orientación a objetos, el cual está integrado en forma deficiente. Python fue elegido por ser legible, por su soporte a OO, sus librerías (NumPy, la librería de procesamiento numérico) y su integración con lenguajes compilados.

[Ahora Perl cuenta con un nuevo mecanismo de integración para OO más a la altura de los tiempos, aunque de cualquier forma, hablamos de decisiones tomadas en 1996, además de que la sintaxis es la misma hoy que entonces].

Para la parte de bajo nivel, FORTRAN 77 fue eliminado debido a su manejo arcaico de los caracteres, la carencia de manejo de memoria dinámica y problema de portabilidad al interconectarse con lenguajes compilados. Aunque se consideró a C++, finalmente no fué elegido porque en aquélla época todavía había problemas de compatibilidad entre compiladores, además de que las porciones escritas en C eran de tal suerte que se consideró superfluo trabajar con la compleja sintaxis de C++.

El paquete MMTK utiliza tanto NumPy, como LAPACK (el paquete de álgebra lineal originalmente escrito para las computadoras Cray y que hoy es de dominio público) y soporta varios modelos de cómputo paralelo.

En total, MMTK consta de 18,000 líneas de Python y unas 12,000 líneas de C, aproximadamente, que han sido desarrolladas a lo largo de varios años de trabajo de investigación. Como lo expresa su autor, "en el trabajo metodológico, el desarrollo y el tiempo de prueba son críticos, de modo que una idea que puede probarse en una tarde se prueba, mientras que otra que requeriría una semana para ver si funciona normalmente es hecha a un lado". Indudablemente, para este tipo de trabajo Python parece ser ideal.

Comentarios (0)


Alcance Libre
http://www.alcancelibre.org/article.php/20111103202501642