Git Product home page Git Product logo

ommprotocol's Introduction

OMMProtocol

image

image

image

Documentation Status

image

A command line application to launch molecular dynamics simulations with OpenMM

image

Some cool features

  • No coding required - just a YAML input file!
  • Smart support for different input file formats:
    • Topology: PDB/PDBx, Mol2, Amber's PRMTOP, Charmm's PSF, Gromacs' TOP, Desmond's DMS
    • Positions: PDB, COOR, INPCRD, CRD, GRO
    • Velocities: PDB, VEL
    • Box vectors: PDB, XSC, CSV, INPCRD, GRO
    • A fallback method is implemented and will attempt to load verything else that might be supported by ParmEd.
  • Choose your preferred trajectory format (PDB, PDBx, DCD, HDF5, NETCDF, MDCRD) and checkpoints (Amber's, CHARMM's, OpenMM XML states).
  • Live report of simulation progress, with estimated ETA and speed.
  • Checkpoint every n steps. Also, emergency rescue files are created if an error occurs.
  • Autochunk the trajectories for easy handling.

Installation & usage

Download the latest installer or use conda install -c omnia -c insilichem ommprotocol if you already have Anaconda/Miniconda installed. Further details here.

When installed, you should be able to run:

ommprotocol <inputfile.yaml>

Check the documentation to read more on how to create input files for OMMProtocol.

Get help

Documentation Status

Documentation is always available at ReadTheDocs. If you have problems running ommprotocol, feel free to create an issue! Also, make sure to visit our main webpage at insilichem.com.

Citation

OMMProtocol is scientific software, funded by public research grants (Spanish MINECO's project CTQ2014-54071-P, Generalitat de Catalunya's project 2014SGR989 and research grant 2015FI_B00768, COST Action CM1306). If you make use of Ommprotocol in scientific publications, please cite it. It will help measure the impact of our research and future funding! A manuscript is in progress and available as a pre-print in ChemRxiv.

