Saltar al contenido principal
ActivePapers Almacena tus datos como documentos recomputables para que cualquier resultado publicado pueda ejecutarse de nuevo, verificarse y preservarse.

Algunos enlaces de este sitio son de afiliados: si compras a través de ellos, es posible que recibamos una comisión sin coste adicional para ti. Esto nunca afecta a nuestras recomendaciones. Consulta nuestra declaración de afiliados para más detalles. Divulgación de afiliados.

Repositorio de dinámica molecular: una guía práctica

Un repositorio de dinámica molecular es un host controlado por versiones para código de simulación, conjuntos de datos de entrada, parámetros de campos de fuerza y ​​scripts de análisis, que abarca motores como GROMACS, LAMMPS y OpenMM, además de formatos de trayectoria como DCD y XTC. Las opciones de almacenamiento son importantes a escala: un sistema de 100.000 átomos simulado durante 100 nanosegundos con coordenadas escritas cada 10 picosegundos produce aproximadamente 10.000 fotogramas, por lo que la estructura correcta determina si una simulación sigue siendo reproducible años después.

Conclusiones clave

  • Un repositorio de dinámica molecular no es una sola cosa: es una pila de código de motor, definiciones de campos de fuerza, archivos de topología y coordenadas, scripts de ejecución y cuadernos de análisis, cada uno con diferentes necesidades de versiones.
  • Los formatos de trayectoria binaria (XTC, DCD, TRR, NetCDF/AMBER) intercambian precisión con tamaño; la elección afecta tanto el costo de almacenamiento como la legibilidad a largo plazo.
  • La reproducibilidad depende menos del motor que de fijar cuatro cosas: versión del motor, versión del campo de fuerza, semilla aleatoria y el archivo de entrada exacto.
  • Git es la herramienta adecuada para entradas de texto y scripts, pero las trayectorias binarias grandes pertenecen a Git LFS, DVC o un repositorio de datos como Zenodo, no al historial principal de Git.
  • Los principios de datos FAIR (Encontrables, Accesibles, Interoperables, Reutilizables) se reflejan claramente en las decisiones de diseño del repositorio que usted toma el primer día.
  • Un repositorio que un extraño no puede volver a ejecutar es documentación, no reproducibilidad.

¿A qué se refiere realmente “Repositorio de dinámica molecular”?

Repositorio de dinámica molecular es una frase sobrecargada y la ambigüedad causa verdadera confusión cuando los grupos de laboratorio intentan estandarizar. Al menos cuatro cosas distintas reciben ese nombre y técnicamente no tienen casi nada en común.

El primero es el repositorio del motor: el código fuente del propio programa de simulación. GROMACS, LAMMPS, NAMD, OpenMM y AMBER viven cada uno en sus propios repositorios ascendentes y usted interactúa con ellos como usuario, no como mantenedor. Aquí lo que importa son las etiquetas de lanzamiento y los números de versión, no el código.

El segundo es el repositorio de parámetros y campos de fuerza. Los campos de fuerza como CHARMM36, AMBER ff14SB, OPLS-AA y la familia Martini de grano grueso se distribuyen como archivos de parámetros, a menudo con su propia versión. El proyecto OpenKIM mantiene un archivo interoperable de potenciales interatómicos para materiales y sistemas moleculares, que es un modelo de entrega verdaderamente diferente al de un repositorio Git.

El tercero es el repositorio de proyectos: tu propio directorio de trabajo para un estudio específico. Contiene los archivos de topología, archivos de coordenadas, .mdp o plataformas de entrada, scripts de ejecución y código de análisis. De aquí provienen la mayoría de los fallos de reproducibilidad.

El cuarto es el repositorio de datos: un archivo a largo plazo de trayectorias, puntos de control y datos derivados. Zenodo, Figshare y los repositorios institucionales cumplen esta función y asignan DOI para que se pueda citar un conjunto de datos específico.

