├── .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 | Overview: module code — sbmOpenMM 0.0.1 documentation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 |
33 | 34 |

All modules for which code is available

35 | 40 | 41 |
42 | 43 |
44 |
45 | 59 |
60 |
61 | 69 | 70 | 71 | 72 | 73 | 74 | -------------------------------------------------------------------------------- /docs/build/html/_modules/reporter/sbm_reporter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | reporter.sbm_reporter — sbmOpenMM 0.0.1 documentation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 |
33 | 34 |

Source code for reporter.sbm_reporter

 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 |
124 | 125 |
126 | 127 |
128 |
129 | 143 |
144 |
145 | 153 | 154 | 155 | 156 | 157 | 158 | -------------------------------------------------------------------------------- /docs/build/html/_sources/index.rst.txt: -------------------------------------------------------------------------------- 1 | .. sbmOpenMM documentation master file, created by 2 | sphinx-quickstart on Tue Nov 12 10:07:34 2019. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | .. toctree:: 7 | :caption: Contents 8 | :maxdepth: 3 9 | 10 | sbmOpenMM Documentation 11 | ####################### 12 | 13 | Introduction 14 | ************ 15 | 16 | .. include:: sections/introduction.rst 17 | 18 | SBM Models 19 | ********** 20 | 21 | .. include:: sections/models.rst 22 | 23 | Core classes 24 | ============ 25 | 26 | sbmOpenMM.geometry 27 | ------------------ 28 | 29 | .. automodule:: core 30 | :members: geometry 31 | 32 | sbmOpenMM.models 33 | ---------------- 34 | 35 | .. automodule:: core 36 | :noindex: 37 | :members: models 38 | 39 | sbmOpenMM.system 40 | ---------------- 41 | 42 | .. automodule:: core 43 | :noindex: 44 | :members: system 45 | 46 | Reporter class 47 | ============== 48 | 49 | sbmOpenMM.sbmReporter 50 | --------------------- 51 | 52 | .. automodule:: reporter 53 | :members: sbmReporter 54 | 55 | -------------------------------------------------------------------------------- /docs/build/html/_sources/sections/introduction.rst.txt: -------------------------------------------------------------------------------- 1 | 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. 2 | 3 | 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. 4 | 5 | sbmOpenMM is divided in three main classes: 6 | 7 | 1. geometry 8 | 2. models 9 | 3. system 10 | 11 | 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. 12 | 13 | The library is open-source and offers flexibility to create custom SBMs or to modify the predefined topology based models included in it. 14 | -------------------------------------------------------------------------------- /docs/build/html/_sources/sections/models.rst.txt: -------------------------------------------------------------------------------- 1 | The models class of sbmOpenMM contains three methods for automatic setting up predefined SBM potentials. It works by initializing a system class with the necessary force field parameters, derived from the input files, to set up one of the possible models which are detailed next: 2 | 3 | Coarse grained, alpha-carbon (CA), model 4 | ++++++++++++++++++++++++++++++++++++++++ 5 | 6 | The coarse grained method represents the protein system as beads centered at the alpha carbons of each residue in the protein. It uses harmonic potentials to hold the covalent connectivity and geometry of the beads. Torsional geometries are modeled with a periodic torsion potential. Native contacts are represented through the use of Lennard-Jones potentials that allow to form and break non-bonded interactions, permitting complete and local unfolding of the structures. 7 | 8 | To create a CA model, call: 9 | 10 | sbmOpenMM.models.getCAModel(pdb_file, contacts_file) 11 | 12 | Here, pdb_file is the path to the PDB format structure of the protein and contacts_file is the path to the contact file containing only the CA atoms of the system. This last file should be numbered considering the CA atoms consecutively. 13 | 14 | The force field equations are: 15 | 16 | .. math:: 17 | H_A = \sum_{bonds}V_{bond}+\sum_{angles}V_{angle}+\sum_{torsions}V_{torsion}+\sum_{contacts}V_{LJ_{12-10}}+\sum_{non-contacts}V_{LJ_{12}} 18 | 19 | .. math:: 20 | V_{bond} = \frac{k_b}{2}(r-r_0)^2 21 | 22 | .. math:: 23 | V_{angle} = \frac{k_a}{2}(\theta-\theta_0)^2 24 | 25 | .. math:: 26 | V_{torsion} = k_t(1-cos(\phi-\phi_0))+\frac{1}{2}(1-cos(3(\phi-\phi_0)))) 27 | 28 | .. math:: 29 | V_{LJ_{12-10}} = \epsilon_{c}(5(\frac{\sigma_{ij}}{r})^{12}-6(\frac{\sigma_{ij}}{r})^{10}) 30 | 31 | .. math:: 32 | V_{LJ_{12}} = \epsilon_{nc}(\frac{\sigma_{nc}}{r})^{12} 33 | 34 | 35 | Here the default values are :math:`k_b=20000\ kJ/(mol \cdot nm^2)`, :math:`k_a=40\ kJ/(mol \cdot rad^2)`, :math:`k_t=1.0\ kJ/mol`, :math:`\epsilon_{c}=1.0\ kJ/mol`, :math:`\epsilon_{nc}=1.0\ kJ/mol` and :math:`\sigma_{nc}=0.4\ nm`. The geometric parameters are set to the calculated structural values in the input structure, with :math:`r_0` the equilibrium bond distance in nanometers, :math:`\theta_0` the equilibrium angle length in radians, :math:`\phi_0` the equilibrium torsional angle in radians and :math:`\sigma_{ij}` the equilibrium contact distance in nanometers. The variable :math:`r` represents, accordingly, the current bond or (non)contact distance in nanometers, :math:`\theta` the current angle length in radians and :math:`\phi` the current torsional angle in radians. 36 | 37 | It is possible to use a :math:`V_{LJ_{12-10-6}}` potential for the native contact interactions, defined as: 38 | 39 | .. math:: 40 | V_{LJ_{12-10-6}} = \epsilon_{c}(13(\frac{\sigma_{ij}}{r})^{12}-18(\frac{\sigma_{ij}}{r})^{10}+4(\frac{\sigma_{ij}}{r})^{6}) 41 | 42 | This potential gives a small energy barrier for contact formation/breaking that emulates a "desolvation effect". To use this potential as the native contact energy function, instead of the :math:`V_{LJ_{12-10}}` potential, give the option contact_force ='12-10-6' to the sbmOpenMM.models.getCAModel() method. 43 | 44 | Note that even if the units for the force constants are given in real physical units (e.g. :math:`kJ/mol`), this is just to match the variables used by OpenMM. The models are not parametrized to equate this real physical values and comparison with experiments will require further adjustment to the energy unit system. 45 | 46 | All-heavy-atoms (AA) model 47 | ++++++++++++++++++++++++++ 48 | 49 | The all-atom model represents the protein system with all its heavy atoms (i.e. excluding hydrogens). It uses harmonic potentials to hold the covalent connectivity, geometry and chirality of the protein residues. Periodic torsional potentials are used to maintain dihedral geometries of backbones and side chains. Native contacts are represented through the use of Lennard-Jones potentials that allow to form and break non-bonded interactions, permitting complete and local unfolding of the structures. 50 | 51 | The method to create an AA model is: 52 | 53 | sbmOpenMM.models.getAllAtomModel(pdb_file, contacts_file) 54 | 55 | Here, pdb_file is the path to the PDB format structure of the protein and contacts_file is the path to the contact file containing only the non-hydorgen atoms of the protein system. 56 | 57 | The force field equations are: 58 | 59 | .. math:: 60 | H_A = \sum_{bonds}V_{bond}+\sum_{angles}V_{angle}+\sum_{torsions}V_{torsion}+\sum_{impropers}V_{improper}+\sum_{planars}V_{planar}+\sum_{contacts}V_{LJ_{12-10}}+\sum_{non-contacts}V_{LJ_{12}} 61 | 62 | .. math:: 63 | V_{bond} = \frac{k_b}{2}(r-r_0)^2 64 | 65 | .. math:: 66 | V_{angle} = \frac{k_a}{2}(\theta-\theta_0)^2 67 | 68 | .. math:: 69 | V_{torsion} = k_t(1-cos(\phi-\phi_0))+\frac{1}{2}(1-cos(3(\phi-\phi_0)))) 70 | 71 | .. math:: 72 | V_{improper} = \frac{k_i}{2}(\chi-\chi_{0})^2 73 | 74 | .. math:: 75 | V_{planar} = \frac{k_p}{2}(\chi-\chi_{0})^2 76 | 77 | .. math:: 78 | V_{LJ_{12-10}} = \epsilon_{c}(5(\frac{\sigma_{ij}}{r})^{12}-6(\frac{\sigma_{ij}}{r})^{10}) 79 | 80 | .. math:: 81 | V_{LJ_{12}} = \epsilon_{nc}(\frac{\sigma_{nc}}{r})^{12} 82 | 83 | Here the default values are :math:`k_b=10000\ kJ/(mol \cdot nm^2)`, :math:`k_a=80\ kJ/(mol \cdot rad^2)`, :math:`k_i=10.0\ kJ/(mol \cdot rad^2)`, :math:`k_p=20.0\ kJ/(mol \cdot rad^2)`, :math:`\epsilon_{nc}=0.1\ kJ/mol` and :math:`\sigma_{nc}=0.25\ nm`. The values of the torsional :math:`k_t` and native energy constant :math:`\epsilon_{c}` are assigned by the following equations: 84 | 85 | .. math:: 86 | k_t=N_{atoms}/3N_{torsions}\ (kJ/mol) 87 | .. math:: 88 | k_c=2N_{atoms}/3N_{contacts}\ (kJ/mol) 89 | 90 | 91 | Where :math:`N_{atoms}` is the total number of atoms in the system, :math:`N_{torsions}` is the total number of proper torsions assigned by the forcefield and :math:`N_{contacts}` is the number of native contacts in the contact file definition. Additionally, the torsional energy constant :math:`k_t` is further divided by classifying the torsions into backbone and sidechain groups. The assignment is carried out as: 92 | 93 | .. math:: 94 | k_{t}^{bb}=2k_t/3 95 | .. math:: 96 | k_{t}^{sc}=k_t/3 97 | 98 | Here, :math:`k_{t}^{bb}` and :math:`k_{t}^{sc}` are the torsional energy constant for backbone and sidechain torsion groups, respectively. This grouping of torsions into backbone and side chains is the default behaviour of the sbmOpenMM.models.getAllAtomModel() method. It can be disabled by given the option group_by_bb_and_sc=False. 99 | 100 | The geometric parameters are set to the calculated structural values in the input structure, with :math:`r_0` the equilibrium bond distance in nanometers, :math:`\theta_0` the equilibrium angle length in radians, :math:`\phi_0` the equilibrium torsional angle in radians, :math:`\chi_0` the equilibrium improper or planar equilibrium angle in radians and :math:`\sigma_{ij}` the equilibrium contact distance in nanometers. The variable :math:`r` represents, accordingly, the current bond or (non)contact distance in nanometers, :math:`\theta` the current angle length in radians, :math:`\phi` the current proper torsional angle in radians and :math:`\chi` the equilibrium improper or planar torsional angles in radians. 101 | 102 | Note that even if the units for the force constants are given in real physical units (e.g. :math:`kJ/mol`), this is just to match the variables used by OpenMM. The models are not parametrized to equate this real physical values and comparison with experiments will require further adjustment to the energy unit system. 103 | 104 | Multi basin model 105 | +++++++++++++++++ 106 | 107 | The multi basin model automates the creation of a dual basin native contact potential. It receives as input two sbmOpenMM system classes, either CA or AA models, containing two different definitions of native contacts. One of the configurations is defined as the main model and the other is considered as the alternate model. All forcefield and topology parameters, different than the native contacts, are passed from the main configuration into the multi basin model. Then, the contacts are compared between the input configurations to define the sets of common and unique contacts. Common contacts with equilibrium length distances that differ more than a threshold are defined as dual basin and are assigned a special non-bonded Gaussian potential. The rest of the contacts are treated as single minima and are modeled with a Lennard-Jones (default) or a single basin Gaussian potential. 108 | 109 | The multi basin Gaussian potential is defined as: 110 | 111 | .. math:: 112 | V_{Multi-basin} = \epsilon_{C}((1+(\frac{r_{ex}}{r})^{12})\prod_{minima}G(r,r_{0}^{\alpha})-1) 113 | .. math:: 114 | G(r,r_{0}^{\alpha}) = 1-exp(\frac{-(r-r_{0}^{\alpha})^2}{2\sigma^2}) 115 | 116 | .. math:: 117 | \sigma^{2} = \frac{(r_{0}^{\alpha})^2}{50ln(2)} 118 | 119 | Here, :math:`\epsilon_{C}` is the native contact energy constant inherited from the main configuration, :math:`r_{ex}` is the contact excluded volume radius, :math:`r_{0}^{\alpha}` is the equilibrium distance for the :math:`alpha`-th configuration and :math:`r` is the current contact distance. :math:`\sigma` is a parameter that modulates the well amplitude of the :math:`V_{Multi-basin}` energy function. The single and double basin gaussian potential are distinguished by the number of :math:`r_{0}^{\alpha}` parameters given. 120 | 121 | The Lennard Jones contact potential is inherited accordingly from the CA or AA models used to build the multi basin SBM. 122 | 123 | The method to create a multi basin model is: 124 | 125 | sbmOpenMM.models.getMultiBasinModel(main_model, alternate_configuration=alternate_model) 126 | 127 | Here, main_model and alternate_model are initialized sbmOpenMM system classes containing full force field parameter definitions. 128 | -------------------------------------------------------------------------------- /docs/build/html/_static/custom.css: -------------------------------------------------------------------------------- 1 | /* This file intentionally left blank. */ 2 | -------------------------------------------------------------------------------- /docs/build/html/_static/doctools.js: -------------------------------------------------------------------------------- 1 | /* 2 | * doctools.js 3 | * ~~~~~~~~~~~ 4 | * 5 | * Sphinx JavaScript utilities for all documentation. 6 | * 7 | * :copyright: Copyright 2007-2019 by the Sphinx team, see AUTHORS. 8 | * :license: BSD, see LICENSE for details. 9 | * 10 | */ 11 | 12 | /** 13 | * select a different prefix for underscore 14 | */ 15 | $u = _.noConflict(); 16 | 17 | /** 18 | * make the code below compatible with browsers without 19 | * an installed firebug like debugger 20 | if (!window.console || !console.firebug) { 21 | var names = ["log", "debug", "info", "warn", "error", "assert", "dir", 22 | "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", 23 | "profile", "profileEnd"]; 24 | window.console = {}; 25 | for (var i = 0; i < names.length; ++i) 26 | window.console[names[i]] = function() {}; 27 | } 28 | */ 29 | 30 | /** 31 | * small helper function to urldecode strings 32 | */ 33 | jQuery.urldecode = function(x) { 34 | return decodeURIComponent(x).replace(/\+/g, ' '); 35 | }; 36 | 37 | /** 38 | * small helper function to urlencode strings 39 | */ 40 | jQuery.urlencode = encodeURIComponent; 41 | 42 | /** 43 | * This function returns the parsed url parameters of the 44 | * current request. Multiple values per key are supported, 45 | * it will always return arrays of strings for the value parts. 46 | */ 47 | jQuery.getQueryParameters = function(s) { 48 | if (typeof s === 'undefined') 49 | s = document.location.search; 50 | var parts = s.substr(s.indexOf('?') + 1).split('&'); 51 | var result = {}; 52 | for (var i = 0; i < parts.length; i++) { 53 | var tmp = parts[i].split('=', 2); 54 | var key = jQuery.urldecode(tmp[0]); 55 | var value = jQuery.urldecode(tmp[1]); 56 | if (key in result) 57 | result[key].push(value); 58 | else 59 | result[key] = [value]; 60 | } 61 | return result; 62 | }; 63 | 64 | /** 65 | * highlight a given string on a jquery object by wrapping it in 66 | * span elements with the given class name. 67 | */ 68 | jQuery.fn.highlightText = function(text, className) { 69 | function highlight(node, addItems) { 70 | if (node.nodeType === 3) { 71 | var val = node.nodeValue; 72 | var pos = val.toLowerCase().indexOf(text); 73 | if (pos >= 0 && 74 | !jQuery(node.parentNode).hasClass(className) && 75 | !jQuery(node.parentNode).hasClass("nohighlight")) { 76 | var span; 77 | var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); 78 | if (isInSVG) { 79 | span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); 80 | } else { 81 | span = document.createElement("span"); 82 | span.className = className; 83 | } 84 | span.appendChild(document.createTextNode(val.substr(pos, text.length))); 85 | node.parentNode.insertBefore(span, node.parentNode.insertBefore( 86 | document.createTextNode(val.substr(pos + text.length)), 87 | node.nextSibling)); 88 | node.nodeValue = val.substr(0, pos); 89 | if (isInSVG) { 90 | var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); 91 | var bbox = node.parentElement.getBBox(); 92 | rect.x.baseVal.value = bbox.x; 93 | rect.y.baseVal.value = bbox.y; 94 | rect.width.baseVal.value = bbox.width; 95 | rect.height.baseVal.value = bbox.height; 96 | rect.setAttribute('class', className); 97 | addItems.push({ 98 | "parent": node.parentNode, 99 | "target": rect}); 100 | } 101 | } 102 | } 103 | else if (!jQuery(node).is("button, select, textarea")) { 104 | jQuery.each(node.childNodes, function() { 105 | highlight(this, addItems); 106 | }); 107 | } 108 | } 109 | var addItems = []; 110 | var result = this.each(function() { 111 | highlight(this, addItems); 112 | }); 113 | for (var i = 0; i < addItems.length; ++i) { 114 | jQuery(addItems[i].parent).before(addItems[i].target); 115 | } 116 | return result; 117 | }; 118 | 119 | /* 120 | * backward compatibility for jQuery.browser 121 | * This will be supported until firefox bug is fixed. 122 | */ 123 | if (!jQuery.browser) { 124 | jQuery.uaMatch = function(ua) { 125 | ua = ua.toLowerCase(); 126 | 127 | var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || 128 | /(webkit)[ \/]([\w.]+)/.exec(ua) || 129 | /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || 130 | /(msie) ([\w.]+)/.exec(ua) || 131 | ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || 132 | []; 133 | 134 | return { 135 | browser: match[ 1 ] || "", 136 | version: match[ 2 ] || "0" 137 | }; 138 | }; 139 | jQuery.browser = {}; 140 | jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; 141 | } 142 | 143 | /** 144 | * Small JavaScript module for the documentation. 145 | */ 146 | var Documentation = { 147 | 148 | init : function() { 149 | this.fixFirefoxAnchorBug(); 150 | this.highlightSearchWords(); 151 | this.initIndexTable(); 152 | if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { 153 | this.initOnKeyListeners(); 154 | } 155 | }, 156 | 157 | /** 158 | * i18n support 159 | */ 160 | TRANSLATIONS : {}, 161 | PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, 162 | LOCALE : 'unknown', 163 | 164 | // gettext and ngettext don't access this so that the functions 165 | // can safely bound to a different name (_ = Documentation.gettext) 166 | gettext : function(string) { 167 | var translated = Documentation.TRANSLATIONS[string]; 168 | if (typeof translated === 'undefined') 169 | return string; 170 | return (typeof translated === 'string') ? translated : translated[0]; 171 | }, 172 | 173 | ngettext : function(singular, plural, n) { 174 | var translated = Documentation.TRANSLATIONS[singular]; 175 | if (typeof translated === 'undefined') 176 | return (n == 1) ? singular : plural; 177 | return translated[Documentation.PLURALEXPR(n)]; 178 | }, 179 | 180 | addTranslations : function(catalog) { 181 | for (var key in catalog.messages) 182 | this.TRANSLATIONS[key] = catalog.messages[key]; 183 | this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); 184 | this.LOCALE = catalog.locale; 185 | }, 186 | 187 | /** 188 | * add context elements like header anchor links 189 | */ 190 | addContextElements : function() { 191 | $('div[id] > :header:first').each(function() { 192 | $('\u00B6'). 193 | attr('href', '#' + this.id). 194 | attr('title', _('Permalink to this headline')). 195 | appendTo(this); 196 | }); 197 | $('dt[id]').each(function() { 198 | $('\u00B6'). 199 | attr('href', '#' + this.id). 200 | attr('title', _('Permalink to this definition')). 201 | appendTo(this); 202 | }); 203 | }, 204 | 205 | /** 206 | * workaround a firefox stupidity 207 | * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 208 | */ 209 | fixFirefoxAnchorBug : function() { 210 | if (document.location.hash && $.browser.mozilla) 211 | window.setTimeout(function() { 212 | document.location.href += ''; 213 | }, 10); 214 | }, 215 | 216 | /** 217 | * highlight the search words provided in the url in the text 218 | */ 219 | highlightSearchWords : function() { 220 | var params = $.getQueryParameters(); 221 | var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; 222 | if (terms.length) { 223 | var body = $('div.body'); 224 | if (!body.length) { 225 | body = $('body'); 226 | } 227 | window.setTimeout(function() { 228 | $.each(terms, function() { 229 | body.highlightText(this.toLowerCase(), 'highlighted'); 230 | }); 231 | }, 10); 232 | $('') 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 | Index — sbmOpenMM 0.0.1 documentation 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 |
30 |
31 | 32 | 33 |
34 | 35 | 36 |

