2. Introducción
En esta monografía se va a realizar una pequeña introducción sobre el estado del software libre
en la investigación de Química Física.
Para ello se va a comenzar definiendo los conceptos más importantes relevantes a estas
disciplinas, siguiendo con un análisis técnico de algunos de los programas de software libre
desarrollados en los últimos años por grupos de investigación para alguna de las aplicaciones dentro de
la materia de Química Física. Por último, el autor llega a unas conclusiones sobre el estado del arte en
la conjunción del software libre y la Química Física, con las miras puestas en el futuro de ambas
disciplinas.
• ¿Qué es el software libre?
Para que un programa sea software libre, éste debe cumplir las cuatro libertades básicas
siguientes:
0. Libertad de ejecutar el programa, para cualquier propósito.
1. Libertad de estudiar el programa y adaptarlo a tus necesidades.
2. Libertad de redistribuir copias.
3. Libertad de mejorar el programa y publicar sus mejoras.
• ¿Qué es la Química Física?
Es una rama de la Química en la que se aplican conceptos físicos a distintos sistemas químicos,
para estudiar sus propiedades y su comportamiento. Un sistema químico se puede estudiar desde dos
puntos de vista, macroscópico y microscópico.
Mientras ambos puntos de vista siguen siendo estudiados en la investigación moderna, en los
últimos años hay un mayor interés en el punto de vista microscópico porque es donde queda un mayor
número de variables por determinar y sin lugar a dudas es un mundo mucho más oscuro y de más
difícil entendimiento que el mundo macroscópico que podemos observar con nuestros ojos, ya que el
comportamiento de las partículas microscópicas nada tiene que ver con el comportamiento de los
objetos macroscópicos que son los que observamos en el día a día.
• Distintos campos en Química Física
La Química Física se puede dividir en cuatro grandes áreas principales:
• Termodinámica: es un área macroscópica que trata de las relaciones entre las propiedades de
equilibrio de un sistema químico, y de los cambios en las propiedades de equilibrio en los
procesos.
Daniel Martín Yerga
3. • Química Cuántica: es la aplicación de la Mecánica Cuántica a la estructura atómica, los enlaces
moleculares y la espectroscopia (interacción de la radiación electromagnética con la materia).
La Mecánica Cuántica explica el comportamiento de las moléculas, y de las partículas atómicas
como electrones, neutrones, etc., ya que éstas no siguen las leyes clásicas de la Física de
Newton.
• Mecánica estadística: explica las leyes de la termodinámica en un ámbito molecular
(microscópico) y permite calcular propiedades termodinámicas macroscópicas a partir de
propiedades moleculares.
• Cinética: es el estudio de la velocidad en procesos tales como las reacciones químicas, la
difusión, flujo electroquímico, etc.
Todas estas áreas de la Química Física constituyen los principios físicos que se aplican en todas
las demás ramas de la Química, como son la Analítica, Inorgánica, Orgánica, incluso Ingeniería
Química. También tienen una importante contribución a otras ramas científicas como la Bioquímica (y
Bioinformática) y la Geología.
• ¿Dónde entra el software en la investigación en Química Física?
Todas estas áreas, aunque están basadas en experimentos científicos como cualquier otra
ciencia, tienen una importante parte teórica. Esta parte teórica consta, generalmente, de cálculos
realmente complejos con ecuaciones con muchas variables e incógnitas que deben ser resueltas.
Este trabajo es realmente complejo para realizarlo manualmente.
Con lo que la única forma de llegar a resultados fiables y lo más automatizados posibles es
escribiendo el software para que realicen esos cálculos. Uno de los mayores problemas que tienen estos
programas es que necesitan un importante tiempo de CPU para llegar a los resultados esperados,
cuando se intentan introducir la mayor cantidad de variables en el sistema o estudiar sistemas químicos
complejos, lo que debe hacerse para obtener un visión del sistema lo más real posible.
En los estudios de Química Física se hace un especial hincapié a la enseñanza de la
programación ya que es una pieza clave que van a usar posteriormente si los estudiantes continúan en
el ámbito de la investigación. Los lenguajes de programación enseñados varían dependiendo de los
gustos de quién lo enseño, pero los más usuales son Python, Perl, C, Fortran. También se intenta que
los estudiantes cojan soltura en el manejo del sistema operativo GNU/Linux, ya que la versatilidad de
este sistema lo hace apropiado para el desarrollo del software que se crea en investigación.
Daniel Martín Yerga
4. Algunos ejemplos de software libre
En esta sección se van a estudiar distintos ejemplos de software libre desarrollados por
investigadores con sus aplicaciones en el ámbito de la Química Física. Se realiza una ligera descripción
de los procesos químicos del problema que se requiere resolver, así como los métodos que el software
creado utiliza para llegar a soluciones de esos problemas.
• g_permute
Los procesos biomoleculares son gobernados por cambios en la energía libre y por lo tanto
dependen de una interacción afinada entre la entropía y la entalpía.
Para el cálculo de valores precisos para entropías a partir de simulaciones es particularmente
complicado para la capa de solvatación de proteínas, que contribuye crucialmente a la energía total de
proteínas solvatadas, debido al movimiento difusivo de las moléculas disolventes.
La entropía debida al disolvente puede ser estimada desde una trayectoria de dinámica
molecular compacta por medio de métodos establecidos de estimación de entropía.
g_permute es un software libre que implementa un algoritmo para la estimación de entropía.
Para ello utiliza un método para compactar el espacio de configuración de moléculas explotando
su simetría de permutación. g_permute lee una trayectoria de la molécula e intercambia la posición de
la molécula por la de otra, permutando los índices de las moléculas disolventes en cada momento. Esta
transformación no cambia las propiedades del sistema por lo que la trayectoria resultante todavía
proveerá cantidades termodinámicas acertadas.
Trayectoria de una molécula de agua.
g_permute está escrito en C y licenciado bajo la GPL.
• AlgoGen-DivCon
En la búsqueda de métodos de acoplamiento más precisos energéticamente y para evitar el
problema de definir un adecuado campo de fuerzas de ligando, se ha construido un software para
realizar acoplamientos moleculares rígidos combinando un algoritmo genético con un programa
semiempírico de escalado lineal.
El software usa la metodología de escalado lineal “Divide and Conquer” para evaluar energías
de interacción proteína-ligando usando hamiltonianos cuánticos semiempíricos mientras se realiza una
búsqueda conformacional por el algoritmo genético que optimiza la posición de un relativo ligando
móvil a un sistema proteínico fijo.
Daniel Martín Yerga
5. Como ejemplo de la utilidad de este software se ha conseguido unos resultados similares a las
conocidas estructuras cristalográficas para el acoplamiento de la 8-azaxantina, ácido oxónico y ácido
úrico, y prueban que es posible realizar, en un razonable tiempo, acoplamientos moleculares de
complejos ligando-proteína relativamente grandes usando una descripción cuántica de la energía de
interacción.
El código de acoplamiento molecular permite la predicción de la orientación relativa de un
ligando dado con respecto al sitio activo de la proteína. Estos programas computan un valor que refleja
la propensidad de que ese ligando enlace a la proteína. Ese valor está usualmente asociado con la
energía de interacción entre ambos.
De los otros softwares que existen para realizar esto, la mayoría están basados en una
descripción de mecánica molecular o en una evaluación empírica de las interacciones ligando-proteína.
Generalmente, están limitados en la descripción del ligando y su interacción con la proteína.
Un camino para eludir estos problemas sería usar una descripción cuántica del ligando y de la
interacción. Los cálculos cuánticos sólo necesitarían la enumeración de los elementos químicos
formando el sistema junto con las cargas netas de la proteína y el ligando para evaluar la energía de
interacción entre las dos entidades.
Calcular computacionalmente la energía de un ligando enlazado a una proteína es un problema
en química cuántica debido al tamaño del sistema biomolecular.
Usando algoritmos estándar, el tiempo de CPU necesario para una computación cuántica se
incrementa exponencialmente con el tamaño del sistema. Esto limita el número de átomos que pueden
ser usados para representar la interacción.
En los últimos años, nuevos algoritmos basados en cuántica han sido desarrollados que
permiten el uso de sistemas muy grandes usando un razonable tiempo de CPU. Uno de ellos es el
“Divide and Conquer”.
AlgoGen-DivCon es un software que permite la búsqueda de la mejor orientación de un ligando
dentro del sitio activo de una proteína. Es el primer programa de acoplamiento que combina
evaluaciones de energía semiempíricas de escalado lineal con una herramienta de búsqueda de
conformaciones como es un algoritmo genético.
Está formado por dos scripts en Python, uno es la optimización del algoritmo genético y el otro
es una interfaz al programa DivCon. DivCon es otro programa desarrollado para computaciones
semiempíricas de energía cuántica de sistemas grandes usando el método “Divide and Conquer”.
• Complemento para Abinit
Daubechies wavelets son una base sistemática poderosa para cálculos de estructura electrónica
porque son ortogonales y localizadas en el espacio real y el espacio de Fourier.
Esta base puede ser utilizada para obtener un método altamente eficaz y preciso para calcular la
densidad funcional de la estructura electrónica.
Daniel Martín Yerga
6. Una base wavelet consiste de una familia de funciones de onda generadas desde una función
madre y su traducción en los puntos de un grid uniforme.
Grid adaptado para una molécula de agua.
La localización en el espacio real es esencial para sistemas moleculares. Las bases que no son
localizadas en el espacio real son completamente inútiles en este contexto.
La localización en el espacio de Fourier es útil para propósitos precondicionales. Para un
sistema dado, la velocidad de convergencia del proceso de minimización depende en el mayor valor
propio del operador Hamiltoniano. Una función localizada en el espacio de Fourier es un valor propio
aproximado del operador energía cinética.
Una implementación de este método está disponible como un complemento para el software
ABINIT. También existe una versión separada. Este código muestra muy buenos resultados y una
eficiencia excelente para cálculos paralelos.
• XCMS 2
La espectrometría de masas basada en metabolómica es una nueva área para desarrollos
tecnológicos en bioinformática.
Mientras las actuales herramientas computacionales disponibles pare este área evalúan
estadísticamente y figuran características de cromatografía de líquidos/espectrometría de masas
(LC/MS), éstas no proveen información sobre su identidad estructural.
XCMS2 es un paquete informático de software libre que ha sido desarrollado para
automáticamente buscar información de MS/MS frente a datos de conocidos metabolitos contenidos en
una librería de referencia.
El tanteo de aciertos está basado en un método de contaje de picos compartidos que identifica
masas de fragmentos de iones compartidos entre el espectro experimental y de referencia.
Otra componente funcional de XCMS2 es la capacidad de proveer información estructural para
metabolitos desconocidos que no están en la base de datos.
Este algoritmo de búsqueda de similaridad ha sido desarrollado para detectar posibles motivos
estructurales en el metabolito desconocido que podrían producir fragmentos iónicos característicos y
pérdidas neutras a relacionados compuestos de referencia de la base de datos, incluso si las masas del
precursor son diferentes.
Daniel Martín Yerga
7. Un objetivo común de la mayoría de plataformas en metabolómica es permitir a los usuarios
encontrar y evaluar estadísticamente características que muestren un cambio significante entre
diferentes grupos de muestras.
Recientemente, tres diferentes programas open source fueron publicados para análisis de MS de
metabolitos; XCMS, MathDAMP, Met-IDA.
XCMS es distinguido porque permite el alineamiento de espectros no lineales y análisis
diferencial, también como capaz de funcionar en distintas plataformas como Unix-based OS, Mac OS
X, y Microsoft Windows. XCMS está escrito en R permitiendo ser altamente accesible y modular.
XCMS2 es una extensión a XCMS con la capacidad añadida de la automática búsqueda de
espectros frente a una base de datos de referencia y análisis de muestras desconocidas de metabolitos.
Provee, además, una herramienta de visualización para la comparación cara-a-cara de los espectros
experimentales y de referencia.
• LAMMPS, POEMS
Un grupo de investigación ha creado un programa de software libre con el objetivo de usar
eficientes métodos de dinámica multicuerpo para simular sistemas moleculares de 'grano grueso'.
En estas simulaciones un aumento de velocidad de un orden de magnitud es realizado para
errores conservativos con un esquema de integración de paso de tiempo fijo.
Las simulaciones de las dinámicas de sistemas poliméricos y biomoleculares son usualmente
caracterizados por superficies de energía muy complejas y espacios conformacionales grandes.
Hay dos fundamentales desafíos computacionales que han limitado el ámbito de las
simulaciones de dinámica molecular:
• El primero está asociado con el tamaño espacial de estos sistemas que hace que los cálculos de
interacciones entre moléculas sea un caro paso computacional en las simulaciones.
Estos sistemas de interés típicamente contienen un gran número de sitios de interacción (o
átomos) y puede extenderse de cientos a miles grados de libertad.
• El segundo desafío está asociado con la diversa frecuencia del sistema y los largos dominios
temporales que contiene el fenómeno de interés. Como el tamaño del paso de integración es
inversamente proporcional a la mayor frecuencia del sistema, una simulación de dinámica
molecular de un sistema de escala fina típicamente se propaga con un paso de tiempo de
integración de sólo femtosegundos.
Una metodología ha sido presentada para simulaciones de dinámica molecular seleccionando y
combinando distintos algoritmos existentes desde diferentes campos de aplicación.
El uso de eficientes algoritmos de dinámica multicuerpo acoplados con cálculos de campos de
fuerzas efectivos y altamente paralelizables es una investigación novel y resulta en un método de
computación muy eficaz para dinámica molecular limitada.
Daniel Martín Yerga
8. Este método esta implementado en una aplicación de software libre escrita en C++, donde se
acopla el software de dinámica molecular LAMMPS (Large-scale Atomic/Molecular Massively
Paralell Simulator) y el eficiente software de método multicuerpo POEMS (Parallelizable Open-source
Efficient Multibody Software).
LAMMPS modela un conjunto de partículas representando un sistema atómico, polimérico,
biológico, metálico o de grano grueso, usando una variedad de campos de fuerzas y condiciones límite.
Puede ser ejecutado en serie o en paralelo.
POEMS es un programa de dinámica multicuerpo que modela la dinámica de sistemas de orden
reducido o grano grueso. Está diseñado para simular eficientemente sistemas con gran número de
cuerpos rígidos articulados. Contiene librerías con diferentes formulaciones dinámicas para
eficientemente generar y resolver las ecuaciones de movimiento de sistemas articulados.
• MRMer
Una de las últimas técnicas desarrolladas en Espectrometría de Masas (MS) es el monitoreo de
reacciones múltiples (MRM). Esta técnica puede cuantificar e identificar péptidos específicos en una
mezcla compleja con muy buena sensibilidad (bajas concentraciones) y alta velocidad. Por lo tanto,
tiene un prometedor potencial para un ser un método de análisis de muestras para distintas biomarcas.
MRMer es una plataforma de software interactivo para administrar experimentos complejos de
MRM-MS, incluyendo análisis cuantitativo usando pares isotópicos ligeros/pesados de péptidos.
MRMer extrae información de archivos de espectrometría de masas codificados en el formato
multiplataforma mzXML.
Está basado en una extensión a msInspect, está escrito en Java utilizando los componentes
JavaSwing, JfreeChart y SwiXml. Esta disponible bajo una licencia Apache 2.0.
Daniel Martín Yerga
9. • Nanofiltran
La nanofiltración es un proceso de filtración que se realiza con una membrana semipermeable.
Es un proceso que se está aplicando en la industria de manera creciente, y donde su principal aplicación
es la purificación y desmineralización de agua con bajo contenido de sólidos.
La importancia de este proceso en la industria llevo a cabo una incesante actividad
investigadora para conocer con profundidad los mecanismos de transporte de masas envueltos en el
proceso de la nanofiltración. El objetivo era claro: desarrollar modelos físicos y matemáticos con
capacidad de predecir los resultados de la nanofiltración en distinto tipos de disoluciones.
Estos modelos han sido desarrollado en los últimos años por una serie de personas, hay distintos
tipos de modelos, cada uno con sus ventajas y limitaciones.
Dos de estos modelos son el modelo de división de poro estérico de Donnan y el modelo de
exclusión dieléctrica, con incorporación de la no idealidad de disoluciones de electrolitos y efectos de
polarización de la concentración en la interfase de la membrana.
Con estos modelos, las ecuaciones extendidas de Nernst-Planck son discretizadas dentro de la
membrana. Estas ecuaciones son linealizadas para así obtener una sistema de ecuaciones que son
resueltas simultáneamente.
El sistema linealizado de ecuaciones está basado en una inicial conjetura para el potencial
eléctrico en la disolución y perfiles de concentración de iones, que son actualizados iterativamente.
Nanofiltran es un programa open-source que sirve para simular el transporte de masa de
disoluciones acuosas multiiónicas en membranas de nanofiltración.
Es una valiosa herramienta para prediciones precisas y robustas y resuelve muchos de los
problemas que tienen otros métodos conocidos para diferentes modelos.
Permite la resolución de las ecuaciones del modelo sin ningún tipo de limitaciones
concernientes con la forma de la concentración o gradientes de potencial en la membrana,
concentración de iones en las disoluciones o número y valencia de especies iónicas.
Daniel Martín Yerga
10. Conclusiones
La ciencia moderna prácticamente no podría existir sin el libre intercambio de conocimiento
que existe en la actualidad. La investigación científica actual se basa en un extraordinario intercambio
de información por medio de infinidad de posibles formas: revistas, congresos, conferencias, proyectos
de investigación comunes, etc. Todas estas formas de intercambio de información y de ideas son
esenciales en un entorno científico moderno y contribuyen al nacimiento de nuevos conceptos y mejora
de los ya existentes.
El software libre tiene mucho en común con la investigación científica, el software es mejorado
gracias a los aportes de ideas y de código de otras personas interesadas, aparte de los creadores iniciales
de ese software.
La ciencia es ciencia porque cada uno puede comprobar sus resultados. Esto es posible ya que
los investigadores publican sus estudios de una forma detallada de los experimentos para que sean
capaces de ser fácilmente reproducibles por otras personas. Algo similar ocurre al software libre, el
código está disponible así que otras personas puedan testearlo y ejecutarlo en diferentes contextos.
La cooperación es una pieza clave en ambas disciplinas, un ambiente fértil tanto en
investigación científica como en el ámbito del software libre sólo se puede conseguir gracias a la
colaboración de las distintas personas implicadas.
La investigación científica donde se publica software, debería siempre usar software libre por
varias razones muy importantes:
• El código fuente del programa está disponible para la revisión por toda la comunidad científica.
• La libre distribución del software libre es una gran ventaja ya que podrá ser publicado en
distintos artículos con lo que el número de citaciones crecería.
• El programa puede ser modificado por cualquier persona de la comunidad científica con lo que
se podrá ir mejorando para obtener mejores resultados científicos. Esto es una ventaja para el
principal autor ya que su trabajo será citado y considerado en distintos artículos, también los
cambios para las mejoras deberán ser hechos públicos con lo que todo el mundo se beneficiaría
de esto. Otros autores verán con mejores ojos la modificación de un programa de software libre
para sus respectivos usos, que la utilización de programas privativos y comerciales, donde
generalmente no podrán introducir mejoras y deberán pagar por una licencia a una compañía
por un precio bastante elevado.
Esto cobra mayor importancia cuando las investigaciones están financiadas con dinero público
y las administraciones correspondientes deberían de promulgar el uso de software libre en este ámbito
de la investigación, por las ventajas que eso conlleva y por la claridad que se debe presentar cuando se
está obteniendo dinero de todos los ciudadanos.
El conocimiento de este tipo de software y sus ventajas está aumentando en los últimos años por
lo que el futuro es también prometedor en el ámbito de la investigación, en especial de la Química
Física que tantos descubrimientos tendrá que explicar al mundo en los próximos años.
Daniel Martín Yerga
12. • MRMer:
http://proteomics.fhcrc.org/CPL/MRMer.html
• LAMMPS:
http://lammps.sandia.gov/
Artículos:
• Analysis of the salt retention of nanofiltration membranes using the donnan-steric partitioning pore model
Schaep J., Vandecasteele C., Wahab Mohammad A., Bowen W. R.
Separation science and technology 1999 34 (15), 3009-3030
• Computer program for simulation of mass transport in nanofiltration membranes
Vítor Geraldes, Ana Maria Brites Alves
Journal of Membrane Science 321 (2008) 172–182
• Combining a genetic algorithm with a linear scaling semiempirical method for protein–ligand docking
Eddy Thiriot, Gerald Monard
Journal of Molecular Structure: THEOCHEM 898 (2009) 31–41
• g_permute: Permutation-reduced phase space density compaction
F. Reinhard, O.F. Lange, J.S. Hub, J. Haas, H. Grubmüller
Computer Physics Communications 180 (2009) 455–458
• Substructured molecular dynamics using multibody dynamics algorithms
Rudranarayan M. Mukherjee, Paul S. Crozier, Steven J. Plimpton, Kurt S. Anderson
International Journal of Non-Linear Mechanics 43 (2008) 1040 – 1055
• MRMer, an Interactive Open Source and Cross-platform System for Data Extraction and Visualization of Multiple Reaction
Monitoring Experiments
Daniel B. Martin, Ted Holzman, Damon May, Amelia Peterson, Ashley Eastham, Jimmy Eng, and Martin McIntosh
Molecular & Cellular Proteomics 7.11 (2008) 2270-2278
• XCMS: Processing Tandem Mass Spectrometry Data for Metabolite Identification and Structural Characterization
H. P. Benton, D. M. Wong, S. A. Trauger, and G. Siuzdak
Anal. Chem., 2008, 80 (16), 6382-6389
• Daubechies wavelets as a basis set for density functional pseudopotential calculations
Luigi Genovese, Alexey Neelov, Stefan Goedecker, Thierry Deutsch, Seyed Alireza Ghasemi, Alexander Willand, Damien
Caliste, Oded Zilberberg, Mark Rayson, Anders Bergman, and Reinhold Schneider
THE JOURNAL OF CHEMICAL PHYSICS 129, 014109 2008͒ ͑
Daniel Martín Yerga