name: molecular-dynamics
description: Exécutez et analysez des simulations de dynamique moléculaire avec OpenMM et MDAnalysis. Configurez des systèmes protéine/petite molécule, définissez des champs de force, exécutez la minimisation d'énergie et la MD de production, analysez les trajectoires (RMSD, RMSF, cartes de contact, surfaces d'énergie libre). Pour la biologie structurale, la liaison de ligands et la biophysique.
license: MIT
tags: [scientific-skills, molecular-dynamics, cheminformatics]
metadata:
skill-author: Kuan-lin Huang
-----|------------------------|-------------|
| Protéines standard | AMBER14 (amber14-all.xml) | TIP3P-FB |
| Protéines + petites molécules | AMBER14 + GAFF2 | TIP3P-FB |
| Protéines membranaires | CHARMM36m | TIP3P |
| Acides nucléiques | AMBER99-bsc1 ou AMBER14 | TIP3P |
| Protéines désordonnées | ff19SB ou CHARMM36m | TIP3P |
Outils de préparation du système
PDBFixer (pour les fichiers PDB bruts)
from pdbfixer import PDBFixer
from openmm.app import PDBFile
def fix_pdb(input_pdb, output_pdb, ph=7.0):
"""Corrigez les problèmes PDB courants : résidus manquants, atomes, ajoutez H, normalisez."""
fixer = PDBFixer(filename=input_pdb)
fixer.findMissingResidues()
fixer.findNonstandardResidues()
fixer.replaceNonstandardResidues()
fixer.removeHeterogens(True) # Supprimez l'eau/les ligands
fixer.findMissingAtoms()
fixer.addMissingAtoms()
fixer.addMissingHydrogens(ph)
with open(output_pdb, 'w') as f:
PDBFile.writeFile(fixer.topology, fixer.positions, f)
return output_pdb
GAFF2 pour les petites molécules (via OpenFF Toolkit)
# Pour la paramétrisation de ligands, utilisez OpenFF toolkit ou ACPYPE
# pip install openff-toolkit
from openff.toolkit import Molecule, ForceField as OFFForceField
from openff.interchange import Interchange
def parameterize_ligand(smiles, ff_name="openff-2.0.0.offxml"):
"""Générez les paramètres GAFF2/OpenFF pour une petite molécule."""
mol = Molecule.from_smiles(smiles)
mol.generate_conformers(n_conformers=1)
off_ff = OFFForceField(ff_name)
interchange = off_ff.create_interchange(mol.to_topology())
return interchange
Bonnes pratiques
- Toujours minimiser avant la MD : Les structures PDB brutes présentent des chocs stériques
- Équilibrer avant la production : NVT (50–100 ps) → NPT (100–500 ps) → Production
- Utiliser un GPU : Les simulations sont 10–100× plus rapides sur GPU (CUDA/OpenCL)
- Pas de temps de 2 fs avec contraintes de liaisons H : Standard ; utilisez 4 fs avec HMR (répartition de masse d'hydrogène)
- Analyser uniquement la trajectoire équilibrée : Descartez les premiers 20–50 % pour l'équilibration
- Sauvegarder les checkpoints : Les exécutions de MD peuvent échouer ; les checkpoints permettent le redémarrage
- Conditions aux limites périodiques : Requises pour les systèmes solvatés
- PME pour l'électrostatique : Plus précis que les méthodes de cutoff pour les systèmes chargés
Ressources supplémentaires
- Documentation OpenMM : https://openmm.org/documentation.html
- Guide utilisateur MDAnalysis : https://docs.mdanalysis.org/
- GROMACS (moteur MD alternatif) : https://manual.gromacs.org/
- NAMD (alternatif) : https://www.ks.uiuc.edu/Research/namd/
- CHARMM-GUI (constructeur de système basé sur le web) : https://charmm-gui.org/
- AmberTools (outils Amber gratuits) : https://ambermd.org/AmberTools.php
- Article OpenMM : Eastman P et al. (2017) PLOS Computational Biology. PMID: 28278240
- Article MDAnalysis : Michaud-Agrawal N et al. (2011) J Computational Chemistry. PMID: 21500218