Make mdtools for openmm #moleculardynamics #TeachOpenCADD #rdkit #openmm #chemoinformatics

As chemoinformatitians know that TeachOpenCADD(TOCADD) is one of the really useful site for learning in-silico drug discovery pipeline. It supports wide range of chemoinformatics not only LBDD but also SBDD. New version of TOCADD supports Molecular dynamics(MD) tutorial with openmm.

The talktorial T019 and T020 show how to run and analyse MD with openmm and related packages based jupyter notebook. IMHO, jupyter-notebook is really useful tool for ad hock analysis but it isn’t fit batch process.

So I would like to convert the tutorial code for batch process ;)

Here is my code (still developing..)

https://github.com/iwatobipen/openmm_runner

To use the package, user should install required packages at first. For example…

$ mamba install -c conda-forge openmm openff-toolkit openff-evaluator mdtraj rdkit mdanalysis mdanalysistests

Then install the repo.

$ gh repo clone iwatobipen/openmm_runner
$ cd openmm_runner
$ pip install -e .

Currently openmm_makeconfig and openmm_runmd command will be available after installation. ‘openmm_makeconfig’ command generates config template for MD run.

$ openmm_makeconfig
$ cat config_template.yml
pdb_file: ''
resname: ''
lig_smiles: ''
ignore_missing_residues: false
ignore_terminal_missing_residues: false
ph: 7.0
data_path: data
protein_ff: amber14-all.xml
solvent_ff: amber14/tip3pfb.xml
integrator: LangevinIntegrator
integrator_settings:
  temperature: 300
  frictionCoeff: 1.0
  stepSize: 2.0
platform:
  name: CUDA
  properties:
    DeviceIndex: '0'
md_steps: 1000
write_interval: 1
log_interval: 1

pdb_file:, resname: and lig_smiles: should be provided from user. pdb_file is PDB which is used for MD, resname is ligand name in the PDB file and lig_smiles is SMILE strings for assigning the bond order for ligand.

I used 3POZ.pdb for test as same as TOCADD, the resname is ’03P’. So config.yml should be…


”’config.yml”’
pdb_file: ‘3POZ.pdb’
resname: ’03P’
lig_smiles: ‘CC(C)(O)CC(=O)NCCn1ccc2ncnc(Nc3ccc(Oc4cccc(c4)C(F)(F)F)c(Cl)c3)c12’
ignore_missing_residues: false
ignore_terminal_missing_residues: false
ph: 7.0
data_path: data
protein_ff: amber14-all.xml
solvent_ff: amber14/tip3pfb.xml
integrator: LangevinIntegrator
integrator_settings:
temperature: 300
frictionCoeff: 1.0
stepSize: 2.0
# if your PC doesn’t have GPU, please change following part from ‘CUDA’ to ‘CPU’ and proterties: “”
platform:
name: CUDA
properties:
DeviceIndex: ‘0’
md_steps: 1000
write_interval: 1
log_interval: 1

Now ready to run MD, to run the MD, it’s easy, just call openmm_runmd with config file. *To run the script, pdb file should be downloaded in the current directory off course ;)

$ openmm_runmd config.yml

The command will prepare protein(add missing residue, proton and minimization) and ligand, run MD simulation. Current code supports only one integrator but I would like to support other integrators.

After the running code, results will be stored data folder.

Post MD analysis is done with mdanalysis. The code is uploaded as jupyter-notebook. The code is shown here.

https://nbviewer.org/github/iwatobipen/openmm_runner/blob/main/analyze.ipynb

There are lots of open source packages available in these days. And we can get useful information from web such as TOCADD. It’s really amazing things I think.

OpenMM is useful because it’s OSS, has good document and has great user community.

I would like to say thank to TOCADD and Openmm developer. Please let me know if you have any questions, requests and comments about the code.

Thanks for reading.

Published by iwatobipen

I'm medicinal chemist in mid size of pharmaceutical company. I love chemoinfo, cording, organic synthesis, my family.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.