Relacionado: — Cursos interactivos de Python y ciencia de datos que codifica directamente en el navegador.

Confundir estos cuatro conduce a errores predecibles: subir una trayectoria de 40 GB en Git o tratar un depósito en Zenodo como si fuera un directorio de trabajo activo. Separarlos es la decisión de mayor influencia al establecer un proyecto de simulación.

El problema de los datos largos: por qué las trayectorias rompen el control de versiones normal

Los largos datos producidos por las simulaciones de dinámica molecular constituyen la limitación determinante en el diseño del repositorio, y es importante entender por qué antes de elegir las herramientas. Un único sistema de 100.000 átomos simulado durante 100 nanosegundos con coordenadas escritas cada 10 picosegundos produce del orden de 10.000 fotogramas. Almacenado como coordenadas de doble precisión sin comprimir, es decir, aproximadamente 100.000 átomos × 3 coordenadas × 8 bytes × 10.000 fotogramas; esto representa cientos de gigabytes antes de cualquier compresión).

Los formatos de trayectoria existen precisamente para gestionar esto. XTC utiliza compresión con pérdida con precisión configurable, normalmente 3 decimales en nanómetros, y es el valor predeterminado para GROMACS.

Vale la pena echarle un vistazo: — Una suscripción para certificados de ciencia de datos y Python respaldados por la universidad.

DCD es el formato clásico CHARMM, sin comprimir y de amplia lectura. TRR es el formato de precisión total sin pérdidas de GROMACS, útil cuando necesita velocidades o fuerzas exactas. Los formatos basados ​​en NetCDF, incluida la convención de trayectoria AMBER, se describen a sí mismos y contienen metadatos unitarios.

Las consecuencias prácticas para un repositorio son concretas:

  • Git almacena cada versión de cada archivo. Una trayectoria que cambia en cada ejecución inflará un repositorio permanentemente, porque el historial de Git es solo para agregar. Incluso eliminar el archivo no recupera el espacio sin reescribir el historial.
  • Git LFS (Large File Storage) reemplaza archivos grandes con punteros y almacena el contenido en otro lugar, lo que funciona bien para archivos de hasta unos pocos gigabytes que rara vez cambian. No se adapta bien a trayectorias que se regeneran constantemente.
  • DVC (Control de versiones de datos) rastrea los datos mediante hash y los almacena en un control remoto configurable (disco local, S3 o un almacén institucional) mientras mantiene pequeños archivos de puntero .dvc en Git. Esto se adapta a los flujos de trabajo de simulación donde los datos son grandes y el código pequeño.
  • Los repositorios de datos con DOI son el lugar adecuado para la versión publicada y congelada de una trayectoria. No son un directorio de trabajo.

Una división del trabajo viable: Git para scripts, plataformas de entrada y código de análisis; DVC o Git LFS para artefactos binarios moderados; un archivo emisor de DOI para el conjunto de datos final publicado. Esto mantiene los tiempos de clonación cuerdos y hace que el registro publicado sea citable.

Anatomía de un repositorio de simulación reproducible

Un repositorio de dinámica molecular reproducible tiene un diseño predecible, y el diseño en sí comunica la intención a cualquiera que lo abra. La siguiente estructura es un valor predeterminado razonable para un proyecto de dinámica molecular, adaptable a flujos de trabajo LAMMPS, GROMACS u OpenMM.

proyecto/
├── README.md
├── environment.yml # o requisitos.txt / especificación conda
├── sistemas/
│ ├── sistema-a/
│ │ ├── topología/
│ │ ├── coordenadas/
│ │ └── parámetros/
│ └── sistema-b/
├── simulaciones/
│ ├── equilibrio/
│ │ ├── entradas/
│ │ └── ejecutar.sh
│ └── producción/
│ ├── entradas/
│ └── ejecutar.sh
├── análisis/
│ ├── cuadernos/
│ └── scripts/
├── datos/# seguimiento DVC o gitignorado
└── documentos/