@article{ommprotocol,
author    = {Rodríguez-Guerra Pedregal, Jaime and
             Alonso-Cotchico, Lur and
             Velasco-Carneros, Lorea and
             Maréchal, Jean-Didier}
title     = {OMMProtocol: A Command Line Application to Launch Molecular Dynamics Simulations with OpenMM},
url       = {https://chemrxiv.org/articles/OMMProtocol_A_Command_Line_Application_to_Launch_Molecular_Dynamics_Simulations_with_OpenMM/7059263/1},
DOI       = {10.26434/chemrxiv.7059263.v1}
publisher = {ChemRxiv},
year      = {2018},
month     = {Sep}
}

ommprotocol's People

Contributors

aizvorski avatar danielsoler93 avatar eljost avatar jaimergp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

ommprotocol's Issues

CUDA error (700)

Hi!

I'm experiencing troubles when running MD simulations on metalloprotein (LmrR, 139k atoms in system) with OMMprotocol. So I keep randomly getting this CUDA error (700) and due to this sometimes I have to restart even multiple times to get the simulation finished. In other cases I'm lucky and it finishes without problems. But it's quite annoying, do you happen to know any solutions for this error?

Thanks,
BBrouwer

An error occurred: Error invoking kernel: CUDA error (700)
Saving state...
FAILED :(
Traceback (most recent call last):
File "/QFsoft/applic/python/conda/envs/openmm-7.1/bin/ommprotocol", line 11, in
load_entry_point('ommprotocol==0.1.10', 'console_scripts', 'ommprotocol')()
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/init.py", line 63, in run_protocol
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 85, in protocol
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 316, in run
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 345, in simulate
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/simtk/openmm/app/simulation.py", line 132, in step
self._simulate(endStep=self.currentStep+steps)
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/simtk/openmm/app/simulation.py", line 194, in _simulate
self.integrator.step(10) # Only take 10 steps at a time, to give Python more chances to respond to a control-c.
File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/simtk/openmm/openmm.py", line 17086, in step
return _openmm.LangevinIntegrator_step(self, steps)
Exception: Error invoking kernel: CUDA error (700)

Python incompatibilities found

The following error message appears when installing ommprotocol via conda:

UnsatisfiableError: The following specifications were found
to be incompatible with the existing python installation in your environment:

Specifications:

  • ommprotocol -> python[version='2.7.|3.5.|>=2.7,<2.8.0a0|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0']

Your python: python=3.9

If python is on the left-most side of the chain, that's the version you've asked for.
When python appears to the right, that indicates that the thing on the left is somehow
not available for the python version you are constrained to. Note that conda will not
change your python version to a different minor version unless you explicitly specify
that.

The following specifications were found to be incompatible with your system:

  • feature:/linux-64::__glibc==2.31=0
  • python=3.9 -> libgcc-ng[version='>=7.5.0'] -> __glibc[version='>=2.17']

Your installed version is: 2.31

Box not detected in pdb file (Charmm)

Hi there!

I have been trying to perform MD simulations with a .psf and .pdb file, but an error arises that the system is not under periodic boundary conditions. I checked and the water box is properly defined in the .pdb file (in the first line). How can I solve it?

ValueError: Illegal value for nonbonded method

Hello!

I am trying to run a simulation of a protein-membrane system in explicit solvent, but when the first minimization step starts, it crashes because of the following error:

#1/1: eq1_protein [restrained protein]
Traceback (most recent call last):
 File "/home/laura/miniconda3/envs/ommprotocol/bin/ommprotocol", line 10, in <module>
   sys.exit(run_protocol())
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/__init__.py", line 63, in run_protocol
   protocol(handler, cfg)
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/md.py", line 91, in protocol
   pos, vel, box = stage.run()
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/md.py", line 304, in run
   self.apply_restraints()
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/md.py", line 487, in apply_restraints
   r_force = self.restraint_force(indices, self.restraint_strength)
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/md.py", line 521, in restraint_force
   if self.system.usesPeriodicBoundaryConditions():
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/md.py", line 379, in system
   self._system = self.handler.create_system(**self.system_options)
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/ommprotocol/io.py", line 424, in create_system
   system = self.master.createSystem(**system_options)
 File "/home/laura/miniconda3/envs/ommprotocol/lib/python3.6/site-packages/simtk/openmm/app/amberprmtopfile.py", line 235, in createSystem
   raise ValueError('Illegal nonbonded method for a non-periodic system')
ValueError: Illegal nonbonded method for a non-periodic system

I used .prmtop and .inpcrd files and the standard_jinja.yaml input file (changed only the timestep) and instead of constrained_atoms, I used restrained_atoms with the protein selection.

Thanks!

Random Velocities

Hello!

I would like to run replicas with your script, but starting from a restart point and randomizing the initial velocities. Is this already considered in your script or should I change something?

Thank you.

unsupported operand type(s) for /: 'datetime.timedelta' and 'int'

When printing out on screen:

Traceback (most recent call last):
File "/home/daniel/anaconda3/envs/py27/bin/ommprotocol", line 9, in
load_entry_point('ommprotocol', 'console_scripts', 'ommprotocol')()
File "/home/daniel/repos/ommprotocol/ommprotocol/init.py", line 19, in run_protocol
protocol(handler, cfg)
File "/home/daniel/repos/ommprotocol/ommprotocol/md.py", line 91, in protocol
pos, vel, box = stage.run()
File "/home/daniel/repos/ommprotocol/ommprotocol/md.py", line 314, in run
self.simulate()
File "/home/daniel/repos/ommprotocol/ommprotocol/md.py", line 344, in simulate
self.simulation.step(steps)
File "/home/daniel/anaconda3/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/simulation.py", line 132, in step
self._simulate(endStep=self.currentStep+steps)
File "/home/daniel/anaconda3/envs/py27/lib/python2.7/site-packages/simtk/openmm/app/simulation.py", line 219, in _simulate
reporter.report(self, state)
File "/home/daniel/repos/ommprotocol/ommprotocol/io.py", line 584, in report
delta = (self.total_steps-steps)*time/steps
TypeError: unsupported operand type(s) for /: 'datetime.timedelta' and 'int'

Version --> ommprotocol v0.1.3+0.g24fde72.dirty

Provide complete examples and tutorials

README.md and examples/ are not enough. We should add complete tutorials and proper documentation, as suggested by @ajasja in #9. This would be probably tackled when I start writing the manuscript for OMMProtocol, around February.

In the meantime, we can chat here and provide different systems and sources. For example, some tutorials could include:

OMMProtocol

  • Absolute beginner: prepared PDB file compatible with standard forcefield.
  • Intermediate: prepare dirty PDB with PDBFixer.
  • Advanced: use ambertools to prepare Prmtop/Inpcrd and then come back to ommprotocol.

OMMAnalyze

  • Just to showcase how to obtain quick plots using the output files from OMMProtocol.

Dependency on the Anaconda-specific, non-upstream ruamel_yaml variant

I'm currently looking at what packages on conda-forge have a dependency on the non-maintained ruamel_yaml package.

I'd like us to remove ruamel_yaml from future builds.
To be able to do this with good conscience, it'd be good if ommprotocol could be updated to use upstream ruamel.yaml always.

ommprotocol.io already uses a try: ... except ImportError: ... construct with ruamel.yaml as a fallback, which is good.
It would, however, need ruamel.yaml<0.18 since it uses the deprecated top-level ruamel.yaml.load function.
(Details for the upstream change can be read at https://pypi.org/project/ruamel.yaml/0.18.3/ .)

Would it be possible for you to update ommprotocol.io to be compatible with ruamel.yaml=0.18 and change the dependency from ruamel_yaml to ruamel.yaml?

xref: conda-forge/ommprotocol-feedstock#1

Flush

Flush=True cause problem with Python 2.7 when printing results on screen

Version --> ommprotocol 0.1.3

AttributeError while trying to run a simulation of a metalloprotein

Hello!

I am trying to run a simulation of a metalloprotein using openmmprotocol, but when the first minimization step starts, it crashes due to the following error:

#1/8: eq1_protein [Constrained protein]
   Warning: `constraints` and `constrained_atoms` are incompatible. Removing `constraints` option for this stage.
   Minimizing...
Traceback (most recent call last):
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/bin/ommprotocol", line 11, in <module>
     load_entry_point('ommprotocol==0.1.10', 'console_scripts', 'ommprotocol')()
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/__init__.py", line 63, in run_protocol
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 85, in protocol
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 296, in run
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 482, in log_reporter
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 559, in system_mass
   File "/QFsoft/applic/python/conda/envs/openmm-7.1/lib/python3.6/site-packages/ommprotocol-0.1.10-py3.6.egg/ommprotocol/md.py", line 559, in <genexpr>
AttributeError: 'NoneType' object has no attribute 'mass'

The protein I am working with has some metals, so I parametrized them before generating the prmtop and inpcrd files. After that, I loaded the parameters in xleap and I generated the .prmtop and .inpcrd files without any errors.

I would like to know where the AttributeError comes from, and how to avoid it in order to run the simulation.

Thank you in advance!

Automatic restart of simulation

Hi!

I like the idea of the package very much (I do something similar currently with a bunch of bash files and NAMD, which is a nightmare to maintain/extend).

In the case where trajectory_new_every is set (for example every 1 ns), and the simulation gets interrupted after 15 ns, is there an option to continue from the 15 th ns? In other words, does ommprotocol know where it has to start etc...

Windows support

I only found the linux64 build on conda. Any reason why the package would not work on windows?

Error in using restraints?

Hi, I am getting a NotImplementedError when I try to use position restraints with ommprotocol. I am using inpcrd/prmtop input files. Below is the relevant stage in my yaml input:

-   name: eq1_NPT
    temperature: 10
    restrained_atoms: protein
    restraint_strength: 12
    minimization: False
    steps: 12500
    trajectory: DCD
    trajectory_every: 500

And below is the error output. I'm happy to provide more details if needed. Many thanks!

Traceback (most recent call last):
File "/home/hannahw1/miniconda3/envs/msmb/bin/ommprotocol", line 11, in
load_entry_point('ommprotocol==0.1.4+8.g195b837.dirty', 'console_scripts', 'ommprotocol')()
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/ommprotocol-0.1.4+8.g195b837.dirty-py3.5.egg/ommprotocol/init.py", line 20, in run_protocol
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/ommprotocol-0.1.4+8.g195b837.dirty-py3.5.egg/ommprotocol/md.py", line 91, in protocol
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/ommprotocol-0.1.4+8.g195b837.dirty-py3.5.egg/ommprotocol/md.py", line 282, in run
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/ommprotocol-0.1.4+8.g195b837.dirty-py3.5.egg/ommprotocol/md.py", line 461, in apply_restraints
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/ommprotocol-0.1.4+8.g195b837.dirty-py3.5.egg/ommprotocol/md.py", line 567, in apply_force
File "/home/hannahw1/miniconda3/envs/msmb/lib/python3.5/site-packages/simtk/openmm/openmm.py", line 9617, in addParticle
return _openmm.CustomExternalForce_addParticle(self, *args)
NotImplementedError: Wrong number or type of arguments for overloaded function 'CustomExternalForce_addParticle'.
Possible C/C++ prototypes are:
OpenMM::CustomExternalForce::addParticle(int,std::vector< double,std::allocator< double > > const &)
OpenMM::CustomExternalForce::addParticle(int)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.