All modules for which code is available
35 |- core.geometry 36 |
- core.models 37 |
- core.system 38 |
- reporter.sbm_reporter 39 |
├── .gitignore ├── LICENSE ├── README.md ├── docs ├── .buildinfo ├── .nojekyll ├── Makefile ├── build │ ├── doctrees │ │ ├── environment.pickle │ │ ├── index.doctree │ │ └── sections │ │ │ ├── introduction.doctree │ │ │ └── models.doctree │ └── html │ │ ├── .buildinfo │ │ ├── .nojekyll │ │ ├── _modules │ │ ├── core │ │ │ ├── geometry.html │ │ │ ├── models.html │ │ │ └── system.html │ │ ├── index.html │ │ └── reporter │ │ │ └── sbm_reporter.html │ │ ├── _sources │ │ ├── index.rst.txt │ │ └── sections │ │ │ ├── introduction.rst.txt │ │ │ └── models.rst.txt │ │ ├── _static │ │ ├── alabaster.css │ │ ├── basic.css │ │ ├── custom.css │ │ ├── doctools.js │ │ ├── documentation_options.js │ │ ├── file.png │ │ ├── jquery-3.4.1.js │ │ ├── jquery.js │ │ ├── language_data.js │ │ ├── minus.png │ │ ├── plus.png │ │ ├── pygments.css │ │ ├── searchtools.js │ │ ├── underscore-1.3.1.js │ │ └── underscore.js │ │ ├── genindex.html │ │ ├── index.html │ │ ├── objects.inv │ │ ├── py-modindex.html │ │ ├── search.html │ │ ├── searchindex.js │ │ └── sections │ │ ├── introduction.html │ │ └── models.html ├── index.html └── source │ ├── conf.py │ ├── index.rst │ └── sections │ ├── introduction.rst │ └── models.rst ├── sbmOpenMM ├── __init__.py ├── core │ ├── __init__.py │ ├── geometry.py │ ├── models.py │ └── system.py ├── datasets │ ├── __init__.py │ ├── downloader.py │ └── foxp1_folding.py ├── parameters │ ├── __init__.py │ ├── amber.json │ ├── amber.py │ ├── ca_parameters.py │ └── oplsaa.py └── reporter │ ├── __init__.py │ └── sbm_reporter.py ├── setup.py └── tutorials ├── basic ├── 01-AlphaCarbon │ ├── coarseGrainedSBM.ipynb │ └── inputs │ │ ├── 1YPA_I.pdb │ │ └── 1YPA_I_CA.contacts ├── 02-AllAtom │ ├── allHeavyAtomSBM.ipynb │ └── inputs │ │ ├── 1YPA_I.pdb │ │ └── 1YPA_I_AA.contacts ├── 03-FoldingTemperature │ ├── foldingTemperature.ipynb │ └── inputs │ │ ├── 1YPA_I.pdb │ │ ├── 1YPA_I_CA.contacts │ │ ├── pywham_hc_better_estimate.xml │ │ ├── pywham_hc_rough_estimate.xml │ │ ├── pywham_iterative_01.xml │ │ ├── pywham_iterative_02.xml │ │ ├── pywham_iterative_03.xml │ │ ├── pywham_iterative_04.xml │ │ ├── pywham_iterative_05.xml │ │ ├── pywham_iterative_06.xml │ │ ├── pywham_iterative_07.xml │ │ ├── pywham_iterative_08.xml │ │ ├── pywham_iterative_09.xml │ │ └── pywham_iterative_10.xml ├── 04-FreeEnergySurface │ ├── freeEnergyProfile.ipynb │ └── inputs │ │ ├── 1YPA_I.pdb │ │ ├── 1YPA_I_CA.contacts │ │ ├── pywham_Qf_RMSD_free_energy.xml │ │ ├── pywham_Qf_free_energy.xml │ │ └── pywham_RMSD_free_energy.xml └── 05-MultiBasin │ ├── input │ ├── AK_close.pdb │ ├── AK_close_CA.contacts │ ├── AK_conformationalChange.webm │ ├── AK_open.pdb │ ├── AK_open_CA.contacts │ └── fe_wham.xml │ └── multiBasinModel.ipynb └── folding └── 01-FoxP1_equilibrium_folding ├── 01-Production.ipynb ├── 02-Analysis.ipynb ├── input ├── FoxP_monomer.contacts └── FoxP_monomer.pdb ├── other_notebooks ├── Chapman_Kolmogorov.ipynb ├── getTStrajectory.ipynb └── radiusOfGyration.ipynb └── output ├── radiusOfGyration.npy └── ts_trajectory.dcd /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 CompBiochBiophLab 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # SBMOpenMM 2 | 3 | ## Description 4 | 5 | SBMOpenMM is a Python library to run protein structure-based model (SBM) simulations using OpenMM toolkit. The library offers flexibility for creating SBM force fields that can be customised to capture different aspects of protein SBM potential energy exploration. 6 | 7 | Considering an input structure, the library automatizes the creation of forces to specify it as the only minimum configuration in the potential energy function. Bonds, angles and torsions are maintained close to their equilibrium configuration, while native contact interactions are allowed to form and break using regular or modified Lennard-Jones potentials. This allows complete and local protein unfolding, restricting the interactions only to the evolutionarily relevant chemical contacts, to explore more thoroughly the relevant configurational space of protein folding and function. 8 | 9 | Different granularities for the models can be selected as All-heavy-Atom and alpha-carbon representations. These basic models can also be extended to multi-basin potentials employing more than one input configuration. Here, shared native contacts are modeled with special Gaussian functions to allow for more than one equilibrium distance. 10 | 11 | The library offers methods to tailor forcefield parameter for each force term. Combining these basic methods and force implementations, SBMOpenMM offers easy set up of more complex force field definition that can aid in a better exploration of different biophysical phenomena. 12 | 13 | ## Installation 14 | 15 | ### Requirements 16 | 17 | The library was written and tested with python 3.6 and has only two other python dependencies: 18 | 19 | - [openmm>=7.0](http://openmm.org/) 20 | - [numpy>=1.15](https://numpy.org/) 21 | 22 | ### From Source code 23 | 24 | The source code can be obtained from [GitHub]("https://github.com/CompBiochBiophLab/sbm-openmm") or by directly downloading it from the following link: 25 | 26 | [Download SBMOpenMM source code](https://github.com/CompBiochBiophLab/sbm-openmm/archive/master.zip) 27 | 28 | After unziping the source code file and changing to the source directory, execute: 29 | 30 | python setup.py install 31 | 32 | This should build and install SBMOpenMM into your python environment. 33 | 34 | ### Using pip 35 | 36 | Using the correct python 3.6 (or higher) environment, execute: 37 | 38 | pip install SBMOpenMM 39 | 40 | ## Documentation 41 | 42 | Documentation for the SBMOpenMM library functions can be found in the following link: 43 | 44 | [SBMOpenMM Documentation](https://compbiochbiophlab.github.io/sbm-openmm) 45 | 46 | ## Tutorials 47 | 48 | Tutorials are available for learning how to set up SBM simulations using SBMOpenMM. These are shown inside GitHub as executed jupyter notebooks. If you prefer to run them yourself, please go to the "tutorials" folder inside the sbm-openmm package. 49 | 50 | ### Basic tutorials 51 | 52 | [01 - Coarse grained SBM simulations](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/basic/01-AlphaCarbon/coarseGrainedSBM.ipynb) 53 | 54 | [02 - Coarse grained SBM simulations](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/basic/02-AllAtom/allHeavyAtomSBM.ipynb) 55 | 56 | [03 - Estimating the folding temperature](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/basic/03-FoldingTemperature/foldingTemperature.ipynb) 57 | 58 | [04 - Estimating free energy profiles](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/basic/04-FreeEnergySurface/freeEnergyProfile.ipynb) 59 | 60 | [05 - Setting up a multi-basin SBM](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/basic/05-MultiBasin/multiBasinModel.ipynb) 61 | 62 | ### Applied tutorials 63 | 64 | [01 - Protein Folding](https://github.com/CompBiochBiophLab/sbm-openmm/blob/master/tutorials/folding/01-FoxP1_equilibrium_folding/02-Analysis.ipynb) 65 | -------------------------------------------------------------------------------- /docs/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 0975fc212ac7abe546c5edb878a5312b 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/.nojekyll -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- 1 | # Minimal makefile for Sphinx documentation 2 | # 3 | 4 | # You can set these variables from the command line. 5 | SPHINXOPTS = 6 | SPHINXBUILD = sphinx-build 7 | SPHINXPROJ = sbmOpenMM 8 | SOURCEDIR = source 9 | BUILDDIR = build 10 | 11 | # Put it first so that "make" without argument is like "make help". 12 | help: 13 | @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 14 | 15 | .PHONY: help Makefile 16 | 17 | # Catch-all target: route all unknown targets to Sphinx using the new 18 | # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). 19 | %: Makefile 20 | @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) 21 | 22 | github: 23 | @make html 24 | @cp -a build/html/. ../docs 25 | -------------------------------------------------------------------------------- /docs/build/doctrees/environment.pickle: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/doctrees/environment.pickle -------------------------------------------------------------------------------- /docs/build/doctrees/index.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/doctrees/index.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/sections/introduction.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/doctrees/sections/introduction.doctree -------------------------------------------------------------------------------- /docs/build/doctrees/sections/models.doctree: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/doctrees/sections/models.doctree -------------------------------------------------------------------------------- /docs/build/html/.buildinfo: -------------------------------------------------------------------------------- 1 | # Sphinx build info version 1 2 | # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. 3 | config: 1f0175ccf1934841115e635ed342ff3e 4 | tags: 645f666f9bcd5a90fca523b33c5a78b7 5 | -------------------------------------------------------------------------------- /docs/build/html/.nojekyll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/html/.nojekyll -------------------------------------------------------------------------------- /docs/build/html/_modules/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |
6 | 7 |
35 | #!/usr/bin/env python
36 | # coding: utf-8
37 |
38 | # In[1]:
39 |
40 |
41 | from simtk.openmm.app.statedatareporter import StateDataReporter
42 | from simtk import unit
43 | from sbmOpenMM.core import system
44 |
45 |
46 | # In[ ]:
47 |
48 |
49 | [docs]class sbmReporter(StateDataReporter):
50 | """
51 | A special case of the StateDataReporter class that outputs information about a simulation,
52 | such as energy and temperature, etc. to a file. This special reporter outputs the sbmOpenMM
53 | force group energies inside the sbmOpenMM system object.
54 |
55 | It is used in the same way as the OpenMM StateDataReporter class, but it takes as additional
56 | input an instance of the sbmOpenMM object with the option 'sbmObject'.
57 | """
58 |
59 | def __init__(self, file, reportInterval, sbmObject=None, **kwargs):
60 | """
61 | Initialises the SBM OpenMM system class.
62 |
63 | Parameters
64 | ----------
65 | reportInterval : int
66 | The interval (in time steps) at which to write frames
67 | sbmObject : sbmOpenMM.system
68 | The sbmOpenMM system instance to read force groups from.
69 | **kwargs : openMM StateDataReporter arguments
70 |
71 | Returns
72 | -------
73 | initialized StateDataReporter class.
74 |
75 | """
76 | super(sbmReporter, self).__init__(file, reportInterval, **kwargs)
77 | self._sbmObject = sbmObject
78 |
79 | def _constructHeaders(self):
80 | """
81 | Build headers for the StateDataReporter class. It builds the headers
82 | for the force groups contained in the sbmOpenMM system instance.
83 |
84 | Parameters
85 | ----------
86 | None
87 |
88 | Returns
89 | -------
90 | headers : list
91 | List with strings representing the headers to be written to the report file.
92 | """
93 |
94 | headers = super()._constructHeaders()
95 | if isinstance(self._sbmObject, system):
96 | for i,n in enumerate(self._sbmObject.forceGroups):
97 | headers.append(n+' (kJ/mol)')
98 |
99 | return headers
100 |
101 | def _constructReportValues(self, simulation, state):
102 | """
103 | Calculates the energies for the force groups in the sbmOpenMM system instance.
104 |
105 | Parameters
106 | ----------
107 | None
108 |
109 | Returns
110 | -------
111 | values : list
112 | List with floats representing the values to be written to the report file.
113 | """
114 |
115 | values = super()._constructReportValues(simulation, state)
116 |
117 | if isinstance(self._sbmObject, system):
118 | for i,n in enumerate(self._sbmObject.forceGroups):
119 | values.append(simulation.context.getState(getEnergy=True, groups={i}).getPotentialEnergy().value_in_unit(unit.kilojoules_per_mole))
120 |
121 | return values
122 |
123 |
' + _('Hide Search Matches') + '
') 234 | .appendTo($('#searchbox')); 235 | } 236 | }, 237 | 238 | /** 239 | * init the domain index toggle buttons 240 | */ 241 | initIndexTable : function() { 242 | var togglers = $('img.toggler').click(function() { 243 | var src = $(this).attr('src'); 244 | var idnum = $(this).attr('id').substr(7); 245 | $('tr.cg-' + idnum).toggle(); 246 | if (src.substr(-9) === 'minus.png') 247 | $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); 248 | else 249 | $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); 250 | }).css('display', ''); 251 | if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { 252 | togglers.click(); 253 | } 254 | }, 255 | 256 | /** 257 | * helper function to hide the search marks again 258 | */ 259 | hideSearchWords : function() { 260 | $('#searchbox .highlight-link').fadeOut(300); 261 | $('span.highlighted').removeClass('highlighted'); 262 | }, 263 | 264 | /** 265 | * make the url absolute 266 | */ 267 | makeURL : function(relativeURL) { 268 | return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; 269 | }, 270 | 271 | /** 272 | * get the current relative url 273 | */ 274 | getCurrentURL : function() { 275 | var path = document.location.pathname; 276 | var parts = path.split(/\//); 277 | $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { 278 | if (this === '..') 279 | parts.pop(); 280 | }); 281 | var url = parts.join('/'); 282 | return path.substring(url.lastIndexOf('/') + 1, path.length - 1); 283 | }, 284 | 285 | initOnKeyListeners: function() { 286 | $(document).keyup(function(event) { 287 | var activeElementType = document.activeElement.tagName; 288 | // don't navigate when in search box or textarea 289 | if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT') { 290 | switch (event.keyCode) { 291 | case 37: // left 292 | var prevHref = $('link[rel="prev"]').prop('href'); 293 | if (prevHref) { 294 | window.location.href = prevHref; 295 | return false; 296 | } 297 | case 39: // right 298 | var nextHref = $('link[rel="next"]').prop('href'); 299 | if (nextHref) { 300 | window.location.href = nextHref; 301 | return false; 302 | } 303 | } 304 | } 305 | }); 306 | } 307 | }; 308 | 309 | // quick alias for translations 310 | _ = Documentation.gettext; 311 | 312 | $(document).ready(function() { 313 | Documentation.init(); 314 | }); 315 | -------------------------------------------------------------------------------- /docs/build/html/_static/documentation_options.js: -------------------------------------------------------------------------------- 1 | var DOCUMENTATION_OPTIONS = { 2 | URL_ROOT: document.getElementById("documentation_options").getAttribute('data-url_root'), 3 | VERSION: '0.0.1', 4 | LANGUAGE: 'None', 5 | COLLAPSE_INDEX: false, 6 | BUILDER: 'html', 7 | FILE_SUFFIX: '.html', 8 | HAS_SOURCE: true, 9 | SOURCELINK_SUFFIX: '.txt', 10 | NAVIGATION_WITH_KEYS: false 11 | }; -------------------------------------------------------------------------------- /docs/build/html/_static/file.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/html/_static/file.png -------------------------------------------------------------------------------- /docs/build/html/_static/minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/html/_static/minus.png -------------------------------------------------------------------------------- /docs/build/html/_static/plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/html/_static/plus.png -------------------------------------------------------------------------------- /docs/build/html/_static/pygments.css: -------------------------------------------------------------------------------- 1 | .highlight .hll { background-color: #ffffcc } 2 | .highlight { background: #eeffcc; } 3 | .highlight .c { color: #408090; font-style: italic } /* Comment */ 4 | .highlight .err { border: 1px solid #FF0000 } /* Error */ 5 | .highlight .k { color: #007020; font-weight: bold } /* Keyword */ 6 | .highlight .o { color: #666666 } /* Operator */ 7 | .highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ 8 | .highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ 9 | .highlight .cp { color: #007020 } /* Comment.Preproc */ 10 | .highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ 11 | .highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ 12 | .highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ 13 | .highlight .gd { color: #A00000 } /* Generic.Deleted */ 14 | .highlight .ge { font-style: italic } /* Generic.Emph */ 15 | .highlight .gr { color: #FF0000 } /* Generic.Error */ 16 | .highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ 17 | .highlight .gi { color: #00A000 } /* Generic.Inserted */ 18 | .highlight .go { color: #333333 } /* Generic.Output */ 19 | .highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ 20 | .highlight .gs { font-weight: bold } /* Generic.Strong */ 21 | .highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ 22 | .highlight .gt { color: #0044DD } /* Generic.Traceback */ 23 | .highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ 24 | .highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ 25 | .highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ 26 | .highlight .kp { color: #007020 } /* Keyword.Pseudo */ 27 | .highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ 28 | .highlight .kt { color: #902000 } /* Keyword.Type */ 29 | .highlight .m { color: #208050 } /* Literal.Number */ 30 | .highlight .s { color: #4070a0 } /* Literal.String */ 31 | .highlight .na { color: #4070a0 } /* Name.Attribute */ 32 | .highlight .nb { color: #007020 } /* Name.Builtin */ 33 | .highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ 34 | .highlight .no { color: #60add5 } /* Name.Constant */ 35 | .highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ 36 | .highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ 37 | .highlight .ne { color: #007020 } /* Name.Exception */ 38 | .highlight .nf { color: #06287e } /* Name.Function */ 39 | .highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ 40 | .highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ 41 | .highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ 42 | .highlight .nv { color: #bb60d5 } /* Name.Variable */ 43 | .highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ 44 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */ 45 | .highlight .mb { color: #208050 } /* Literal.Number.Bin */ 46 | .highlight .mf { color: #208050 } /* Literal.Number.Float */ 47 | .highlight .mh { color: #208050 } /* Literal.Number.Hex */ 48 | .highlight .mi { color: #208050 } /* Literal.Number.Integer */ 49 | .highlight .mo { color: #208050 } /* Literal.Number.Oct */ 50 | .highlight .sa { color: #4070a0 } /* Literal.String.Affix */ 51 | .highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ 52 | .highlight .sc { color: #4070a0 } /* Literal.String.Char */ 53 | .highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ 54 | .highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ 55 | .highlight .s2 { color: #4070a0 } /* Literal.String.Double */ 56 | .highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ 57 | .highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ 58 | .highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ 59 | .highlight .sx { color: #c65d09 } /* Literal.String.Other */ 60 | .highlight .sr { color: #235388 } /* Literal.String.Regex */ 61 | .highlight .s1 { color: #4070a0 } /* Literal.String.Single */ 62 | .highlight .ss { color: #517918 } /* Literal.String.Symbol */ 63 | .highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ 64 | .highlight .fm { color: #06287e } /* Name.Function.Magic */ 65 | .highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ 66 | .highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ 67 | .highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ 68 | .highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ 69 | .highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ -------------------------------------------------------------------------------- /docs/build/html/genindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|
55 |
|
63 |
|
71 |
|
79 |
|
87 |
|
95 |
|
103 |
|
111 |
43 | Please activate JavaScript to enable the search 44 | functionality. 45 |
46 |48 | From here you can search these documents. Enter your search 49 | words into the box below and click "search". Note that the search 50 | function will automatically search for all of the words. Pages 51 | containing fewer words won't appear in the result list. 52 |
53 | 58 | 59 |Structure Based Models (SBMs) are representations of protein systems based on simplifications made over classical Molecular Dynamics (MD) force fields. Their are based on the energy landscape theory of protein folding and the principle of minimal frustration. The models maintain protein structures by focusing on chemical contacts formed at the native protein configuration, ignoring other non-native contacts. This allows for simpler force field definitions which capture essential protein dynamics at a much lower computational expense than traditional MD simulations.
35 |sbmOpenMM is a Python library that offers flexibility to set up SBMs using the MD framework of OpenMM toolkit. It automates the creation of openmm.system classes that contain the necessary force field parameters to run molecular dynamics simulations using a protein structure and a contact map as the only necessary inputs.
36 |sbmOpenMM is divided in three main classes:
37 |geometry
models
system
The first class, geometry, contains methods to calculate the geometrical parameters from the input structures. These parameters are used to define the input conformation as the global minimum configuration in the potential energy function. The second class, models, allows to easily set up predefined SBM models, that encompass coarse grained, all atom and multi basin potentials. The third class, system, is the main class that holds all the methods to define, modify and create SBMs to be simulated with OpenMM.
43 |The library is open-source and offers flexibility to create custom SBMs or to modify the predefined topology based models included in it.
44 | 45 | 46 |