Cada directorio merece su lugar. El árbol systems/ separa la definición química de lo que está simulando de cómo lo está simulando, lo cual es importante porque el mismo sistema a menudo se ejecuta bajo múltiples protocolos. El árbol de “simulaciones” separa el equilibrio de la producción, una distinción que es fácil de perder y costosa de reconstruir.

El archivo environment.yml es el componente más subestimado. Fijar la versión del motor, la pila de análisis de Python y todas las bibliotecas de soporte en un solo archivo significa que un colaborador puede reconstruir el entorno con un solo comando. Los archivos de entorno Conda, los archivos de requisitos pip y las definiciones de contenedores (Docker o Apptainer/Singularity) sirven para este propósito; Los contenedores son los más robustos porque también capturan bibliotecas del sistema.

Relacionado: — Una amplia biblioteca técnica de libros, vídeos y formación en directo sobre informática científica..

El README.md debe indicar, como mínimo: qué es el estudio, qué motor y versión, qué campo de fuerza y ​​versión, cómo ejecutar el proceso desde las entradas sin procesar hasta las cifras finales y dónde se encuentran los datos de gran tamaño. Un archivo README que asume que el lector es el autor no es documentación.

Elegir un host de repositorio: criterios que importan

El alojamiento de repositorios para ciencias computacionales sigue líneas que el alojamiento comercial de Git no cubre. La siguiente tabla compara las opciones realmente consideradas por la mayoría de los grupos de laboratorios al seleccionar un repositorio de dinámica molecular.

Anfitrión/herramientaLo mejor paraManeja archivos binarios grandesDOI / citaciónNotas
GitHub/GitLabCódigo, scripts, pequeñas entradasVía Git LFS (cuota limitada)Sin DOI nativoUbicuo; Las cuotas LFS pueden sorprenderte
ZenodoConjuntos de datos publicados congeladosSí, límites generososSí, DOI por versiónSe integra con las versiones de GitHub
FigshareConjuntos de datos, cifras, complementariosSíSíComún en los flujos de trabajo de revistas
Repositorio institucionalArchivo institucional a largo plazoVaríaGeneralmente síPersistencia ligada a la institución
DVC + control remoto en la nubeControl de versiones activo de datos grandesSíNoMantiene pequeño el historial de Git
Open Science FrameworkOrganización a nivel de proyectoSíSíBueno para proyectos mixtos de código/datos

La decisión generalmente se reduce a tres preguntas. ¿Los datos deberían poder citarse con un DOI? ¿Debería versionarse a medida que cambia o congelarse una vez? ¿Quién es responsable de mantenerlo disponible en diez años?

Favorito del lector: — Rutas de ciencia de datos basadas en proyectos con una terminal guiada y conjuntos de datos reales.

Un patrón común y defendible es GitHub para el código con la integración de Zenodo habilitada, de modo que cada versión etiquetada genere un DOI automáticamente, además de DVC para los datos de trabajo. Esto proporciona lanzamientos citables sin inflar el historial de Git.

Campos de fuerza, parámetros y la trampa de versiones

El control de versiones del campo de fuerza es donde la reproducibilidad falla silenciosamente y merece un tratamiento separado porque el modo de falla es invisible. Dos simulaciones tituladas “CHARMM36” realizadas con tres años de diferencia pueden utilizar conjuntos de parámetros diferentes porque se revisan los campos de fuerza. Lo mismo ocurre con los campos de fuerza de la proteína AMBER, donde ff99SB, ff99SB-ILDN, ff14SB y revisiones posteriores producen un comportamiento considerablemente diferente.

El problema es que los archivos de campo de fuerza a menudo se distribuyen entre las instalaciones del motor o se descargan desde el sitio web de un proyecto, y la versión no se registra en ninguna parte del resultado de la simulación. Un repositorio de dinámica molecular que fije la versión del motor pero no la versión del campo de fuerza sólo es reproducible a medias.

