Giter Site home page Giter Site logo

sumd's Introduction

SuMD

Python code to run Supervised Molecular Dynamics (SuMD) simulations
N.B.: the Python code to analyze SuMD trajectories can be found at github.com/molecularmodelingsection/SuMD-analyzer

Reference publication:
"Investigating RNA-Protein Recognition Mechanisms through Supervised Molecular Dynamics (SuMD) Simulations."
Pavan M., Bassani D., Sturlese M., Moro S. NAR Genomics and Bioinformatics https://doi.org/10.1093/nargab/lqac088

SuMD is a Python code that can be utilized to perform Supervised Molecular Dynamics simulations. The algorithm is deeply explained is the works of Sabbadin et. al (2014)1, Cuzzolin et. al (2016)2 and Salmaso et al. (2017)3, other than in the reference publication.

  1. Sabbadin, D.; Moro, S. Supervised Molecular Dynamics (SuMD) as a Helpful Tool to Depict GPCR-Ligand Recognition Pathway in a Nanosecond Time Scale. J. Chem. Inf. Model. 2014, 54, 372–376.
  2. Cuzzolin, A.; Sturlese, M.; Deganutti, G.; Salmaso, V.; Sabbadin, D.; Ciancetta, A.; Moro, S. Deciphering the Complexity of Ligand-Protein Recognition Pathways Using Supervised Molecular Dynamics (SuMD) Simulations. J. Chem. Inf. Model. 2016, 56, 687–705.
  3. Salmaso, V.; Sturlese, M.; Cuzzolin, A.; Moro, S. Exploring Protein-Peptide Recognition Pathways Using a Supervised Molecular Dynamics Approach. Structure. 2017, 25,655–662.e2.

SuMD simulations can be performed starting from a pre-equilibrated system in which the ligand is placed far enough from the protein. Consider that the distance separating the protein from the ligand directly affects the system size and, therefore, the speed of the simulation. Nonetheless, take care of the PME threshold (9 Å), the long-range component of attractive forces. So the general idea is to place the ligand at a distance, at least, bigger than the PME cut-off from any protein atom. The distance should be set even depending on the hydrodynamic properties of the ligand and the complexity of the binding event. As rule of thumb, we suggest to place the ligand in a random conformation, in a range of 30-70 Å. Two different force field are supported to run the simulation, AMBER and CHARMM.

SuMD requires a configuration file (here named “inputfile.dat”) organized in three major sections containing information about (i) the system, (ii) the supervision procedure, and (iii) the simulation settings. An explanation on each required parameter to run the simulation is provided in the inputfile_commented.dat file.
N.B.: in order to launch the simulation, the pdb file containing the coordinates the input coordinates for the system to be simulated, a prmtop/psf file containing the corrispondent topology, and an xsc file containing the box dimension should be provided. The topology and box dimension file MUST have the same basename as the pdb file. In the case you choose CHARMM as force field, a combined prm/par file containing all the parameters needed to describe the system must also be provided and indicated in the input file under the parameter flag.

The current version of the code only supports the ACEMD3 engine to run molecular dynamics simulations. All Python libraries required to successfully run the code are embedded into a YAML file ('sumd.yml') that can be used to reconstitute the right Python virtual environment through the conda package manager.
N.B.: a dot file ('.suMDrc') is present in the directory. In this file you can specify the path to the acemd3 executable that you want to use. For most users, anyway, the default path should be fine.

To reconstitute the right Python virtual environment:

  • conda create -f sumd.yml

In case you prefer to reconstuct it manually:

  1. conda create -n sumd python==3.10
  2. conda activate sumd
  3. conda install -c conda-forge prody
  4. conda install -c conda-forge -c acellera acemd

To run the code:

  1. open a terminal within the directory of interest
  2. activate the right conda environment (conda activate sumd)
  3. run the code (python3 /PATH/TO/SUMD_DIRECTORY/suMD inputfile.dat)

To test the code, an example system is provided in the test directory.

Latest cool applications of the SuMD code:

sumd's People

Contributors

molecularmodelingsection avatar rev7795 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

Forkers

cn-lugen

sumd's Issues

Error Raised: No Input file specified

Hi,
I am trying to run a suMD simulation of membrane protein system prepared using AMBER. I am getting the following error. Please help resolve this error. Let me know if more details required.

suMD simulation tries to Initialize..

Starting New suMD simulation

Parameters selected:
structure: sumd
ligand: resname UNK
main_chain: protein
ligand_chain: resname UNK
ligand_cm: resname UNK
resid: 25 26 29 30 33 34 36 81 84 85 88 89 92 151 154 155 158 162 180 183 184 187 188 191 300 304 307 308 309 334 335 337 338 345 407 438 439 442 446 449
randomize: no
Force Field: AMBER
n. device: 0
constrain: no
n_steps 150000
slope: 0.0
Maximum Failed: 17
Parameter file: sumd.prmtop

Error Raised: No Input file specified

Please give a valid input file "selection.dat" (look at /Examples/InputsuMD)

Failed test file simulation

hello,

I tested a simulation with the test file and obtained this error:

WARNING: "acemd3" is depricated and will be removed in a future release! Use "acemd" instead
@> 226933 atoms and 1 coordinate set(s) were parsed in 1.25s.
Traceback (most recent call last):
File "/home/alexandre/Downloads/SuMD-main/test_folder/test/suMD.py", line 646, in
Monitor1.ANA('suMD-step{}.dcd'.format(su.stepsuMD), 'attempting')
File "/home/alexandre/Downloads/SuMD-main/test_folder/test/suMD.py", line 148, in ANA
self.distance_dcd(fdcd, self.distance_pdb("Distance-step1.dat"))
File "/home/alexandre/Downloads/SuMD-main/test_folder/test/suMD.py", line 101, in distance_pdb
binding_site = self.structure.select("{} and resid {} and not ({}) and not water".format(str(self.main_ch),(self.site), self.lig))
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/prody/atomic/atomic.py", line 232, in select
return SELECT.select(self, selstr, **kwargs)
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/prody/atomic/select.py", line 894, in select
indices = self.getIndices(atoms, selstr, **kwargs)
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/prody/atomic/select.py", line 952, in getIndices
torf = self.getBoolArray(atoms, selstr, **kwargs)
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/prody/atomic/select.py", line 1003, in getBoolArray
parser = self._getParser(selstr)
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/prody/atomic/select.py", line 1102, in _getParser
parser.enablePackrat()
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/pyparsing/util.py", line 265, in _inner
return fn(*args, **kwargs)
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/pyparsing/core.py", line 1132, in enable_packrat
ParserElement.packrat_cache = _FifoCache(cache_size_limit) # type: ignore[assignment]
File "/home/alexandre/anaconda3/envs/sumd/lib/python3.10/site-packages/pyparsing/util.py", line 105, in init
keyring = [object()] * size
TypeError: can't multiply sequence by non-int of type 'Forward'

Any tips on how to solve it ?

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.