Index

37 | 38 |
39 | A 40 | | B 41 | | C 42 | | G 43 | | P 44 | | R 45 | | S 46 | | T 47 | 48 |
49 |

A

50 | 51 | 55 |
56 | 57 |

B

58 | 59 | 63 |
64 | 65 |

C

66 | 67 | 71 |
72 | 73 |

G

74 | 75 | 79 |
80 | 81 |

P

82 | 83 | 87 |
88 | 89 |

R

90 | 91 | 95 |
96 | 97 |

S

98 | 99 | 103 |
104 | 105 |

T

106 | 107 | 111 |
112 | 113 | 114 | 115 |
116 | 117 |
118 |
119 | 133 |
134 |
135 | 143 | 144 | 145 | 146 | 147 | 148 | -------------------------------------------------------------------------------- /docs/build/html/objects.inv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/docs/build/html/objects.inv -------------------------------------------------------------------------------- /docs/build/html/py-modindex.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Python Module Index — sbmOpenMM 0.0.1 documentation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 29 | 30 | 31 | 32 | 33 | 34 |
35 |
36 |
37 | 38 | 39 |
40 | 41 | 42 |

Python Module Index

43 | 44 |
45 | c | 46 | r 47 |
48 | 49 | 50 | 51 | 53 | 54 | 55 | 58 | 59 | 61 | 62 | 63 | 66 |
 
52 | c
56 | core 57 |
 
60 | r
64 | reporter 65 |
67 | 68 | 69 |
70 | 71 |
72 |
73 | 87 |
88 |
89 | 97 | 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /docs/build/html/search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Search — sbmOpenMM 0.0.1 documentation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 |
33 |
34 |
35 | 36 | 37 |
38 | 39 |

Search

40 |
41 | 42 |

43 | Please activate JavaScript to enable the search 44 | functionality. 45 |