Mitigaciones prácticas:

  • Proporcione los archivos de parámetros al repositorio. Copie los archivos exactos .itp, .prm o .frcmod usados en systems/*/parameters/ y confírmelos. Se trata de pequeños archivos de texto y su presencia en el repositorio elimina cualquier ambigüedad.
  • Guarde el nombre del campo de fuerza y la revisión en el README y en un archivo de metadatos legible por máquina. Un archivo corto YAML o JSON junto con las entradas no cuesta nada y definitivamente responde a la pregunta.
  • Tenga en cuenta todas las modificaciones locales. Si ajustó una carga parcial o un parámetro vinculado, ese cambio debe estar en el repositorio, no en un directorio temporal personal.
  • Para potenciales interatómicos en simulación de materiales, prefiera un archivo versionado. OpenKIM existe precisamente para hacer que los potenciales sean citables y versionados, y su uso elimina una clase de ambigüedad.

El principio general: cualquier cosa que afecte el resultado numérico y no sea el binario del motor pertenece al repositorio como un archivo confirmado.

Reproducibilidad más allá del repositorio: semillas, hardware y punto flotante

Un repositorio de dinámica molecular puede estar perfectamente organizado pero aun así no logra reproducir un resultado, porque la dinámica molecular tiene fuentes de no determinismo que viven fuera del control de versiones. Comprenderlos evita una falsa confianza.

Semillas aleatorias controlan la asignación de velocidad inicial y, en métodos estocásticos, el comportamiento del termostato y el barostato. Si la semilla no se guarda, la ejecución no es reproducible incluso con entradas idénticas. Muchos motores aceptan una semilla explícita; úsalo y guárdalo.

La descomposición paralela afecta el orden de la suma de punto flotante. Ejecutar el mismo sistema en 16 núcleos frente a 64 núcleos puede producir trayectorias que divergen con el tiempo debido a diferencias de redondeo acumuladas. Esto no es un error; ésta es la naturaleza de la aritmética de coma flotante bajo diferentes órdenes de reducción. Para una reproducibilidad estricta, registre la descomposición del dominio y el número de núcleos, o acepte que la identidad bit a bit no es factible y, en su lugar, apunte a la reproducibilidad estadística.

Diferencias de hardware y compilador introducen más variaciones a través de diferentes bibliotecas matemáticas y conjuntos de instrucciones. Los contenedores reducen esto, pero no lo eliminan.

Las opciones de termostato y barostato cambian el conjunto y, por tanto, la física. Un repositorio debe registrar el conjunto explícitamente (NVT, NPT, NVE) junto con las constantes de acoplamiento.

El marco honesto es que la reproducibilidad bit a bit se puede lograr en una configuración fija de hardware y software, y que la reproducibilidad estadística es el objetivo realista en todas las configuraciones. Un repositorio que documente la configuración hace que lo primero sea realizable y lo segundo verificable.

Principios FAIR aplicados a datos de simulación

Los principios FAIR (Encontrable, Accesible, Interoperable, Reutilizable) se formularon para datos de investigación en general y se traducen en prácticas específicas de repositorio de dinámica molecular.

Encontrable significa que el conjunto de datos tiene un identificador persistente y metadatos descriptivos. Un DOI de Zenodo o un repositorio institucional satisface esto; este no es el caso de un directorio en un servidor de laboratorio.

Accesible significa que los datos pueden ser recuperados por un ser humano o una máquina utilizando un protocolo estándar, con una licencia clara. Elegir una licencia abierta en el momento del depósito evita la situación común en la que los datos se archivan pero son legalmente inutilizables.

Interoperable significa que los formatos son estándar y están documentados. Usar XTC, DCD o NetCDF en lugar de un formato binario personalizado y documentar las unidades hace que las trayectorias sean legibles con herramientas estándar años después.

Reutilizable significa que hay suficiente contexto para reutilizar los datos para un nuevo propósito. Esto requiere los metadatos descritos anteriormente: versión del motor, versión del campo de fuerza, conjunto, temperatura y cualquier procesamiento aplicado.

El marco FAIR es útil porque desvía la atención de “¿guardé los archivos” a “¿puede alguien más usar estos archivos?”. Esas son preguntas diferentes, y sólo la segunda importa para los datos a largo plazo.

Configuración práctica: un ejemplo de trabajo mínimo

Una configuración mínima reproducible para un flujo de trabajo de repositorio de dinámica molecular estilo GROMACS, adaptable a otros motores, se ve así en la práctica.

Inicialice el repositorio y configure el manejo de archivos grandes:

git init md-project
cd md-project
git lfs install
git lfs track "*.xtc" "*.trr" "*.tpr"
git add .gitattributes

Cree la especificación del entorno y confírmela junto con las entradas:

conda env export --no-builds > entorno.yml
git add environment.yml systems/ simulations/ analysis/
git commit -m "Configuración reproducible inicial"

Etiquete las versiones para que se pueda crear un DOI y archivar el conjunto de datos congelado por separado del repositorio de trabajo. La etiqueta marca el estado exacto del código; el archivo contiene el estado exacto de los datos.

El flujo de trabajo anterior es deliberadamente mínimo. El punto no es la sofisticación de las herramientas, sino la disciplina de confirmar los elementos que determinan el resultado y archivar los elementos que son demasiado grandes para versionarlos.

Fuentes y lecturas adicionales

  • Dinámica molecular — Wikipedia: La dinámica molecular (DM) es un método de simulación por computadora para analizar los movimientos físicos de átomos y moléculas. Los átomos y las moléculas pueden interactuar…

Preguntas frecuentes

¿Qué es un repositorio de dinámica molecular?

Un repositorio de dinámica molecular es un almacén controlado por versiones para los archivos que definen y reproducen una simulación: entradas del motor, archivos de topología y coordenadas, parámetros de campo de fuerza, scripts de ejecución y código de análisis. El término también se refiere a los repositorios de fuentes ascendentes de motores como GROMACS y LAMMPS, y a los archivos de datos que contienen trayectorias. Distinguir estos tres usos evita la mayoría de errores de diseño de repositorios.

¿Debo almacenar trayectorias MD en Git?

Por lo general, las trayectorias no deberían incluirse en el historial simple de Git, porque Git almacena cada versión de forma permanente y los archivos binarios grandes inflan el repositorio de manera irreversible. Git LFS funciona para archivos de tamaño moderado que rara vez cambian y DVC funciona mejor para datos grandes que se regeneran con frecuencia. La versión publicada y congelada de una trayectoria pertenece a un repositorio de datos que emite DOI, como Zenodo.

¿Cómo hago reproducible una simulación de dinámica molecular?

La reproducibilidad requiere fijar la versión del motor, la versión del campo de fuerza, la semilla aleatoria, los archivos de entrada exactos y la configuración del hardware o del contenedor. La validación de archivos de parámetros de campo de fuerza en el repositorio elimina la fuente más común de divergencia silenciosa. La reproducibilidad bit a bit es realista en una configuración fija; en diferentes números de núcleos o hardware, busque la reproducibilidad estadística y documente la diferencia.

¿Qué formato de trayectoria debo usar?

XTC es un buen valor predeterminado para los flujos de trabajo de GROMACS porque se comprime bien con precisión configurable. DCD es ampliamente legible y no está comprimido, lo que es adecuado para la interoperabilidad. TRR conserva la precisión total y es útil cuando las velocidades o fuerzas son grandes. Los formatos basados ​​en NetCDF se describen a sí mismos y contienen metadatos unitarios, lo que facilita la reutilización a largo plazo.

¿Necesito un DOI para mis datos de simulación?

Un DOI es necesario si desea que el conjunto de datos sea citable independientemente del artículo, lo que las revistas y los financiadores esperan cada vez más. Zenodo y Figshare crean DOI y se integran con las versiones de GitHub, por lo que etiquetar una versión puede producir un identificador citable automáticamente. Para trabajos internos no publicados, un DOI es opcional, pero la misma disciplina de archivo aún vale la pena.

¿Cómo se deben registrar las versiones de los campos de fuerza?

Los archivos de parámetros de campo de fuerza deben guardarse en el repositorio bajo un directorio de parámetros y validarse, porque son pequeños archivos de texto y su contenido exacto determina el resultado. El nombre del campo de fuerza y ​​la revisión también deben registrarse en el archivo README y en un archivo de metadatos legible por máquina. Cualquier cambio local en los parámetros o configuraciones relacionadas debe validarse en lugar de guardarse en un directorio de inicio.

Preguntas frecuentes

¿Qué es un repositorio de dinámica molecular?

Un repositorio de dinámica molecular es un almacén controlado por versiones para los archivos que definen y reproducen una simulación: entradas del motor, archivos de topología y coordenadas, parámetros de campo de fuerza, scripts de ejecución y código de análisis. El término también se refiere a los repositorios de fuentes ascendentes de motores como GROMACS y LAMMPS, y a los archivos de datos que contienen trayectorias. Distinguir estos tres usos evita la mayoría de errores de diseño de repositorios.

¿Debo almacenar trayectorias MD en Git?

Por lo general, las trayectorias no deberían incluirse en el historial simple de Git, porque Git almacena cada versión de forma permanente y los archivos binarios grandes inflan el repositorio de manera irreversible. Git LFS funciona para archivos de tamaño moderado que rara vez cambian y DVC funciona mejor para datos grandes que se regeneran con frecuencia. La versión publicada y congelada de una trayectoria pertenece a un repositorio de datos que emite DOI, como Zenodo.

¿Cómo hago reproducible una simulación de dinámica molecular?

La reproducibilidad requiere fijar la versión del motor, la versión del campo de fuerza, la semilla aleatoria, los archivos de entrada exactos y la configuración del hardware o del contenedor. La validación de archivos de parámetros de campo de fuerza en el repositorio elimina la fuente más común de divergencia silenciosa. La reproducibilidad bit a bit es realista en una configuración fija; en diferentes números de núcleos o hardware, busque la reproducibilidad estadística y documente la diferencia.

¿Qué formato de trayectoria debo utilizar?

XTC es un buen valor predeterminado para los flujos de trabajo de GROMACS porque se comprime bien con precisión configurable. DCD es ampliamente legible y no está comprimido, lo que es adecuado para la interoperabilidad. TRR conserva la precisión total y es útil cuando las velocidades o fuerzas son grandes. Los formatos basados ​​en NetCDF se describen a sí mismos y contienen metadatos unitarios, lo que facilita la reutilización a largo plazo.

¿Necesito un DOI para mis datos de simulación?

Un DOI es necesario si desea que el conjunto de datos sea citable independientemente del artículo, lo que las revistas y los financiadores esperan cada vez más. Zenodo y Figshare crean DOI y se integran con las versiones de GitHub, por lo que etiquetar una versión puede producir un identificador citable automáticamente. Para trabajos internos no publicados, un DOI es opcional, pero la misma disciplina de archivo aún vale la pena.

¿Cómo se deben registrar las versiones de los campos de fuerza?

Los archivos de parámetros de campo de fuerza deben venderse en el repositorio bajo un directorio de parámetros y validarse, porque son pequeños archivos de texto y su contenido exacto determina el resultado. El nombre del campo de fuerza y ​​la revisión también deben registrarse en el archivo README y en un archivo de metadatos legible por máquina. Cualquier cambio local en las tarifas o configuraciones relacionadas debe validarse en lugar de guardarse en un directorio de inicio.


Cree un portafolio de datos, proyecto por proyecto

Rutas de ciencia de datos basadas en proyectos con una terminal guiada y conjuntos de datos reales