46 |
47 |

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 |
54 | 55 | 56 | 57 |
58 | 59 |
60 | 61 |
62 | 63 |
64 | 65 |
66 |
67 | 71 |
72 |
73 | 81 | 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /docs/build/html/searchindex.js: -------------------------------------------------------------------------------- 1 | Search.setIndex({docnames:["index","sections/introduction","sections/models"],envversion:{"sphinx.domains.c":1,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":1,"sphinx.domains.javascript":1,"sphinx.domains.math":2,"sphinx.domains.python":1,"sphinx.domains.rst":1,"sphinx.domains.std":1,"sphinx.ext.intersphinx":1,"sphinx.ext.viewcode":1,sphinx:56},filenames:["index.rst","sections/introduction.rst","sections/models.rst"],objects:{"":{core:[0,0,0,"-"],reporter:[0,0,0,"-"]},"core.geometry":{angle:[0,2,1,""],bond:[0,2,1,""],position2Array:[0,2,1,""],torsion:[0,2,1,""]},core:{geometry:[0,1,1,""]},reporter:{sbmReporter:[0,1,1,""]}},objnames:{"0":["py","module","Python module"],"1":["py","class","Python class"],"2":["py","method","Python method"]},objtypes:{"0":"py:module","1":"py:class","2":"py:method"},terms:{"2column":0,"2k_t":[0,2],"2n_":[0,2],"3n_":[0,2],"50ln":[0,2],"boolean":0,"break":[0,2],"case":0,"class":[1,2],"default":[0,2],"final":0,"float":0,"function":[0,1,2],"int":0,"new":0,"return":0,"true":0,One:[0,2],The:[0,1,2],Their:[0,1],Then:[0,2],These:[0,1],Use:0,Used:0,Using:0,abmopenmm:0,about:0,accept:0,accord:0,accordingli:[0,2],acid:0,act:0,add:0,added:0,addgaussiancontactforc:0,addgeneralperiodictorsionforc:0,addgenericperiodictorsionforc:0,addharmonicangleforc:0,addharmonicbondforc:0,addharmonicimproperforc:0,addharmonicplanarforc:0,adding:0,addit:0,addition:[0,2],addlj12_10_6contactforc:0,addlj12_10contactforc:0,addlj12_6contactforc:0,addljrepulsionforc:0,addparticl:0,addperiodictorsionforc:0,addsystemforc:0,adjust:[0,2],all:1,allow:[0,1,2],also:0,altern:[0,2],alternate_configur:[0,2],alternate_model:[0,2],amber:0,amino:0,aminoacid:0,among:0,amplitud:[0,2],angl:[0,2],angle0:0,angle_paramet:0,angles_index:0,ani:0,app:0,appli:0,argument:0,arrai:0,arrang:0,ass:0,assign:[0,2],atom:1,attract:0,attribut:0,auto:0,autom:[0,1,2],automat:[0,2],averag:0,backbon:[0,2],barrier:[0,2],base:[0,1],basin:1,bead:[0,2],befor:0,behaviour:[0,2],being:0,between:[0,2],bond0:0,bond:[0,2],bond_paramet:0,bond_threshold:0,bonded_exclusions_index:0,bonds_index:0,both:0,build:[0,2],calcul:[0,1,2],call:[0,2],can:[0,2],captur:[0,1],carri:[0,2],cdot:[0,2],center:[0,2],central:0,chain:[0,2],chang:0,characterist:0,check:0,check_bond_dist:0,checkbonddist:0,checklargeforc:0,chemic:[0,1],chi:[0,2],chi_0:[0,2],chi_:[0,2],chiral:[0,2],cif:0,classic:[0,1],classif:0,classifi:[0,2],coars:1,collect:0,column:0,common:[0,2],common_contact:0,compar:[0,2],comparison:[0,2],complet:[0,2],compon:0,componenet:0,comput:[0,1],configur:[0,1,2],conform:[0,1],connect:[0,2],consecut:[0,2],consid:[0,2],constant:[0,2],contact:[0,1,2],contact_energi:0,contact_fil:0,contact_forc:[0,2],contact_paramet:0,contacts_fil:[0,2],contacts_index:0,contain:[0,1,2],control:0,convert:0,coord1:0,coord2:0,coord3:0,coord4:0,coordin:0,correspond:0,cors:0,cos:[0,2],coval:[0,2],creat:[0,1,2],create_system:0,createsystemobject:0,creation:[0,1,2],current:[0,2],custom:[0,1],custombondforc:0,customnonbondedforc:0,customtorsionforc:0,cutoff:0,dect:0,default_forc:0,default_paramet:0,defin:[0,1,2],definit:[0,1,2],depend:0,deriv:[0,2],desolv:[0,2],detail:[0,2],detect:0,dict:0,dictionari:0,differ:[0,2],dihedr:[0,2],disabl:[0,2],distanc:[0,2],distinguish:[0,2],distribut:0,divid:[0,1,2],doubl:[0,2],double_minima_threshold:0,doublegaussiancontactforc:0,dtheta:0,dtheta_toru:0,dual:[0,2],dual_basin_contact:0,dumpforcefielddata:0,dumppdb:[],dumpstructur:0,dynam:[0,1],each:[0,2],easili:[0,1],effect:[0,2],either:[0,2],element:0,emul:[0,2],encompass:[0,1],energi:[0,1,2],energy_const:0,entri:0,epsilon:0,epsilon_:[0,2],equal:0,equat:[0,2],equilibrium:[0,2],error:0,essenti:[0,1],etc:0,even:[0,2],everi:0,exclud:[0,2],excluded_volume_radiu:0,exclus:0,exp:[0,2],expens:[0,1],experi:[0,2],explicit:0,expon:0,extract:0,fals:[0,2],ff_radii:0,field:[0,1,2],file:[0,2],filter:0,first:[0,1],flexibl:[0,1],floor:0,focus:[0,1],fold:[0,1],follow:[0,2],forc:[0,1,2],force_threshold:0,forcefield:[0,2],forcefield_fil:0,forcegroup:0,form:[0,1,2],format:[0,2],formula:0,found:0,four:0,fourth:0,frac:[0,2],framework:[0,1],from:[0,1,2],frustrat:[0,1],full:[0,2],further:[0,2],gaussian:[0,2],gener:0,generalperiodictorsionforc:0,geometr:[0,1,2],geometri:[1,2],getaanativecontactparamet:0,getaatorsionparamet:0,getallatommodel:[0,2],getangl:0,getatom:0,getbond:0,getcalphaonli:0,getcamodel:[0,2],getimprop:0,getmultibasinmodel:[0,2],getplanar:0,getpropertors:0,give:[0,2],given:[0,2],global:[0,1],grain:1,group:[0,2],group_by_bb_and_sc:[0,2],grouptorsionsbybbandsc:0,h_a:[0,2],harmon:[0,2],harmonicangleforc:0,harmonicbondforc:0,harmonicimproperforc:0,harmonicplanarforc:0,have:0,here:[0,2],hold:[0,1,2],hydorgen:[0,2],hydrogen:[0,2],ignor:[0,1],implement:0,imporp:0,improp:[0,2],improper_paramet:0,impropers_index:0,includ:[0,1],index:0,inform:0,inherit:[0,2],initi:[0,2],initialis:0,initil:0,input:[0,1,2],insid:0,instanc:0,instead:[0,2],integ:0,interact:[0,2],interfac:0,irst:[],item:0,iter:0,its:[0,2],jone:[0,2],just:[0,2],k_a:[0,2],k_b:[0,2],k_c:[0,2],k_i:[0,2],k_p:[0,2],k_t:[0,2],keep:0,kei:0,kept:0,kwarg:0,landscap:[0,1],larg:0,larger:0,last:[0,2],length:[0,2],lennard:[0,2],level:0,librari:[0,1],like:0,list:0,lj12_10_6contactforc:0,lj12_10contactforc:0,lj12_6contactforc:0,lj_:[0,2],ljrepulsionforc:0,load:0,loadforcefieldfromfil:0,local:[0,2],log:0,lower:[0,1],made:[0,1],main:[0,1,2],main_model:[0,2],maintain:[0,1,2],mantain:0,map:[0,1],mass:0,masses_per_el:0,match:[0,2],method:[0,1,2],middl:0,minim:[0,1],minima:[0,2],minimis:0,minimum:[0,1],mix:0,model:1,model_typ:0,modif:0,modifi:[0,1],modul:[0,2],mol:[0,2],molecular:[0,1],more:[0,2],much:[0,1],multi:1,multibasin:0,must:0,n_angl:0,n_atom:0,n_bond:0,n_contact:0,n_improp:0,n_planar:0,n_torsion:0,name:0,nanomet:[0,2],nativ:[0,1,2],ndarrai:0,necessari:[0,1,2],next:[0,2],non:[0,1,2],nonbond:0,none:0,note:[0,2],number:[0,2],numer:0,numpi:0,object:0,offer:[0,1],one:[0,2],ones:0,onli:[0,1,2],open:[0,1],openmm:[0,1,2],oplsaa:0,opslaa:0,option:[0,2],order:0,ordereddict:0,other:[0,1,2],out:[0,2],output:0,output_fil:0,output_unit:0,over:[0,1],packag:0,pair:0,paramet:[0,1,2],parametr:[0,2],paramt:0,paremat:0,pars:0,particl:0,particles_mass:0,particles_radii:0,partion:0,partit:0,pass:[0,2],path:[0,2],pattern:0,pdb:[0,2],pdb_file:[0,2],pdb_path:[],pdbfile:0,pdbxfile:0,penalti:0,per:0,period:[0,2],periodictorsionforc:0,permit:[0,2],phi:[0,2],phi_0:[0,2],physic:[0,2],planar:[0,2],planar_paramet:0,planars_index:0,posit:0,position2arrai:0,possibl:[0,2],potenti:[0,1,2],pre:0,predefin:[0,1,2],present:0,principl:[0,1],print:0,prod_:[0,2],program:0,proper:[0,2],properti:0,protein:[0,1,2],provid:0,python:[0,1],quadrat:0,quantiti:0,r_0:[0,2],rad:[0,2],radian:[0,2],radii:0,radii_per_atom_typ:0,radiu:[0,2],rais:0,read:0,readcontactfil:0,real:[0,2],receiv:[0,2],recogn:0,regexpress:0,remov:0,removehydrogen:0,reportinterv:0,repres:[0,2],represent:[0,1],reprot:0,repuls:0,repuslion:0,requir:[0,2],residu:[0,2],residue_mass:0,residue_radii:0,respect:[0,2],rest:[0,2],rex:0,rf_cutoff:0,rf_epsilon:0,rf_sigma:0,ring:0,rule:0,run:[0,1],same:0,save:0,sbm:[1,2],sbmobject:0,sbmopenmm:[1,2],sbmreport:[],scheme:0,search:0,second:[0,1],self:0,separ:0,set:[0,1,2],setaamassperatomtyp:0,setaaradiusperatomtyp:0,setangleparamet:0,setbondparamet:0,setcamassperresiduetyp:0,setcaradiusperresiduetyp:0,setimproperparamet:0,setnativecontactparamet:0,setparticlesmass:0,setparticlesradii:0,setplanarparamet:0,setpropertorsionparamet:0,share:0,shift:0,should:[0,2],side:[0,2],sidechain:[0,2],sigma1:0,sigma2:0,sigma:[0,2],sigma_:[0,2],significantli:0,simpler:[0,1],simplif:[0,1],simtk:0,simul:[0,1],singl:[0,2],singlegaussiancontactforc:0,small:[0,2],smog:0,sort:0,sourc:[0,1],special:[0,2],specif:0,specifi:0,sphere:0,state:0,statedatareport:0,statist:0,step:0,stop:0,store:0,str:0,string:0,structur:[0,1,2],structure_fil:0,structure_path:0,style:0,subset:0,sum_:[0,2],support:0,system:[1,2],take:0,temperatur:0,term:0,than:[0,1,2],them:0,theori:[0,1],theta0:0,theta:[0,2],theta_0:[0,2],thi:[0,1,2],third:[0,1],three:[0,1,2],threshold:[0,2],thresshold:0,through:[0,2],togeth:0,toolkit:[0,1],topolog:[0,1,2],torions_index:0,torsion:[0,2],torsion_energi:0,torsion_paramet:0,torsions_group:0,torsions_typ:0,total:[0,2],tradit:[0,1],treat:[0,2],treshold:0,trio:0,tupl:0,twice:0,two:[0,2],tww:0,type:0,unfold:[0,2],uniform:0,uniqu:[0,2],unique_contact:0,unit:[0,2],until:0,updat:0,upon:0,use:[0,2],use_lennard_jon:0,used:[0,1,2],useful:0,uses:[0,2],using:[0,1],usual:0,valu:[0,2],vari:0,variabl:[0,2],variant:0,vector:0,volum:[0,2],wai:0,well:[0,2],wether:0,when:0,where:[0,2],wheter:0,whether:0,which:[0,1,2],without:0,work:[0,2],write:0,written:0,you:0,zero:0},titles:["sbmOpenMM Documentation","<no title>","Coarse grained, alpha-carbon (CA), model"],titleterms:{"class":0,all:[0,2],alpha:[0,2],atom:[0,2],basin:[0,2],carbon:[0,2],coars:[0,2],core:0,document:0,geometri:0,grain:[0,2],heavi:[0,2],introduct:0,model:[0,2],multi:[0,2],report:0,sbm:0,sbmopenmm:0,sbmreport:0,system:0}}) -------------------------------------------------------------------------------- /docs/build/html/sections/introduction.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | <no title> — sbmOpenMM 0.0.1 documentation 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 |
29 |
30 | 31 | 32 |
33 | 34 |

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 |
    38 |
  1. geometry

  2. 39 |
  3. models

  4. 40 |
  5. system

  6. 41 |
42 |

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 |
47 | 48 |
49 |
50 | 64 |
65 |
66 | 77 | 78 | 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/source/conf.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # 3 | # Configuration file for the Sphinx documentation builder. 4 | # 5 | # This file does only contain a selection of the most common options. For a 6 | # full list see the documentation: 7 | # http://www.sphinx-doc.org/en/master/config 8 | 9 | # -- Path setup -------------------------------------------------------------- 10 | 11 | # If extensions (or modules to document with autodoc) are in another directory, 12 | # add these directories to sys.path here. If the directory is relative to the 13 | # documentation root, use os.path.abspath to make it absolute, like shown here. 14 | # 15 | 16 | from sphinx.ext.autosummary import Autosummary 17 | from sphinx.ext.autosummary import get_documenter 18 | from docutils.parsers.rst import directives 19 | from sphinx.util.inspect import safe_getattr 20 | import re 21 | import os 22 | import sys 23 | 24 | sys.path.insert(0, os.path.abspath('../../sbmOpenMM')) 25 | sys.setrecursionlimit(1500) 26 | 27 | # -- Project information ----------------------------------------------------- 28 | 29 | project = 'sbmOpenMM' 30 | copyright = '2019, "Martin Floor, Kengjie Li"' 31 | author = '"Martin Floor, Kengjie Li"' 32 | 33 | # The short X.Y version 34 | version = '' 35 | # The full version, including alpha/beta/rc tags 36 | release = '0.0.1' 37 | 38 | 39 | # -- General configuration --------------------------------------------------- 40 | 41 | # If your documentation needs a minimal Sphinx version, state it here. 42 | # 43 | # needs_sphinx = '1.0' 44 | 45 | # Add any Sphinx extension module names here, as strings. They can be 46 | # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom 47 | # ones. 48 | extensions = [ 49 | 'sphinx.ext.autodoc', 50 | 'sphinx.ext.autosummary', 51 | 'sphinx.ext.intersphinx', 52 | 'sphinx.ext.ifconfig', 53 | 'sphinx.ext.viewcode', 54 | 'sphinx.ext.githubpages', 55 | 'numpydoc' 56 | ] 57 | 58 | # Add any paths that contain templates here, relative to this directory. 59 | templates_path = ['_templates'] 60 | 61 | # The suffix(es) of source filenames. 62 | # You can specify multiple suffix as a list of string: 63 | # 64 | # source_suffix = ['.rst', '.md'] 65 | source_suffix = '.rst' 66 | 67 | # The master toctree document. 68 | master_doc = 'index' 69 | 70 | # The language for content autogenerated by Sphinx. Refer to documentation 71 | # for a list of supported languages. 72 | # 73 | # This is also used if you do content translation via gettext catalogs. 74 | # Usually you set "language" from the command line for these cases. 75 | language = None 76 | 77 | # List of patterns, relative to source directory, that match files and 78 | # directories to ignore when looking for source files. 79 | # This pattern also affects html_static_path and html_extra_path . 80 | exclude_patterns = [] 81 | 82 | # The name of the Pygments (syntax highlighting) style to use. 83 | pygments_style = 'sphinx' 84 | 85 | # If true, the current module name will be prepended to all description unit titles. 86 | add_module_names = False 87 | 88 | # -- Options for HTML output ------------------------------------------------- 89 | 90 | # The theme to use for HTML and HTML Help pages. See the documentation for 91 | # a list of builtin themes. 92 | # 93 | html_theme = 'alabaster' 94 | 95 | # Theme options are theme-specific and customize the look and feel of a theme 96 | # further. For a list of options available for each theme, see the 97 | # documentation. 98 | # 99 | # html_theme_options = {} 100 | 101 | # Add any paths that contain custom static files (such as style sheets) here, 102 | # relative to this directory. They are copied after the builtin static files, 103 | # so a file named "default.css" will overwrite the builtin "default.css". 104 | html_static_path = [] 105 | 106 | # Custom sidebar templates, must be a dictionary that maps document names 107 | # to template names. 108 | # 109 | # The default sidebars (for documents that don't match any pattern) are 110 | # defined by theme itself. Builtin themes are using these templates by 111 | # default: ``['localtoc.html', 'relations.html', 'sourcelink.html', 112 | # 'searchbox.html']``. 113 | # 114 | html_sidebars = { 115 | '**': ['localtoc.html', 'searchbox.html'], 116 | } 117 | 118 | 119 | # -- Options for HTMLHelp output --------------------------------------------- 120 | 121 | # Output file base name for HTML help builder. 122 | htmlhelp_basename = 'sbmOpenMMdoc' 123 | 124 | 125 | # -- Options for LaTeX output ------------------------------------------------ 126 | 127 | latex_elements = { 128 | # The paper size ('letterpaper' or 'a4paper'). 129 | # 130 | # 'papersize': 'letterpaper', 131 | 132 | # The font size ('10pt', '11pt' or '12pt'). 133 | # 134 | # 'pointsize': '10pt', 135 | 136 | # Additional stuff for the LaTeX preamble. 137 | # 138 | # 'preamble': '', 139 | 140 | # Latex figure (float) alignment 141 | # 142 | # 'figure_align': 'htbp', 143 | } 144 | 145 | # Grouping the document tree into LaTeX files. List of tuples 146 | # (source start file, target name, title, 147 | # author, documentclass [howto, manual, or own class]). 148 | latex_documents = [ 149 | (master_doc, 'sbmOpenMM.tex', 'sbmOpenMM Documentation', 150 | '"Martin Floor, Kengjie Li"', 'manual'), 151 | ] 152 | 153 | 154 | # -- Options for manual page output ------------------------------------------ 155 | 156 | # One entry per manual page. List of tuples 157 | # (source start file, name, description, authors, manual section). 158 | man_pages = [ 159 | (master_doc, 'sbmopenmm', 'sbmOpenMM Documentation', 160 | [author], 1) 161 | ] 162 | 163 | 164 | # -- Options for Texinfo output ---------------------------------------------- 165 | 166 | # Grouping the document tree into Texinfo files. List of tuples 167 | # (source start file, target name, title, author, 168 | # dir menu entry, description, category) 169 | texinfo_documents = [ 170 | (master_doc, 'sbmOpenMM', 'sbmOpenMM Documentation', 171 | author, 'sbmOpenMM', 'Python library to run structure based model (SBM) simulations using the OpenMM toolkit.', 172 | 'Miscellaneous'), 173 | ] 174 | 175 | 176 | # -- Options for Epub output ------------------------------------------------- 177 | 178 | # Bibliographic Dublin Core info. 179 | epub_title = project 180 | epub_author = author 181 | epub_publisher = author 182 | epub_copyright = copyright 183 | 184 | # The unique identifier of the text. This can be a ISBN number 185 | # or the project homepage. 186 | # 187 | # epub_identifier = '' 188 | 189 | # A unique identification for the text. 190 | # 191 | # epub_uid = '' 192 | 193 | # A list of files that should not be packed into the epub file. 194 | epub_exclude_files = ['search.html'] 195 | 196 | 197 | # -- Extension configuration ------------------------------------------------- 198 | 199 | # -- Options for intersphinx extension --------------------------------------- 200 | 201 | # Example configuration for intersphinx: refer to the Python standard library. 202 | intersphinx_mapping = {'https://docs.python.org/': None} 203 | 204 | class AutoAutoSummary(Autosummary): 205 | 206 | option_spec = { 207 | 'methods': directives.unchanged, 208 | 'attributes': directives.unchanged 209 | } 210 | 211 | required_arguments = 1 212 | 213 | @staticmethod 214 | def get_members(obj, typ, include_public=None): 215 | if not include_public: 216 | include_public = [] 217 | items = [] 218 | for name in dir(obj): 219 | try: 220 | documenter = get_documenter(safe_getattr(obj, name), obj) 221 | except AttributeError: 222 | continue 223 | if documenter.objtype == typ: 224 | items.append(name) 225 | public = [x for x in items if x in include_public or not x.startswith('_')] 226 | return public, items 227 | 228 | def run(self): 229 | clazz = str(self.arguments[0]) 230 | try: 231 | (module_name, class_name) = clazz.rsplit('.', 1) 232 | m = __import__(module_name, globals(), locals(), [class_name]) 233 | c = getattr(m, class_name) 234 | if 'methods' in self.options: 235 | _, methods = self.get_members(c, 'method', ['__init__']) 236 | 237 | self.content = ["~%s.%s" % (clazz, method) for method in methods if not method.startswith('_')] 238 | if 'attributes' in self.options: 239 | _, attribs = self.get_members(c, 'attribute') 240 | self.content = ["~%s.%s" % (clazz, attrib) for attrib in attribs if not attrib.startswith('_')] 241 | finally: 242 | return super(AutoAutoSummary, self).run() 243 | 244 | def setup(app): 245 | app.add_directive('autoautosummary', AutoAutoSummary) 246 | -------------------------------------------------------------------------------- /docs/source/index.rst: -------------------------------------------------------------------------------- 1 | .. sbmOpenMM documentation master file, created by 2 | sphinx-quickstart on Tue Nov 12 10:07:34 2019. 3 | You can adapt this file completely to your liking, but it should at least 4 | contain the root `toctree` directive. 5 | 6 | .. toctree:: 7 | :caption: Contents 8 | :maxdepth: 3 9 | 10 | sbmOpenMM Documentation 11 | ####################### 12 | 13 | Introduction 14 | ************ 15 | 16 | .. include:: sections/introduction.rst 17 | 18 | SBM Models 19 | ********** 20 | 21 | .. include:: sections/models.rst 22 | 23 | Core classes 24 | ============ 25 | 26 | sbmOpenMM.geometry 27 | ------------------ 28 | 29 | .. automodule:: core 30 | :members: geometry 31 | 32 | sbmOpenMM.models 33 | ---------------- 34 | 35 | .. automodule:: core 36 | :noindex: 37 | :members: models 38 | 39 | sbmOpenMM.system 40 | ---------------- 41 | 42 | .. automodule:: core 43 | :noindex: 44 | :members: system 45 | 46 | Reporter class 47 | ============== 48 | 49 | sbmOpenMM.sbmReporter 50 | --------------------- 51 | 52 | .. automodule:: reporter 53 | :members: sbmReporter 54 | 55 | -------------------------------------------------------------------------------- /docs/source/sections/introduction.rst: -------------------------------------------------------------------------------- 1 | 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. 2 | 3 | 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. 4 | 5 | sbmOpenMM is divided in three main classes: 6 | 7 | 1. geometry 8 | 2. models 9 | 3. system 10 | 11 | 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. 12 | 13 | The library is open-source and offers flexibility to create custom SBMs or to modify the predefined topology based models included in it. 14 | -------------------------------------------------------------------------------- /docs/source/sections/models.rst: -------------------------------------------------------------------------------- 1 | The models class of sbmOpenMM contains three methods for automatic setting up predefined SBM potentials. It works by initializing a system class with the necessary force field parameters, derived from the input files, to set up one of the possible models which are detailed next: 2 | 3 | Coarse grained, alpha-carbon (CA), model 4 | ++++++++++++++++++++++++++++++++++++++++ 5 | 6 | The coarse grained method represents the protein system as beads centered at the alpha carbons of each residue in the protein. It uses harmonic potentials to hold the covalent connectivity and geometry of the beads. Torsional geometries are modeled with a periodic torsion potential. Native contacts are represented through the use of Lennard-Jones potentials that allow to form and break non-bonded interactions, permitting complete and local unfolding of the structures. 7 | 8 | To create a CA model, call: 9 | 10 | sbmOpenMM.models.getCAModel(pdb_file, contacts_file) 11 | 12 | Here, pdb_file is the path to the PDB format structure of the protein and contacts_file is the path to the contact file containing only the CA atoms of the system. This last file should be numbered considering the CA atoms consecutively. 13 | 14 | The force field equations are: 15 | 16 | .. math:: 17 | H_A = \sum_{bonds}V_{bond}+\sum_{angles}V_{angle}+\sum_{torsions}V_{torsion}+\sum_{contacts}V_{LJ_{12-10}}+\sum_{non-contacts}V_{LJ_{12}} 18 | 19 | .. math:: 20 | V_{bond} = \frac{k_b}{2}(r-r_0)^2 21 | 22 | .. math:: 23 | V_{angle} = \frac{k_a}{2}(\theta-\theta_0)^2 24 | 25 | .. math:: 26 | V_{torsion} = k_t(1-cos(\phi-\phi_0))+\frac{1}{2}(1-cos(3(\phi-\phi_0)))) 27 | 28 | .. math:: 29 | V_{LJ_{12-10}} = \epsilon_{c}(5(\frac{\sigma_{ij}}{r})^{12}-6(\frac{\sigma_{ij}}{r})^{10}) 30 | 31 | .. math:: 32 | V_{LJ_{12}} = \epsilon_{nc}(\frac{\sigma_{nc}}{r})^{12} 33 | 34 | 35 | Here the default values are :math:`k_b=20000\ kJ/(mol \cdot nm^2)`, :math:`k_a=40\ kJ/(mol \cdot rad^2)`, :math:`k_t=1.0\ kJ/mol`, :math:`\epsilon_{c}=1.0\ kJ/mol`, :math:`\epsilon_{nc}=1.0\ kJ/mol` and :math:`\sigma_{nc}=0.4\ nm`. The geometric parameters are set to the calculated structural values in the input structure, with :math:`r_0` the equilibrium bond distance in nanometers, :math:`\theta_0` the equilibrium angle length in radians, :math:`\phi_0` the equilibrium torsional angle in radians and :math:`\sigma_{ij}` the equilibrium contact distance in nanometers. The variable :math:`r` represents, accordingly, the current bond or (non)contact distance in nanometers, :math:`\theta` the current angle length in radians and :math:`\phi` the current torsional angle in radians. 36 | 37 | It is possible to use a :math:`V_{LJ_{12-10-6}}` potential for the native contact interactions, defined as: 38 | 39 | .. math:: 40 | V_{LJ_{12-10-6}} = \epsilon_{c}(13(\frac{\sigma_{ij}}{r})^{12}-18(\frac{\sigma_{ij}}{r})^{10}+4(\frac{\sigma_{ij}}{r})^{6}) 41 | 42 | This potential gives a small energy barrier for contact formation/breaking that emulates a "desolvation effect". To use this potential as the native contact energy function, instead of the :math:`V_{LJ_{12-10}}` potential, give the option contact_force ='12-10-6' to the sbmOpenMM.models.getCAModel() method. 43 | 44 | Note that even if the units for the force constants are given in real physical units (e.g. :math:`kJ/mol`), this is just to match the variables used by OpenMM. The models are not parametrized to equate this real physical values and comparison with experiments will require further adjustment to the energy unit system. 45 | 46 | All-heavy-atoms (AA) model 47 | ++++++++++++++++++++++++++ 48 | 49 | The all-atom model represents the protein system with all its heavy atoms (i.e. excluding hydrogens). It uses harmonic potentials to hold the covalent connectivity, geometry and chirality of the protein residues. Periodic torsional potentials are used to maintain dihedral geometries of backbones and side chains. Native contacts are represented through the use of Lennard-Jones potentials that allow to form and break non-bonded interactions, permitting complete and local unfolding of the structures. 50 | 51 | The method to create an AA model is: 52 | 53 | sbmOpenMM.models.getAllAtomModel(pdb_file, contacts_file) 54 | 55 | Here, pdb_file is the path to the PDB format structure of the protein and contacts_file is the path to the contact file containing only the non-hydorgen atoms of the protein system. 56 | 57 | The force field equations are: 58 | 59 | .. math:: 60 | H_A = \sum_{bonds}V_{bond}+\sum_{angles}V_{angle}+\sum_{torsions}V_{torsion}+\sum_{impropers}V_{improper}+\sum_{planars}V_{planar}+\sum_{contacts}V_{LJ_{12-10}}+\sum_{non-contacts}V_{LJ_{12}} 61 | 62 | .. math:: 63 | V_{bond} = \frac{k_b}{2}(r-r_0)^2 64 | 65 | .. math:: 66 | V_{angle} = \frac{k_a}{2}(\theta-\theta_0)^2 67 | 68 | .. math:: 69 | V_{torsion} = k_t(1-cos(\phi-\phi_0))+\frac{1}{2}(1-cos(3(\phi-\phi_0)))) 70 | 71 | .. math:: 72 | V_{improper} = \frac{k_i}{2}(\chi-\chi_{0})^2 73 | 74 | .. math:: 75 | V_{planar} = \frac{k_p}{2}(\chi-\chi_{0})^2 76 | 77 | .. math:: 78 | V_{LJ_{12-10}} = \epsilon_{c}(5(\frac{\sigma_{ij}}{r})^{12}-6(\frac{\sigma_{ij}}{r})^{10}) 79 | 80 | .. math:: 81 | V_{LJ_{12}} = \epsilon_{nc}(\frac{\sigma_{nc}}{r})^{12} 82 | 83 | Here the default values are :math:`k_b=10000\ kJ/(mol \cdot nm^2)`, :math:`k_a=80\ kJ/(mol \cdot rad^2)`, :math:`k_i=10.0\ kJ/(mol \cdot rad^2)`, :math:`k_p=20.0\ kJ/(mol \cdot rad^2)`, :math:`\epsilon_{nc}=0.1\ kJ/mol` and :math:`\sigma_{nc}=0.25\ nm`. The values of the torsional :math:`k_t` and native energy constant :math:`\epsilon_{c}` are assigned by the following equations: 84 | 85 | .. math:: 86 | k_t=N_{atoms}/3N_{torsions}\ (kJ/mol) 87 | .. math:: 88 | k_c=2N_{atoms}/3N_{contacts}\ (kJ/mol) 89 | 90 | 91 | Where :math:`N_{atoms}` is the total number of atoms in the system, :math:`N_{torsions}` is the total number of proper torsions assigned by the forcefield and :math:`N_{contacts}` is the number of native contacts in the contact file definition. Additionally, the torsional energy constant :math:`k_t` is further divided by classifying the torsions into backbone and sidechain groups. The assignment is carried out as: 92 | 93 | .. math:: 94 | k_{t}^{bb}=2k_t/3 95 | .. math:: 96 | k_{t}^{sc}=k_t/3 97 | 98 | Here, :math:`k_{t}^{bb}` and :math:`k_{t}^{sc}` are the torsional energy constant for backbone and sidechain torsion groups, respectively. This grouping of torsions into backbone and side chains is the default behaviour of the sbmOpenMM.models.getAllAtomModel() method. It can be disabled by given the option group_by_bb_and_sc=False. 99 | 100 | The geometric parameters are set to the calculated structural values in the input structure, with :math:`r_0` the equilibrium bond distance in nanometers, :math:`\theta_0` the equilibrium angle length in radians, :math:`\phi_0` the equilibrium torsional angle in radians, :math:`\chi_0` the equilibrium improper or planar equilibrium angle in radians and :math:`\sigma_{ij}` the equilibrium contact distance in nanometers. The variable :math:`r` represents, accordingly, the current bond or (non)contact distance in nanometers, :math:`\theta` the current angle length in radians, :math:`\phi` the current proper torsional angle in radians and :math:`\chi` the equilibrium improper or planar torsional angles in radians. 101 | 102 | Note that even if the units for the force constants are given in real physical units (e.g. :math:`kJ/mol`), this is just to match the variables used by OpenMM. The models are not parametrized to equate this real physical values and comparison with experiments will require further adjustment to the energy unit system. 103 | 104 | Multi basin model 105 | +++++++++++++++++ 106 | 107 | The multi basin model automates the creation of a dual basin native contact potential. It receives as input two sbmOpenMM system classes, either CA or AA models, containing two different definitions of native contacts. One of the configurations is defined as the main model and the other is considered as the alternate model. All forcefield and topology parameters, different than the native contacts, are passed from the main configuration into the multi basin model. Then, the contacts are compared between the input configurations to define the sets of common and unique contacts. Common contacts with equilibrium length distances that differ more than a threshold are defined as dual basin and are assigned a special non-bonded Gaussian potential. The rest of the contacts are treated as single minima and are modeled with a Lennard-Jones (default) or a single basin Gaussian potential. 108 | 109 | The multi basin Gaussian potential is defined as: 110 | 111 | .. math:: 112 | V_{Multi-basin} = \epsilon_{C}((1+(\frac{r_{ex}}{r})^{12})\prod_{minima}G(r,r_{0}^{\alpha})-1) 113 | .. math:: 114 | G(r,r_{0}^{\alpha}) = 1-exp(\frac{-(r-r_{0}^{\alpha})^2}{2\sigma^2}) 115 | 116 | .. math:: 117 | \sigma^{2} = \frac{(r_{0}^{\alpha})^2}{50ln(2)} 118 | 119 | Here, :math:`\epsilon_{C}` is the native contact energy constant inherited from the main configuration, :math:`r_{ex}` is the contact excluded volume radius, :math:`r_{0}^{\alpha}` is the equilibrium distance for the :math:`alpha`-th configuration and :math:`r` is the current contact distance. :math:`\sigma` is a parameter that modulates the well amplitude of the :math:`V_{Multi-basin}` energy function. The single and double basin gaussian potential are distinguished by the number of :math:`r_{0}^{\alpha}` parameters given. 120 | 121 | The Lennard Jones contact potential is inherited accordingly from the CA or AA models used to build the multi basin SBM. 122 | 123 | The method to create a multi basin model is: 124 | 125 | sbmOpenMM.models.getMultiBasinModel(main_model, alternate_configuration=alternate_model) 126 | 127 | Here, main_model and alternate_model are initialized sbmOpenMM system classes containing full force field parameter definitions. 128 | -------------------------------------------------------------------------------- /sbmOpenMM/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | Python library to run structure based model (SBM) simulations using the OpenMM toolkit 3 | 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 | sbmOpenMM is divided in three main classes: 14 | 15 | 1. geometry 16 | 17 | 2. models 18 | 19 | 3. system 20 | 21 | 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. 22 | 23 | The library is open-source and offers flexibility to create custom SBMs or to modify the predefined topology based models included in it. 24 | """ 25 | 26 | from .core import geometry 27 | from .core import system 28 | from .core import models 29 | 30 | from .reporter import sbmReporter 31 | from .parameters import oplsaa 32 | from .parameters import amber 33 | from .parameters import ca_parameters 34 | 35 | from . import datasets 36 | -------------------------------------------------------------------------------- /sbmOpenMM/core/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | core package of the sbmOpenMM package that contains the main sbmOpenMM classes. 3 | 4 | The sbmOpenMM.core package contains the three sbmOpenMM main classes: 5 | 6 | 1. geometry 7 | 8 | 2. models 9 | 10 | 3. system 11 | 12 | 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. 13 | 14 | """ 15 | 16 | from .geometry import geometry 17 | from .models import models 18 | from .system import system 19 | -------------------------------------------------------------------------------- /sbmOpenMM/core/geometry.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | # In[ ]: 5 | 6 | 7 | from simtk import unit 8 | import numpy as np 9 | 10 | class geometry: 11 | """ 12 | A class to hold methods for calculating geometrical values 13 | given sets of atom coordinates. 14 | """ 15 | 16 | def position2Array(position, output_unit): 17 | """Converts an OpenMM position object quantity into a numpy array. 18 | 19 | Parameters 20 | ---------- 21 | position : simtk.unit.quantity.Quantity 22 | Array containing quantity objects [e.g. (x,y,z) array returned 23 | from positions]. 24 | output_unit : simtk.unit.unit.Unit 25 | Unit in which to return the items of the array. 26 | 27 | Returns 28 | ------- 29 | numpy.ndarray 30 | A numpy array containing the quantity values converted to floats. 31 | """ 32 | 33 | return np.array([c.value_in_unit(output_unit) for c in position]) 34 | 35 | def bond(coord1, coord2): 36 | """Calculate the distance length between two (x,y,z) quantity coordinates. 37 | 38 | Parameters 39 | ---------- 40 | coord1 : simtk.unit.quantity.Quantity array 41 | Vector for the first coordinate. 42 | coord2 : simtk.unit.quantity.Quantity array 43 | Vector for the second coordinate. 44 | 45 | Returns 46 | ------- 47 | simtk.unit.quantity.Quantity 48 | Quantity (value and unit) of the distance length in nanometers. 49 | """ 50 | 51 | coord1 = geometry.position2Array(coord1, unit.nanometer) 52 | 53 | coord2 = geometry.position2Array(coord2, unit.nanometer) 54 | 55 | bond_length = np.linalg.norm(coord2 - coord1) 56 | 57 | return bond_length * unit.nanometer 58 | 59 | def angle(coord1, coord2, coord3): 60 | """Calculate the angle length between three (x,y,z) quantity coordinates. 61 | 62 | Parameters 63 | ---------- 64 | coord1 : simtk.unit.quantity.Quantity array 65 | Vector for the first coordinate. 66 | coord2 : simtk.unit.quantity.Quantity array 67 | Vector for the second coordinate. 68 | coord3 : simtk.unit.quantity.Quantity array 69 | Vector for the third coordinate. 70 | 71 | Returns 72 | ------- 73 | simtk.unit.quantity.Quantity 74 | Quantity (value and unit) of the angle length in radians. 75 | """ 76 | 77 | coord1 = geometry.position2Array(coord1, unit.nanometer) 78 | coord2 = geometry.position2Array(coord2, unit.nanometer) 79 | coord3 = geometry.position2Array(coord3, unit.nanometer) 80 | 81 | v1 = coord1 - coord2 82 | v2 = coord3 - coord2 83 | cos_theta = np.dot(v1, v2)/(np.linalg.norm(v1)*np.linalg.norm(v2)) 84 | angle = np.arccos(np.clip(cos_theta, -1, 1)) 85 | 86 | return angle * unit.radian 87 | 88 | def torsion(coord1, coord2, coord3, coord4): 89 | """Calculate the torsion angle length between four (x,y,z) quantity 90 | coordinates. 91 | 92 | Parameters 93 | ---------- 94 | coord1 : simtk.unit.quantity.Quantity array 95 | Vector for the first coordinate. 96 | coord2 : simtk.unit.quantity.Quantity array 97 | Vector for the second coordinate. 98 | coord3 : simtk.unit.quantity.Quantity array 99 | Vector for the third coordinate. 100 | coord4 : simtk.unit.quantity.Quantity array 101 | Vector for the fourth coordinate. 102 | 103 | Returns 104 | ------- 105 | simtk.unit.quantity.Quantity 106 | Quantity (value and unit) of the torsion length in radians. 107 | """ 108 | 109 | coord1 = geometry.position2Array(coord1, unit.nanometer) 110 | coord2 = geometry.position2Array(coord2, unit.nanometer) 111 | coord3 = geometry.position2Array(coord3, unit.nanometer) 112 | coord4 = geometry.position2Array(coord4, unit.nanometer) 113 | 114 | v1 = coord2 - coord1 115 | v2 = coord3 - coord2 116 | v3 = coord4 - coord3 117 | 118 | c1 = np.cross(v2, v3) 119 | c2 = np.cross(v1, v2) 120 | 121 | p1 = (v1 * c1).sum(-1) 122 | p1 *= (v2 * v2).sum(-1) ** 0.5 123 | p2 = (c1 * c2).sum(-1) 124 | 125 | return np.arctan2(p1, p2) * unit.radian 126 | 127 | -------------------------------------------------------------------------------- /sbmOpenMM/datasets/__init__.py: -------------------------------------------------------------------------------- 1 | from . import foxp1_folding 2 | -------------------------------------------------------------------------------- /sbmOpenMM/datasets/downloader.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from tqdm import tqdm 3 | 4 | def get_file_from_url(url, filename): 5 | 6 | r = requests.get(url, stream=True) 7 | 8 | file_size = int(r.headers.get('content-length', 0)) 9 | initial_pos = 0 10 | 11 | with open(filename, 'wb') as f: 12 | with tqdm(total=file_size, unit='B', 13 | unit_scale=True, unit_divisor=1024, 14 | desc=filename, initial=initial_pos, 15 | ascii=True, miniters=1) as pbar: 16 | for chunk in r.iter_content(32 * 1024): 17 | f.write(chunk) 18 | pbar.update(len(chunk)) 19 | -------------------------------------------------------------------------------- /sbmOpenMM/datasets/foxp1_folding.py: -------------------------------------------------------------------------------- 1 | import os 2 | import shutil 3 | from .downloader import get_file_from_url 4 | 5 | def download_dataset(output_dir, dcd_only=False, data_only=False, overwrite=False): 6 | """ 7 | Download the dataset in the specified location. 8 | 9 | Parameters 10 | ========== 11 | output_dir : str 12 | Path to the output directory where to store the files. 13 | dcd_only : bool 14 | Get only DCD trajectories files? 15 | data_only : bool 16 | Get only energy DATA files? 17 | overwrite : bool 18 | Delete and replace all dataset files? 19 | """ 20 | 21 | dcd = True 22 | data = True 23 | if dcd_only: 24 | if data_only: 25 | raise ValueError('Only one option must be given (dcd_only of data_only?)') 26 | data = False 27 | dcd = True 28 | 29 | if data_only: 30 | if dcd_only: 31 | raise ValueError('Only one option must be given (dcd_only of data_only?)') 32 | data = True 33 | dcd = False 34 | 35 | # Create output directory if it does not exists 36 | if os.path.exists(output_dir): 37 | if overwrite: 38 | shutil.rmtree(output_dir) 39 | os.mkdir(output_dir) 40 | else: 41 | os.mkdir(output_dir) 42 | 43 | if data: 44 | data_paths = pathsToDATAfiles() 45 | for p in data_paths: 46 | get_file_from_url(data_paths[p], output_dir+'/'+p) 47 | 48 | if dcd: 49 | dcd_paths = pathsToDCDfiles() 50 | for p in dcd_paths: 51 | get_file_from_url(dcd_paths[p], output_dir+'/'+p) 52 | 53 | def pathsToDCDfiles(): 54 | """ 55 | Method to contain paths to DCD files in the dataset 56 | """ 57 | doi = 'https://dataverse.csuc.cat/api/access/datafile/:persistentId?persistentId=doi:10.34810/data31/' 58 | # Get DCD files permanent links 59 | dcd_suffix = '_trajectory.dcd' 60 | dcd_paths = { '01':'32','02':'33','03':'37','04':'36','05':'35','06':'39', 61 | '07':'38','08':'40','09':'41','10':'42','11':'43','12':'44', 62 | '13':'45','14':'60','15':'46'} 63 | return {p+dcd_suffix:doi+dcd_paths[p] for p in dcd_paths} 64 | 65 | def pathsToDATAfiles(): 66 | """ 67 | Method to contain paths to DATA files in the dataset 68 | """ 69 | doi = 'https://dataverse.csuc.cat/api/access/datafile/:persistentId?persistentId=doi:10.34810/data31/' 70 | # Get DATA energy files permanent links 71 | data_suffix = '_energies.data' 72 | data_paths = { '01':'24','02':'16','03':'6','04':'18','05':'3','06':'11', 73 | '07':'28','08':'20','09':'4','10':'7','11':'26','12':'1', 74 | '13':'8','14':'14','15':'23'} 75 | return {p+data_suffix:doi+data_paths[p] for p in data_paths} 76 | -------------------------------------------------------------------------------- /sbmOpenMM/parameters/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/sbmOpenMM/parameters/__init__.py -------------------------------------------------------------------------------- /sbmOpenMM/parameters/ca_parameters.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | aa_masses = {'ALA': 71.0, 'ARG': 157.0, 'ASN': 114.0, 5 | 'ASP': 114.0, 'CYS': 103.0, 'GLU': 128.0, 6 | 'GLN': 128.0, 'GLY': 57.0, 'HIS': 138.0, 7 | 'ILE': 113.0, 'LEU': 113.0, 'LYS': 128.0, 8 | 'MET': 131.0, 'PHE': 147.0, 'PRO': 97.0, 9 | 'SER': 87.0, 'THR': 101.0, 'TRP': 186.0, 10 | 'TYR': 163.0, 'VAL': 99.0} 11 | 12 | aa_radii = {'ALA': 0.335, 'ARG': 0.395, 'ASN': 0.365, 13 | 'ASP': 0.350, 'CYS': 0.370, 'GLU': 0.365, 14 | 'GLN': 0.390, 'GLY': 0.315, 'HIS': 0.400, 15 | 'ILE': 0.450, 'LEU': 0.460, 'LYS': 0.365, 16 | 'MET': 0.450, 'PHE': 0.460, 'PRO': 0.370, 17 | 'SER': 0.330, 'THR': 0.360, 'TRP': 0.470, 18 | 'TYR': 0.450, 'VAL': 0.400} 19 | 20 | -------------------------------------------------------------------------------- /sbmOpenMM/reporter/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | reporter package of the sbmOpenMM package that contains the sbmReporter class. 3 | 4 | The sbmOpenMM.reproter package contains the sbmReporter class. 5 | 6 | sbmReporter is a special class of the OpenMM StateDataReporter class, that additionally 7 | accepts a sbmobject to print the SBM forcefield energies. 8 | """ 9 | 10 | from .sbm_reporter import sbmReporter 11 | from .sbm_reporter import readOpenMMReporterFile 12 | -------------------------------------------------------------------------------- /sbmOpenMM/reporter/sbm_reporter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # coding: utf-8 3 | 4 | from simtk.openmm.app import statedatareporter 5 | StateDataReporter = statedatareporter.StateDataReporter 6 | from simtk import unit 7 | from sbmOpenMM.core import system 8 | 9 | class sbmReporter(StateDataReporter): 10 | """ 11 | A special case of the StateDataReporter class that outputs information about a simulation, 12 | such as energy and temperature, etc. to a file. This special reporter outputs the sbmOpenMM 13 | force group energies inside the sbmOpenMM system object. 14 | 15 | It is used in the same way as the OpenMM StateDataReporter class, but it takes as additional 16 | input an instance of the sbmOpenMM object with the option 'sbmObject'. 17 | """ 18 | 19 | def __init__(self, file, reportInterval, sbmObject=None, **kwargs): 20 | """ 21 | Initialises the SBM OpenMM system class. 22 | 23 | Parameters 24 | ---------- 25 | reportInterval : int 26 | The interval (in time steps) at which to write frames 27 | sbmObject : sbmOpenMM.system 28 | The sbmOpenMM system instance to read force groups from. 29 | **kwargs : openMM StateDataReporter arguments 30 | 31 | Returns 32 | ------- 33 | initialized StateDataReporter class. 34 | 35 | """ 36 | super(sbmReporter, self).__init__(file, reportInterval, **kwargs) 37 | self._sbmObject = sbmObject 38 | 39 | def _constructHeaders(self): 40 | """ 41 | Build headers for the StateDataReporter class. It builds the headers 42 | for the force groups contained in the sbmOpenMM system instance. 43 | 44 | Parameters 45 | ---------- 46 | None 47 | 48 | Returns 49 | ------- 50 | headers : list 51 | List with strings representing the headers to be written to the report file. 52 | """ 53 | 54 | headers = super()._constructHeaders() 55 | if isinstance(self._sbmObject, system): 56 | for i,n in enumerate(self._sbmObject.forceGroups): 57 | headers.append(n+' (kJ/mol)') 58 | 59 | return headers 60 | 61 | def _constructReportValues(self, simulation, state): 62 | """ 63 | Calculates the energies for the force groups in the sbmOpenMM system instance. 64 | 65 | Parameters 66 | ---------- 67 | None 68 | 69 | Returns 70 | ------- 71 | values : list 72 | List with floats representing the values to be written to the report file. 73 | """ 74 | 75 | values = super()._constructReportValues(simulation, state) 76 | 77 | if isinstance(self._sbmObject, system): 78 | for i,n in enumerate(self._sbmObject.forceGroups): 79 | values.append(simulation.context.getState(getEnergy=True, groups={i}).getPotentialEnergy().value_in_unit(unit.kilojoules_per_mole)) 80 | 81 | return values 82 | 83 | def readOpenMMReporterFile(reporter_file): 84 | """ 85 | Creates a dictionary containing all the entries in the reported data reporter_file 86 | 87 | Parameters 88 | ---------- 89 | reporter_file : str 90 | Path to the reporter output file 91 | 92 | """ 93 | with open(reporter_file, 'r') as ef: 94 | lines = ef.readlines() 95 | data = {} 96 | for r in lines[0].split(','): 97 | data[r.replace('#','').replace('"','').strip()] = [] 98 | for i,r in enumerate(data): 99 | for line in lines[1:]: 100 | data[r].append(float(line.strip().split(',')[i])) 101 | return data 102 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- 1 | import setuptools 2 | 3 | with open("README.md", "r") as fh: 4 | long_description = fh.read() 5 | 6 | setuptools.setup( 7 | name="sbmOpenMM", 8 | version="1.0.0", 9 | author="Martin Floor, Kengjie Li", 10 | author_email="martinfloor@gmail.com", 11 | description="An OpenMM package for simulating protein Structure Based Models.", 12 | long_description=long_description, 13 | long_description_content_type="text/markdown", 14 | url="https://github.com/CompBiochBiophLab/sbm-openmm", 15 | packages=setuptools.find_packages(), 16 | classifiers=[ 17 | "Programming Language :: Python :: 3", 18 | "License :: OSI Approved :: MIT License", 19 | "Operating System :: OS Independent", 20 | ], 21 | python_requires='>=3.6', 22 | install_requires=[ 23 | 'numpy>=1.15', 24 | ], 25 | ) 26 | -------------------------------------------------------------------------------- /tutorials/basic/01-AlphaCarbon/inputs/1YPA_I_CA.contacts: -------------------------------------------------------------------------------- 1 | 1 1 1 63 2 | 1 1 1 24 3 | 1 1 1 44 4 | 1 1 1 42 5 | 1 2 1 23 6 | 1 2 1 24 7 | 1 2 1 63 8 | 1 2 1 6 9 | 1 2 1 7 10 | 1 2 1 19 11 | 1 3 1 63 12 | 1 3 1 61 13 | 1 3 1 62 14 | 1 3 1 42 15 | 1 4 1 61 16 | 1 4 1 62 17 | 1 4 1 60 18 | 1 5 1 60 19 | 1 5 1 61 20 | 1 5 1 9 21 | 1 5 1 19 22 | 1 5 1 20 23 | 1 5 1 23 24 | 1 5 1 24 25 | 1 5 1 47 26 | 1 5 1 62 27 | 1 5 1 63 28 | 1 6 1 60 29 | 1 7 1 11 30 | 1 7 1 19 31 | 1 7 1 23 32 | 1 8 1 61 33 | 1 8 1 16 34 | 1 8 1 57 35 | 1 8 1 59 36 | 1 8 1 19 37 | 1 8 1 15 38 | 1 8 1 20 39 | 1 9 1 61 40 | 1 9 1 57 41 | 1 9 1 59 42 | 1 9 1 58 43 | 1 9 1 60 44 | 1 10 1 57 45 | 1 10 1 56 46 | 1 11 1 57 47 | 1 11 1 16 48 | 1 11 1 51 49 | 1 11 1 55 50 | 1 11 1 56 51 | 1 11 1 15 52 | 1 12 1 56 53 | 1 12 1 55 54 | 1 12 1 16 55 | 1 12 1 57 56 | 1 13 1 55 57 | 1 13 1 49 58 | 1 13 1 57 59 | 1 13 1 17 60 | 1 13 1 31 61 | 1 13 1 51 62 | 1 13 1 56 63 | 1 14 1 18 64 | 1 15 1 19 65 | 1 16 1 20 66 | 1 16 1 49 67 | 1 16 1 57 68 | 1 16 1 61 69 | 1 17 1 49 70 | 1 17 1 29 71 | 1 17 1 21 72 | 1 17 1 31 73 | 1 18 1 22 74 | 1 19 1 23 75 | 1 20 1 24 76 | 1 20 1 27 77 | 1 20 1 29 78 | 1 20 1 47 79 | 1 20 1 49 80 | 1 20 1 61 81 | 1 21 1 29 82 | 1 21 1 25 83 | 1 21 1 27 84 | 1 24 1 29 85 | 1 24 1 47 86 | 1 24 1 63 87 | 1 24 1 28 88 | 1 24 1 45 89 | 1 24 1 46 90 | 1 24 1 44 91 | 1 26 1 45 92 | 1 27 1 45 93 | 1 27 1 46 94 | 1 27 1 47 95 | 1 28 1 45 96 | 1 28 1 46 97 | 1 28 1 47 98 | 1 28 1 43 99 | 1 29 1 47 100 | 1 29 1 49 101 | 1 30 1 46 102 | 1 30 1 47 103 | 1 30 1 48 104 | 1 30 1 49 105 | 1 30 1 43 106 | 1 31 1 49 107 | 1 31 1 51 108 | 1 31 1 55 109 | 1 32 1 49 110 | 1 32 1 50 111 | 1 32 1 51 112 | 1 32 1 36 113 | 1 32 1 38 114 | 1 32 1 48 115 | 1 33 1 51 116 | 1 33 1 50 117 | 1 34 1 50 118 | 1 34 1 51 119 | 1 34 1 59 120 | 1 34 1 58 121 | 1 34 1 52 122 | 1 35 1 50 123 | 1 35 1 59 124 | 1 36 1 50 125 | 1 38 1 48 126 | 1 38 1 50 127 | 1 39 1 48 128 | 1 39 1 46 129 | 1 41 1 46 130 | 1 41 1 48 131 | 1 41 1 64 132 | 1 42 1 64 133 | 1 42 1 63 134 | 1 43 1 64 135 | 1 43 1 63 136 | 1 44 1 63 137 | 1 44 1 64 138 | 1 46 1 63 139 | 1 46 1 62 140 | 1 46 1 64 141 | 1 47 1 62 142 | 1 47 1 63 143 | 1 47 1 61 144 | 1 48 1 62 145 | 1 48 1 64 146 | 1 48 1 59 147 | 1 48 1 60 148 | 1 48 1 61 149 | 1 49 1 57 150 | 1 49 1 61 151 | 1 50 1 57 152 | 1 50 1 59 153 | 1 50 1 56 154 | 1 50 1 58 155 | 1 50 1 60 156 | 1 50 1 62 157 | 1 51 1 56 158 | 1 51 1 57 159 | 1 51 1 58 160 | 1 51 1 55 161 | 1 52 1 56 162 | 1 52 1 58 163 | 1 52 1 57 164 | 1 57 1 61 165 | -------------------------------------------------------------------------------- /tutorials/basic/02-AllAtom/inputs/1YPA_I_AA.contacts: -------------------------------------------------------------------------------- 1 | 1 6 1 499 2 | 1 7 1 185 3 | 1 7 1 339 4 | 1 7 1 341 5 | 1 8 1 185 6 | 1 8 1 322 7 | 1 8 1 337 8 | 1 8 1 339 9 | 1 8 1 341 10 | 1 8 1 498 11 | 1 8 1 499 12 | 1 12 1 173 13 | 1 12 1 183 14 | 1 12 1 499 15 | 1 14 1 173 16 | 1 15 1 176 17 | 1 17 1 54 18 | 1 17 1 63 19 | 1 17 1 142 20 | 1 17 1 176 21 | 1 19 1 499 22 | 1 21 1 478 23 | 1 21 1 483 24 | 1 21 1 486 25 | 1 21 1 493 26 | 1 21 1 496 27 | 1 21 1 497 28 | 1 21 1 499 29 | 1 22 1 493 30 | 1 22 1 496 31 | 1 22 1 497 32 | 1 22 1 499 33 | 1 24 1 322 34 | 1 24 1 497 35 | 1 24 1 499 36 | 1 26 1 478 37 | 1 26 1 483 38 | 1 26 1 486 39 | 1 29 1 473 40 | 1 29 1 486 41 | 1 30 1 486 42 | 1 30 1 489 43 | 1 33 1 471 44 | 1 33 1 473 45 | 1 33 1 486 46 | 1 33 1 489 47 | 1 33 1 492 48 | 1 34 1 469 49 | 1 34 1 473 50 | 1 34 1 478 51 | 1 34 1 479 52 | 1 34 1 481 53 | 1 36 1 478 54 | 1 37 1 72 55 | 1 37 1 78 56 | 1 37 1 469 57 | 1 37 1 474 58 | 1 37 1 481 59 | 1 38 1 478 60 | 1 38 1 479 61 | 1 38 1 480 62 | 1 38 1 481 63 | 1 40 1 142 64 | 1 41 1 149 65 | 1 42 1 140 66 | 1 42 1 145 67 | 1 42 1 173 68 | 1 42 1 176 69 | 1 43 1 148 70 | 1 44 1 151 71 | 1 44 1 478 72 | 1 44 1 479 73 | 1 44 1 481 74 | 1 45 1 147 75 | 1 45 1 173 76 | 1 45 1 177 77 | 1 45 1 181 78 | 1 46 1 366 79 | 1 46 1 367 80 | 1 46 1 483 81 | 1 46 1 493 82 | 1 47 1 150 83 | 1 47 1 183 84 | 1 47 1 499 85 | 1 48 1 473 86 | 1 49 1 469 87 | 1 49 1 473 88 | 1 49 1 474 89 | 1 51 1 474 90 | 1 52 1 473 91 | 1 52 1 474 92 | 1 58 1 88 93 | 1 58 1 90 94 | 1 60 1 142 95 | 1 63 1 142 96 | 1 63 1 176 97 | 1 66 1 480 98 | 1 67 1 118 99 | 1 67 1 449 100 | 1 67 1 450 101 | 1 67 1 451 102 | 1 67 1 452 103 | 1 67 1 462 104 | 1 68 1 115 105 | 1 68 1 118 106 | 1 68 1 450 107 | 1 68 1 451 108 | 1 68 1 452 109 | 1 68 1 480 110 | 1 68 1 481 111 | 1 69 1 142 112 | 1 70 1 112 113 | 1 70 1 115 114 | 1 70 1 117 115 | 1 70 1 118 116 | 1 70 1 141 117 | 1 70 1 142 118 | 1 70 1 144 119 | 1 70 1 149 120 | 1 70 1 151 121 | 1 70 1 480 122 | 1 71 1 112 123 | 1 71 1 115 124 | 1 71 1 117 125 | 1 71 1 118 126 | 1 71 1 141 127 | 1 71 1 142 128 | 1 71 1 143 129 | 1 71 1 144 130 | 1 72 1 481 131 | 1 73 1 449 132 | 1 73 1 450 133 | 1 73 1 452 134 | 1 73 1 459 135 | 1 73 1 462 136 | 1 77 1 449 137 | 1 77 1 450 138 | 1 77 1 455 139 | 1 77 1 457 140 | 1 77 1 461 141 | 1 78 1 452 142 | 1 78 1 468 143 | 1 78 1 474 144 | 1 78 1 481 145 | 1 79 1 446 146 | 1 79 1 449 147 | 1 79 1 450 148 | 1 80 1 442 149 | 1 82 1 442 150 | 1 82 1 443 151 | 1 83 1 446 152 | 1 83 1 450 153 | 1 83 1 451 154 | 1 84 1 451 155 | 1 86 1 118 156 | 1 86 1 403 157 | 1 86 1 433 158 | 1 86 1 439 159 | 1 86 1 442 160 | 1 86 1 444 161 | 1 86 1 446 162 | 1 86 1 450 163 | 1 86 1 451 164 | 1 87 1 113 165 | 1 87 1 114 166 | 1 87 1 118 167 | 1 87 1 451 168 | 1 89 1 113 169 | 1 89 1 114 170 | 1 91 1 113 171 | 1 92 1 444 172 | 1 93 1 433 173 | 1 93 1 439 174 | 1 93 1 444 175 | 1 95 1 114 176 | 1 95 1 118 177 | 1 95 1 451 178 | 1 95 1 453 179 | 1 96 1 444 180 | 1 97 1 433 181 | 1 97 1 437 182 | 1 98 1 385 183 | 1 98 1 453 184 | 1 100 1 119 185 | 1 100 1 123 186 | 1 100 1 124 187 | 1 100 1 385 188 | 1 102 1 124 189 | 1 102 1 126 190 | 1 102 1 237 191 | 1 102 1 238 192 | 1 102 1 383 193 | 1 102 1 385 194 | 1 102 1 453 195 | 1 103 1 237 196 | 1 103 1 238 197 | 1 103 1 383 198 | 1 103 1 385 199 | 1 103 1 403 200 | 1 103 1 404 201 | 1 103 1 433 202 | 1 103 1 436 203 | 1 103 1 437 204 | 1 103 1 440 205 | 1 103 1 453 206 | 1 107 1 128 207 | 1 107 1 132 208 | 1 112 1 137 209 | 1 112 1 143 210 | 1 117 1 144 211 | 1 117 1 148 212 | 1 117 1 149 213 | 1 117 1 151 214 | 1 118 1 151 215 | 1 118 1 385 216 | 1 118 1 386 217 | 1 118 1 451 218 | 1 118 1 453 219 | 1 118 1 480 220 | 1 119 1 385 221 | 1 120 1 222 222 | 1 120 1 223 223 | 1 122 1 152 224 | 1 122 1 156 225 | 1 122 1 157 226 | 1 122 1 158 227 | 1 122 1 223 228 | 1 123 1 158 229 | 1 123 1 223 230 | 1 124 1 222 231 | 1 124 1 223 232 | 1 124 1 385 233 | 1 125 1 158 234 | 1 125 1 220 235 | 1 125 1 223 236 | 1 126 1 219 237 | 1 126 1 222 238 | 1 126 1 238 239 | 1 126 1 385 240 | 1 127 1 219 241 | 1 127 1 238 242 | 1 131 1 160 243 | 1 131 1 165 244 | 1 134 1 165 245 | 1 134 1 168 246 | 1 136 1 165 247 | 1 136 1 166 248 | 1 140 1 169 249 | 1 140 1 173 250 | 1 140 1 176 251 | 1 142 1 176 252 | 1 147 1 177 253 | 1 147 1 180 254 | 1 147 1 181 255 | 1 147 1 206 256 | 1 148 1 223 257 | 1 149 1 367 258 | 1 150 1 180 259 | 1 150 1 181 260 | 1 150 1 183 261 | 1 150 1 206 262 | 1 150 1 222 263 | 1 150 1 223 264 | 1 150 1 365 265 | 1 150 1 366 266 | 1 150 1 367 267 | 1 151 1 222 268 | 1 151 1 223 269 | 1 151 1 366 270 | 1 151 1 385 271 | 1 151 1 386 272 | 1 151 1 479 273 | 1 152 1 223 274 | 1 153 1 187 275 | 1 153 1 189 276 | 1 153 1 206 277 | 1 155 1 186 278 | 1 155 1 187 279 | 1 155 1 190 280 | 1 156 1 189 281 | 1 157 1 223 282 | 1 158 1 223 283 | 1 159 1 187 284 | 1 159 1 189 285 | 1 159 1 202 286 | 1 159 1 205 287 | 1 159 1 206 288 | 1 159 1 223 289 | 1 180 1 223 290 | 1 183 1 367 291 | 1 183 1 499 292 | 1 184 1 207 293 | 1 184 1 343 294 | 1 184 1 345 295 | 1 184 1 353 296 | 1 184 1 367 297 | 1 184 1 498 298 | 1 184 1 499 299 | 1 185 1 337 300 | 1 185 1 343 301 | 1 185 1 498 302 | 1 196 1 343 303 | 1 196 1 345 304 | 1 196 1 346 305 | 1 203 1 345 306 | 1 203 1 346 307 | 1 206 1 351 308 | 1 206 1 361 309 | 1 206 1 367 310 | 1 207 1 345 311 | 1 207 1 346 312 | 1 207 1 351 313 | 1 207 1 361 314 | 1 207 1 365 315 | 1 207 1 367 316 | 1 210 1 345 317 | 1 210 1 349 318 | 1 210 1 351 319 | 1 210 1 355 320 | 1 210 1 361 321 | 1 210 1 364 322 | 1 210 1 365 323 | 1 211 1 345 324 | 1 211 1 346 325 | 1 211 1 349 326 | 1 211 1 351 327 | 1 211 1 354 328 | 1 212 1 333 329 | 1 212 1 349 330 | 1 212 1 351 331 | 1 212 1 354 332 | 1 212 1 355 333 | 1 215 1 333 334 | 1 217 1 361 335 | 1 217 1 364 336 | 1 217 1 365 337 | 1 220 1 364 338 | 1 221 1 364 339 | 1 221 1 365 340 | 1 222 1 364 341 | 1 222 1 365 342 | 1 222 1 366 343 | 1 222 1 379 344 | 1 222 1 384 345 | 1 222 1 385 346 | 1 223 1 366 347 | 1 223 1 385 348 | 1 224 1 355 349 | 1 224 1 361 350 | 1 224 1 364 351 | 1 224 1 369 352 | 1 224 1 384 353 | 1 227 1 364 354 | 1 227 1 369 355 | 1 227 1 379 356 | 1 227 1 382 357 | 1 227 1 383 358 | 1 227 1 384 359 | 1 228 1 355 360 | 1 228 1 356 361 | 1 228 1 364 362 | 1 228 1 369 363 | 1 228 1 372 364 | 1 228 1 373 365 | 1 230 1 372 366 | 1 230 1 373 367 | 1 231 1 332 368 | 1 231 1 333 369 | 1 231 1 355 370 | 1 231 1 356 371 | 1 231 1 359 372 | 1 231 1 373 373 | 1 231 1 375 374 | 1 233 1 379 375 | 1 233 1 382 376 | 1 233 1 383 377 | 1 233 1 385 378 | 1 236 1 383 379 | 1 237 1 382 380 | 1 237 1 383 381 | 1 237 1 385 382 | 1 237 1 398 383 | 1 237 1 403 384 | 1 237 1 404 385 | 1 237 1 436 386 | 1 238 1 383 387 | 1 238 1 385 388 | 1 239 1 379 389 | 1 239 1 382 390 | 1 239 1 388 391 | 1 239 1 403 392 | 1 239 1 404 393 | 1 242 1 382 394 | 1 242 1 388 395 | 1 242 1 393 396 | 1 242 1 398 397 | 1 242 1 401 398 | 1 242 1 403 399 | 1 242 1 404 400 | 1 243 1 270 401 | 1 243 1 271 402 | 1 243 1 388 403 | 1 243 1 393 404 | 1 244 1 271 405 | 1 245 1 268 406 | 1 245 1 269 407 | 1 245 1 271 408 | 1 245 1 285 409 | 1 245 1 372 410 | 1 245 1 375 411 | 1 245 1 395 412 | 1 246 1 270 413 | 1 246 1 271 414 | 1 248 1 398 415 | 1 248 1 401 416 | 1 248 1 404 417 | 1 250 1 393 418 | 1 254 1 388 419 | 1 254 1 398 420 | 1 254 1 401 421 | 1 254 1 404 422 | 1 255 1 388 423 | 1 255 1 391 424 | 1 255 1 393 425 | 1 255 1 466 426 | 1 258 1 389 427 | 1 258 1 391 428 | 1 258 1 401 429 | 1 258 1 458 430 | 1 259 1 401 431 | 1 259 1 406 432 | 1 259 1 409 433 | 1 259 1 458 434 | 1 260 1 391 435 | 1 260 1 456 436 | 1 260 1 458 437 | 1 260 1 464 438 | 1 260 1 465 439 | 1 261 1 393 440 | 1 261 1 466 441 | 1 261 1 467 442 | 1 265 1 393 443 | 1 268 1 395 444 | 1 269 1 395 445 | 1 284 1 378 446 | 1 285 1 375 447 | 1 285 1 397 448 | 1 286 1 377 449 | 1 286 1 397 450 | 1 287 1 378 451 | 1 290 1 360 452 | 1 290 1 377 453 | 1 290 1 378 454 | 1 292 1 378 455 | 1 305 1 360 456 | 1 305 1 377 457 | 1 305 1 378 458 | 1 305 1 504 459 | 1 309 1 359 460 | 1 310 1 359 461 | 1 310 1 360 462 | 1 310 1 378 463 | 1 312 1 501 464 | 1 312 1 504 465 | 1 317 1 504 466 | 1 319 1 496 467 | 1 319 1 501 468 | 1 322 1 496 469 | 1 322 1 498 470 | 1 323 1 501 471 | 1 323 1 504 472 | 1 326 1 498 473 | 1 326 1 500 474 | 1 326 1 501 475 | 1 326 1 502 476 | 1 327 1 504 477 | 1 335 1 498 478 | 1 335 1 500 479 | 1 336 1 500 480 | 1 337 1 498 481 | 1 337 1 499 482 | 1 339 1 498 483 | 1 350 1 498 484 | 1 353 1 485 485 | 1 353 1 494 486 | 1 353 1 498 487 | 1 353 1 500 488 | 1 353 1 503 489 | 1 354 1 500 490 | 1 354 1 503 491 | 1 355 1 503 492 | 1 357 1 503 493 | 1 360 1 504 494 | 1 362 1 482 495 | 1 362 1 485 496 | 1 362 1 494 497 | 1 365 1 485 498 | 1 366 1 479 499 | 1 366 1 482 500 | 1 366 1 485 501 | 1 367 1 485 502 | 1 367 1 494 503 | 1 367 1 499 504 | 1 368 1 482 505 | 1 368 1 485 506 | 1 368 1 500 507 | 1 368 1 503 508 | 1 371 1 462 509 | 1 371 1 471 510 | 1 371 1 476 511 | 1 371 1 479 512 | 1 371 1 482 513 | 1 371 1 485 514 | 1 372 1 485 515 | 1 373 1 485 516 | 1 373 1 503 517 | 1 377 1 503 518 | 1 377 1 504 519 | 1 380 1 452 520 | 1 380 1 476 521 | 1 380 1 479 522 | 1 380 1 480 523 | 1 381 1 453 524 | 1 383 1 452 525 | 1 383 1 453 526 | 1 384 1 453 527 | 1 385 1 453 528 | 1 386 1 452 529 | 1 386 1 453 530 | 1 386 1 479 531 | 1 386 1 480 532 | 1 387 1 452 533 | 1 387 1 462 534 | 1 390 1 441 535 | 1 390 1 447 536 | 1 390 1 452 537 | 1 390 1 453 538 | 1 390 1 454 539 | 1 390 1 458 540 | 1 390 1 459 541 | 1 390 1 462 542 | 1 390 1 463 543 | 1 390 1 464 544 | 1 390 1 466 545 | 1 391 1 458 546 | 1 391 1 459 547 | 1 391 1 462 548 | 1 391 1 463 549 | 1 391 1 464 550 | 1 391 1 466 551 | 1 392 1 466 552 | 1 394 1 462 553 | 1 394 1 463 554 | 1 394 1 471 555 | 1 396 1 491 556 | 1 399 1 441 557 | 1 399 1 447 558 | 1 399 1 454 559 | 1 399 1 458 560 | 1 402 1 431 561 | 1 402 1 432 562 | 1 402 1 436 563 | 1 402 1 441 564 | 1 403 1 433 565 | 1 403 1 436 566 | 1 403 1 441 567 | 1 403 1 447 568 | 1 403 1 453 569 | 1 403 1 454 570 | 1 404 1 431 571 | 1 404 1 436 572 | 1 405 1 438 573 | 1 405 1 441 574 | 1 405 1 454 575 | 1 405 1 458 576 | 1 408 1 438 577 | 1 408 1 441 578 | 1 409 1 441 579 | 1 409 1 458 580 | 1 411 1 438 581 | 1 411 1 441 582 | 1 411 1 442 583 | 1 411 1 445 584 | 1 412 1 442 585 | 1 412 1 445 586 | 1 412 1 449 587 | 1 412 1 455 588 | 1 412 1 458 589 | 1 451 1 480 590 | 1 452 1 480 591 | 1 452 1 481 592 | 1 453 1 480 593 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/1YPA_I_CA.contacts: -------------------------------------------------------------------------------- 1 | 1 1 1 63 2 | 1 1 1 24 3 | 1 1 1 44 4 | 1 1 1 42 5 | 1 2 1 23 6 | 1 2 1 24 7 | 1 2 1 63 8 | 1 2 1 6 9 | 1 2 1 7 10 | 1 2 1 19 11 | 1 3 1 63 12 | 1 3 1 61 13 | 1 3 1 62 14 | 1 3 1 42 15 | 1 4 1 61 16 | 1 4 1 62 17 | 1 4 1 60 18 | 1 5 1 60 19 | 1 5 1 61 20 | 1 5 1 9 21 | 1 5 1 19 22 | 1 5 1 20 23 | 1 5 1 23 24 | 1 5 1 24 25 | 1 5 1 47 26 | 1 5 1 62 27 | 1 5 1 63 28 | 1 6 1 60 29 | 1 7 1 11 30 | 1 7 1 19 31 | 1 7 1 23 32 | 1 8 1 61 33 | 1 8 1 16 34 | 1 8 1 57 35 | 1 8 1 59 36 | 1 8 1 19 37 | 1 8 1 15 38 | 1 8 1 20 39 | 1 9 1 61 40 | 1 9 1 57 41 | 1 9 1 59 42 | 1 9 1 58 43 | 1 9 1 60 44 | 1 10 1 57 45 | 1 10 1 56 46 | 1 11 1 57 47 | 1 11 1 16 48 | 1 11 1 51 49 | 1 11 1 55 50 | 1 11 1 56 51 | 1 11 1 15 52 | 1 12 1 56 53 | 1 12 1 55 54 | 1 12 1 16 55 | 1 12 1 57 56 | 1 13 1 55 57 | 1 13 1 49 58 | 1 13 1 57 59 | 1 13 1 17 60 | 1 13 1 31 61 | 1 13 1 51 62 | 1 13 1 56 63 | 1 14 1 18 64 | 1 15 1 19 65 | 1 16 1 20 66 | 1 16 1 49 67 | 1 16 1 57 68 | 1 16 1 61 69 | 1 17 1 49 70 | 1 17 1 29 71 | 1 17 1 21 72 | 1 17 1 31 73 | 1 18 1 22 74 | 1 19 1 23 75 | 1 20 1 24 76 | 1 20 1 27 77 | 1 20 1 29 78 | 1 20 1 47 79 | 1 20 1 49 80 | 1 20 1 61 81 | 1 21 1 29 82 | 1 21 1 25 83 | 1 21 1 27 84 | 1 24 1 29 85 | 1 24 1 47 86 | 1 24 1 63 87 | 1 24 1 28 88 | 1 24 1 45 89 | 1 24 1 46 90 | 1 24 1 44 91 | 1 26 1 45 92 | 1 27 1 45 93 | 1 27 1 46 94 | 1 27 1 47 95 | 1 28 1 45 96 | 1 28 1 46 97 | 1 28 1 47 98 | 1 28 1 43 99 | 1 29 1 47 100 | 1 29 1 49 101 | 1 30 1 46 102 | 1 30 1 47 103 | 1 30 1 48 104 | 1 30 1 49 105 | 1 30 1 43 106 | 1 31 1 49 107 | 1 31 1 51 108 | 1 31 1 55 109 | 1 32 1 49 110 | 1 32 1 50 111 | 1 32 1 51 112 | 1 32 1 36 113 | 1 32 1 38 114 | 1 32 1 48 115 | 1 33 1 51 116 | 1 33 1 50 117 | 1 34 1 50 118 | 1 34 1 51 119 | 1 34 1 59 120 | 1 34 1 58 121 | 1 34 1 52 122 | 1 35 1 50 123 | 1 35 1 59 124 | 1 36 1 50 125 | 1 38 1 48 126 | 1 38 1 50 127 | 1 39 1 48 128 | 1 39 1 46 129 | 1 41 1 46 130 | 1 41 1 48 131 | 1 41 1 64 132 | 1 42 1 64 133 | 1 42 1 63 134 | 1 43 1 64 135 | 1 43 1 63 136 | 1 44 1 63 137 | 1 44 1 64 138 | 1 46 1 63 139 | 1 46 1 62 140 | 1 46 1 64 141 | 1 47 1 62 142 | 1 47 1 63 143 | 1 47 1 61 144 | 1 48 1 62 145 | 1 48 1 64 146 | 1 48 1 59 147 | 1 48 1 60 148 | 1 48 1 61 149 | 1 49 1 57 150 | 1 49 1 61 151 | 1 50 1 57 152 | 1 50 1 59 153 | 1 50 1 56 154 | 1 50 1 58 155 | 1 50 1 60 156 | 1 50 1 62 157 | 1 51 1 56 158 | 1 51 1 57 159 | 1 51 1 58 160 | 1 51 1 55 161 | 1 52 1 56 162 | 1 52 1 58 163 | 1 52 1 57 164 | 1 57 1 61 165 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_hc_better_estimate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | heatCapacityData/135.data 21 | 22 | 23 | 24 | V 25 | 26 | heatCapacityData/136.data 27 | 28 | 29 | 30 | V 31 | 32 | heatCapacityData/137.data 33 | 34 | 35 | 36 | V 37 | 38 | heatCapacityData/138.data 39 | 40 | 41 | 42 | V 43 | 44 | heatCapacityData/139.data 45 | 46 | 47 | 48 | V 49 | 50 | heatCapacityData/140.data 51 | 52 | 53 | 54 | V 55 | 56 | heatCapacityData/141.data 57 | 58 | 59 | 60 | V 61 | 62 | heatCapacityData/142.data 63 | 64 | 65 | 66 | V 67 | 68 | heatCapacityData/143.data 69 | 70 | 71 | 72 | V 73 | 74 | heatCapacityData/144.data 75 | 76 | 77 | 78 | V 79 | 80 | heatCapacityData/145.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_hc_rough_estimate.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | heatCapacityData/100_rough.data 21 | 22 | 23 | 24 | V 25 | 26 | heatCapacityData/105_rough.data 27 | 28 | 29 | 30 | V 31 | 32 | heatCapacityData/110_rough.data 33 | 34 | 35 | 36 | V 37 | 38 | heatCapacityData/115_rough.data 39 | 40 | 41 | 42 | V 43 | 44 | heatCapacityData/120_rough.data 45 | 46 | 47 | 48 | V 49 | 50 | heatCapacityData/125_rough.data 51 | 52 | 53 | 54 | V 55 | 56 | heatCapacityData/130_rough.data 57 | 58 | 59 | 60 | V 61 | 62 | heatCapacityData/135_rough.data 63 | 64 | 65 | 66 | V 67 | 68 | heatCapacityData/140_rough.data 69 | 70 | 71 | 72 | V 73 | 74 | heatCapacityData/145_rough.data 75 | 76 | 77 | 78 | V 79 | 80 | heatCapacityData/150_rough.data 81 | 82 | 83 | 84 | V 85 | 86 | heatCapacityData/155_rough.data 87 | 88 | 89 | 90 | V 91 | 92 | heatCapacityData/160_rough.data 93 | 94 | 95 | 96 | V 97 | 98 | heatCapacityData/165_rough.data 99 | 100 | 101 | 102 | V 103 | 104 | heatCapacityData/170_rough.data 105 | 106 | 107 | 108 | V 109 | 110 | heatCapacityData/175_rough.data 111 | 112 | 113 | 114 | V 115 | 116 | heatCapacityData/180_rough.data 117 | 118 | 119 | 120 | V 121 | 122 | heatCapacityData/185_rough.data 123 | 124 | 125 | 126 | V 127 | 128 | heatCapacityData/190_rough.data 129 | 130 | 131 | 132 | V 133 | 134 | heatCapacityData/195_rough.data 135 | 136 | 137 | 138 | V 139 | 140 | heatCapacityData/200_rough.data 141 | 142 | 143 | 144 | 145 | 146 | V 147 | 100,105,110,115,120,125,130,135,140,145,150,155,160,165,170,175,180,185,190,195,200 148 | 149 | 150 | 151 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_01.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_01.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_01.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_01.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_01.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_01.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_01.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_01.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_01.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_01.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_01.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_01.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_02.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_02.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_02.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_02.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_02.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_02.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_02.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_02.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_02.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_02.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_02.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_02.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_03.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_03.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_03.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_03.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_03.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_03.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_03.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_03.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_03.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_03.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_03.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_03.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_04.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_04.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_04.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_04.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_04.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_04.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_04.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_04.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_04.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_04.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_04.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_04.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_05.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_05.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_05.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_05.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_05.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_05.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_05.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_05.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_05.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_05.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_05.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_05.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_06.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_06.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_06.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_06.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_06.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_06.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_06.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_06.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_06.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_06.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_06.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_06.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_07.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_07.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_07.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_07.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_07.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_07.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_07.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_07.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_07.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_07.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_07.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_07.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_08.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_08.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_08.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_08.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_08.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_08.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_08.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_08.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_08.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_08.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_08.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_08.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_09.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_09.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_09.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_09.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_09.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_09.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_09.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_09.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_09.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_09.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_09.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_09.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/03-FoldingTemperature/inputs/pywham_iterative_10.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 0.1 13 | 14 | 15 | 16 | 17 | 18 | V 19 | 20 | iterativeHeatCapacityData/energy_135_time_10.data 21 | 22 | 23 | 24 | V 25 | 26 | iterativeHeatCapacityData/energy_136_time_10.data 27 | 28 | 29 | 30 | V 31 | 32 | iterativeHeatCapacityData/energy_137_time_10.data 33 | 34 | 35 | 36 | V 37 | 38 | iterativeHeatCapacityData/energy_138_time_10.data 39 | 40 | 41 | 42 | V 43 | 44 | iterativeHeatCapacityData/energy_139_time_10.data 45 | 46 | 47 | 48 | V 49 | 50 | iterativeHeatCapacityData/energy_140_time_10.data 51 | 52 | 53 | 54 | V 55 | 56 | iterativeHeatCapacityData/energy_141_time_10.data 57 | 58 | 59 | 60 | V 61 | 62 | iterativeHeatCapacityData/energy_142_time_10.data 63 | 64 | 65 | 66 | V 67 | 68 | iterativeHeatCapacityData/energy_143_time_10.data 69 | 70 | 71 | 72 | V 73 | 74 | iterativeHeatCapacityData/energy_144_time_10.data 75 | 76 | 77 | 78 | V 79 | 80 | iterativeHeatCapacityData/energy_145_time_10.data 81 | 82 | 83 | 84 | 85 | 86 | V 87 | 135,136,137,138,139,140,141,142,143,144,145 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /tutorials/basic/04-FreeEnergySurface/inputs/1YPA_I_CA.contacts: -------------------------------------------------------------------------------- 1 | 1 1 1 63 2 | 1 1 1 24 3 | 1 1 1 44 4 | 1 1 1 42 5 | 1 2 1 23 6 | 1 2 1 24 7 | 1 2 1 63 8 | 1 2 1 6 9 | 1 2 1 7 10 | 1 2 1 19 11 | 1 3 1 63 12 | 1 3 1 61 13 | 1 3 1 62 14 | 1 3 1 42 15 | 1 4 1 61 16 | 1 4 1 62 17 | 1 4 1 60 18 | 1 5 1 60 19 | 1 5 1 61 20 | 1 5 1 9 21 | 1 5 1 19 22 | 1 5 1 20 23 | 1 5 1 23 24 | 1 5 1 24 25 | 1 5 1 47 26 | 1 5 1 62 27 | 1 5 1 63 28 | 1 6 1 60 29 | 1 7 1 11 30 | 1 7 1 19 31 | 1 7 1 23 32 | 1 8 1 61 33 | 1 8 1 16 34 | 1 8 1 57 35 | 1 8 1 59 36 | 1 8 1 19 37 | 1 8 1 15 38 | 1 8 1 20 39 | 1 9 1 61 40 | 1 9 1 57 41 | 1 9 1 59 42 | 1 9 1 58 43 | 1 9 1 60 44 | 1 10 1 57 45 | 1 10 1 56 46 | 1 11 1 57 47 | 1 11 1 16 48 | 1 11 1 51 49 | 1 11 1 55 50 | 1 11 1 56 51 | 1 11 1 15 52 | 1 12 1 56 53 | 1 12 1 55 54 | 1 12 1 16 55 | 1 12 1 57 56 | 1 13 1 55 57 | 1 13 1 49 58 | 1 13 1 57 59 | 1 13 1 17 60 | 1 13 1 31 61 | 1 13 1 51 62 | 1 13 1 56 63 | 1 14 1 18 64 | 1 15 1 19 65 | 1 16 1 20 66 | 1 16 1 49 67 | 1 16 1 57 68 | 1 16 1 61 69 | 1 17 1 49 70 | 1 17 1 29 71 | 1 17 1 21 72 | 1 17 1 31 73 | 1 18 1 22 74 | 1 19 1 23 75 | 1 20 1 24 76 | 1 20 1 27 77 | 1 20 1 29 78 | 1 20 1 47 79 | 1 20 1 49 80 | 1 20 1 61 81 | 1 21 1 29 82 | 1 21 1 25 83 | 1 21 1 27 84 | 1 24 1 29 85 | 1 24 1 47 86 | 1 24 1 63 87 | 1 24 1 28 88 | 1 24 1 45 89 | 1 24 1 46 90 | 1 24 1 44 91 | 1 26 1 45 92 | 1 27 1 45 93 | 1 27 1 46 94 | 1 27 1 47 95 | 1 28 1 45 96 | 1 28 1 46 97 | 1 28 1 47 98 | 1 28 1 43 99 | 1 29 1 47 100 | 1 29 1 49 101 | 1 30 1 46 102 | 1 30 1 47 103 | 1 30 1 48 104 | 1 30 1 49 105 | 1 30 1 43 106 | 1 31 1 49 107 | 1 31 1 51 108 | 1 31 1 55 109 | 1 32 1 49 110 | 1 32 1 50 111 | 1 32 1 51 112 | 1 32 1 36 113 | 1 32 1 38 114 | 1 32 1 48 115 | 1 33 1 51 116 | 1 33 1 50 117 | 1 34 1 50 118 | 1 34 1 51 119 | 1 34 1 59 120 | 1 34 1 58 121 | 1 34 1 52 122 | 1 35 1 50 123 | 1 35 1 59 124 | 1 36 1 50 125 | 1 38 1 48 126 | 1 38 1 50 127 | 1 39 1 48 128 | 1 39 1 46 129 | 1 41 1 46 130 | 1 41 1 48 131 | 1 41 1 64 132 | 1 42 1 64 133 | 1 42 1 63 134 | 1 43 1 64 135 | 1 43 1 63 136 | 1 44 1 63 137 | 1 44 1 64 138 | 1 46 1 63 139 | 1 46 1 62 140 | 1 46 1 64 141 | 1 47 1 62 142 | 1 47 1 63 143 | 1 47 1 61 144 | 1 48 1 62 145 | 1 48 1 64 146 | 1 48 1 59 147 | 1 48 1 60 148 | 1 48 1 61 149 | 1 49 1 57 150 | 1 49 1 61 151 | 1 50 1 57 152 | 1 50 1 59 153 | 1 50 1 56 154 | 1 50 1 58 155 | 1 50 1 60 156 | 1 50 1 62 157 | 1 51 1 56 158 | 1 51 1 57 159 | 1 51 1 58 160 | 1 51 1 55 161 | 1 52 1 56 162 | 1 52 1 58 163 | 1 52 1 57 164 | 1 57 1 61 165 | -------------------------------------------------------------------------------- /tutorials/basic/04-FreeEnergySurface/inputs/pywham_Qf_RMSD_free_energy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 0.05 17 | 18 | 19 | 0.45 20 | 21 | 22 | 0.1 23 | 24 | 25 | 26 | 27 | 28 | V 29 | 30 | simulationData/Qf_RMSD_00.data 31 | 32 | 33 | 34 | V 35 | 36 | simulationData/Qf_RMSD_01.data 37 | 38 | 39 | 40 | V 41 | 42 | simulationData/Qf_RMSD_02.data 43 | 44 | 45 | 46 | V 47 | 48 | simulationData/Qf_RMSD_03.data 49 | 50 | 51 | 52 | V 53 | 54 | simulationData/Qf_RMSD_04.data 55 | 56 | 57 | 58 | V 59 | 60 | simulationData/Qf_RMSD_05.data 61 | 62 | 63 | 64 | V 65 | 66 | simulationData/Qf_RMSD_06.data 67 | 68 | 69 | 70 | V 71 | 72 | simulationData/Qf_RMSD_07.data 73 | 74 | 75 | 76 | V 77 | 78 | simulationData/Qf_RMSD_08.data 79 | 80 | 81 | 82 | V 83 | 84 | simulationData/Qf_RMSD_09.data 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | V 95 | 136 96 | 97 | true 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /tutorials/basic/04-FreeEnergySurface/inputs/pywham_Qf_free_energy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0.05 15 | 16 | 17 | 0.1 18 | 19 | 20 | 21 | 22 | 23 | V 24 | 25 | simulationData/Qf_00.data 26 | 27 | 28 | 29 | V 30 | 31 | simulationData/Qf_01.data 32 | 33 | 34 | 35 | V 36 | 37 | simulationData/Qf_02.data 38 | 39 | 40 | 41 | V 42 | 43 | simulationData/Qf_03.data 44 | 45 | 46 | 47 | V 48 | 49 | simulationData/Qf_04.data 50 | 51 | 52 | 53 | V 54 | 55 | simulationData/Qf_05.data 56 | 57 | 58 | 59 | V 60 | 61 | simulationData/Qf_06.data 62 | 63 | 64 | 65 | V 66 | 67 | simulationData/Qf_07.data 68 | 69 | 70 | 71 | V 72 | 73 | simulationData/Qf_08.data 74 | 75 | 76 | 77 | V 78 | 79 | simulationData/Qf_09.data 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | V 89 | 136 90 | 91 | true 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /tutorials/basic/04-FreeEnergySurface/inputs/pywham_RMSD_free_energy.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 0.45 15 | 16 | 17 | 0.1 18 | 19 | 20 | 21 | 22 | 23 | V 24 | 25 | simulationData/RMSD_00.data 26 | 27 | 28 | 29 | V 30 | 31 | simulationData/RMSD_01.data 32 | 33 | 34 | 35 | V 36 | 37 | simulationData/RMSD_02.data 38 | 39 | 40 | 41 | V 42 | 43 | simulationData/RMSD_03.data 44 | 45 | 46 | 47 | V 48 | 49 | simulationData/RMSD_04.data 50 | 51 | 52 | 53 | V 54 | 55 | simulationData/RMSD_05.data 56 | 57 | 58 | 59 | V 60 | 61 | simulationData/RMSD_06.data 62 | 63 | 64 | 65 | V 66 | 67 | simulationData/RMSD_07.data 68 | 69 | 70 | 71 | V 72 | 73 | simulationData/RMSD_08.data 74 | 75 | 76 | 77 | V 78 | 79 | simulationData/RMSD_09.data 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | V 89 | 136 90 | 91 | true 92 | 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /tutorials/basic/05-MultiBasin/input/AK_close_CA.contacts: -------------------------------------------------------------------------------- 1 | 1 1 1 26 2 | 1 1 1 79 3 | 1 1 1 80 4 | 1 1 1 104 5 | 1 1 1 81 6 | 1 1 1 105 7 | 1 1 1 213 8 | 1 1 1 20 9 | 1 1 1 24 10 | 1 2 1 104 11 | 1 2 1 81 12 | 1 2 1 103 13 | 1 2 1 105 14 | 1 2 1 102 15 | 1 2 1 80 16 | 1 2 1 101 17 | 1 2 1 77 18 | 1 2 1 100 19 | 1 2 1 72 20 | 1 2 1 78 21 | 1 3 1 26 22 | 1 3 1 81 23 | 1 3 1 82 24 | 1 3 1 105 25 | 1 3 1 83 26 | 1 3 1 104 27 | 1 3 1 107 28 | 1 3 1 20 29 | 1 3 1 213 30 | 1 4 1 103 31 | 1 4 1 105 32 | 1 4 1 106 33 | 1 4 1 83 34 | 1 4 1 86 35 | 1 4 1 107 36 | 1 4 1 182 37 | 1 4 1 87 38 | 1 4 1 96 39 | 1 5 1 82 40 | 1 5 1 83 41 | 1 5 1 85 42 | 1 5 1 86 43 | 1 5 1 107 44 | 1 5 1 13 45 | 1 5 1 84 46 | 1 5 1 87 47 | 1 5 1 109 48 | 1 5 1 16 49 | 1 5 1 17 50 | 1 5 1 20 51 | 1 6 1 106 52 | 1 6 1 107 53 | 1 6 1 108 54 | 1 6 1 109 55 | 1 6 1 11 56 | 1 6 1 13 57 | 1 6 1 171 58 | 1 6 1 175 59 | 1 6 1 178 60 | 1 6 1 87 61 | 1 6 1 182 62 | 1 6 1 179 63 | 1 6 1 193 64 | 1 7 1 13 65 | 1 7 1 175 66 | 1 7 1 11 67 | 1 7 1 108 68 | 1 7 1 109 69 | 1 7 1 171 70 | 1 8 1 109 71 | 1 8 1 171 72 | 1 8 1 116 73 | 1 8 1 13 74 | 1 8 1 111 75 | 1 8 1 113 76 | 1 8 1 168 77 | 1 8 1 172 78 | 1 9 1 116 79 | 1 9 1 168 80 | 1 9 1 120 81 | 1 9 1 164 82 | 1 9 1 167 83 | 1 9 1 171 84 | 1 10 1 120 85 | 1 10 1 123 86 | 1 10 1 116 87 | 1 10 1 119 88 | 1 10 1 111 89 | 1 11 1 111 90 | 1 11 1 119 91 | 1 11 1 109 92 | 1 11 1 198 93 | 1 11 1 116 94 | 1 12 1 16 95 | 1 12 1 17 96 | 1 12 1 109 97 | 1 13 1 109 98 | 1 13 1 17 99 | 1 13 1 28 100 | 1 13 1 84 101 | 1 13 1 85 102 | 1 13 1 88 103 | 1 14 1 84 104 | 1 14 1 28 105 | 1 14 1 18 106 | 1 14 1 130 107 | 1 15 1 132 108 | 1 15 1 19 109 | 1 15 1 138 110 | 1 15 1 202 111 | 1 16 1 20 112 | 1 16 1 82 113 | 1 16 1 209 114 | 1 16 1 109 115 | 1 16 1 205 116 | 1 16 1 201 117 | 1 16 1 202 118 | 1 16 1 206 119 | 1 17 1 82 120 | 1 17 1 28 121 | 1 17 1 21 122 | 1 17 1 26 123 | 1 17 1 84 124 | 1 18 1 28 125 | 1 18 1 22 126 | 1 18 1 130 127 | 1 18 1 131 128 | 1 18 1 132 129 | 1 19 1 23 130 | 1 19 1 24 131 | 1 19 1 206 132 | 1 19 1 209 133 | 1 19 1 210 134 | 1 19 1 213 135 | 1 20 1 24 136 | 1 20 1 25 137 | 1 20 1 26 138 | 1 20 1 82 139 | 1 20 1 209 140 | 1 20 1 213 141 | 1 20 1 107 142 | 1 20 1 109 143 | 1 21 1 82 144 | 1 21 1 26 145 | 1 21 1 25 146 | 1 21 1 28 147 | 1 21 1 27 148 | 1 22 1 206 149 | 1 23 1 206 150 | 1 23 1 210 151 | 1 23 1 214 152 | 1 24 1 213 153 | 1 24 1 209 154 | 1 24 1 210 155 | 1 24 1 214 156 | 1 26 1 80 157 | 1 26 1 82 158 | 1 26 1 81 159 | 1 26 1 79 160 | 1 27 1 77 161 | 1 27 1 80 162 | 1 27 1 81 163 | 1 27 1 82 164 | 1 27 1 71 165 | 1 27 1 76 166 | 1 27 1 79 167 | 1 28 1 82 168 | 1 28 1 84 169 | 1 28 1 71 170 | 1 28 1 33 171 | 1 28 1 129 172 | 1 28 1 130 173 | 1 29 1 81 174 | 1 29 1 82 175 | 1 29 1 84 176 | 1 29 1 34 177 | 1 29 1 71 178 | 1 29 1 83 179 | 1 29 1 86 180 | 1 29 1 76 181 | 1 29 1 68 182 | 1 29 1 72 183 | 1 29 1 77 184 | 1 30 1 34 185 | 1 30 1 84 186 | 1 30 1 36 187 | 1 31 1 84 188 | 1 31 1 85 189 | 1 31 1 86 190 | 1 31 1 67 191 | 1 31 1 35 192 | 1 31 1 64 193 | 1 31 1 88 194 | 1 31 1 68 195 | 1 32 1 84 196 | 1 32 1 85 197 | 1 32 1 88 198 | 1 32 1 36 199 | 1 32 1 53 200 | 1 32 1 37 201 | 1 33 1 37 202 | 1 33 1 40 203 | 1 33 1 127 204 | 1 33 1 130 205 | 1 33 1 84 206 | 1 33 1 129 207 | 1 34 1 67 208 | 1 34 1 38 209 | 1 34 1 45 210 | 1 34 1 71 211 | 1 34 1 68 212 | 1 35 1 46 213 | 1 35 1 39 214 | 1 35 1 49 215 | 1 35 1 53 216 | 1 35 1 59 217 | 1 35 1 67 218 | 1 35 1 64 219 | 1 35 1 45 220 | 1 35 1 63 221 | 1 36 1 53 222 | 1 36 1 40 223 | 1 36 1 157 224 | 1 36 1 156 225 | 1 36 1 158 226 | 1 37 1 41 227 | 1 37 1 43 228 | 1 38 1 43 229 | 1 38 1 42 230 | 1 38 1 47 231 | 1 38 1 45 232 | 1 38 1 46 233 | 1 38 1 67 234 | 1 39 1 46 235 | 1 39 1 47 236 | 1 39 1 50 237 | 1 39 1 49 238 | 1 39 1 53 239 | 1 40 1 127 240 | 1 42 1 47 241 | 1 43 1 47 242 | 1 43 1 48 243 | 1 44 1 48 244 | 1 44 1 63 245 | 1 45 1 63 246 | 1 45 1 67 247 | 1 45 1 66 248 | 1 45 1 70 249 | 1 46 1 63 250 | 1 46 1 67 251 | 1 46 1 50 252 | 1 46 1 53 253 | 1 48 1 52 254 | 1 48 1 63 255 | 1 49 1 63 256 | 1 49 1 53 257 | 1 49 1 54 258 | 1 49 1 59 259 | 1 50 1 54 260 | 1 51 1 55 261 | 1 52 1 57 262 | 1 52 1 56 263 | 1 52 1 59 264 | 1 52 1 58 265 | 1 52 1 60 266 | 1 52 1 63 267 | 1 53 1 59 268 | 1 53 1 57 269 | 1 53 1 158 270 | 1 53 1 163 271 | 1 53 1 167 272 | 1 54 1 158 273 | 1 54 1 157 274 | 1 54 1 160 275 | 1 54 1 163 276 | 1 55 1 166 277 | 1 55 1 162 278 | 1 55 1 163 279 | 1 56 1 158 280 | 1 56 1 163 281 | 1 56 1 166 282 | 1 56 1 167 283 | 1 56 1 170 284 | 1 57 1 170 285 | 1 58 1 170 286 | 1 58 1 89 287 | 1 58 1 88 288 | 1 58 1 174 289 | 1 58 1 175 290 | 1 59 1 64 291 | 1 59 1 92 292 | 1 59 1 63 293 | 1 60 1 64 294 | 1 60 1 65 295 | 1 61 1 92 296 | 1 61 1 65 297 | 1 61 1 86 298 | 1 61 1 89 299 | 1 61 1 91 300 | 1 62 1 66 301 | 1 63 1 67 302 | 1 64 1 68 303 | 1 64 1 69 304 | 1 64 1 86 305 | 1 64 1 85 306 | 1 64 1 92 307 | 1 65 1 92 308 | 1 65 1 86 309 | 1 65 1 69 310 | 1 65 1 95 311 | 1 65 1 91 312 | 1 66 1 70 313 | 1 67 1 71 314 | 1 68 1 72 315 | 1 68 1 83 316 | 1 68 1 86 317 | 1 68 1 101 318 | 1 69 1 73 319 | 1 69 1 101 320 | 1 69 1 99 321 | 1 69 1 95 322 | 1 70 1 74 323 | 1 71 1 76 324 | 1 71 1 77 325 | 1 72 1 77 326 | 1 72 1 81 327 | 1 72 1 76 328 | 1 72 1 101 329 | 1 72 1 83 330 | 1 74 1 78 331 | 1 75 1 79 332 | 1 76 1 80 333 | 1 76 1 81 334 | 1 77 1 81 335 | 1 81 1 96 336 | 1 81 1 103 337 | 1 81 1 101 338 | 1 81 1 102 339 | 1 83 1 87 340 | 1 83 1 96 341 | 1 83 1 101 342 | 1 83 1 103 343 | 1 85 1 92 344 | 1 86 1 92 345 | 1 86 1 96 346 | 1 86 1 95 347 | 1 87 1 92 348 | 1 87 1 175 349 | 1 87 1 178 350 | 1 87 1 93 351 | 1 87 1 96 352 | 1 87 1 182 353 | 1 88 1 92 354 | 1 88 1 93 355 | 1 88 1 175 356 | 1 88 1 178 357 | 1 88 1 174 358 | 1 88 1 171 359 | 1 88 1 167 360 | 1 89 1 174 361 | 1 89 1 175 362 | 1 89 1 93 363 | 1 89 1 178 364 | 1 90 1 174 365 | 1 90 1 181 366 | 1 90 1 94 367 | 1 90 1 95 368 | 1 90 1 177 369 | 1 90 1 178 370 | 1 91 1 95 371 | 1 91 1 174 372 | 1 92 1 96 373 | 1 93 1 182 374 | 1 93 1 97 375 | 1 93 1 181 376 | 1 93 1 178 377 | 1 94 1 181 378 | 1 94 1 98 379 | 1 94 1 99 380 | 1 95 1 99 381 | 1 95 1 101 382 | 1 96 1 101 383 | 1 96 1 100 384 | 1 96 1 182 385 | 1 96 1 102 386 | 1 96 1 103 387 | 1 97 1 101 388 | 1 97 1 181 389 | 1 97 1 185 390 | 1 97 1 190 391 | 1 102 1 190 392 | 1 103 1 190 393 | 1 103 1 191 394 | 1 103 1 182 395 | 1 104 1 190 396 | 1 104 1 191 397 | 1 104 1 192 398 | 1 105 1 192 399 | 1 105 1 191 400 | 1 105 1 213 401 | 1 105 1 194 402 | 1 105 1 212 403 | 1 106 1 191 404 | 1 106 1 192 405 | 1 106 1 193 406 | 1 106 1 194 407 | 1 106 1 182 408 | 1 107 1 194 409 | 1 107 1 196 410 | 1 107 1 209 411 | 1 107 1 213 412 | 1 107 1 212 413 | 1 108 1 194 414 | 1 108 1 195 415 | 1 108 1 196 416 | 1 108 1 193 417 | 1 108 1 171 418 | 1 108 1 179 419 | 1 108 1 183 420 | 1 109 1 196 421 | 1 109 1 198 422 | 1 109 1 171 423 | 1 109 1 205 424 | 1 109 1 209 425 | 1 110 1 195 426 | 1 110 1 196 427 | 1 110 1 198 428 | 1 110 1 197 429 | 1 110 1 199 430 | 1 111 1 115 431 | 1 111 1 199 432 | 1 111 1 116 433 | 1 111 1 119 434 | 1 111 1 198 435 | 1 112 1 116 436 | 1 112 1 199 437 | 1 113 1 168 438 | 1 113 1 117 439 | 1 113 1 171 440 | 1 113 1 172 441 | 1 114 1 118 442 | 1 115 1 119 443 | 1 115 1 198 444 | 1 115 1 199 445 | 1 116 1 120 446 | 1 116 1 164 447 | 1 116 1 168 448 | 1 117 1 164 449 | 1 117 1 121 450 | 1 117 1 161 451 | 1 117 1 165 452 | 1 118 1 122 453 | 1 118 1 134 454 | 1 118 1 137 455 | 1 118 1 136 456 | 1 119 1 134 457 | 1 119 1 137 458 | 1 119 1 123 459 | 1 119 1 198 460 | 1 119 1 199 461 | 1 119 1 200 462 | 1 120 1 124 463 | 1 120 1 159 464 | 1 120 1 164 465 | 1 120 1 158 466 | 1 120 1 160 467 | 1 120 1 167 468 | 1 121 1 134 469 | 1 121 1 159 470 | 1 121 1 135 471 | 1 121 1 155 472 | 1 121 1 160 473 | 1 121 1 161 474 | 1 122 1 134 475 | 1 122 1 135 476 | 1 122 1 136 477 | 1 122 1 133 478 | 1 123 1 133 479 | 1 123 1 134 480 | 1 123 1 154 481 | 1 123 1 155 482 | 1 123 1 156 483 | 1 123 1 159 484 | 1 123 1 132 485 | 1 123 1 158 486 | 1 123 1 167 487 | 1 124 1 132 488 | 1 124 1 133 489 | 1 124 1 135 490 | 1 124 1 154 491 | 1 124 1 155 492 | 1 124 1 153 493 | 1 124 1 131 494 | 1 124 1 134 495 | 1 125 1 153 496 | 1 125 1 154 497 | 1 125 1 131 498 | 1 125 1 132 499 | 1 125 1 133 500 | 1 125 1 152 501 | 1 125 1 130 502 | 1 125 1 155 503 | 1 125 1 156 504 | 1 125 1 159 505 | 1 126 1 131 506 | 1 126 1 133 507 | 1 126 1 153 508 | 1 126 1 152 509 | 1 126 1 130 510 | 1 126 1 146 511 | 1 126 1 151 512 | 1 126 1 149 513 | 1 127 1 152 514 | 1 127 1 154 515 | 1 128 1 151 516 | 1 129 1 146 517 | 1 131 1 146 518 | 1 131 1 153 519 | 1 131 1 147 520 | 1 131 1 148 521 | 1 131 1 149 522 | 1 132 1 138 523 | 1 133 1 138 524 | 1 133 1 139 525 | 1 133 1 140 526 | 1 133 1 153 527 | 1 133 1 147 528 | 1 133 1 146 529 | 1 133 1 145 530 | 1 133 1 148 531 | 1 134 1 138 532 | 1 134 1 140 533 | 1 134 1 139 534 | 1 135 1 139 535 | 1 135 1 140 536 | 1 137 1 202 537 | 1 138 1 202 538 | 1 139 1 147 539 | 1 140 1 147 540 | 1 140 1 145 541 | 1 140 1 153 542 | 1 140 1 144 543 | 1 141 1 147 544 | 1 142 1 147 545 | 1 142 1 153 546 | 1 143 1 152 547 | 1 144 1 152 548 | 1 144 1 153 549 | 1 144 1 151 550 | 1 145 1 153 551 | 1 145 1 151 552 | 1 145 1 152 553 | 1 145 1 150 554 | 1 146 1 150 555 | 1 146 1 151 556 | 1 146 1 153 557 | 1 146 1 152 558 | 1 155 1 159 559 | 1 156 1 160 560 | 1 156 1 167 561 | 1 157 1 163 562 | 1 158 1 163 563 | 1 158 1 164 564 | 1 158 1 167 565 | 1 159 1 164 566 | 1 159 1 167 567 | 1 160 1 164 568 | 1 160 1 167 569 | 1 161 1 165 570 | 1 162 1 166 571 | 1 163 1 167 572 | 1 164 1 168 573 | 1 165 1 169 574 | 1 166 1 170 575 | 1 167 1 171 576 | 1 168 1 172 577 | 1 169 1 173 578 | 1 170 1 174 579 | 1 170 1 175 580 | 1 171 1 175 581 | 1 171 1 176 582 | 1 171 1 177 583 | 1 171 1 179 584 | 1 172 1 176 585 | 1 172 1 177 586 | 1 173 1 177 587 | 1 174 1 178 588 | 1 175 1 179 589 | 1 176 1 180 590 | 1 177 1 181 591 | 1 178 1 182 592 | 1 178 1 183 593 | 1 178 1 193 594 | 1 179 1 193 595 | 1 179 1 183 596 | 1 180 1 184 597 | 1 181 1 185 598 | 1 182 1 191 599 | 1 182 1 186 600 | 1 182 1 193 601 | 1 183 1 187 602 | 1 183 1 193 603 | 1 184 1 188 604 | 1 184 1 190 605 | 1 185 1 190 606 | 1 185 1 189 607 | 1 185 1 191 608 | 1 186 1 191 609 | 1 186 1 190 610 | 1 186 1 192 611 | 1 186 1 193 612 | 1 194 1 212 613 | 1 195 1 212 614 | 1 196 1 208 615 | 1 196 1 205 616 | 1 196 1 209 617 | 1 196 1 212 618 | 1 197 1 208 619 | 1 197 1 205 620 | 1 198 1 205 621 | 1 200 1 204 622 | 1 200 1 205 623 | 1 200 1 208 624 | 1 201 1 205 625 | 1 202 1 206 626 | 1 203 1 207 627 | 1 204 1 208 628 | 1 204 1 211 629 | 1 205 1 209 630 | 1 206 1 210 631 | 1 207 1 211 632 | 1 208 1 212 633 | 1 209 1 213 634 | 1 209 1 214 635 | 1 210 1 214 636 | -------------------------------------------------------------------------------- /tutorials/basic/05-MultiBasin/input/AK_conformationalChange.webm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/tutorials/basic/05-MultiBasin/input/AK_conformationalChange.webm -------------------------------------------------------------------------------- /tutorials/basic/05-MultiBasin/input/AK_open_CA.contacts: -------------------------------------------------------------------------------- 1 | 1 1 1 26 2 | 1 1 1 79 3 | 1 1 1 80 4 | 1 1 1 104 5 | 1 1 1 24 6 | 1 1 1 81 7 | 1 1 1 20 8 | 1 1 1 213 9 | 1 1 1 105 10 | 1 1 1 214 11 | 1 2 1 104 12 | 1 2 1 105 13 | 1 2 1 81 14 | 1 2 1 102 15 | 1 2 1 103 16 | 1 2 1 79 17 | 1 2 1 80 18 | 1 2 1 77 19 | 1 2 1 100 20 | 1 2 1 101 21 | 1 2 1 72 22 | 1 3 1 26 23 | 1 3 1 81 24 | 1 3 1 82 25 | 1 3 1 105 26 | 1 3 1 83 27 | 1 3 1 20 28 | 1 3 1 104 29 | 1 3 1 107 30 | 1 3 1 213 31 | 1 3 1 24 32 | 1 4 1 103 33 | 1 4 1 105 34 | 1 4 1 106 35 | 1 4 1 107 36 | 1 4 1 83 37 | 1 4 1 86 38 | 1 4 1 85 39 | 1 4 1 87 40 | 1 4 1 182 41 | 1 4 1 96 42 | 1 5 1 82 43 | 1 5 1 83 44 | 1 5 1 84 45 | 1 5 1 85 46 | 1 5 1 86 47 | 1 5 1 107 48 | 1 5 1 13 49 | 1 5 1 20 50 | 1 5 1 109 51 | 1 5 1 16 52 | 1 5 1 17 53 | 1 6 1 106 54 | 1 6 1 107 55 | 1 6 1 108 56 | 1 6 1 13 57 | 1 6 1 109 58 | 1 6 1 171 59 | 1 6 1 175 60 | 1 6 1 178 61 | 1 6 1 179 62 | 1 6 1 182 63 | 1 6 1 193 64 | 1 6 1 85 65 | 1 6 1 86 66 | 1 6 1 87 67 | 1 7 1 13 68 | 1 7 1 85 69 | 1 7 1 171 70 | 1 7 1 11 71 | 1 7 1 109 72 | 1 8 1 109 73 | 1 8 1 171 74 | 1 8 1 116 75 | 1 8 1 12 76 | 1 8 1 13 77 | 1 8 1 111 78 | 1 8 1 113 79 | 1 8 1 168 80 | 1 8 1 172 81 | 1 9 1 116 82 | 1 9 1 120 83 | 1 9 1 164 84 | 1 9 1 167 85 | 1 9 1 168 86 | 1 9 1 171 87 | 1 10 1 116 88 | 1 10 1 120 89 | 1 10 1 111 90 | 1 10 1 119 91 | 1 11 1 116 92 | 1 11 1 111 93 | 1 11 1 119 94 | 1 11 1 15 95 | 1 11 1 109 96 | 1 11 1 198 97 | 1 11 1 110 98 | 1 12 1 16 99 | 1 12 1 109 100 | 1 13 1 109 101 | 1 13 1 17 102 | 1 13 1 84 103 | 1 13 1 85 104 | 1 14 1 84 105 | 1 14 1 18 106 | 1 15 1 109 107 | 1 15 1 19 108 | 1 15 1 202 109 | 1 15 1 205 110 | 1 16 1 109 111 | 1 16 1 20 112 | 1 16 1 82 113 | 1 16 1 209 114 | 1 16 1 205 115 | 1 16 1 201 116 | 1 16 1 202 117 | 1 16 1 206 118 | 1 17 1 82 119 | 1 17 1 21 120 | 1 17 1 22 121 | 1 17 1 28 122 | 1 18 1 22 123 | 1 19 1 23 124 | 1 19 1 24 125 | 1 19 1 206 126 | 1 19 1 209 127 | 1 19 1 213 128 | 1 19 1 210 129 | 1 20 1 24 130 | 1 20 1 25 131 | 1 20 1 26 132 | 1 20 1 82 133 | 1 20 1 209 134 | 1 20 1 213 135 | 1 20 1 107 136 | 1 21 1 82 137 | 1 21 1 26 138 | 1 21 1 25 139 | 1 21 1 27 140 | 1 21 1 28 141 | 1 23 1 210 142 | 1 23 1 214 143 | 1 23 1 206 144 | 1 24 1 79 145 | 1 24 1 213 146 | 1 24 1 214 147 | 1 24 1 209 148 | 1 24 1 210 149 | 1 25 1 76 150 | 1 25 1 79 151 | 1 25 1 80 152 | 1 26 1 76 153 | 1 26 1 79 154 | 1 26 1 80 155 | 1 26 1 82 156 | 1 26 1 81 157 | 1 27 1 80 158 | 1 27 1 81 159 | 1 27 1 82 160 | 1 27 1 71 161 | 1 27 1 76 162 | 1 27 1 77 163 | 1 28 1 82 164 | 1 28 1 84 165 | 1 28 1 33 166 | 1 28 1 71 167 | 1 29 1 81 168 | 1 29 1 82 169 | 1 29 1 83 170 | 1 29 1 84 171 | 1 29 1 33 172 | 1 29 1 71 173 | 1 29 1 34 174 | 1 29 1 68 175 | 1 29 1 72 176 | 1 29 1 77 177 | 1 30 1 34 178 | 1 30 1 84 179 | 1 30 1 36 180 | 1 31 1 83 181 | 1 31 1 84 182 | 1 31 1 86 183 | 1 31 1 35 184 | 1 31 1 36 185 | 1 31 1 67 186 | 1 31 1 85 187 | 1 31 1 88 188 | 1 31 1 64 189 | 1 31 1 68 190 | 1 32 1 36 191 | 1 33 1 37 192 | 1 34 1 71 193 | 1 34 1 38 194 | 1 34 1 67 195 | 1 34 1 68 196 | 1 34 1 83 197 | 1 34 1 64 198 | 1 35 1 49 199 | 1 35 1 67 200 | 1 35 1 53 201 | 1 35 1 39 202 | 1 35 1 40 203 | 1 35 1 59 204 | 1 35 1 63 205 | 1 36 1 40 206 | 1 36 1 41 207 | 1 36 1 53 208 | 1 37 1 41 209 | 1 37 1 43 210 | 1 38 1 43 211 | 1 38 1 70 212 | 1 38 1 46 213 | 1 38 1 47 214 | 1 38 1 45 215 | 1 38 1 49 216 | 1 38 1 67 217 | 1 39 1 49 218 | 1 39 1 46 219 | 1 39 1 50 220 | 1 39 1 47 221 | 1 39 1 53 222 | 1 40 1 47 223 | 1 41 1 46 224 | 1 42 1 46 225 | 1 42 1 47 226 | 1 43 1 47 227 | 1 43 1 70 228 | 1 44 1 70 229 | 1 44 1 48 230 | 1 45 1 70 231 | 1 45 1 63 232 | 1 45 1 67 233 | 1 45 1 49 234 | 1 45 1 66 235 | 1 46 1 70 236 | 1 46 1 50 237 | 1 47 1 51 238 | 1 47 1 52 239 | 1 48 1 52 240 | 1 48 1 63 241 | 1 49 1 63 242 | 1 49 1 59 243 | 1 49 1 53 244 | 1 49 1 54 245 | 1 49 1 67 246 | 1 50 1 54 247 | 1 51 1 55 248 | 1 51 1 57 249 | 1 52 1 57 250 | 1 52 1 56 251 | 1 52 1 58 252 | 1 52 1 59 253 | 1 52 1 60 254 | 1 52 1 63 255 | 1 53 1 59 256 | 1 53 1 57 257 | 1 59 1 63 258 | 1 59 1 64 259 | 1 59 1 67 260 | 1 60 1 64 261 | 1 61 1 65 262 | 1 61 1 86 263 | 1 61 1 92 264 | 1 61 1 91 265 | 1 61 1 88 266 | 1 61 1 89 267 | 1 62 1 66 268 | 1 63 1 67 269 | 1 64 1 68 270 | 1 64 1 86 271 | 1 64 1 88 272 | 1 64 1 92 273 | 1 65 1 86 274 | 1 65 1 101 275 | 1 65 1 69 276 | 1 65 1 99 277 | 1 65 1 95 278 | 1 65 1 96 279 | 1 65 1 91 280 | 1 65 1 92 281 | 1 66 1 70 282 | 1 66 1 71 283 | 1 67 1 71 284 | 1 68 1 72 285 | 1 68 1 81 286 | 1 68 1 83 287 | 1 68 1 86 288 | 1 68 1 96 289 | 1 68 1 101 290 | 1 69 1 101 291 | 1 69 1 73 292 | 1 69 1 99 293 | 1 70 1 74 294 | 1 71 1 76 295 | 1 71 1 77 296 | 1 72 1 77 297 | 1 72 1 81 298 | 1 72 1 101 299 | 1 73 1 78 300 | 1 74 1 78 301 | 1 75 1 79 302 | 1 76 1 80 303 | 1 77 1 81 304 | 1 81 1 96 305 | 1 81 1 103 306 | 1 81 1 101 307 | 1 81 1 102 308 | 1 83 1 87 309 | 1 83 1 96 310 | 1 83 1 103 311 | 1 86 1 92 312 | 1 86 1 96 313 | 1 87 1 92 314 | 1 87 1 178 315 | 1 87 1 182 316 | 1 87 1 93 317 | 1 87 1 96 318 | 1 88 1 92 319 | 1 88 1 175 320 | 1 88 1 178 321 | 1 88 1 174 322 | 1 89 1 174 323 | 1 89 1 178 324 | 1 89 1 93 325 | 1 90 1 174 326 | 1 90 1 178 327 | 1 90 1 181 328 | 1 90 1 94 329 | 1 90 1 177 330 | 1 91 1 95 331 | 1 92 1 96 332 | 1 93 1 182 333 | 1 93 1 97 334 | 1 93 1 181 335 | 1 93 1 178 336 | 1 94 1 181 337 | 1 94 1 98 338 | 1 95 1 99 339 | 1 95 1 101 340 | 1 96 1 101 341 | 1 96 1 100 342 | 1 96 1 182 343 | 1 96 1 103 344 | 1 97 1 101 345 | 1 97 1 181 346 | 1 97 1 185 347 | 1 97 1 190 348 | 1 102 1 190 349 | 1 103 1 190 350 | 1 103 1 191 351 | 1 103 1 182 352 | 1 104 1 190 353 | 1 104 1 191 354 | 1 104 1 192 355 | 1 105 1 192 356 | 1 105 1 191 357 | 1 105 1 213 358 | 1 105 1 194 359 | 1 105 1 212 360 | 1 106 1 192 361 | 1 106 1 193 362 | 1 106 1 194 363 | 1 106 1 182 364 | 1 106 1 191 365 | 1 107 1 194 366 | 1 107 1 196 367 | 1 107 1 209 368 | 1 107 1 213 369 | 1 107 1 192 370 | 1 107 1 212 371 | 1 108 1 193 372 | 1 108 1 194 373 | 1 108 1 195 374 | 1 108 1 196 375 | 1 108 1 179 376 | 1 108 1 171 377 | 1 108 1 172 378 | 1 109 1 196 379 | 1 109 1 205 380 | 1 109 1 209 381 | 1 109 1 198 382 | 1 109 1 197 383 | 1 110 1 195 384 | 1 110 1 196 385 | 1 110 1 198 386 | 1 110 1 197 387 | 1 110 1 199 388 | 1 111 1 197 389 | 1 111 1 198 390 | 1 111 1 199 391 | 1 111 1 116 392 | 1 111 1 115 393 | 1 111 1 119 394 | 1 112 1 116 395 | 1 112 1 197 396 | 1 112 1 199 397 | 1 113 1 168 398 | 1 113 1 117 399 | 1 113 1 172 400 | 1 114 1 165 401 | 1 114 1 118 402 | 1 115 1 119 403 | 1 115 1 199 404 | 1 116 1 120 405 | 1 116 1 121 406 | 1 116 1 164 407 | 1 116 1 168 408 | 1 117 1 168 409 | 1 117 1 121 410 | 1 117 1 164 411 | 1 117 1 122 412 | 1 117 1 161 413 | 1 117 1 165 414 | 1 118 1 122 415 | 1 118 1 134 416 | 1 118 1 136 417 | 1 118 1 137 418 | 1 118 1 165 419 | 1 119 1 134 420 | 1 119 1 137 421 | 1 119 1 123 422 | 1 119 1 198 423 | 1 119 1 199 424 | 1 120 1 134 425 | 1 120 1 159 426 | 1 120 1 164 427 | 1 120 1 158 428 | 1 120 1 167 429 | 1 121 1 164 430 | 1 121 1 159 431 | 1 121 1 155 432 | 1 121 1 161 433 | 1 122 1 134 434 | 1 122 1 135 435 | 1 122 1 136 436 | 1 122 1 133 437 | 1 123 1 155 438 | 1 123 1 159 439 | 1 123 1 133 440 | 1 123 1 134 441 | 1 123 1 135 442 | 1 123 1 154 443 | 1 123 1 156 444 | 1 123 1 132 445 | 1 123 1 158 446 | 1 123 1 167 447 | 1 124 1 132 448 | 1 124 1 133 449 | 1 124 1 135 450 | 1 124 1 154 451 | 1 124 1 155 452 | 1 124 1 131 453 | 1 124 1 153 454 | 1 124 1 140 455 | 1 124 1 143 456 | 1 124 1 144 457 | 1 125 1 153 458 | 1 125 1 154 459 | 1 125 1 131 460 | 1 125 1 132 461 | 1 125 1 133 462 | 1 125 1 152 463 | 1 125 1 130 464 | 1 125 1 155 465 | 1 125 1 156 466 | 1 125 1 159 467 | 1 126 1 131 468 | 1 126 1 133 469 | 1 126 1 152 470 | 1 126 1 153 471 | 1 126 1 130 472 | 1 126 1 146 473 | 1 126 1 151 474 | 1 126 1 149 475 | 1 127 1 152 476 | 1 127 1 153 477 | 1 127 1 154 478 | 1 128 1 151 479 | 1 129 1 146 480 | 1 130 1 156 481 | 1 131 1 153 482 | 1 131 1 146 483 | 1 131 1 148 484 | 1 131 1 149 485 | 1 132 1 138 486 | 1 132 1 156 487 | 1 132 1 159 488 | 1 133 1 138 489 | 1 133 1 139 490 | 1 133 1 140 491 | 1 133 1 153 492 | 1 133 1 147 493 | 1 133 1 146 494 | 1 133 1 145 495 | 1 133 1 148 496 | 1 134 1 138 497 | 1 134 1 140 498 | 1 134 1 139 499 | 1 135 1 139 500 | 1 135 1 140 501 | 1 135 1 143 502 | 1 139 1 143 503 | 1 139 1 147 504 | 1 140 1 147 505 | 1 140 1 145 506 | 1 140 1 144 507 | 1 140 1 153 508 | 1 141 1 147 509 | 1 142 1 147 510 | 1 142 1 153 511 | 1 143 1 152 512 | 1 144 1 153 513 | 1 144 1 151 514 | 1 144 1 152 515 | 1 145 1 153 516 | 1 145 1 151 517 | 1 145 1 152 518 | 1 145 1 150 519 | 1 146 1 150 520 | 1 146 1 151 521 | 1 146 1 153 522 | 1 146 1 152 523 | 1 154 1 159 524 | 1 155 1 159 525 | 1 156 1 160 526 | 1 157 1 163 527 | 1 158 1 163 528 | 1 158 1 167 529 | 1 158 1 164 530 | 1 159 1 164 531 | 1 159 1 167 532 | 1 160 1 164 533 | 1 160 1 165 534 | 1 161 1 165 535 | 1 161 1 166 536 | 1 162 1 166 537 | 1 163 1 167 538 | 1 164 1 168 539 | 1 165 1 169 540 | 1 166 1 170 541 | 1 166 1 171 542 | 1 167 1 171 543 | 1 168 1 172 544 | 1 169 1 173 545 | 1 170 1 174 546 | 1 171 1 175 547 | 1 171 1 179 548 | 1 172 1 176 549 | 1 172 1 177 550 | 1 173 1 177 551 | 1 174 1 178 552 | 1 175 1 179 553 | 1 176 1 180 554 | 1 177 1 181 555 | 1 178 1 182 556 | 1 179 1 193 557 | 1 179 1 183 558 | 1 179 1 195 559 | 1 180 1 184 560 | 1 181 1 185 561 | 1 182 1 191 562 | 1 182 1 186 563 | 1 182 1 193 564 | 1 183 1 193 565 | 1 183 1 187 566 | 1 184 1 188 567 | 1 185 1 190 568 | 1 185 1 189 569 | 1 185 1 191 570 | 1 186 1 191 571 | 1 186 1 190 572 | 1 186 1 192 573 | 1 186 1 193 574 | 1 194 1 212 575 | 1 195 1 212 576 | 1 196 1 205 577 | 1 196 1 208 578 | 1 196 1 209 579 | 1 196 1 212 580 | 1 197 1 208 581 | 1 197 1 205 582 | 1 198 1 205 583 | 1 200 1 205 584 | 1 200 1 204 585 | 1 200 1 208 586 | 1 201 1 205 587 | 1 202 1 206 588 | 1 203 1 207 589 | 1 204 1 208 590 | 1 204 1 211 591 | 1 205 1 209 592 | 1 206 1 210 593 | 1 207 1 211 594 | 1 208 1 212 595 | 1 209 1 213 596 | 1 209 1 214 597 | 1 210 1 214 598 | -------------------------------------------------------------------------------- /tutorials/basic/05-MultiBasin/input/fe_wham.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 2 17 | 18 | 19 | 0.05 20 | 21 | 22 | 0.05 23 | 24 | 25 | 26 | 27 | 28 | V 29 | 30 | simulationData/Qf_01.data 31 | 32 | 33 | 34 | V 35 | 36 | simulationData/Qf_02.data 37 | 38 | 39 | 40 | V 41 | 42 | simulationData/Qf_03.data 43 | 44 | 45 | 46 | V 47 | 48 | simulationData/Qf_04.data 49 | 50 | 51 | 52 | V 53 | 54 | simulationData/Qf_05.data 55 | 56 | 57 | 58 | V 59 | 60 | simulationData/Qf_06.data 61 | 62 | 63 | 64 | V 65 | 66 | simulationData/Qf_07.data 67 | 68 | 69 | 70 | V 71 | 72 | simulationData/Qf_08.data 73 | 74 | 75 | 76 | V 77 | 78 | simulationData/Qf_09.data 79 | 80 | 81 | 82 | V 83 | 84 | simulationData/Qf_10.data 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | V 95 | 123.75 96 | 97 | true 98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /tutorials/folding/01-FoxP1_equilibrium_folding/other_notebooks/getTStrajectory.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import numpy as np\n", 10 | "import mdtraj as md\n", 11 | "import os\n", 12 | "import gc" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 2, 18 | "metadata": {}, 19 | "outputs": [], 20 | "source": [ 21 | "# Store aligned trajectory files\n", 22 | "folder = '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/'\n", 23 | "trajectory_files = {}\n", 24 | "for d in sorted(os.listdir(folder)):\n", 25 | " if os.path.isdir(folder+d):\n", 26 | " for f in sorted(os.listdir(folder+d)):\n", 27 | " if f.endswith('.dcd'):\n", 28 | " index = f.split('_')[0]\n", 29 | " trajectory_files[index] = folder+d+'/'+f" 30 | ] 31 | }, 32 | { 33 | "cell_type": "code", 34 | "execution_count": 3, 35 | "metadata": {}, 36 | "outputs": [], 37 | "source": [ 38 | "# Define an SBMOpenMM All-Atom SBM from the forcefield parameters file\n", 39 | "topology = '../input/FoxP_monomer.pdb'" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 4, 45 | "metadata": {}, 46 | "outputs": [], 47 | "source": [ 48 | "# Load TS frames' indexes\n", 49 | "folder = '../output'\n", 50 | "ts_frames = {}\n", 51 | "for f in sorted(os.listdir(folder)):\n", 52 | " if f.endswith('.npy') and f.startswith('ts_frames'):\n", 53 | " index = f.split('.')[0].replace('ts_frames','')\n", 54 | " ts_frames[index] = np.loadtxt(folder+'/'+f).astype(int)" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": 5, 60 | "metadata": {}, 61 | "outputs": [ 62 | { 63 | "name": "stdout", 64 | "output_type": "stream", 65 | "text": [ 66 | "\n" 67 | ] 68 | } 69 | ], 70 | "source": [ 71 | "# Merge all TS frames into one trajectory\n", 72 | "trajectory = None\n", 73 | "for i in trajectory_files:\n", 74 | " traj = md.load(trajectory_files[i], top=topology)\n", 75 | " # slice trajectory by the TS frames\n", 76 | " traj = traj[ts_frames[i]]\n", 77 | " if isinstance(topology, str):\n", 78 | " topology = traj.topology\n", 79 | " if isinstance(trajectory, type(None)):\n", 80 | " trajectory = traj\n", 81 | " else:\n", 82 | " if trajectory.xyz.shape[1:] != traj.xyz.shape[1:]:\n", 83 | " print('Trajectory file: '+trajectory_files[i]+' has different number of atoms \\\n", 84 | " than the reference topology! Discarding it')\n", 85 | " continue \n", 86 | " traj = md.Trajectory(traj.xyz, topology)\n", 87 | " trajectory = md.join((trajectory, traj))\n", 88 | " gc.collect() # Free memory before moving to the next trajectory file\n", 89 | "\n", 90 | "print(trajectory)" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": 6, 96 | "metadata": {}, 97 | "outputs": [], 98 | "source": [ 99 | "# Save trajectory\n", 100 | "trajectory.save('../output/ts_trajectory.dcd')" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": null, 106 | "metadata": {}, 107 | "outputs": [], 108 | "source": [] 109 | } 110 | ], 111 | "metadata": { 112 | "kernelspec": { 113 | "display_name": "Python 3", 114 | "language": "python", 115 | "name": "python3" 116 | }, 117 | "language_info": { 118 | "codemirror_mode": { 119 | "name": "ipython", 120 | "version": 3 121 | }, 122 | "file_extension": ".py", 123 | "mimetype": "text/x-python", 124 | "name": "python", 125 | "nbconvert_exporter": "python", 126 | "pygments_lexer": "ipython3", 127 | "version": "3.7.8" 128 | } 129 | }, 130 | "nbformat": 4, 131 | "nbformat_minor": 4 132 | } 133 | -------------------------------------------------------------------------------- /tutorials/folding/01-FoxP1_equilibrium_folding/other_notebooks/radiusOfGyration.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 1, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import os\n", 10 | "import numpy as np\n", 11 | "import mdtraj as md\n", 12 | "import gc" 13 | ] 14 | }, 15 | { 16 | "cell_type": "code", 17 | "execution_count": 3, 18 | "metadata": {}, 19 | "outputs": [ 20 | { 21 | "name": "stdout", 22 | "output_type": "stream", 23 | "text": [ 24 | "['/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/01/01_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/02/02_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/03/03_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/04/04_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/05/05_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/06/06_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/07/07_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/08/08_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/09/09_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/10/10_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/11/11_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/12/12_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/13/13_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/14/14_trajectory.dcd', '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/15/15_trajectory.dcd']\n" 25 | ] 26 | } 27 | ], 28 | "source": [ 29 | "# Store aligned trajectory files\n", 30 | "folder = '/home/martin/Projects/FoxP/AA/FoldingSimulation_Tf/kx/'\n", 31 | "trajectory_files = []\n", 32 | "for d in sorted(os.listdir(folder)):\n", 33 | " if os.path.isdir(folder+d):\n", 34 | " for f in sorted(os.listdir(folder+d)):\n", 35 | " if f.endswith('.dcd'):\n", 36 | " trajectory_files.append(folder+d+'/'+f)\n", 37 | "print(trajectory_files)" 38 | ] 39 | }, 40 | { 41 | "cell_type": "code", 42 | "execution_count": 4, 43 | "metadata": {}, 44 | "outputs": [], 45 | "source": [ 46 | "# Define an SBMOpenMM All-Atom SBM from the forcefield parameters file\n", 47 | "topology = '../input/FoxP_monomer.pdb'" 48 | ] 49 | }, 50 | { 51 | "cell_type": "code", 52 | "execution_count": 6, 53 | "metadata": {}, 54 | "outputs": [], 55 | "source": [ 56 | "# Compute radius of gyration\n", 57 | "rg = []\n", 58 | "for t in trajectory_files:\n", 59 | " traj = md.load(t, top=topology)\n", 60 | " rg.append(md.compute_rg(traj))\n", 61 | " traj = None\n", 62 | " gc.collect() # Free memory before moving to the next estimation\n", 63 | "rg_concatenated = np.concatenate(rg)" 64 | ] 65 | }, 66 | { 67 | "cell_type": "code", 68 | "execution_count": 7, 69 | "metadata": {}, 70 | "outputs": [], 71 | "source": [ 72 | "np.save('../output/radiusOfGyration', rg_concatenated)" 73 | ] 74 | } 75 | ], 76 | "metadata": { 77 | "kernelspec": { 78 | "display_name": "Python 3", 79 | "language": "python", 80 | "name": "python3" 81 | }, 82 | "language_info": { 83 | "codemirror_mode": { 84 | "name": "ipython", 85 | "version": 3 86 | }, 87 | "file_extension": ".py", 88 | "mimetype": "text/x-python", 89 | "name": "python", 90 | "nbconvert_exporter": "python", 91 | "pygments_lexer": "ipython3", 92 | "version": "3.7.8" 93 | } 94 | }, 95 | "nbformat": 4, 96 | "nbformat_minor": 4 97 | } 98 | -------------------------------------------------------------------------------- /tutorials/folding/01-FoxP1_equilibrium_folding/output/radiusOfGyration.npy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/tutorials/folding/01-FoxP1_equilibrium_folding/output/radiusOfGyration.npy -------------------------------------------------------------------------------- /tutorials/folding/01-FoxP1_equilibrium_folding/output/ts_trajectory.dcd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/CompBiochBiophLab/sbm-openmm/113b04eb2c78664a48600a05ff6778898fbb2fd9/tutorials/folding/01-FoxP1_equilibrium_folding/output/ts_trajectory.dcd --------------------------------------------------------------------------------