├── .gitignore
├── .travis.yml
├── LICENSE
├── README.md
├── devtools
├── conda-recipe
│ ├── README.md
│ ├── build.sh
│ └── meta.yaml
└── travis-ci
│ ├── after_success.sh
│ └── install.sh
├── oe_license.txt.enc
├── scripts
└── start.py
├── setup.py
└── solvationtoolkit
├── __init__.py
├── mol2tosdf.py
├── solvated_mixtures.py
└── test
├── data
├── gromacs
│ ├── benzene.gro
│ ├── benzene.top
│ ├── cyclohexane.gro
│ ├── cyclohexane.top
│ ├── ethane.gro
│ ├── ethane.top
│ ├── toluene.gro
│ ├── toluene.top
│ ├── toluene_benzene_cyclohexane_ethane_3_1_80_7.gro
│ ├── toluene_benzene_cyclohexane_ethane_3_1_80_7.top
│ ├── toluene_benzene_cyclohexane_ethane_3_5_80_7.gro
│ └── toluene_benzene_cyclohexane_ethane_3_5_80_7.top
├── monomers
│ ├── benzene.frcmod
│ ├── benzene.mol2
│ ├── cyclohexane.frcmod
│ ├── cyclohexane.mol2
│ ├── ethane.frcmod
│ ├── ethane.mol2
│ ├── toluene.frcmod
│ └── toluene.mol2
├── packmol_boxes
│ ├── toluene_benzene_cyclohexane_ethane_3_1_80_7.pdb
│ └── toluene_benzene_cyclohexane_ethane_3_5_80_7.pdb
└── tleap
│ ├── benzene.inpcrd
│ ├── benzene.prmtop
│ ├── cyclohexane.inpcrd
│ ├── cyclohexane.prmtop
│ ├── ethane.inpcrd
│ ├── ethane.prmtop
│ ├── toluene.inpcrd
│ ├── toluene.prmtop
│ ├── toluene_benzene_cyclohexane_ethane_3_1_80_7.inpcrd
│ ├── toluene_benzene_cyclohexane_ethane_3_1_80_7.prmtop
│ ├── toluene_benzene_cyclohexane_ethane_3_5_80_7.inpcrd
│ └── toluene_benzene_cyclohexane_ethane_3_5_80_7.prmtop
└── test_solvated_mixtures.py
/.gitignore:
--------------------------------------------------------------------------------
1 | # Byte-compiled / optimized / DLL files
2 | __pycache__/
3 | *.py[cod]
4 |
5 | # C extensions
6 | *.so
7 |
8 | # Distribution / packaging
9 | .Python
10 | env/
11 | build/
12 | develop-eggs/
13 | dist/
14 | downloads/
15 | eggs/
16 | .eggs/
17 | lib/
18 | lib64/
19 | parts/
20 | sdist/
21 | var/
22 | *.egg-info/
23 | .installed.cfg
24 | *.egg
25 |
26 | # PyInstaller
27 | # Usually these files are written by a python script from a template
28 | # before PyInstaller builds the exe, so as to inject date/other infos into it.
29 | *.manifest
30 | *.spec
31 |
32 | # Installer logs
33 | pip-log.txt
34 | pip-delete-this-directory.txt
35 |
36 | # Unit test / coverage reports
37 | htmlcov/
38 | .tox/
39 | .coverage
40 | .coverage.*
41 | .cache
42 | nosetests.xml
43 | coverage.xml
44 | *,cover
45 |
46 | # Translations
47 | *.mo
48 | *.pot
49 |
50 | # Django stuff:
51 | *.log
52 |
53 | # Sphinx documentation
54 | docs/_build/
55 |
56 | # PyBuilder
57 | target/
58 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: c
2 | sudo: false
3 |
4 | branches:
5 | only:
6 | - master
7 |
8 | install:
9 | # Configure environment.
10 | - source devtools/travis-ci/install.sh
11 | - export PYTHONUNBUFFERED=true
12 | - echo $TRAVIS_SECURE_ENV_VARS
13 | # Unpack encrypted OpenEye license file
14 | - openssl aes-256-cbc -K $encrypted_935501d0d612_key -iv $encrypted_935501d0d612_iv -in oe_license.txt.enc -out oe_license.txt -d
15 |
16 | script:
17 | # Add omnia channel
18 | - conda config --add channels ${ORGNAME}
19 | # Build conda dev package
20 | - conda build devtools/conda-recipe
21 | # Create and activate test environment
22 | - conda create --yes -n test python=$python
23 | - source activate test
24 | # Install package prerequisites
25 | - conda install --yes --quiet pip nose nose-timer
26 | - conda install --yes --quiet packmol
27 | #- pip install $OPENEYE_CHANNEL openeye-toolkits
28 | #Use beta version instead
29 | - pip install --pre -i https://pypi.anaconda.org/openeye/label/beta/simple openeye-toolkits && python -c "import openeye; print(openeye.__version__)"
30 | # Build the recipe
31 | - conda build devtools/conda-recipe
32 | # Install
33 | - conda install --yes --use-local solvationtoolkit
34 | # Test the package
35 | - conda install --yes nose nose-timer
36 | - cd devtools && nosetests $PACKAGENAME --nocapture --verbosity=2 --with-doctest --with-timer -a '!slow' && cd ..
37 |
38 | env:
39 | matrix:
40 | # OpenEye production
41 | - python=2.7 CONDA_PY=27 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/openeye/channel/main/simple"
42 | - python=3.4 CONDA_PY=34 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/openeye/channel/main/simple"
43 | - python=3.5 CONDA_PY=35 OPENEYE_CHANNEL="-i https://pypi.anaconda.org/openeye/channel/main/simple"
44 |
45 | global:
46 | - ORGNAME="omnia"
47 | - PACKAGENAME="solvationtoolkit"
48 | # Location of decrypted OpenEye license file
49 | - OE_LICENSE="$HOME/oe_license.txt"
50 | # encrypted ANACONDA_TOKEN for push of dev package to Anaconda
51 | - secure: "QflOtg3nSmlKJlXCR+CEYnHSRfLemF7vTDjWK0H3dPe8mu+9eEbIiJyIupZI+Zg0fgcgqnqb9k9IZNKCi5K7gKmNemnNuKEDxxzxAkTf3abaoTJ2YaUx2yFO1SKrkfeqaH8x4jxehnM/H7QDaC7cjcQEVqgc2uKNWzchEcz5/ywqhj7HOxwhEo9cT93f713jZwlK3BZzo8E7HVPh9Docs920FxgIXQ5e6d6wAg8f84zb9DLK3WcVJfj8PFuIjPJqFcEw1tCTpcVmWlu6Rf01mcPuygHMzk5GzxSkIhOIz+IXbg2XuxntH4G2geGVwDyw4sX+5NDjIktuDo9j+G1WTvkbWl4TiJNeA2CGuga/247k6qYCSEQCI6lHs6zNaM1gaD1CNtrY2f9ciwinZP748Dsrq5uqdyCNlZusdk9bpw2vx//46AS+cugMz8wYd2S/LBxSjpgD7e01DvZtfaWWc6AphvUWM+SXyzIOP6pXHxfkBNj4y0Kbo1n2uO1TrFHl/6FSJ6uUeSWcyXZRZHbAJNo35juU55gOTOoIOzOOwUWk/gKz4S4hAm5PVLcQ9vHsinACCHPTTNCOar5qNLzacfCnTowxyNJ31McayMZfrougqsFbhVAwGXIJaxFPqrTSPPhx+kEtJGxM2pyYATp/eXwLm/RNG1zHZsuoXfBGVZ8="
52 |
53 | #after_success:
54 | # - echo "after_success"
55 | # - source devtools/travis-ci/after_success.sh
56 |
57 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2016, Mobley Lab
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
14 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
15 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
17 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
18 | OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
19 | OR OTHER DEALINGS IN THE SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | ## Build Status
2 |
3 | [](https://travis-ci.org/MobleyLab/SolvationToolkit)
4 |
5 | # SolvationToolkit
6 | Tools for setting up arbitrary (currently non-water) solute-solvent mixtures for simulation in GROMACS or AMBER formats, or for use in OpenMM.
7 |
8 | This provides the MixtureSystem class (in `solvationtoolkit.solvated_mixtures`) for definition and construction of mixtures as discussed below. Usage examples are below, as well as in `scripts/start.py`.
9 |
10 | Latest release: [](https://zenodo.org/badge/latestdoi/35064710)
11 |
12 | # Installing
13 |
14 | ## Prerequisites
15 | * Auto-installable:
16 | * openmoltools v0.6.5 or later
17 | * mdtraj (via omnia channel on conda)
18 | * OpenEye tools
19 | * packmol (via omnia channel on conda)
20 | * ParmEd v2.5.1.10 (currently, parmed-dev) or later, such as via omnia channel on conda
21 |
22 | ## Installing
23 | * Download the archive from GitHub, extract, and type `python setup.py install`
24 | * Hopefully installation via conda is coming very soon
25 |
26 | # Usage
27 |
28 | ## Example usage
29 | ```python
30 | # Set up mixture of phenol, toluene, and cyclohexane
31 | # using specified numbers of each component
32 | mixture = MixtureSystem('mydata')
33 | mixture.addComponent(label='phenol', smiles='c1ccc(cc1)O', number=1)
34 | mixture.addComponent(label='toluene', smiles='Cc1ccccc1', number=10)
35 | mixture.addComponent(label='cyclohexane', smiles='C1CCCCC1', number=500)
36 | #Generate output files for AMBER
37 | mixture.build(amber = True)
38 |
39 | # Set up simple liquid of TIP3P water
40 | liquid = MixtureSystem()
41 | liquid.addComponent('water')
42 | liquid.build()
43 |
44 | # Set up binary mixture of water and methanol
45 | binary_mixture = MixtureSystem()
46 | binary_mixture.addComponent(name='water', mole_fraction=0.2)
47 | # add a filling compound - assumed to be rest of mixture if no
48 | # mole_fraction specified
49 | binary_mixture.addComponent(name='methanol')
50 | #Build for GROMACS
51 | binary_mixture.build(gromacs = True)
52 |
53 | # Set up ternary mixture of ethanol, methanol, and water
54 | ternary_mixture = MixtureSystem()
55 | ternary_mixture.addComponent(name='ethanol', mole_fraction=0.2)
56 | ternary_mixture.addComponent(name='methanol', mole_fraction=0.2)
57 | ternary_mixture.addComponent(name='water')
58 |
59 | # Set up a system of phenol at infinite dilution (a single molecule)
60 | # in otherwise pure water
61 | infinite_dilution = MixtureSystem()
62 | infinite_dilution.addComponent(name='phenol', mole_fraction=0.0)
63 | infinite_dilution.addComponent(name='water')
64 |
65 |
66 | # Setup a molecule of taurine; use protonation states appropriate for neutral pH
67 | taurine = MixtureSystem(protonation=True)
68 | taurine.addComponent(name='taurine', smiles='C(CS(=O)(=O)O)N', number=1)
69 | ```
70 |
71 | ## Other usage information
72 |
73 | One or multiple components must be specified, and each component must have a
74 | name or label (or both), as well as optionally SMILES strings and number of
75 | molecules or mole fraction. Each component must end up with a string which can
76 | be used to construct filenames (which will be taken from `label` or, if not
77 | provided, `name`), and each component must also be unambiguously identified
78 | via a name or SMILES string. SMILES strings are the preferred identifier, but
79 | if SMILES are not provided, it attempts to process the name to a SMILES, and if
80 | there is no name, the label is interpreted as a name.
81 |
82 | Except in certain special cases, each component must also have a quantity,
83 | which can either be a number of molecules, or a mole fraction. Numbers of
84 | molecules and mole fractions cannot be mixed; system specification must either
85 | occur via numbers or via mole fractions. Special cases are the case of a single
86 | component, in which no quantity is necessary as the solution is pure and can be
87 | generated based on the target system size, and the case of a filling component,
88 | which is provided without quantity specification along with several other
89 | components with specified mole fractions.
90 |
91 | Systems are finalized by executing the build functionality, which has optional
92 | arguments `amber = True` and `gromacs = True` for generating output for the
93 | specified packages. For aid with solvation free energy calculations, build of
94 | GROMACS systems takes an additional optional argument, `solute_index`,
95 | specifying the component number (i.e. in the order ardded, counting from 0) to
96 | treat as the solute.
97 |
98 | ## Storage of results/intermediate files
99 |
100 | Data files are stored in subdirectories of the directory specified by the
101 | constructor, i.e. MixtureSystem('path'); the default location is 'data'.
102 | Within that, subdirectories contain .sdf and .mol2 files for monomers,
103 | the generated .pdb format boxes from packmol, and AMBER and GROMACS files if
104 | generated.
105 |
106 | ## Protonation states
107 |
108 | This retains the legacy behavior where molecules are by default set up in their "standard" protonation state as obtained from the SMILES (typically their neutral form). An option argument, `protonation`, to the `MixtureSystem` constructor, will use `OENeutralpHModel` to attempt to set up typical neutral pH appropriate protonation states as per OpenEye's model, if set to True. Alternatively, providing SMILES strings with formal charges specified should result in the desired protonation states, though this has not been tested.
109 |
110 | Depending on the application, different protonation states may be desired, so you may need to devote some care to this aspect.
111 |
112 | # Other Stuff
113 |
114 | ## Issues/problems/bug reports
115 | * See issue tracker
116 |
117 | ## Versions:
118 | - [Version 0.4.2](https://doi.org/10.5281/zenodo.180626): Institutes Zenodo version tracking/unique DOIs for each version.
119 | - [Version 0.4.3](https://dx.doi.org/10.5281/zenodo.1205593): Functionally the same as 0.4.2 but removes dependence on libgfortran.
120 |
121 | ## Changes not yet in a release:
122 | - Addition of optional argument to allow use of a pH model for selection of protonation states.
123 |
124 | ## Disclaimers
125 | * This code is currently in approximately beta release status. Use at your own risk. We will almost certainly be making changes to the API in the near future. (A very substantial API change was made in v0.4.0)
126 |
--------------------------------------------------------------------------------
/devtools/conda-recipe/README.md:
--------------------------------------------------------------------------------
1 | This is a recipe for building the current development package into a conda
2 | binary.
3 |
4 | The installation on travis-ci is done by building the conda package, installing
5 | it, running the tests, and then if successful (the idea would be to proceed by) pushing the package to binstar. The binstar auth token is an encrypted environment variable generated using:
6 |
7 | binstar auth -n openmoltools-travis -o omnia --max-age 22896000 -c --scopes api:write
8 |
9 | and then saved in the environment variable BINSTAR_TOKEN.
10 |
11 | Note that most of the above is from openmoltools and we are currently working on adapting for solvationtoolkit.
12 |
13 |
14 |
--------------------------------------------------------------------------------
/devtools/conda-recipe/build.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | $PYTHON setup.py install
4 |
5 |
--------------------------------------------------------------------------------
/devtools/conda-recipe/meta.yaml:
--------------------------------------------------------------------------------
1 | package:
2 | name: solvationtoolkit
3 | version: 0.4.4
4 |
5 | source:
6 | path: ../../
7 |
8 | build:
9 | preserve_egg_dir: True
10 | number: 0
11 |
12 | requirements:
13 | build:
14 | - python
15 | - setuptools
16 | - numpy
17 | - numpydoc
18 | - scipy
19 | - ambermini
20 | - parmed
21 | - openmoltools
22 | - mdtraj
23 | - packmol
24 | - netcdf4
25 | - pandas
26 | - openmm
27 | - pytables
28 | run:
29 | - python
30 | - setuptools
31 | - numpy
32 | - numpydoc
33 | - scipy
34 | - ambermini
35 | - parmed
36 | #- libgfortran ==1.0 # [linux]
37 | - openmoltools
38 | - mdtraj
39 | - packmol
40 | - netcdf4
41 | - pandas
42 | - openmm
43 | - pytables
44 | test:
45 | requires:
46 | - nose
47 | - packmol
48 | imports:
49 | - openmoltools
50 | - parmed
51 | #commands:
52 | # - nosetests openmoltools -v -a '!slow'
53 |
54 | about:
55 | home: https://github.com/mobleylab/solvationtoolkit
56 | license: MIT
57 |
--------------------------------------------------------------------------------
/devtools/travis-ci/after_success.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | # Must be invoked with $PACKAGENAME
3 |
4 | echo $TRAVIS_PULL_REQUEST $TRAVIS_BRANCH
5 |
6 | if [ "$TRAVIS_PULL_REQUEST" = true ]; then
7 | echo "This is a pull request. No deployment will be done."; exit 0
8 | fi
9 |
10 |
11 | if [ "$TRAVIS_BRANCH" != "master" ]; then
12 | echo "No deployment on BRANCH='$TRAVIS_BRANCH'"; exit 0
13 | fi
14 |
15 |
16 | # Deploy to anaconda
17 | conda install --yes anaconda-client jinja2
18 | pushd .
19 | cd $HOME/miniconda/conda-bld
20 | FILES=*/${PACKAGENAME}-dev-*.tar.bz2
21 | for filename in $FILES; do
22 | #We're aiming to get this into omnia eventually but for now, dmobley channel
23 | anaconda -t $ANACONDA_TOKEN remove --force dmobley/${PACKAGENAME}-dev/${filename}
24 | anaconda -t $ANACONDA_TOKEN upload --force -u dmobley -p ${PACKAGENAME}-dev ${filename}
25 | #anaconda -t $ANACONDA_TOKEN remove --force ${ORGNAME}/${PACKAGENAME}-dev/${filename}
26 | #anaconda -t $ANACONDA_TOKEN upload --force -u ${ORGNAME} -p ${PACKAGENAME}-dev ${filename}
27 | done
28 | popd
29 |
30 |
--------------------------------------------------------------------------------
/devtools/travis-ci/install.sh:
--------------------------------------------------------------------------------
1 | MINICONDA=Miniconda2-latest-Linux-x86_64.sh
2 | MINICONDA_MD5=$(curl -s https://repo.continuum.io/miniconda/ | grep -A3 $MINICONDA | sed -n '4p' | sed -n 's/ *
\(.*\)<\/td> */\1/p')
3 | wget http://repo.continuum.io/miniconda/$MINICONDA
4 | if [[ $MINICONDA_MD5 != $(md5sum $MINICONDA | cut -d ' ' -f 1) ]]; then
5 | echo "Miniconda MD5 mismatch"
6 | exit 1
7 | fi
8 | bash $MINICONDA -b -p $HOME/miniconda
9 | PIP_ARGS="-U"
10 |
11 | export PATH=$HOME/miniconda/bin:$PATH
12 |
13 | conda install --yes conda-build jinja2 anaconda-client pip
14 |
15 |
16 |
--------------------------------------------------------------------------------
/oe_license.txt.enc:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/MobleyLab/SolvationToolkit/eab32dcd0d0e5dff8f126ae73184af323d9ec417/oe_license.txt.enc
--------------------------------------------------------------------------------
/scripts/start.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python
2 | ######################################################################
3 | # SolvationToolkit: A toolkit for setting up molecular simulations of mixtures
4 | # Copyright 2011-2015 UC Irvine and the Authors
5 | #
6 | # Authors: David Mobley and Gaetano Calabro
7 | # With thanks to Kyle Beauchamp, whose liquid_tools.py provided an initial basis for this code
8 | # (https://github.com/choderalab/LiquidBenchmark/blob/master/src/simulation/liquid_tools.py) in April 2015
9 | #
10 | #This library is free software; you can redistribute it and/or
11 | #modify it under the terms of the GNU Lesser General Public
12 | #License as published by the Free Software Foundation; either
13 | #version 2.1 of the License, or (at your option) any later version.
14 | #
15 | #This library is distributed in the hope that it will be useful,
16 | #but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 | #Lesser General Public License for more details.
19 | #
20 | #You should have received a copy of the GNU Lesser General Public
21 | #License along with this library; if not, see .
22 | ######################################################################
23 |
24 |
25 | from solvationtoolkit.solvated_mixtures import *
26 |
27 | liquids = MixtureSystem()
28 |
29 | # liquids.addComponent(numbers=5, name='ethane')
30 | # liquids.addComponent(numbers=2, name='toluene')
31 | # liquids.addComponent(numbers=3, name='methane')
32 |
33 |
34 | liquids.addComponent(mole_fraction=0.2, name='ethane')
35 | liquids.addComponent(mole_fraction=0.0, name='toluene')
36 | liquids.addComponent(mole_fraction=0.6, name='methane')
37 | liquids.addComponent(name='water')
38 |
39 | # liquids[1]=Component(mole_fraction=0.6, name='methane')
40 | # print liquids
41 |
42 | liquids.build(amber=True, gromacs=True)
43 |
44 |
45 |
--------------------------------------------------------------------------------
/setup.py:
--------------------------------------------------------------------------------
1 | """
2 | SolvationToolkit: Tools for setting up mixtures of small organic molecules for AMBER, GROMACS, OpenMM and others.
3 |
4 | You can install SolvationTookit via
5 |
6 | python setup.py install
7 |
8 | """
9 |
10 | import sys
11 | from setuptools import setup, find_packages
12 |
13 | if sys.argv[-1] == 'setup.py':
14 | print("To install, run 'python setup.py install'")
15 | print()
16 |
17 | if sys.version_info[:2] < (2, 7):
18 | print("SolvationToolkit requires Python 2.7 or later (%d.%d detected)." %
19 | sys.version_info[:2])
20 | sys.exit(-1)
21 |
22 |
23 | ##########################
24 | VERSION = "0.4.4.dev0"
25 | ISRELEASED = False
26 | __version__ = VERSION
27 | ##########################
28 |
29 |
30 | descr = """
31 | SolvationToolkit is a simple toolkit for setting up input files for simulations of solutions of small organic molecules for various simulation packages.
32 | """
33 |
34 | data = {'solvationtoolkit':['test/*.py'] }
35 |
36 | setup(
37 | name = 'solvationtoolkit',
38 | version = __version__,
39 | description = 'Solvation Toolkit',
40 | long_description = descr,
41 | url = 'https://github.com/mobleylab/solvationtoolkit',
42 | author = 'Gaetano Calabro and David Mobley',
43 | author_email = 'gcalabro -at- uci.edu',
44 | license = 'MIT',
45 | platforms = ['Linux-64', 'Mac OSX-64', 'Unix-64'],
46 | packages = find_packages(),
47 | package_data = data,
48 | include_package_data = True,
49 |
50 | #entry_points = {'console_scripts':['start=scripts/start.py']},
51 | zip_safe = False
52 |
53 | )
54 |
--------------------------------------------------------------------------------
/solvationtoolkit/__init__.py:
--------------------------------------------------------------------------------
1 | #!/bin/env python
2 |
3 | """
4 | A toolkit for molecular simulations of mixtures for AMBER, GROMACS, and OpenMM
5 |
6 | COPYRIGHT AND LICENSE
7 |
8 | Copyright 2011-2016 UC Irvine and the Authors
9 |
10 | @author David L. Mobley
11 | @author Gaetano Calabro
12 | With thanks to Kyle Beauchamp, whose liquid_tools.py provided an initial
13 | basis for this code (https://github.com/choderalab/LiquidBenchmark/blob/master/src/simulation/liquid_tools.py) in April 2015
14 |
15 | This library is free software; you can redistribute it and/or
16 | modify it under the terms of the GNU Lesser General Public
17 | License as published by the Free Software Foundation; either
18 | version 2.1 of the License, or (at your option) any later version.
19 |
20 | This library is distributed in the hope that it will be useful,
21 | but WITHOUT ANY WARRANTY; without even the implied warranty of
22 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
23 | Lesser General Public License for more details.
24 |
25 | You should have received a copy of the GNU Lesser General Public
26 | License along with this library; if not, see .
27 | """
28 |
29 | from solvationtoolkit import solvated_mixtures
30 | from solvationtoolkit import mol2tosdf
31 |
--------------------------------------------------------------------------------
/solvationtoolkit/mol2tosdf.py:
--------------------------------------------------------------------------------
1 | ######################################################################
2 | # SolvationToolkit: A toolkit for setting up molecular simulations of mixtures
3 | # Copyright 2011-2015 UC Irvine and the Authors
4 | #
5 | # Authors: David Mobley, Gaetano Calabro, and Camila Zanette
6 | # With thanks to Kyle Beauchamp, whose liquid_tools.py provided an initial basis for this code
7 | # (https://github.com/choderalab/LiquidBenchmark/blob/master/src/simulation/liquid_tools.py) in April 2015
8 | # Thanks to Christopher Bayly, whose helped with reading .mol2 files with GAFF atom types.
9 | #
10 | #This library is free software; you can redistribute it and/or
11 | #modify it under the terms of the GNU Lesser General Public
12 | #License as published by the Free Software Foundation; either
13 | #version 2.1 of the License, or (at your option) any later version.
14 | #
15 | #This library is distributed in the hope that it will be useful,
16 | #but WITHOUT ANY WARRANTY; without even the implied warranty of
17 | #MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 | #Lesser General Public License for more details.
19 | #
20 | #You should have received a copy of the GNU Lesser General Public
21 | #License along with this library; if not, see .
22 | ######################################################################
23 |
24 |
25 | import sys
26 | from openmoltools.utils import import_
27 |
28 | def writeSDF(mol2_filename, sdf_filename, mol_name):
29 | """For generating .sdf file format from .mol2 file, using OEIFlavor (OpenEye). Creates three tags (partial_charges, partial_bond_orders, and atom_types) in the .sdf file using values from the reference (.mol2 file).
30 |
31 | Parameters
32 | ----------
33 | mol2_filename: str
34 | Mol2 filename used to write the .sdf file. The .mol2 file is preserved.
35 | sdf_filename: str
36 | SDF filename (path) used to save the sdf file generated.
37 | mol_name: str
38 | Name of molecule used to write the title for the .sdf file generated.
39 |
40 | Notes
41 | -----------
42 | In partial_bonds_orders tag, .mol2 bond orders are translated to .sdf bond orders using OEIFlavor, aromatic bonds ('ar') are transformed to 1 or 2.
43 |
44 | Limitations
45 | -----------
46 | Creates only three tags in .sdf file. The tags are partial_charges, partial_bond_orders, and atom_types (GAFF). Their values are set according to the correspondent .mol2 file properties.
47 | """
48 | oechem = import_("openeye.oechem")
49 |
50 | ifs = oechem.oemolistream(mol2_filename)
51 | MOL2flavor = oechem.OEIFlavor_Generic_Default | oechem.OEIFlavor_MOL2_Default | oechem.OEIFlavor_MOL2_Forcefield
52 | ifs.SetFlavor(oechem.OEFormat_MOL2, MOL2flavor)
53 |
54 | ofs = oechem.oemolostream(sdf_filename)
55 | tag_names = ['partial_charges', 'partial_bond_orders', 'atom_types']
56 |
57 | # Set the title and assign partial charges for the .mol2 file
58 | for mol in ifs.GetOEGraphMols():
59 | mol.SetTitle(mol_name)
60 | molToCharge = oechem.OEMol(mol)
61 |
62 | # Get partial charges and atom types from .mol2 file and store them to put into the .sdf file as tags
63 | charges = []
64 | atom_types = []
65 | for atom, atomCharged in zip(mol.GetAtoms(), molToCharge.GetAtoms()):
66 | atom.SetPartialCharge( atomCharged.GetPartialCharge() )
67 | charges += [atom.GetPartialCharge()]
68 | atom_types += [atom.GetType()]
69 |
70 | #print("partial charges " + str(charges))
71 | #print("atom types: " + str(atom_types))
72 | # Create the tags for the sdf file
73 | mol = createTag(tag_names, mol, charges, atom_types)
74 | oechem.OEWriteMolecule(ofs, mol)
75 | ifs.close()
76 | ofs.close()
77 |
78 |
79 | def createTag(tag_names, mol, charges, atom_types):
80 | """Create the tags for sdf file."""
81 | oechem = import_("openeye.oechem")
82 | mol_id = oechem.OEGetSDData(mol, 'Mol_Index')
83 | for tag in tag_names:
84 | if tag == 'partial_charges':
85 | value = manipulatePartialChargesTag(charges)
86 | elif tag == 'partial_bond_orders':
87 | value = manipulateBondOrdersTag(mol)
88 | elif tag == 'atom_types':
89 | value = manipulateAtomTypes(atom_types)
90 | else:
91 | #Tag Name Error
92 | raise Exception('Wrong tag name')
93 | break
94 | oechem.OESetSDData(mol, oechem.OESDDataPair(tag, value))
95 | return mol
96 |
97 |
98 | def manipulatePartialChargesTag(charges):
99 | """Transform charges from float to string format."""
100 | value = ''
101 | for charge in charges:
102 | value += str(charge) + '\n'
103 | return value
104 |
105 |
106 | def manipulateBondOrdersTag(mol):
107 | """Get bonds and store their order for partial bond orders Tag"""
108 | partial_bonds_order = ''
109 | for bond in mol.GetBonds():
110 | partial_bonds_order += str(float(bond.GetOrder())) + '\n'
111 | return partial_bonds_order
112 |
113 | def manipulateAtomTypes(atom_types):
114 | """Transform atom types to the right string format."""
115 | value = ''
116 | for atm in atom_types:
117 | value += str(atm) + '\n'
118 | return value
119 |
--------------------------------------------------------------------------------
/solvationtoolkit/solvated_mixtures.py:
--------------------------------------------------------------------------------
1 |
2 | """Defines MixtureSystem class for creating and handling mixtures
3 |
4 | solvationtoolkit.solvated_mixtures provides the main MixtureSystem class and
5 | functionality used here. This allows construction of arbitrary mixtures
6 | of small organic compounds via specification of names/SMILES string and
7 | numbers/mole fractions of molecules.
8 |
9 |
10 | USAGE EXAMPLES:
11 |
12 | # Set up mixture of phenol, toluene, and cyclohexane
13 | # using specified numbers of each component
14 | mixture = MixtureSystem('mydata')
15 | mixture.addComponent(label='phenol', smiles='c1ccc(cc1)O', number=1)
16 | mixture.addComponent(label='toluene', smiles='Cc1ccccc1', number=10)
17 | mixture.addComponent(label='cyclohexane', smiles='C1CCCCC1', number=500)
18 | #Generate output files for AMBER
19 | mixture.build(amber = True)
20 |
21 | # Set up simple liquid of TIP3P water
22 | liquid = MixtureSystem()
23 | liquid.addComponent('water')
24 | liquid.build()
25 |
26 | # Set up binary mixture of water and methanol
27 | binary_mixture = MixtureSystem()
28 | binary_mixture.addComponent(name='water', mole_fraction=0.2)
29 | # add a filling compound - assumed to be rest of mixture if no
30 | # mole_fraction specified
31 | binary_mixture.addComponent(name='methanol')
32 | #Build for GROMACS
33 | binary_mixture.build(gromacs = True)
34 |
35 | # Set up ternary mixture of ethanol, methanol, and water
36 | ternary_mixture = MixtureSystem()
37 | ternary_mixture.addComponent(name='ethanol', mole_fraction=0.2)
38 | ternary_mixture.addComponent(name='methanol', mole_fraction=0.2)
39 | ternary_mixture.addComponent(name='water')
40 |
41 | # Set up a system of phenol at infinite dilution (a single molecule)
42 | # in otherwise pure water
43 | infinite_dilution = MixtureSystem()
44 | infinite_dilution.addComponent(name='phenol', mole_fraction=0.0)
45 | infinite_dilution.addComponent(name='water')
46 |
47 |
48 | OTHER USAGE INFORMATION:
49 |
50 | One or multiple components must be specified, and each component must have a
51 | name or label (or both), as well as optionally SMILES strings and number of
52 | molecules or mole fraction. Each component must end up with a string which can
53 | be used to construct filenames (which will be taken from "label" or, if not
54 | provided, "name"), and each component must also be unambiguously identified
55 | via a name or SMILES string. SMILES strings are the preferred identifier, but
56 | if SMILES are not provided, it attempts to process the name to a SMILES, and if
57 | there is no name, the label is interpreted as a name.
58 |
59 | Except in certain special cases, each component must also have a quantity,
60 | which can either be a number of molecules, or a mole fraction. Numbers of
61 | molecules and mole fractions cannot be mixed; system specification must either
62 | occur via numbers or via mole fractions. Special cases are the case of a single
63 | component, in which no quantity is necessary as the solution is pure and can be
64 | generated based on the target system size, and the case of a filling component,
65 | which is provided without quantity specification along with several other
66 | components with specified mole fractions.
67 |
68 | Systems are finalized by executing the build functionality, which has optional
69 | arguments `amber = True` and `gromacs = True` for generating output for the
70 | specified packages. For aid with solvation free energy calculations, build of
71 | GROMACS systems takes an additional optional argument, `solute_index`,
72 | specifying the component number (i.e. in the order ardded, counting from 0) to
73 | treat as the solute.
74 |
75 |
76 | STORAGE OF RESULTS/INTERMEDIATE FILES:
77 |
78 | Data files are stored in subdirectories of the directory specified by the
79 | constructor, i.e. MixtureSystem('path'); the default location is 'data'.
80 | Within that, subdirectories contain .sdf and .mol2 files for monomers,
81 | the generated .pdb format boxes from packmol, and AMBER and GROMACS files if
82 | generated.
83 | """
84 |
85 | import numpy as np
86 | import os,sys
87 | import inspect
88 | import itertools
89 | import mdtraj as md
90 | import parmed
91 | import openmoltools
92 | import solvationtoolkit.mol2tosdf as mol2tosdf
93 | from simtk.unit import *
94 | from openmoltools.utils import import_
95 | import shutil
96 |
97 |
98 | # We require at least ParmEd 2.5.1 because of issues with the .mol2 writer
99 | # (issue #691 on ParmEd) prior to that, and 2.5.1.10 because of OpenEye reader
100 | # formatting bugs requireing compressed spacing in .mol2 files (added in
101 | # ParmEd 2.5.1.10)
102 | # Previously 2.0.4 or later was required due to issues with FudgeLJ/FudgeQQ in
103 | # resulting GROMACS topologies in
104 | # earlier versions
105 |
106 | try: #Try to get version tag
107 | ver = parmed.version
108 | except: #If too old for version tag, it is too old
109 | oldParmEd = Exception('ERROR: ParmEd is too old, please upgrade to 2.5.1.10 or later (parmed-dev if necessary)' )
110 | raise oldParmEd
111 | if ver < (2,5,1,10):
112 | raise RuntimeError("ParmEd is too old, please upgrade to 2.5.1.10 or later (parmed-dev if necessary)")
113 |
114 |
115 | def make_path(pathname):
116 | try:
117 | os.makedirs(pathname)
118 | except:
119 | pass
120 |
121 | class MixtureSystem(object):
122 | """A MixtureSystem object for defining and preparing input files for a
123 | mixture of arbitrary organic solutes. Outputs to formats for several simulation
124 | packages are available.
125 |
126 | Usage
127 | -----------
128 |
129 |
130 | Parameters
131 | -----------
132 | directory : str (optional)
133 | Directory tree in which to store the data. Default: "data"
134 | protonation : bool
135 | Use a protonation model to determine protonation states of compounds? Default: None.
136 | If True, uses OpenEye's neutral pH model to predict likely protonation statesself.
137 | WARNING: Currently charged systems are not neutralized by addition of counterions,
138 | thus use of this may result in systems with a formal charge.
139 |
140 |
141 | Limitations
142 | -----------
143 | Existing files with the same name present in the data directory tree may be
144 | overwritten. This results in a limitation/failure in a small (and probably
145 | random) fraction of cases if multiple systems involving the same monomers
146 | are written into the same data directory. Specifically,
147 | openmoltools.amber.build_mixture_prmtop requires that each mol2 file for a
148 | component have a unique residue name, which is handled automatically by
149 | openmoltools when constructing monomers (each is assigned a unique random
150 | residue name). However, if these are overwritten with other monomers (i.e.
151 | if we set up, say, 'octanol' in the same directory twice)
152 | which by chance end up with non-unique residue names then
153 | amber.build_mixture_prmtop will fail with a ValueError. This can be avoided
154 | by ensuring that if you are constructing multiple MixtureSystems involving
155 | the same monomers, your data directories are different. This issue also
156 | will likely be fixed when openmoltools switches to topology merging
157 | via ParmEd rather than tleap, as unique residue names are built into
158 | ParmEd in a better way.
159 | """
160 |
161 |
162 | def __init__(self, directory='data', protonation=None):
163 |
164 | """
165 | Initialization of the Molecule Database Class
166 |
167 | Parameters
168 | ----------
169 | directory : str
170 | the directory name used to save the data
171 | protonation : bool
172 | Use a protonation model to determine protonation states of compounds? Default: None.
173 | If True, uses OpenEye's neutral pH model to predict likely protonation statesself.
174 | WARNING: Currently charged systems are not neutralized by addition of counterions,
175 | thus use of this may result in systems with a formal charge.
176 |
177 | """
178 |
179 | # Set directory names
180 | self.data_path = directory
181 | self.data_path_monomers = os.path.join(self.data_path,'monomers')
182 | self.data_path_packmol = os.path.join(self.data_path,'packmol_boxes')
183 | self.protonation_model = protonation
184 |
185 | # List container of all the added components to the solution
186 | self.component_list = []
187 |
188 | # Index used to perform index selection by using __iter__ function
189 | self.__ci = 0
190 |
191 | return
192 |
193 |
194 | def __str__(self):
195 | """
196 | Printing object function
197 | """
198 |
199 |
200 | string = ''
201 |
202 | for i in self.component_list:
203 | string = string + str(i)
204 |
205 | return string
206 |
207 |
208 | def __iter__(self):
209 | """
210 | Index generator
211 | """
212 | return self
213 |
214 |
215 | def next(self): # Python 3: def __next__(self)
216 | """
217 | Select the molecule during an iteration
218 | """
219 |
220 | if self.__ci > len(self.component_list) - 1:
221 | self.__ci = 0
222 | raise StopIteration
223 | else:
224 | self.__ci = self.__ci + 1
225 | return self.component_list[self.__ci - 1]
226 |
227 |
228 | def __getitem__(self, index):
229 | """
230 | Index selection function
231 | """
232 |
233 | return self.component_list[index]
234 |
235 |
236 | def __setitem__(self, index, component):
237 | """
238 | Index setting function
239 |
240 | Parameters
241 | ----------
242 | index : int
243 | the component index
244 | component : Component obj
245 | the component to assign to the component in the mixture
246 | MixtureSystem[index] = component
247 |
248 | """
249 |
250 | if not isinstance(component, Component):
251 | raise ValueError('The passed component is not a Component class object')
252 |
253 | self.component_list[index] = component
254 |
255 |
256 |
257 | def addComponent(self, name=None, **args):
258 | """
259 | Add a component to the solution
260 |
261 | Parameters
262 | ----------
263 | name : string
264 | the name of the compound to add the solution
265 | **args : see class Component for a full description
266 |
267 | """
268 |
269 | # Component object creation
270 | component=Component(name, **args)
271 |
272 | # Add object to the component list
273 | self.component_list.append(component)
274 |
275 |
276 |
277 | def build(self, amber=False, gromacs=False, solute_index='auto'):
278 | """
279 | Build all the monomers and the amber or gromacs mixture files
280 |
281 | Parameters
282 | ----------
283 | amber : bool
284 | this flag is used to control if output or not the amber files
285 | gromacs : bool
286 | this flag is used to control if output or not the gromacs files
287 | solute_index : int/str, optional. Default: "auto"
288 | Optional parameter to specify which of the components (in the list of specified components)
289 | will be treated as a solute in constructing GROMACS topology files
290 | (which means that a single molecule of this component will be singled out as the 'solute'
291 | in the resulting GROMACS topology file). Valid options are 'auto'
292 | (pick the first component present with n_monomers = 1,
293 | otherwise the first component), None (don't pick any), or an integer
294 | (pick the component smiles_strings[solute_index].
295 |
296 | """
297 |
298 | #If no components were specified, then we can't proceed
299 | if len(self.component_list)==0:
300 | raise TypeError("One or more components must be specified via addComponent")
301 |
302 | #If we want GROMACS, we have to also build AMBER as we get GROMACS from AMBER
303 | if gromacs and not amber:
304 | print("Turning on build of AMBER parameter/coordinate files in order to obtain files for GROMACS via conversion.")
305 | amber = True
306 |
307 | #NOW GENERATE FINAL STORAGE FOR FILE NAMES/COMPONENT LISTS
308 | #Now that we're building, we can generate the full set of components
309 | #we will be using since we're done adding components
310 | # List of all the smiles strings
311 | self.smiles_strings = []
312 |
313 | # List of all the number of monomers
314 | self.n_monomers = []
315 |
316 | # List of all the mole fractions
317 | self.mole_fractions = []
318 |
319 | # List of all the effective compound names. If the compond name is None
320 | # than the compound label will be used in this list as compound name
321 | self.labels = []
322 |
323 | # The filling compound is a compound with None molecule number and None
324 | # mole fraction. It is used to fill out the solution
325 | self.filling_compound = None
326 |
327 | # Lists of filenames related to gaff mol2 files, amber files and sdf
328 | # file format
329 | self.gaff_mol2_filenames = []
330 | self.frcmod_filenames = []
331 | self.inpcrd_filenames = []
332 | self.prmtop_filenames = []
333 | self.sdf_filenames = []
334 |
335 | # Final strings for output filenames
336 | self.mix_fname = ''
337 | self.pdb_filename = ''
338 | self.prmtop_filename = ''
339 | self.inpcrd_filename = ''
340 | self.top_filename = ''
341 | self.gro_filename = ''
342 |
343 |
344 | #BUILD
345 |
346 |
347 | # Now begin building by building monomers
348 | def build_monomers(self):
349 | """
350 | Generate GAFF mol2 and frcmod files for each chemical
351 | """
352 |
353 | # Filenames generation
354 | for comp in self.component_list:
355 | if comp.label:
356 | mol2_filename = os.path.join(self.data_path_monomers, comp.label+'.mol2')
357 | frcmod_filename = os.path.join(self.data_path_monomers, comp.label+'.frcmod')
358 | inpcrd_filename = os.path.join(self.data_path_monomers, comp.label+'.inpcrd')
359 | prmtop_filename = os.path.join(self.data_path_monomers, comp.label+'.prmtop')
360 | sdf_filename = os.path.join(self.data_path_monomers, comp.label+'.sdf')
361 | self.mix_fname = self.mix_fname + '_' + comp.label
362 | else:
363 | mol2_filename = os.path.join(self.data_path_monomers, comp.name+'.mol2')
364 | frcmod_filename = os.path.join(self.data_path_monomers, comp.name+'.frcmod')
365 | inpcrd_filename = os.path.join(self.data_path_monomers, comp.name+'.inpcrd')
366 | prmtop_filename = os.path.join(self.data_path_monomers, comp.name+'.prmtop')
367 | sdf_filename = os.path.join(self.data_path_monomers, comp.name+'.sdf')
368 | self.mix_fname = self.mix_fname + '_' + comp.name
369 |
370 | # Filling compound selection
371 | if comp.number == None and comp.mole_fraction == None:
372 | if self.filling_compound == None:
373 | self.filling_compound = comp
374 | self.mole_fractions.append(comp.mole_fraction)
375 | else:
376 | raise ValueError('Error: Two or more fillig compounds have been specified')
377 |
378 | # Number and mol fractions lists generation
379 | if comp.number:
380 | self.n_monomers.append(comp.number)
381 | if comp.mole_fraction is not None:
382 | self.mole_fractions.append(comp.mole_fraction)
383 |
384 | # Lists of filenames generation
385 | self.smiles_strings.append(comp.smiles)
386 | self.gaff_mol2_filenames.append(mol2_filename)
387 | self.frcmod_filenames.append(frcmod_filename)
388 | self.inpcrd_filenames.append(inpcrd_filename)
389 | self.prmtop_filenames.append(prmtop_filename)
390 | self.sdf_filenames.append(sdf_filename)
391 |
392 | if not (os.path.exists(mol2_filename) and os.path.exists(frcmod_filename)):
393 | #Convert SMILES strings to mol2 and frcmod files for antechamber
394 | openmoltools.openeye.smiles_to_antechamber(comp.smiles, mol2_filename, frcmod_filename, protonation = self.protonation_model)
395 | #Correct the mol2 file partial atom charges to have a total net integer molecule charge
396 | mol2f = parmed.formats.Mol2File
397 | mol2f.write(parmed.load_file(mol2_filename).fix_charges(),mol2_filename, compress_whitespace=True)
398 |
399 | #Generate amber coordinate and topology files for the unsolvated molecules
400 | mol_name = os.path.basename(mol2_filename).split('.')[0]
401 | openmoltools.amber.run_tleap(mol_name, mol2_filename, frcmod_filename, prmtop_filename, inpcrd_filename)
402 |
403 | #Read Mol2 File and write SDF file
404 | mol2tosdf.writeSDF(mol2_filename, sdf_filename, mol_name)
405 |
406 |
407 | #Generate unique residue names for molecules in mol2 files
408 | openmoltools.utils.randomize_mol2_residue_names(self.gaff_mol2_filenames)
409 |
410 |
411 | def build_boxes(self):
412 | """
413 | Build an initial box with packmol and use it to generate AMBER files
414 | """
415 |
416 | def mole_fractions_to_n_monomers(self, density= 1 * grams/milliliter, cutoff=12*angstrom):
417 | """
418 | This function is used to generate the number of molecules for
419 | each compound in the solution from the mole fractions of each molecule.
420 |
421 | Parameters
422 | ----------
423 | density : openmm units
424 | the solution density
425 | cutoff : openmm units
426 | the cutoff distance of the largest compound in the solution
427 |
428 | Returns
429 | -------
430 | self.n_monomers : integer list
431 | the list of molecule number for each compound in the solution
432 |
433 | size : float
434 | the edge of the box volume
435 |
436 | """
437 | oechem = import_("openeye.oechem")
438 |
439 | # Calculate the maximum atomic distance in a molecule
440 | def max_dist_mol(mol):
441 | max_dist = 0.0
442 | coords = mol.GetCoords() # Are the coords always in A in mol2 file?
443 | for i in range(0, mol.NumAtoms()):
444 | crdi = np.array([coords[i][0], coords[i][1], coords[i][2]])
445 | for j in range(i+1, mol.NumAtoms()):
446 | crdj = np.array([coords[j][0], coords[j][1], coords[j][2]])
447 | dist = np.linalg.norm(crdi-crdj)
448 | if dist > max_dist:
449 | max_dist = dist
450 |
451 | return max_dist * angstrom
452 |
453 | # The sum of all the mole fractions
454 | sum_fractions = sum([i for i in self.mole_fractions if i != None])
455 |
456 | if sum_fractions > 1.0:
457 | raise ValueError('Error: The total molar fraction is greater than 1.0')
458 |
459 | if sum_fractions == 1.0 and self.filling_compound:
460 | raise ValueError('Error: The total molar fraction is 1.0 and it is not possible to add any filling compound to the solution, but a filling compound was specified')
461 |
462 | if sum_fractions < 1.0 and not self.filling_compound:
463 | raise ValueError('Error: The total molar fraction is less than 1.0 and no filling compound (i.e. compound with unspecified mole fraction) is provided')
464 |
465 | if self.filling_compound:
466 | self.filling_compound.mole_fraction = 1.0 - sum_fractions
467 | self.mole_fractions = [i if i != None else (1.0 - sum_fractions) for i in self.mole_fractions]
468 |
469 |
470 | max_dist_mols = 0.0 * angstrom
471 | delta_volume = 0.0 * angstrom**3
472 | sum_wgt_frac = 0.0 * grams/mole
473 |
474 |
475 | for i in range(0, len(self.sdf_filenames)):
476 | istream = oechem.oemolistream(self.sdf_filenames[i])#gaff_mol2_files give wrong wgt because not sybyl format!
477 | mol = oechem.OEMol()
478 |
479 | if not oechem.OEReadMolecule(istream, mol):
480 | raise IOError('Error: It was not possible to create the OpenEye molecule object by reading the file: %s' % self.gaff_mol2_filenames[i])
481 | # Molecular weight
482 | wgt = oechem.OECalculateMolecularWeight(mol) * grams/mole
483 |
484 | if self.component_list[i].mole_fraction == 0.0:
485 | delta_volume = oechem.OECalculateMolecularWeight(mol) * angstrom**3
486 |
487 | sum_wgt_frac = sum_wgt_frac + wgt * self.component_list[i].mole_fraction
488 |
489 | max_dist= max_dist_mol(mol)
490 |
491 | if max_dist > max_dist_mols:
492 | max_dist_mols = max_dist
493 |
494 |
495 | cube_length = ((max_dist_mols + 2*cutoff)**3 + delta_volume)**(1.0/3.0)
496 |
497 | n_monomers = []
498 |
499 |
500 | # n_i = Volume * Density * mole_fraction_i/sum_j(wgt_j * mole_fraction_j)
501 | self.n_monomers = [int(round(AVOGADRO_CONSTANT_NA * comp.mole_fraction * density * cube_length**3 / sum_wgt_frac)) \
502 | if comp.mole_fraction !=0 else 1 for comp in self.component_list]
503 |
504 |
505 | return self.n_monomers, cube_length
506 |
507 |
508 | if not self.gaff_mol2_filenames:
509 | raise ValueError('The list of gaff mol2 molecules is empty')
510 |
511 | if self.n_monomers and self.mole_fractions:
512 | print (self.n_monomers, self.mole_fractions)
513 | raise ValueError('Error: For different compounds it is not possible to mix mole_fractions and number of molecules')
514 |
515 |
516 | # The solution has been specified by using number of molecules
517 | if self.n_monomers:
518 |
519 | if self.filling_compound:
520 | raise ValueError('Error: The filling compound cannot be mixed with components specified by defining the number of molecules')
521 |
522 | size = openmoltools.packmol.approximate_volume_by_density(self.smiles_strings, self.n_monomers)
523 | mdtraj_components = [md.load(mol2) for mol2 in self.gaff_mol2_filenames]
524 | # Standardize water to avoid issue where waters are not recognized by MDTraj unless they have specific names
525 | for component in mdtraj_components:
526 | openmoltools.packmol.standardize_water(component)
527 |
528 | packed_trj = openmoltools.packmol.pack_box( mdtraj_components, self.n_monomers, box_size = size)
529 |
530 | self.labels = self.mix_fname[1:].split('_')
531 | self.mix_fname = self.mix_fname[1:] + ''.join(['_'+str(i) for i in self.n_monomers])
532 | self.pdb_filename = os.path.join(self.data_path_packmol, self.mix_fname+'.pdb')
533 | packed_trj.save(self.pdb_filename)
534 |
535 |
536 | # The solutions has been specified by using mole fractions
537 | elif self.mole_fractions:
538 |
539 | n_monomers, size = mole_fractions_to_n_monomers(self)
540 |
541 | # WARNING: The size estimated with the mole_to_n_monomers
542 | # function is underestimating the volume calculated by using
543 | # openmoltools and for now we are using this estimate.
544 | # If the volume is underestimated, apparently Packmol struggles
545 | # to find convergence and introduces extra molecules
546 | # into the found best solutionx (bug?)
547 |
548 | size = openmoltools.packmol.approximate_volume_by_density(self.smiles_strings, self.n_monomers)
549 | mdtraj_components = [md.load(mol2) for mol2 in self.gaff_mol2_filenames]
550 | # Standardize water to avoid issue where waters are not recognized by MDTraj unless they have specific names
551 | for component in mdtraj_components:
552 | openmoltools.packmol.standardize_water(component)
553 |
554 | packed_trj = openmoltools.packmol.pack_box(mdtraj_components, n_monomers, box_size = size)
555 |
556 | self.labels = self.mix_fname[1:].split('_')
557 | self.mix_fname = self.mix_fname[1:] +''.join(['_'+str(i) for i in self.mole_fractions if i is not None])
558 | self.pdb_filename = os.path.join(self.data_path_packmol, self.mix_fname+'.pdb')
559 | packed_trj.save(self.pdb_filename)
560 |
561 | return
562 |
563 |
564 |
565 | def convert_to_gromacs(self, solute_index):
566 | """From AMBER-format prmtop and crd files, generate final solvated
567 | GROMACS topology and coordinate files. Ensure that the desired "solute" (as per
568 | solute_index) has a single monomer treated via a unique residue name to allow
569 | treatment as a solute separate from other residues of the same name (if
570 | desired). The solute will be given residue name "solute" Also, check to see if
571 | there are "WAT" residues present, in which case tleap will have re-ordered
572 | them to the end of the data file. If so, update data structures accordingly
573 | and handle conversion appropriately.
574 |
575 | Notes
576 | -----
577 | Currently, this function ensures that - after AMBER conversion reorders
578 | water molecules with residue names 'WAT' to occur last in the resulting
579 | parameter/coordinate files - the internal data structures are updated to
580 | have the correct order in the relevant lists (labels, smiles_strings,
581 | n_monomers). If for some reason GROMACS conversion were removed, these
582 | would need to be updated elsewhere. (Probably this should be done anyway,
583 | as this is not really a GROMACS issue.)
584 |
585 | """
586 | # Read in AMBER format parameter/coordinate file and convert in gromacs
587 | gromacs_topology = parmed.load_file(self.prmtop_filename, self.inpcrd_filename )
588 |
589 | # Split the topology into components and check that we have the right number of components
590 | components = gromacs_topology.split()
591 | assert len(components)==len(self.n_monomers), "Number of monomers and number of components in the combined topology do not match."
592 |
593 |
594 | #### HANDLE ORDERING OF WATER ####
595 | # Check if any of the residues is named "WAT". If it is, antechamber will potentially have re-ordered it from where it was (it places residues named "WAT" at the end) so it may no longer appear in the order in which we expect.
596 | resnames = [ components[i][0].residues[0].name for i in range(len(components)) ]
597 | wat_present = False
598 |
599 |
600 | # Manage presence of WAT residues and possible re-ordering
601 | if 'WAT' in resnames:
602 |
603 | # If there is a water present, then we MIGHT have re-ordering.
604 | # Check smiles to find out where it was originally.
605 | wat_orig_index = self.smiles_strings.index('O')
606 |
607 | # Where is it now?
608 | wat_new_index = resnames.index('WAT')
609 |
610 | # Reordered? If so, we have to adjust the ordering of
611 | # n_monomers, smiles_strings, labels, and potentially
612 | # solute_index. Filenames will be preserved since these were
613 | #already created
614 | if wat_orig_index != wat_new_index:
615 | # tleap moves water to the end so if they aren't equal, we
616 | # know where water will be...
617 | self.n_monomers = self.n_monomers[0:wat_orig_index] + self.n_monomers[wat_orig_index+1:] + [self.n_monomers[wat_orig_index]]
618 | self.smiles_strings = self.smiles_strings[0:wat_orig_index] + self.smiles_strings[wat_orig_index+1:] + [self.smiles_strings[wat_orig_index]]
619 | self.labels = self.labels[0:wat_orig_index] + self.labels[wat_orig_index+1:] + [self.labels[wat_orig_index] ]
620 | # Check solute_index and alter if needed
621 | if not solute_index=='auto' and not solute_index==None:
622 | # Index unchanged if it's before the water
623 | if solute_index < wat_orig_index:
624 | pass
625 | # If it is the water, now it is at the end
626 | elif solute_index == wat_orig_index:
627 | solute_index = len(self.n_monomers)-1
628 | # If it was after the water, then it moved up one position
629 | else:
630 | solute_index -= 1
631 | #### END HANDLING OF ORDERING OF WATER ####
632 |
633 |
634 | # Figure out what we're treating as the solute (if anything)
635 | if solute_index=='auto':
636 | # Check which of the molecules is present in qty 1
637 | try:
638 | solute_index = self.n_monomers.index(1)
639 | except ValueError:
640 | # If none is present in qty 1, then use the first
641 | solute_index = 0
642 |
643 | # Check that the passed solute index is correct
644 | check_solute_indices = range(0,len(self.n_monomers))
645 | assert solute_index in check_solute_indices and isinstance(solute_index, int) or solute_index == None, "Solute index must be an element of the list: %s or None. The value passed is: %s" % (check_solute_indices, solute_index)
646 |
647 | # Now all we have to do is to change the name of the solute molecule (residue, in ParmEd) and ParmEd will automatically make it a new molecule on write.
648 | # To do this, first build a list of the residue names we want, by molecule
649 | resnames = [ ]
650 | for i in range(len(self.n_monomers)):
651 | # If this is not the solute, just keep what we had
652 | if i!=solute_index:
653 | resnames += [ self.labels[i] ] * self.n_monomers[i]
654 | # If it is the solute, make the first residue be named solute and the rest what they were already
655 | else:
656 | resnames += [ 'solute' ] + [ self.labels[i]] * (self.n_monomers[i]-1)
657 |
658 | # Make sure we didn't botch this
659 | assert len(resnames) == len( gromacs_topology.residues ), "Must have the same number of residues named as defined in the topology file."
660 |
661 |
662 | # Now we just go through and rename all the residues and we're done
663 | for i in range(len(resnames)):
664 | gromacs_topology.residues[i].name = resnames[i]
665 |
666 |
667 | # Write GROMACS topology/coordinate files
668 | gromacs_topology.save(self.top_filename, format='gromacs')
669 | gromacs_topology.save(self.gro_filename)
670 |
671 | return
672 |
673 |
674 | # Create monomers and packmol directories
675 | make_path(os.path.join(self.data_path_monomers))
676 | make_path(os.path.join(self.data_path_packmol))
677 |
678 | # Call the monomers creation and packmol systems
679 | build_monomers(self)
680 | build_boxes(self)
681 |
682 | # Create amber files
683 | if amber:
684 | self.data_path_amber = os.path.join(self.data_path,'amber')
685 | make_path(os.path.join(self.data_path_amber))
686 | self.prmtop_filename = os.path.join(self.data_path_amber, self.mix_fname+'.prmtop')
687 | self.inpcrd_filename = os.path.join(self.data_path_amber, self.mix_fname+'.inpcrd')
688 | # Make AMBER PDB file (will have water residue names/atom names modified if applicable)
689 | self.pdb_filename_amber = os.path.join(self.data_path_packmol, self.mix_fname+'amber.pdb')
690 | shutil.copy(self.pdb_filename, self.pdb_filename_amber)
691 |
692 | tleap_cmd = openmoltools.amber.build_mixture_prmtop(self.gaff_mol2_filenames, self.frcmod_filenames, self.pdb_filename_amber, self.prmtop_filename, self.inpcrd_filename)
693 |
694 | # Create gromacs files
695 | if gromacs:
696 | self.data_path_gromacs = os.path.join(self.data_path,'gromacs')
697 | make_path(os.path.join(self.data_path_gromacs))
698 | self.top_filename = os.path.join(self.data_path_gromacs, self.mix_fname+'.top')
699 | self.gro_filename = os.path.join(self.data_path_gromacs, self.mix_fname+'.gro')
700 | convert_to_gromacs(self,solute_index)
701 |
702 |
703 |
704 | #*************************
705 | # Component Class
706 | #*************************
707 |
708 | class Component(object):
709 | """
710 | This Class is used to save the component parameters
711 |
712 | """
713 |
714 |
715 | def __init__(self, name=None, label=None, smiles=None, number=None, mole_fraction=None):
716 | """
717 | Initialization class function
718 |
719 | Parameters
720 | ----------
721 | name : str
722 | the molecule name
723 | label : str
724 | the molecule label used to generates files
725 | smiles : str
726 | the molecule SMILES string
727 | number : int
728 | the number of molecule
729 | mole_fraction : float
730 | molecular mole fraction
731 |
732 | REQUIRED: A name and/or label. If no SMILES is provided, the name will be used to generate SMILES and if no name is provided, the label will be used to attempt to generate SMILES.
733 | """
734 |
735 |
736 | oechem = import_("openeye.oechem")
737 | oeiupac = import_("openeye.oeiupac")
738 |
739 | # Checking name and label
740 |
741 | ref_str = ''
742 |
743 | if not name and not label:
744 | raise ValueError("Error: No component parameters name or label"+
745 | " have been provided for the component")
746 |
747 | if label:
748 | if not isinstance(label, str):
749 | raise ValueError("Error: The component label %s is not a string" % label)
750 | ref_str = label
751 |
752 | if name:
753 | if not isinstance(name, str):
754 | raise ValueError("Error: The component name %s is not a string" % name)
755 | ref_str = name
756 |
757 | if label and not name:
758 | print('\nWARNING: component name not provided; label will be used as component name\n')
759 |
760 | # Checking smiles, molecule number and mole fraction
761 |
762 | if smiles:
763 | if not isinstance(smiles, str):
764 | raise ValueError("Error: The SMILES % for the component %s is not a string" % (smiles, ref_str))
765 | #Check this is a valid SMILES string
766 | mol = oechem.OEMol()
767 | status = oechem.OEParseSmiles(mol, smiles)
768 | if not status:
769 | raise ValueError("Error: The SMILES %s for the component %s"
770 | " cannot be processed by OEChem." % (smiles, ref_str) )
771 |
772 | if number is not None:
773 | if not isinstance(number, int):
774 | raise ValueError("Error: The molecule quantity %s for the component %s is not an integer" % (number, ref_str))
775 | if number < 1:
776 | raise ValueError("Error: The molecule quantity %s for the component %s must be a positive integer" % (number, ref_str))
777 |
778 | if mole_fraction:
779 | if not isinstance(mole_fraction, float):
780 | raise ValueError("Error: The mole fraction %s for the component %s is not a float number" % (mole_fraction, ref_str))
781 | if mole_fraction < 0.0:
782 | raise ValueError("Error: The mole fraction %s for the component %s must be positive" % (mole_fraction, ref_str))
783 | if mole_fraction > 1.0:
784 | raise ValueError("Error: The mole fraction %s for the component %s is greater than one" % (mole_fraction, ref_str))
785 |
786 | if number and mole_fraction:
787 | raise ValueError("Error: molecule number and mole fraction for the compound %s cannot be both specified" % ref_str)
788 |
789 | if not smiles:
790 | mol = oechem.OEMol()
791 | if name:
792 | try:
793 | oeiupac.OEParseIUPACName(mol, name)
794 | smiles = oechem.OECreateIsoSmiString(mol)
795 | #If smiles is empty, didn't parse correctly
796 | if smiles == '':
797 | raise ValueError("Error: The supplied name '%s' could not be parsed" % name)
798 | except:
799 | raise ValueError("Error: The supplied name '%s' could not be parsed" % name)
800 | elif label:
801 | try:
802 | oeiupac.OEParseIUPACName(mol, label)
803 | smiles = oechem.OECreateIsoSmiString(mol)
804 | if smiles == '':
805 | raise ValueError("Error: The supplied name '%s' could not be parsed" % name)
806 | except:
807 | raise ValueError("Error: The supplied label '%s' could not be parsed" % label)
808 |
809 | self.name = name
810 | self.label = label
811 | self.smiles = smiles
812 | self.number = number
813 | self.mole_fraction = mole_fraction
814 |
815 |
816 | return
817 |
818 |
819 | def __str__(self):
820 | """
821 | Printing object function
822 | """
823 |
824 | return "\nname = %s\nlabel = %s\nsmiles = %s\nnumber = %s\nmole_frac = %s\n" \
825 | %(self.name, self.label, self.smiles, self.number, self.mole_fraction)
826 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/benzene.gro:
--------------------------------------------------------------------------------
1 | benzene_GMX.gro created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 | 12
3 | 1 MOL C1 1 0.189 -0.104 -0.011
4 | 1 MOL C2 2 0.292 -0.163 0.061
5 | 1 MOL C3 3 0.288 -0.165 0.200
6 | 1 MOL C4 4 0.180 -0.108 0.268
7 | 1 MOL C5 5 0.076 -0.048 0.196
8 | 1 MOL C6 6 0.081 -0.046 0.056
9 | 1 MOL H1 7 0.192 -0.102 -0.120
10 | 1 MOL H2 8 0.376 -0.208 0.008
11 | 1 MOL H3 9 0.369 -0.212 0.256
12 | 1 MOL H4 10 0.177 -0.110 0.376
13 | 1 MOL H5 11 -0.008 -0.004 0.248
14 | 1 MOL H6 12 0.000 0.000 -0.000
15 | 0.38370 0.21150 0.49590
16 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/benzene.top:
--------------------------------------------------------------------------------
1 | ; benzene_GMX.top created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 |
3 | [ defaults ]
4 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
5 | 1 2 yes 0.5 0.8333
6 |
7 | [ atomtypes ]
8 | ;name bond_type mass charge ptype sigma epsilon Amb
9 | ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
10 | ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
11 |
12 | [ moleculetype ]
13 | ;name nrexcl
14 | benzene 3
15 |
16 | [ atoms ]
17 | ; nr type resi res atom cgnr charge mass ; qtot bond_type
18 | 1 ca 1 MOL C1 1 -0.130100 12.01000 ; qtot -0.130
19 | 2 ca 1 MOL C2 2 -0.130100 12.01000 ; qtot -0.260
20 | 3 ca 1 MOL C3 3 -0.130100 12.01000 ; qtot -0.390
21 | 4 ca 1 MOL C4 4 -0.130100 12.01000 ; qtot -0.520
22 | 5 ca 1 MOL C5 5 -0.130100 12.01000 ; qtot -0.651
23 | 6 ca 1 MOL C6 6 -0.130100 12.01000 ; qtot -0.781
24 | 7 ha 1 MOL H1 7 0.130100 1.00800 ; qtot -0.651
25 | 8 ha 1 MOL H2 8 0.130100 1.00800 ; qtot -0.520
26 | 9 ha 1 MOL H3 9 0.130100 1.00800 ; qtot -0.390
27 | 10 ha 1 MOL H4 10 0.130100 1.00800 ; qtot -0.260
28 | 11 ha 1 MOL H5 11 0.130100 1.00800 ; qtot -0.130
29 | 12 ha 1 MOL H6 12 0.130100 1.00800 ; qtot 0.000
30 |
31 | [ bonds ]
32 | ; ai aj funct r k
33 | 1 2 1 1.3870e-01 4.0033e+05 ; C1 - C2
34 | 1 6 1 1.3870e-01 4.0033e+05 ; C1 - C6
35 | 1 7 1 1.0870e-01 2.8811e+05 ; C1 - H1
36 | 2 3 1 1.3870e-01 4.0033e+05 ; C2 - C3
37 | 2 8 1 1.0870e-01 2.8811e+05 ; C2 - H2
38 | 3 4 1 1.3870e-01 4.0033e+05 ; C3 - C4
39 | 3 9 1 1.0870e-01 2.8811e+05 ; C3 - H3
40 | 4 5 1 1.3870e-01 4.0033e+05 ; C4 - C5
41 | 4 10 1 1.0870e-01 2.8811e+05 ; C4 - H4
42 | 5 6 1 1.3870e-01 4.0033e+05 ; C5 - C6
43 | 5 11 1 1.0870e-01 2.8811e+05 ; C5 - H5
44 | 6 12 1 1.0870e-01 2.8811e+05 ; C6 - H6
45 |
46 | [ pairs ]
47 | ; ai aj funct
48 | 1 4 1 ; C1 - C4
49 | 1 9 1 ; C1 - H3
50 | 1 11 1 ; C1 - H5
51 | 2 5 1 ; C2 - C5
52 | 2 10 1 ; C2 - H4
53 | 2 12 1 ; C2 - H6
54 | 3 11 1 ; C3 - H5
55 | 4 8 1 ; C4 - H2
56 | 4 12 1 ; C4 - H6
57 | 5 9 1 ; C5 - H3
58 | 6 3 1 ; C6 - C3
59 | 6 8 1 ; C6 - H2
60 | 6 10 1 ; C6 - H4
61 | 7 3 1 ; H1 - C3
62 | 7 5 1 ; H1 - C5
63 | 7 8 1 ; H1 - H2
64 | 7 12 1 ; H1 - H6
65 | 8 9 1 ; H2 - H3
66 | 9 10 1 ; H3 - H4
67 | 10 11 1 ; H4 - H5
68 | 11 12 1 ; H5 - H6
69 |
70 | [ angles ]
71 | ; ai aj ak funct theta cth
72 | 1 2 3 1 1.1997e+02 5.6216e+02 ; C1 - C2 - C3
73 | 1 2 8 1 1.2001e+02 4.0551e+02 ; C1 - C2 - H2
74 | 1 6 5 1 1.1997e+02 5.6216e+02 ; C1 - C6 - C5
75 | 1 6 12 1 1.2001e+02 4.0551e+02 ; C1 - C6 - H6
76 | 2 1 6 1 1.1997e+02 5.6216e+02 ; C2 - C1 - C6
77 | 2 1 7 1 1.2001e+02 4.0551e+02 ; C2 - C1 - H1
78 | 2 3 4 1 1.1997e+02 5.6216e+02 ; C2 - C3 - C4
79 | 2 3 9 1 1.2001e+02 4.0551e+02 ; C2 - C3 - H3
80 | 3 2 8 1 1.2001e+02 4.0551e+02 ; C3 - C2 - H2
81 | 3 4 5 1 1.1997e+02 5.6216e+02 ; C3 - C4 - C5
82 | 3 4 10 1 1.2001e+02 4.0551e+02 ; C3 - C4 - H4
83 | 4 3 9 1 1.2001e+02 4.0551e+02 ; C4 - C3 - H3
84 | 4 5 6 1 1.1997e+02 5.6216e+02 ; C4 - C5 - C6
85 | 4 5 11 1 1.2001e+02 4.0551e+02 ; C4 - C5 - H5
86 | 5 4 10 1 1.2001e+02 4.0551e+02 ; C5 - C4 - H4
87 | 5 6 12 1 1.2001e+02 4.0551e+02 ; C5 - C6 - H6
88 | 6 1 7 1 1.2001e+02 4.0551e+02 ; C6 - C1 - H1
89 | 6 5 11 1 1.2001e+02 4.0551e+02 ; C6 - C5 - H5
90 |
91 | [ dihedrals ] ; propers
92 | ; for gromacs 4.5 or higher, using funct 9
93 | ; i j k l func phase kd pn
94 | 1 2 3 4 9 180.00 15.16700 2 ; C1- C2- C3- C4
95 | 1 2 3 9 9 180.00 15.16700 2 ; C1- C2- C3- H3
96 | 1 6 5 4 9 180.00 15.16700 2 ; C1- C6- C5- C4
97 | 1 6 5 11 9 180.00 15.16700 2 ; C1- C6- C5- H5
98 | 2 1 6 5 9 180.00 15.16700 2 ; C2- C1- C6- C5
99 | 2 1 6 12 9 180.00 15.16700 2 ; C2- C1- C6- H6
100 | 2 3 4 5 9 180.00 15.16700 2 ; C2- C3- C4- C5
101 | 2 3 4 10 9 180.00 15.16700 2 ; C2- C3- C4- H4
102 | 3 4 5 6 9 180.00 15.16700 2 ; C3- C4- C5- C6
103 | 3 4 5 11 9 180.00 15.16700 2 ; C3- C4- C5- H5
104 | 4 3 2 8 9 180.00 15.16700 2 ; C4- C3- C2- H2
105 | 4 5 6 12 9 180.00 15.16700 2 ; C4- C5- C6- H6
106 | 5 4 3 9 9 180.00 15.16700 2 ; C5- C4- C3- H3
107 | 6 1 2 3 9 180.00 15.16700 2 ; C6- C1- C2- C3
108 | 6 1 2 8 9 180.00 15.16700 2 ; C6- C1- C2- H2
109 | 6 5 4 10 9 180.00 15.16700 2 ; C6- C5- C4- H4
110 | 7 1 2 3 9 180.00 15.16700 2 ; H1- C1- C2- C3
111 | 7 1 2 8 9 180.00 15.16700 2 ; H1- C1- C2- H2
112 | 7 1 6 5 9 180.00 15.16700 2 ; H1- C1- C6- C5
113 | 7 1 6 12 9 180.00 15.16700 2 ; H1- C1- C6- H6
114 | 8 2 3 9 9 180.00 15.16700 2 ; H2- C2- C3- H3
115 | 9 3 4 10 9 180.00 15.16700 2 ; H3- C3- C4- H4
116 | 10 4 5 11 9 180.00 15.16700 2 ; H4- C4- C5- H5
117 | 11 5 6 12 9 180.00 15.16700 2 ; H5- C5- C6- H6
118 |
119 | [ dihedrals ] ; impropers
120 | ; treated as propers in GROMACS to use correct AMBER analytical function
121 | ; i j k l func phase kd pn
122 | 1 3 2 8 4 180.00 4.60240 2 ; C1- C3- C2- H2
123 | 1 5 6 12 4 180.00 4.60240 2 ; C1- C5- C6- H6
124 | 2 4 3 9 4 180.00 4.60240 2 ; C2- C4- C3- H3
125 | 3 5 4 10 4 180.00 4.60240 2 ; C3- C5- C4- H4
126 | 4 6 5 11 4 180.00 4.60240 2 ; C4- C6- C5- H5
127 | 7 1 6 2 4 180.00 4.60240 2 ; H1- C1- C6- C2
128 |
129 | [ system ]
130 | benzene
131 |
132 | [ molecules ]
133 | ; Compound nmols
134 | benzene 1
135 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/cyclohexane.gro:
--------------------------------------------------------------------------------
1 | cyclohexane_GMX.gro created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 | 18
3 | 1 MOL C1 1 0.033 0.023 -0.142
4 | 1 MOL C2 2 -0.101 -0.038 -0.100
5 | 1 MOL C3 3 -0.142 0.007 0.040
6 | 1 MOL C4 4 -0.033 -0.023 0.142
7 | 1 MOL C5 5 0.101 0.038 0.100
8 | 1 MOL C6 6 0.142 -0.007 -0.040
9 | 1 MOL H1 7 0.022 0.131 -0.153
10 | 1 MOL H2 8 0.062 -0.017 -0.240
11 | 1 MOL H3 9 -0.179 -0.009 -0.172
12 | 1 MOL H4 10 -0.094 -0.147 -0.103
13 | 1 MOL H5 11 -0.163 0.114 0.039
14 | 1 MOL H6 12 -0.235 -0.044 0.069
15 | 1 MOL H7 13 -0.062 0.017 0.240
16 | 1 MOL H8 14 -0.022 -0.131 0.153
17 | 1 MOL H9 15 0.094 0.147 0.103
18 | 1 MOL H10 16 0.179 0.009 0.172
19 | 1 MOL H11 17 0.235 0.044 -0.069
20 | 1 MOL H12 18 0.163 -0.114 -0.039
21 | 0.46910 0.29440 0.48000
22 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/cyclohexane.top:
--------------------------------------------------------------------------------
1 | ; cyclohexane_GMX.top created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 |
3 | [ defaults ]
4 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
5 | 1 2 yes 0.5 0.8333
6 |
7 | [ atomtypes ]
8 | ;name bond_type mass charge ptype sigma epsilon Amb
9 | c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
10 | hc hc 0.00000 0.00000 A 2.64953e-01 6.56888e-02 ; 1.49 0.0157
11 |
12 | [ moleculetype ]
13 | ;name nrexcl
14 | cyclohexane 3
15 |
16 | [ atoms ]
17 | ; nr type resi res atom cgnr charge mass ; qtot bond_type
18 | 1 c3 1 MOL C1 1 -0.076100 12.01000 ; qtot -0.076
19 | 2 c3 1 MOL C2 2 -0.075500 12.01000 ; qtot -0.152
20 | 3 c3 1 MOL C3 3 -0.075500 12.01000 ; qtot -0.227
21 | 4 c3 1 MOL C4 4 -0.075500 12.01000 ; qtot -0.303
22 | 5 c3 1 MOL C5 5 -0.075500 12.01000 ; qtot -0.378
23 | 6 c3 1 MOL C6 6 -0.075500 12.01000 ; qtot -0.454
24 | 7 hc 1 MOL H1 7 0.037800 1.00800 ; qtot -0.416
25 | 8 hc 1 MOL H2 8 0.037800 1.00800 ; qtot -0.378
26 | 9 hc 1 MOL H3 9 0.037800 1.00800 ; qtot -0.340
27 | 10 hc 1 MOL H4 10 0.037800 1.00800 ; qtot -0.302
28 | 11 hc 1 MOL H5 11 0.037800 1.00800 ; qtot -0.265
29 | 12 hc 1 MOL H6 12 0.037800 1.00800 ; qtot -0.227
30 | 13 hc 1 MOL H7 13 0.037800 1.00800 ; qtot -0.189
31 | 14 hc 1 MOL H8 14 0.037800 1.00800 ; qtot -0.151
32 | 15 hc 1 MOL H9 15 0.037800 1.00800 ; qtot -0.113
33 | 16 hc 1 MOL H10 16 0.037800 1.00800 ; qtot -0.076
34 | 17 hc 1 MOL H11 17 0.037800 1.00800 ; qtot -0.038
35 | 18 hc 1 MOL H12 18 0.037800 1.00800 ; qtot -0.000
36 |
37 | [ bonds ]
38 | ; ai aj funct r k
39 | 1 2 1 1.5350e-01 2.5363e+05 ; C1 - C2
40 | 1 6 1 1.5350e-01 2.5363e+05 ; C1 - C6
41 | 1 7 1 1.0920e-01 2.8225e+05 ; C1 - H1
42 | 1 8 1 1.0920e-01 2.8225e+05 ; C1 - H2
43 | 2 3 1 1.5350e-01 2.5363e+05 ; C2 - C3
44 | 2 9 1 1.0920e-01 2.8225e+05 ; C2 - H3
45 | 2 10 1 1.0920e-01 2.8225e+05 ; C2 - H4
46 | 3 4 1 1.5350e-01 2.5363e+05 ; C3 - C4
47 | 3 11 1 1.0920e-01 2.8225e+05 ; C3 - H5
48 | 3 12 1 1.0920e-01 2.8225e+05 ; C3 - H6
49 | 4 5 1 1.5350e-01 2.5363e+05 ; C4 - C5
50 | 4 13 1 1.0920e-01 2.8225e+05 ; C4 - H7
51 | 4 14 1 1.0920e-01 2.8225e+05 ; C4 - H8
52 | 5 6 1 1.5350e-01 2.5363e+05 ; C5 - C6
53 | 5 15 1 1.0920e-01 2.8225e+05 ; C5 - H9
54 | 5 16 1 1.0920e-01 2.8225e+05 ; C5 - H10
55 | 6 17 1 1.0920e-01 2.8225e+05 ; C6 - H11
56 | 6 18 1 1.0920e-01 2.8225e+05 ; C6 - H12
57 |
58 | [ pairs ]
59 | ; ai aj funct
60 | 1 4 1 ; C1 - C4
61 | 1 11 1 ; C1 - H5
62 | 1 12 1 ; C1 - H6
63 | 1 15 1 ; C1 - H9
64 | 1 16 1 ; C1 - H10
65 | 2 5 1 ; C2 - C5
66 | 2 13 1 ; C2 - H7
67 | 2 14 1 ; C2 - H8
68 | 2 17 1 ; C2 - H11
69 | 2 18 1 ; C2 - H12
70 | 3 15 1 ; C3 - H9
71 | 3 16 1 ; C3 - H10
72 | 4 9 1 ; C4 - H3
73 | 4 10 1 ; C4 - H4
74 | 4 17 1 ; C4 - H11
75 | 4 18 1 ; C4 - H12
76 | 5 11 1 ; C5 - H5
77 | 5 12 1 ; C5 - H6
78 | 6 3 1 ; C6 - C3
79 | 6 9 1 ; C6 - H3
80 | 6 10 1 ; C6 - H4
81 | 6 13 1 ; C6 - H7
82 | 6 14 1 ; C6 - H8
83 | 7 3 1 ; H1 - C3
84 | 7 5 1 ; H1 - C5
85 | 7 9 1 ; H1 - H3
86 | 7 10 1 ; H1 - H4
87 | 7 17 1 ; H1 - H11
88 | 7 18 1 ; H1 - H12
89 | 8 3 1 ; H2 - C3
90 | 8 5 1 ; H2 - C5
91 | 8 9 1 ; H2 - H3
92 | 8 10 1 ; H2 - H4
93 | 8 17 1 ; H2 - H11
94 | 8 18 1 ; H2 - H12
95 | 9 11 1 ; H3 - H5
96 | 9 12 1 ; H3 - H6
97 | 10 11 1 ; H4 - H5
98 | 10 12 1 ; H4 - H6
99 | 11 13 1 ; H5 - H7
100 | 11 14 1 ; H5 - H8
101 | 12 13 1 ; H6 - H7
102 | 12 14 1 ; H6 - H8
103 | 13 15 1 ; H7 - H9
104 | 13 16 1 ; H7 - H10
105 | 14 15 1 ; H8 - H9
106 | 14 16 1 ; H8 - H10
107 | 15 17 1 ; H9 - H11
108 | 15 18 1 ; H9 - H12
109 | 16 17 1 ; H10 - H11
110 | 16 18 1 ; H10 - H12
111 |
112 | [ angles ]
113 | ; ai aj ak funct theta cth
114 | 1 2 3 1 1.1063e+02 5.2894e+02 ; C1 - C2 - C3
115 | 1 2 9 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H3
116 | 1 2 10 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H4
117 | 1 6 5 1 1.1063e+02 5.2894e+02 ; C1 - C6 - C5
118 | 1 6 17 1 1.1005e+02 3.8802e+02 ; C1 - C6 - H11
119 | 1 6 18 1 1.1005e+02 3.8802e+02 ; C1 - C6 - H12
120 | 2 1 6 1 1.1063e+02 5.2894e+02 ; C2 - C1 - C6
121 | 2 1 7 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H1
122 | 2 1 8 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H2
123 | 2 3 4 1 1.1063e+02 5.2894e+02 ; C2 - C3 - C4
124 | 2 3 11 1 1.1005e+02 3.8802e+02 ; C2 - C3 - H5
125 | 2 3 12 1 1.1005e+02 3.8802e+02 ; C2 - C3 - H6
126 | 3 2 9 1 1.1005e+02 3.8802e+02 ; C3 - C2 - H3
127 | 3 2 10 1 1.1005e+02 3.8802e+02 ; C3 - C2 - H4
128 | 3 4 5 1 1.1063e+02 5.2894e+02 ; C3 - C4 - C5
129 | 3 4 13 1 1.1005e+02 3.8802e+02 ; C3 - C4 - H7
130 | 3 4 14 1 1.1005e+02 3.8802e+02 ; C3 - C4 - H8
131 | 4 3 11 1 1.1005e+02 3.8802e+02 ; C4 - C3 - H5
132 | 4 3 12 1 1.1005e+02 3.8802e+02 ; C4 - C3 - H6
133 | 4 5 6 1 1.1063e+02 5.2894e+02 ; C4 - C5 - C6
134 | 4 5 15 1 1.1005e+02 3.8802e+02 ; C4 - C5 - H9
135 | 4 5 16 1 1.1005e+02 3.8802e+02 ; C4 - C5 - H10
136 | 5 4 13 1 1.1005e+02 3.8802e+02 ; C5 - C4 - H7
137 | 5 4 14 1 1.1005e+02 3.8802e+02 ; C5 - C4 - H8
138 | 5 6 17 1 1.1005e+02 3.8802e+02 ; C5 - C6 - H11
139 | 5 6 18 1 1.1005e+02 3.8802e+02 ; C5 - C6 - H12
140 | 6 1 7 1 1.1005e+02 3.8802e+02 ; C6 - C1 - H1
141 | 6 1 8 1 1.1005e+02 3.8802e+02 ; C6 - C1 - H2
142 | 6 5 15 1 1.1005e+02 3.8802e+02 ; C6 - C5 - H9
143 | 6 5 16 1 1.1005e+02 3.8802e+02 ; C6 - C5 - H10
144 | 7 1 8 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
145 | 9 2 10 1 1.0835e+02 3.2995e+02 ; H3 - C2 - H4
146 | 11 3 12 1 1.0835e+02 3.2995e+02 ; H5 - C3 - H6
147 | 13 4 14 1 1.0835e+02 3.2995e+02 ; H7 - C4 - H8
148 | 15 5 16 1 1.0835e+02 3.2995e+02 ; H9 - C5 - H10
149 | 17 6 18 1 1.0835e+02 3.2995e+02 ; H11 - C6 - H12
150 |
151 | [ dihedrals ] ; propers
152 | ; for gromacs 4.5 or higher, using funct 9
153 | ; i j k l func phase kd pn
154 | 1 2 3 4 9 0.00 0.75312 3 ; C1- C2- C3- C4
155 | 1 2 3 4 9 180.00 0.83680 1 ; C1- C2- C3- C4
156 | 1 2 3 4 9 180.00 1.04600 2 ; C1- C2- C3- C4
157 | 1 2 3 11 9 0.00 0.66944 3 ; C1- C2- C3- H5
158 | 1 2 3 12 9 0.00 0.66944 3 ; C1- C2- C3- H6
159 | 1 6 5 4 9 0.00 0.75312 3 ; C1- C6- C5- C4
160 | 1 6 5 4 9 180.00 0.83680 1 ; C1- C6- C5- C4
161 | 1 6 5 4 9 180.00 1.04600 2 ; C1- C6- C5- C4
162 | 1 6 5 15 9 0.00 0.66944 3 ; C1- C6- C5- H9
163 | 1 6 5 16 9 0.00 0.66944 3 ; C1- C6- C5- H10
164 | 2 1 6 5 9 0.00 0.75312 3 ; C2- C1- C6- C5
165 | 2 1 6 5 9 180.00 0.83680 1 ; C2- C1- C6- C5
166 | 2 1 6 5 9 180.00 1.04600 2 ; C2- C1- C6- C5
167 | 2 1 6 17 9 0.00 0.66944 3 ; C2- C1- C6- H11
168 | 2 1 6 18 9 0.00 0.66944 3 ; C2- C1- C6- H12
169 | 2 3 4 5 9 0.00 0.75312 3 ; C2- C3- C4- C5
170 | 2 3 4 5 9 180.00 0.83680 1 ; C2- C3- C4- C5
171 | 2 3 4 5 9 180.00 1.04600 2 ; C2- C3- C4- C5
172 | 2 3 4 13 9 0.00 0.66944 3 ; C2- C3- C4- H7
173 | 2 3 4 14 9 0.00 0.66944 3 ; C2- C3- C4- H8
174 | 3 4 5 6 9 0.00 0.75312 3 ; C3- C4- C5- C6
175 | 3 4 5 6 9 180.00 0.83680 1 ; C3- C4- C5- C6
176 | 3 4 5 6 9 180.00 1.04600 2 ; C3- C4- C5- C6
177 | 3 4 5 15 9 0.00 0.66944 3 ; C3- C4- C5- H9
178 | 3 4 5 16 9 0.00 0.66944 3 ; C3- C4- C5- H10
179 | 4 3 2 9 9 0.00 0.66944 3 ; C4- C3- C2- H3
180 | 4 3 2 10 9 0.00 0.66944 3 ; C4- C3- C2- H4
181 | 4 5 6 17 9 0.00 0.66944 3 ; C4- C5- C6- H11
182 | 4 5 6 18 9 0.00 0.66944 3 ; C4- C5- C6- H12
183 | 5 4 3 11 9 0.00 0.66944 3 ; C5- C4- C3- H5
184 | 5 4 3 12 9 0.00 0.66944 3 ; C5- C4- C3- H6
185 | 6 1 2 3 9 0.00 0.75312 3 ; C6- C1- C2- C3
186 | 6 1 2 3 9 180.00 0.83680 1 ; C6- C1- C2- C3
187 | 6 1 2 3 9 180.00 1.04600 2 ; C6- C1- C2- C3
188 | 6 1 2 9 9 0.00 0.66944 3 ; C6- C1- C2- H3
189 | 6 1 2 10 9 0.00 0.66944 3 ; C6- C1- C2- H4
190 | 6 5 4 13 9 0.00 0.66944 3 ; C6- C5- C4- H7
191 | 6 5 4 14 9 0.00 0.66944 3 ; C6- C5- C4- H8
192 | 7 1 2 3 9 0.00 0.66944 3 ; H1- C1- C2- C3
193 | 7 1 2 9 9 0.00 0.62760 3 ; H1- C1- C2- H3
194 | 7 1 2 10 9 0.00 0.62760 3 ; H1- C1- C2- H4
195 | 7 1 6 5 9 0.00 0.66944 3 ; H1- C1- C6- C5
196 | 7 1 6 17 9 0.00 0.62760 3 ; H1- C1- C6- H11
197 | 7 1 6 18 9 0.00 0.62760 3 ; H1- C1- C6- H12
198 | 8 1 2 3 9 0.00 0.66944 3 ; H2- C1- C2- C3
199 | 8 1 2 9 9 0.00 0.62760 3 ; H2- C1- C2- H3
200 | 8 1 2 10 9 0.00 0.62760 3 ; H2- C1- C2- H4
201 | 8 1 6 5 9 0.00 0.66944 3 ; H2- C1- C6- C5
202 | 8 1 6 17 9 0.00 0.62760 3 ; H2- C1- C6- H11
203 | 8 1 6 18 9 0.00 0.62760 3 ; H2- C1- C6- H12
204 | 9 2 3 11 9 0.00 0.62760 3 ; H3- C2- C3- H5
205 | 9 2 3 12 9 0.00 0.62760 3 ; H3- C2- C3- H6
206 | 10 2 3 11 9 0.00 0.62760 3 ; H4- C2- C3- H5
207 | 10 2 3 12 9 0.00 0.62760 3 ; H4- C2- C3- H6
208 | 11 3 4 13 9 0.00 0.62760 3 ; H5- C3- C4- H7
209 | 11 3 4 14 9 0.00 0.62760 3 ; H5- C3- C4- H8
210 | 12 3 4 13 9 0.00 0.62760 3 ; H6- C3- C4- H7
211 | 12 3 4 14 9 0.00 0.62760 3 ; H6- C3- C4- H8
212 | 13 4 5 15 9 0.00 0.62760 3 ; H7- C4- C5- H9
213 | 13 4 5 16 9 0.00 0.62760 3 ; H7- C4- C5- H10
214 | 14 4 5 15 9 0.00 0.62760 3 ; H8- C4- C5- H9
215 | 14 4 5 16 9 0.00 0.62760 3 ; H8- C4- C5- H10
216 | 15 5 6 17 9 0.00 0.62760 3 ; H9- C5- C6- H11
217 | 15 5 6 18 9 0.00 0.62760 3 ; H9- C5- C6- H12
218 | 16 5 6 17 9 0.00 0.62760 3 ; H10- C5- C6- H11
219 | 16 5 6 18 9 0.00 0.62760 3 ; H10- C5- C6- H12
220 |
221 | [ system ]
222 | cyclohexane
223 |
224 | [ molecules ]
225 | ; Compound nmols
226 | cyclohexane 1
227 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/ethane.gro:
--------------------------------------------------------------------------------
1 | ethane_GMX.gro created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 | 8
3 | 1 MOL C1 1 0.082 -0.054 0.049
4 | 1 MOL C2 2 0.215 -0.005 -0.001
5 | 1 MOL H1 3 0.000 0.000 0.000
6 | 1 MOL H2 4 0.069 -0.161 0.029
7 | 1 MOL H3 5 0.073 -0.038 0.157
8 | 1 MOL H4 6 0.297 -0.059 0.048
9 | 1 MOL H5 7 0.228 0.102 0.019
10 | 1 MOL H6 8 0.224 -0.021 -0.109
11 | 0.29700 0.26240 0.26630
12 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/ethane.top:
--------------------------------------------------------------------------------
1 | ; ethane_GMX.top created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 |
3 | [ defaults ]
4 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
5 | 1 2 yes 0.5 0.8333
6 |
7 | [ atomtypes ]
8 | ;name bond_type mass charge ptype sigma epsilon Amb
9 | c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
10 | hc hc 0.00000 0.00000 A 2.64953e-01 6.56888e-02 ; 1.49 0.0157
11 |
12 | [ moleculetype ]
13 | ;name nrexcl
14 | ethane 3
15 |
16 | [ atoms ]
17 | ; nr type resi res atom cgnr charge mass ; qtot bond_type
18 | 1 c3 1 MOL C1 1 -0.093900 12.01000 ; qtot -0.094
19 | 2 c3 1 MOL C2 2 -0.093900 12.01000 ; qtot -0.188
20 | 3 hc 1 MOL H1 3 0.031300 1.00800 ; qtot -0.157
21 | 4 hc 1 MOL H2 4 0.031300 1.00800 ; qtot -0.125
22 | 5 hc 1 MOL H3 5 0.031300 1.00800 ; qtot -0.094
23 | 6 hc 1 MOL H4 6 0.031300 1.00800 ; qtot -0.063
24 | 7 hc 1 MOL H5 7 0.031300 1.00800 ; qtot -0.031
25 | 8 hc 1 MOL H6 8 0.031300 1.00800 ; qtot 0.000
26 |
27 | [ bonds ]
28 | ; ai aj funct r k
29 | 1 2 1 1.5350e-01 2.5363e+05 ; C1 - C2
30 | 1 3 1 1.0920e-01 2.8225e+05 ; C1 - H1
31 | 1 4 1 1.0920e-01 2.8225e+05 ; C1 - H2
32 | 1 5 1 1.0920e-01 2.8225e+05 ; C1 - H3
33 | 2 6 1 1.0920e-01 2.8225e+05 ; C2 - H4
34 | 2 7 1 1.0920e-01 2.8225e+05 ; C2 - H5
35 | 2 8 1 1.0920e-01 2.8225e+05 ; C2 - H6
36 |
37 | [ pairs ]
38 | ; ai aj funct
39 | 3 6 1 ; H1 - H4
40 | 3 7 1 ; H1 - H5
41 | 3 8 1 ; H1 - H6
42 | 4 6 1 ; H2 - H4
43 | 4 7 1 ; H2 - H5
44 | 4 8 1 ; H2 - H6
45 | 5 6 1 ; H3 - H4
46 | 5 7 1 ; H3 - H5
47 | 5 8 1 ; H3 - H6
48 |
49 | [ angles ]
50 | ; ai aj ak funct theta cth
51 | 1 2 6 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H4
52 | 1 2 7 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H5
53 | 1 2 8 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H6
54 | 2 1 3 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H1
55 | 2 1 4 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H2
56 | 2 1 5 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H3
57 | 3 1 4 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
58 | 3 1 5 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H3
59 | 4 1 5 1 1.0835e+02 3.2995e+02 ; H2 - C1 - H3
60 | 6 2 7 1 1.0835e+02 3.2995e+02 ; H4 - C2 - H5
61 | 6 2 8 1 1.0835e+02 3.2995e+02 ; H4 - C2 - H6
62 | 7 2 8 1 1.0835e+02 3.2995e+02 ; H5 - C2 - H6
63 |
64 | [ dihedrals ] ; propers
65 | ; for gromacs 4.5 or higher, using funct 9
66 | ; i j k l func phase kd pn
67 | 3 1 2 6 9 0.00 0.62760 3 ; H1- C1- C2- H4
68 | 3 1 2 7 9 0.00 0.62760 3 ; H1- C1- C2- H5
69 | 3 1 2 8 9 0.00 0.62760 3 ; H1- C1- C2- H6
70 | 4 1 2 6 9 0.00 0.62760 3 ; H2- C1- C2- H4
71 | 4 1 2 7 9 0.00 0.62760 3 ; H2- C1- C2- H5
72 | 4 1 2 8 9 0.00 0.62760 3 ; H2- C1- C2- H6
73 | 5 1 2 6 9 0.00 0.62760 3 ; H3- C1- C2- H4
74 | 5 1 2 7 9 0.00 0.62760 3 ; H3- C1- C2- H5
75 | 5 1 2 8 9 0.00 0.62760 3 ; H3- C1- C2- H6
76 |
77 | [ system ]
78 | ethane
79 |
80 | [ molecules ]
81 | ; Compound nmols
82 | ethane 1
83 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/toluene.gro:
--------------------------------------------------------------------------------
1 | toluene_GMX.gro created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 | 15
3 | 1 MOL C1 1 0.193 -0.101 -0.160
4 | 1 MOL C2 2 0.189 -0.104 -0.011
5 | 1 MOL C3 3 0.292 -0.163 0.061
6 | 1 MOL C4 4 0.288 -0.165 0.200
7 | 1 MOL C5 5 0.180 -0.108 0.268
8 | 1 MOL C6 6 0.076 -0.048 0.196
9 | 1 MOL C7 7 0.081 -0.046 0.056
10 | 1 MOL H1 8 0.244 -0.011 -0.195
11 | 1 MOL H2 9 0.246 -0.189 -0.199
12 | 1 MOL H3 10 0.092 -0.104 -0.203
13 | 1 MOL H4 11 0.377 -0.208 0.009
14 | 1 MOL H5 12 0.369 -0.212 0.256
15 | 1 MOL H6 13 0.177 -0.110 0.376
16 | 1 MOL H7 14 -0.008 -0.004 0.248
17 | 1 MOL H8 15 -0.001 0.000 0.001
18 | 0.38410 0.21180 0.57860
19 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/toluene.top:
--------------------------------------------------------------------------------
1 | ; toluene_GMX.top created by acpype (Rev: 403) on Thu May 21 09:54:30 2015
2 |
3 | [ defaults ]
4 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
5 | 1 2 yes 0.5 0.8333
6 |
7 | [ atomtypes ]
8 | ;name bond_type mass charge ptype sigma epsilon Amb
9 | c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
10 | ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
11 | hc hc 0.00000 0.00000 A 2.64953e-01 6.56888e-02 ; 1.49 0.0157
12 | ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
13 |
14 | [ moleculetype ]
15 | ;name nrexcl
16 | toluene 3
17 |
18 | [ atoms ]
19 | ; nr type resi res atom cgnr charge mass ; qtot bond_type
20 | 1 c3 1 MOL C1 1 -0.054000 12.01000 ; qtot -0.054
21 | 2 ca 1 MOL C2 2 -0.077000 12.01000 ; qtot -0.131
22 | 3 ca 1 MOL C3 3 -0.130500 12.01000 ; qtot -0.262
23 | 4 ca 1 MOL C4 4 -0.126800 12.01000 ; qtot -0.388
24 | 5 ca 1 MOL C5 5 -0.135000 12.01000 ; qtot -0.523
25 | 6 ca 1 MOL C6 6 -0.126800 12.01000 ; qtot -0.650
26 | 7 ca 1 MOL C7 7 -0.130500 12.01000 ; qtot -0.781
27 | 8 hc 1 MOL H1 8 0.043600 1.00800 ; qtot -0.737
28 | 9 hc 1 MOL H2 9 0.043600 1.00800 ; qtot -0.693
29 | 10 hc 1 MOL H3 10 0.043600 1.00800 ; qtot -0.650
30 | 11 ha 1 MOL H4 11 0.130200 1.00800 ; qtot -0.520
31 | 12 ha 1 MOL H5 12 0.129800 1.00800 ; qtot -0.390
32 | 13 ha 1 MOL H6 13 0.129800 1.00800 ; qtot -0.260
33 | 14 ha 1 MOL H7 14 0.129800 1.00800 ; qtot -0.130
34 | 15 ha 1 MOL H8 15 0.130200 1.00800 ; qtot -0.000
35 |
36 | [ bonds ]
37 | ; ai aj funct r k
38 | 1 2 1 1.5130e-01 2.7070e+05 ; C1 - C2
39 | 1 8 1 1.0920e-01 2.8225e+05 ; C1 - H1
40 | 1 9 1 1.0920e-01 2.8225e+05 ; C1 - H2
41 | 1 10 1 1.0920e-01 2.8225e+05 ; C1 - H3
42 | 2 3 1 1.3870e-01 4.0033e+05 ; C2 - C3
43 | 2 7 1 1.3870e-01 4.0033e+05 ; C2 - C7
44 | 3 4 1 1.3870e-01 4.0033e+05 ; C3 - C4
45 | 3 11 1 1.0870e-01 2.8811e+05 ; C3 - H4
46 | 4 5 1 1.3870e-01 4.0033e+05 ; C4 - C5
47 | 4 12 1 1.0870e-01 2.8811e+05 ; C4 - H5
48 | 5 6 1 1.3870e-01 4.0033e+05 ; C5 - C6
49 | 5 13 1 1.0870e-01 2.8811e+05 ; C5 - H6
50 | 6 7 1 1.3870e-01 4.0033e+05 ; C6 - C7
51 | 6 14 1 1.0870e-01 2.8811e+05 ; C6 - H7
52 | 7 15 1 1.0870e-01 2.8811e+05 ; C7 - H8
53 |
54 | [ pairs ]
55 | ; ai aj funct
56 | 1 4 1 ; C1 - C4
57 | 1 6 1 ; C1 - C6
58 | 1 11 1 ; C1 - H4
59 | 1 15 1 ; C1 - H8
60 | 2 5 1 ; C2 - C5
61 | 2 12 1 ; C2 - H5
62 | 2 14 1 ; C2 - H7
63 | 3 6 1 ; C3 - C6
64 | 3 13 1 ; C3 - H6
65 | 3 15 1 ; C3 - H8
66 | 4 7 1 ; C4 - C7
67 | 4 14 1 ; C4 - H7
68 | 5 11 1 ; C5 - H4
69 | 5 15 1 ; C5 - H8
70 | 6 12 1 ; C6 - H5
71 | 7 11 1 ; C7 - H4
72 | 7 13 1 ; C7 - H6
73 | 8 3 1 ; H1 - C3
74 | 8 7 1 ; H1 - C7
75 | 9 3 1 ; H2 - C3
76 | 9 7 1 ; H2 - C7
77 | 10 3 1 ; H3 - C3
78 | 10 7 1 ; H3 - C7
79 | 11 12 1 ; H4 - H5
80 | 12 13 1 ; H5 - H6
81 | 13 14 1 ; H6 - H7
82 | 14 15 1 ; H7 - H8
83 |
84 | [ angles ]
85 | ; ai aj ak funct theta cth
86 | 1 2 3 1 1.2063e+02 5.3421e+02 ; C1 - C2 - C3
87 | 1 2 7 1 1.2063e+02 5.3421e+02 ; C1 - C2 - C7
88 | 2 1 8 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H1
89 | 2 1 9 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H2
90 | 2 1 10 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H3
91 | 2 3 4 1 1.1997e+02 5.6216e+02 ; C2 - C3 - C4
92 | 2 3 11 1 1.2001e+02 4.0551e+02 ; C2 - C3 - H4
93 | 2 7 6 1 1.1997e+02 5.6216e+02 ; C2 - C7 - C6
94 | 2 7 15 1 1.2001e+02 4.0551e+02 ; C2 - C7 - H8
95 | 3 2 7 1 1.1997e+02 5.6216e+02 ; C3 - C2 - C7
96 | 3 4 5 1 1.1997e+02 5.6216e+02 ; C3 - C4 - C5
97 | 3 4 12 1 1.2001e+02 4.0551e+02 ; C3 - C4 - H5
98 | 4 3 11 1 1.2001e+02 4.0551e+02 ; C4 - C3 - H4
99 | 4 5 6 1 1.1997e+02 5.6216e+02 ; C4 - C5 - C6
100 | 4 5 13 1 1.2001e+02 4.0551e+02 ; C4 - C5 - H6
101 | 5 4 12 1 1.2001e+02 4.0551e+02 ; C5 - C4 - H5
102 | 5 6 7 1 1.1997e+02 5.6216e+02 ; C5 - C6 - C7
103 | 5 6 14 1 1.2001e+02 4.0551e+02 ; C5 - C6 - H7
104 | 6 5 13 1 1.2001e+02 4.0551e+02 ; C6 - C5 - H6
105 | 6 7 15 1 1.2001e+02 4.0551e+02 ; C6 - C7 - H8
106 | 7 6 14 1 1.2001e+02 4.0551e+02 ; C7 - C6 - H7
107 | 8 1 9 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
108 | 8 1 10 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H3
109 | 9 1 10 1 1.0835e+02 3.2995e+02 ; H2 - C1 - H3
110 |
111 | [ dihedrals ] ; propers
112 | ; for gromacs 4.5 or higher, using funct 9
113 | ; i j k l func phase kd pn
114 | 1 2 3 4 9 180.00 15.16700 2 ; C1- C2- C3- C4
115 | 1 2 3 11 9 180.00 15.16700 2 ; C1- C2- C3- H4
116 | 1 2 7 6 9 180.00 15.16700 2 ; C1- C2- C7- C6
117 | 1 2 7 15 9 180.00 15.16700 2 ; C1- C2- C7- H8
118 | 2 3 4 5 9 180.00 15.16700 2 ; C2- C3- C4- C5
119 | 2 3 4 12 9 180.00 15.16700 2 ; C2- C3- C4- H5
120 | 2 7 6 5 9 180.00 15.16700 2 ; C2- C7- C6- C5
121 | 2 7 6 14 9 180.00 15.16700 2 ; C2- C7- C6- H7
122 | 3 2 7 6 9 180.00 15.16700 2 ; C3- C2- C7- C6
123 | 3 2 7 15 9 180.00 15.16700 2 ; C3- C2- C7- H8
124 | 3 4 5 6 9 180.00 15.16700 2 ; C3- C4- C5- C6
125 | 3 4 5 13 9 180.00 15.16700 2 ; C3- C4- C5- H6
126 | 4 3 2 7 9 180.00 15.16700 2 ; C4- C3- C2- C7
127 | 4 5 6 7 9 180.00 15.16700 2 ; C4- C5- C6- C7
128 | 4 5 6 14 9 180.00 15.16700 2 ; C4- C5- C6- H7
129 | 5 4 3 11 9 180.00 15.16700 2 ; C5- C4- C3- H4
130 | 5 6 7 15 9 180.00 15.16700 2 ; C5- C6- C7- H8
131 | 6 5 4 12 9 180.00 15.16700 2 ; C6- C5- C4- H5
132 | 7 2 3 11 9 180.00 15.16700 2 ; C7- C2- C3- H4
133 | 7 6 5 13 9 180.00 15.16700 2 ; C7- C6- C5- H6
134 | 8 1 2 3 9 0.00 0.00000 0 ; H1- C1- C2- C3
135 | 8 1 2 7 9 0.00 0.00000 0 ; H1- C1- C2- C7
136 | 9 1 2 3 9 0.00 0.00000 0 ; H2- C1- C2- C3
137 | 9 1 2 7 9 0.00 0.00000 0 ; H2- C1- C2- C7
138 | 10 1 2 3 9 0.00 0.00000 0 ; H3- C1- C2- C3
139 | 10 1 2 7 9 0.00 0.00000 0 ; H3- C1- C2- C7
140 | 11 3 4 12 9 180.00 15.16700 2 ; H4- C3- C4- H5
141 | 12 4 5 13 9 180.00 15.16700 2 ; H5- C4- C5- H6
142 | 13 5 6 14 9 180.00 15.16700 2 ; H6- C5- C6- H7
143 | 14 6 7 15 9 180.00 15.16700 2 ; H7- C6- C7- H8
144 |
145 | [ dihedrals ] ; impropers
146 | ; treated as propers in GROMACS to use correct AMBER analytical function
147 | ; i j k l func phase kd pn
148 | 1 2 7 3 4 180.00 4.60240 2 ; C1- C2- C7- C3
149 | 2 4 3 11 4 180.00 4.60240 2 ; C2- C4- C3- H4
150 | 2 6 7 15 4 180.00 4.60240 2 ; C2- C6- C7- H8
151 | 3 5 4 12 4 180.00 4.60240 2 ; C3- C5- C4- H5
152 | 4 6 5 13 4 180.00 4.60240 2 ; C4- C6- C5- H6
153 | 5 7 6 14 4 180.00 4.60240 2 ; C5- C7- C6- H7
154 |
155 | [ system ]
156 | toluene
157 |
158 | [ molecules ]
159 | ; Compound nmols
160 | toluene 1
161 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/gromacs/toluene_benzene_cyclohexane_ethane_3_1_80_7.top:
--------------------------------------------------------------------------------
1 | [ defaults ]
2 | ; nbfunc comb-rule gen-pairs fudgeLJ fudgeQQ
3 | 1 2 yes 0.5 0.8333
4 |
5 | [ atomtypes ]
6 | ;name bond_type mass charge ptype sigma epsilon Amb
7 | c3 c3 0.00000 0.00000 A 3.39967e-01 4.57730e-01 ; 1.91 0.1094
8 | ca ca 0.00000 0.00000 A 3.39967e-01 3.59824e-01 ; 1.91 0.0860
9 | hc hc 0.00000 0.00000 A 2.64953e-01 6.56888e-02 ; 1.49 0.0157
10 | ha ha 0.00000 0.00000 A 2.59964e-01 6.27600e-02 ; 1.46 0.0150
11 |
12 | [ moleculetype ]
13 | toluene 3
14 | [ atoms ]
15 | 1 c3 1 MOL C1 1 -0.054000 12.01000 ; qtot -0.054
16 | 2 ca 1 MOL C2 2 -0.077000 12.01000 ; qtot -0.131
17 | 3 ca 1 MOL C3 3 -0.130500 12.01000 ; qtot -0.262
18 | 4 ca 1 MOL C4 4 -0.126800 12.01000 ; qtot -0.388
19 | 5 ca 1 MOL C5 5 -0.135000 12.01000 ; qtot -0.523
20 | 6 ca 1 MOL C6 6 -0.126800 12.01000 ; qtot -0.650
21 | 7 ca 1 MOL C7 7 -0.130500 12.01000 ; qtot -0.781
22 | 8 hc 1 MOL H1 8 0.043600 1.00800 ; qtot -0.737
23 | 9 hc 1 MOL H2 9 0.043600 1.00800 ; qtot -0.693
24 | 10 hc 1 MOL H3 10 0.043600 1.00800 ; qtot -0.650
25 | 11 ha 1 MOL H4 11 0.130200 1.00800 ; qtot -0.520
26 | 12 ha 1 MOL H5 12 0.129800 1.00800 ; qtot -0.390
27 | 13 ha 1 MOL H6 13 0.129800 1.00800 ; qtot -0.260
28 | 14 ha 1 MOL H7 14 0.129800 1.00800 ; qtot -0.130
29 | 15 ha 1 MOL H8 15 0.130200 1.00800 ; qtot -0.000
30 | [ bonds ]
31 | 1 2 1 1.5130e-01 2.7070e+05 ; C1 - C2
32 | 1 8 1 1.0920e-01 2.8225e+05 ; C1 - H1
33 | 1 9 1 1.0920e-01 2.8225e+05 ; C1 - H2
34 | 1 10 1 1.0920e-01 2.8225e+05 ; C1 - H3
35 | 2 3 1 1.3870e-01 4.0033e+05 ; C2 - C3
36 | 2 7 1 1.3870e-01 4.0033e+05 ; C2 - C7
37 | 3 4 1 1.3870e-01 4.0033e+05 ; C3 - C4
38 | 3 11 1 1.0870e-01 2.8811e+05 ; C3 - H4
39 | 4 5 1 1.3870e-01 4.0033e+05 ; C4 - C5
40 | 4 12 1 1.0870e-01 2.8811e+05 ; C4 - H5
41 | 5 6 1 1.3870e-01 4.0033e+05 ; C5 - C6
42 | 5 13 1 1.0870e-01 2.8811e+05 ; C5 - H6
43 | 6 7 1 1.3870e-01 4.0033e+05 ; C6 - C7
44 | 6 14 1 1.0870e-01 2.8811e+05 ; C6 - H7
45 | 7 15 1 1.0870e-01 2.8811e+05 ; C7 - H8
46 | [ pairs ]
47 | 1 4 1 ; C1 - C4
48 | 1 6 1 ; C1 - C6
49 | 1 11 1 ; C1 - H4
50 | 1 15 1 ; C1 - H8
51 | 2 5 1 ; C2 - C5
52 | 2 12 1 ; C2 - H5
53 | 2 14 1 ; C2 - H7
54 | 3 6 1 ; C3 - C6
55 | 3 13 1 ; C3 - H6
56 | 3 15 1 ; C3 - H8
57 | 4 7 1 ; C4 - C7
58 | 4 14 1 ; C4 - H7
59 | 5 11 1 ; C5 - H4
60 | 5 15 1 ; C5 - H8
61 | 6 12 1 ; C6 - H5
62 | 7 11 1 ; C7 - H4
63 | 7 13 1 ; C7 - H6
64 | 8 3 1 ; H1 - C3
65 | 8 7 1 ; H1 - C7
66 | 9 3 1 ; H2 - C3
67 | 9 7 1 ; H2 - C7
68 | 10 3 1 ; H3 - C3
69 | 10 7 1 ; H3 - C7
70 | 11 12 1 ; H4 - H5
71 | 12 13 1 ; H5 - H6
72 | 13 14 1 ; H6 - H7
73 | 14 15 1 ; H7 - H8
74 | [ angles ]
75 | 1 2 3 1 1.2063e+02 5.3421e+02 ; C1 - C2 - C3
76 | 1 2 7 1 1.2063e+02 5.3421e+02 ; C1 - C2 - C7
77 | 2 1 8 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H1
78 | 2 1 9 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H2
79 | 2 1 10 1 1.1015e+02 3.9296e+02 ; C2 - C1 - H3
80 | 2 3 4 1 1.1997e+02 5.6216e+02 ; C2 - C3 - C4
81 | 2 3 11 1 1.2001e+02 4.0551e+02 ; C2 - C3 - H4
82 | 2 7 6 1 1.1997e+02 5.6216e+02 ; C2 - C7 - C6
83 | 2 7 15 1 1.2001e+02 4.0551e+02 ; C2 - C7 - H8
84 | 3 2 7 1 1.1997e+02 5.6216e+02 ; C3 - C2 - C7
85 | 3 4 5 1 1.1997e+02 5.6216e+02 ; C3 - C4 - C5
86 | 3 4 12 1 1.2001e+02 4.0551e+02 ; C3 - C4 - H5
87 | 4 3 11 1 1.2001e+02 4.0551e+02 ; C4 - C3 - H4
88 | 4 5 6 1 1.1997e+02 5.6216e+02 ; C4 - C5 - C6
89 | 4 5 13 1 1.2001e+02 4.0551e+02 ; C4 - C5 - H6
90 | 5 4 12 1 1.2001e+02 4.0551e+02 ; C5 - C4 - H5
91 | 5 6 7 1 1.1997e+02 5.6216e+02 ; C5 - C6 - C7
92 | 5 6 14 1 1.2001e+02 4.0551e+02 ; C5 - C6 - H7
93 | 6 5 13 1 1.2001e+02 4.0551e+02 ; C6 - C5 - H6
94 | 6 7 15 1 1.2001e+02 4.0551e+02 ; C6 - C7 - H8
95 | 7 6 14 1 1.2001e+02 4.0551e+02 ; C7 - C6 - H7
96 | 8 1 9 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
97 | 8 1 10 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H3
98 | 9 1 10 1 1.0835e+02 3.2995e+02 ; H2 - C1 - H3
99 | [ dihedrals ]
100 | ; i j k l func phase kd pn
101 | 1 2 3 4 9 180.00 15.16700 2 ; C1- C2- C3- C4
102 | 1 2 3 11 9 180.00 15.16700 2 ; C1- C2- C3- H4
103 | 1 2 7 6 9 180.00 15.16700 2 ; C1- C2- C7- C6
104 | 1 2 7 15 9 180.00 15.16700 2 ; C1- C2- C7- H8
105 | 2 3 4 5 9 180.00 15.16700 2 ; C2- C3- C4- C5
106 | 2 3 4 12 9 180.00 15.16700 2 ; C2- C3- C4- H5
107 | 2 7 6 5 9 180.00 15.16700 2 ; C2- C7- C6- C5
108 | 2 7 6 14 9 180.00 15.16700 2 ; C2- C7- C6- H7
109 | 3 2 7 6 9 180.00 15.16700 2 ; C3- C2- C7- C6
110 | 3 2 7 15 9 180.00 15.16700 2 ; C3- C2- C7- H8
111 | 3 4 5 6 9 180.00 15.16700 2 ; C3- C4- C5- C6
112 | 3 4 5 13 9 180.00 15.16700 2 ; C3- C4- C5- H6
113 | 4 3 2 7 9 180.00 15.16700 2 ; C4- C3- C2- C7
114 | 4 5 6 7 9 180.00 15.16700 2 ; C4- C5- C6- C7
115 | 4 5 6 14 9 180.00 15.16700 2 ; C4- C5- C6- H7
116 | 5 4 3 11 9 180.00 15.16700 2 ; C5- C4- C3- H4
117 | 5 6 7 15 9 180.00 15.16700 2 ; C5- C6- C7- H8
118 | 6 5 4 12 9 180.00 15.16700 2 ; C6- C5- C4- H5
119 | 7 2 3 11 9 180.00 15.16700 2 ; C7- C2- C3- H4
120 | 7 6 5 13 9 180.00 15.16700 2 ; C7- C6- C5- H6
121 | 8 1 2 3 9 0.00 0.00000 0 ; H1- C1- C2- C3
122 | 8 1 2 7 9 0.00 0.00000 0 ; H1- C1- C2- C7
123 | 9 1 2 3 9 0.00 0.00000 0 ; H2- C1- C2- C3
124 | 9 1 2 7 9 0.00 0.00000 0 ; H2- C1- C2- C7
125 | 10 1 2 3 9 0.00 0.00000 0 ; H3- C1- C2- C3
126 | 10 1 2 7 9 0.00 0.00000 0 ; H3- C1- C2- C7
127 | 11 3 4 12 9 180.00 15.16700 2 ; H4- C3- C4- H5
128 | 12 4 5 13 9 180.00 15.16700 2 ; H5- C4- C5- H6
129 | 13 5 6 14 9 180.00 15.16700 2 ; H6- C5- C6- H7
130 | 14 6 7 15 9 180.00 15.16700 2 ; H7- C6- C7- H8
131 | [ moleculetype ]
132 | solute 3
133 | [ atoms ]
134 | 1 ca 1 MOL C1 1 -0.130100 12.01000 ; qtot -0.130
135 | 2 ca 1 MOL C2 2 -0.130100 12.01000 ; qtot -0.260
136 | 3 ca 1 MOL C3 3 -0.130100 12.01000 ; qtot -0.390
137 | 4 ca 1 MOL C4 4 -0.130100 12.01000 ; qtot -0.520
138 | 5 ca 1 MOL C5 5 -0.130100 12.01000 ; qtot -0.651
139 | 6 ca 1 MOL C6 6 -0.130100 12.01000 ; qtot -0.781
140 | 7 ha 1 MOL H1 7 0.130100 1.00800 ; qtot -0.651
141 | 8 ha 1 MOL H2 8 0.130100 1.00800 ; qtot -0.520
142 | 9 ha 1 MOL H3 9 0.130100 1.00800 ; qtot -0.390
143 | 10 ha 1 MOL H4 10 0.130100 1.00800 ; qtot -0.260
144 | 11 ha 1 MOL H5 11 0.130100 1.00800 ; qtot -0.130
145 | 12 ha 1 MOL H6 12 0.130100 1.00800 ; qtot 0.000
146 | [ bonds ]
147 | 1 2 1 1.3870e-01 4.0033e+05 ; C1 - C2
148 | 1 6 1 1.3870e-01 4.0033e+05 ; C1 - C6
149 | 1 7 1 1.0870e-01 2.8811e+05 ; C1 - H1
150 | 2 3 1 1.3870e-01 4.0033e+05 ; C2 - C3
151 | 2 8 1 1.0870e-01 2.8811e+05 ; C2 - H2
152 | 3 4 1 1.3870e-01 4.0033e+05 ; C3 - C4
153 | 3 9 1 1.0870e-01 2.8811e+05 ; C3 - H3
154 | 4 5 1 1.3870e-01 4.0033e+05 ; C4 - C5
155 | 4 10 1 1.0870e-01 2.8811e+05 ; C4 - H4
156 | 5 6 1 1.3870e-01 4.0033e+05 ; C5 - C6
157 | 5 11 1 1.0870e-01 2.8811e+05 ; C5 - H5
158 | 6 12 1 1.0870e-01 2.8811e+05 ; C6 - H6
159 | [ pairs ]
160 | 1 4 1 ; C1 - C4
161 | 1 9 1 ; C1 - H3
162 | 1 11 1 ; C1 - H5
163 | 2 5 1 ; C2 - C5
164 | 2 10 1 ; C2 - H4
165 | 2 12 1 ; C2 - H6
166 | 3 11 1 ; C3 - H5
167 | 4 8 1 ; C4 - H2
168 | 4 12 1 ; C4 - H6
169 | 5 9 1 ; C5 - H3
170 | 6 3 1 ; C6 - C3
171 | 6 8 1 ; C6 - H2
172 | 6 10 1 ; C6 - H4
173 | 7 3 1 ; H1 - C3
174 | 7 5 1 ; H1 - C5
175 | 7 8 1 ; H1 - H2
176 | 7 12 1 ; H1 - H6
177 | 8 9 1 ; H2 - H3
178 | 9 10 1 ; H3 - H4
179 | 10 11 1 ; H4 - H5
180 | 11 12 1 ; H5 - H6
181 | [ angles ]
182 | 1 2 3 1 1.1997e+02 5.6216e+02 ; C1 - C2 - C3
183 | 1 2 8 1 1.2001e+02 4.0551e+02 ; C1 - C2 - H2
184 | 1 6 5 1 1.1997e+02 5.6216e+02 ; C1 - C6 - C5
185 | 1 6 12 1 1.2001e+02 4.0551e+02 ; C1 - C6 - H6
186 | 2 1 6 1 1.1997e+02 5.6216e+02 ; C2 - C1 - C6
187 | 2 1 7 1 1.2001e+02 4.0551e+02 ; C2 - C1 - H1
188 | 2 3 4 1 1.1997e+02 5.6216e+02 ; C2 - C3 - C4
189 | 2 3 9 1 1.2001e+02 4.0551e+02 ; C2 - C3 - H3
190 | 3 2 8 1 1.2001e+02 4.0551e+02 ; C3 - C2 - H2
191 | 3 4 5 1 1.1997e+02 5.6216e+02 ; C3 - C4 - C5
192 | 3 4 10 1 1.2001e+02 4.0551e+02 ; C3 - C4 - H4
193 | 4 3 9 1 1.2001e+02 4.0551e+02 ; C4 - C3 - H3
194 | 4 5 6 1 1.1997e+02 5.6216e+02 ; C4 - C5 - C6
195 | 4 5 11 1 1.2001e+02 4.0551e+02 ; C4 - C5 - H5
196 | 5 4 10 1 1.2001e+02 4.0551e+02 ; C5 - C4 - H4
197 | 5 6 12 1 1.2001e+02 4.0551e+02 ; C5 - C6 - H6
198 | 6 1 7 1 1.2001e+02 4.0551e+02 ; C6 - C1 - H1
199 | 6 5 11 1 1.2001e+02 4.0551e+02 ; C6 - C5 - H5
200 | [ dihedrals ]
201 | ; i j k l func phase kd pn
202 | 1 2 3 4 9 180.00 15.16700 2 ; C1- C2- C3- C4
203 | 1 2 3 9 9 180.00 15.16700 2 ; C1- C2- C3- H3
204 | 1 6 5 4 9 180.00 15.16700 2 ; C1- C6- C5- C4
205 | 1 6 5 11 9 180.00 15.16700 2 ; C1- C6- C5- H5
206 | 2 1 6 5 9 180.00 15.16700 2 ; C2- C1- C6- C5
207 | 2 1 6 12 9 180.00 15.16700 2 ; C2- C1- C6- H6
208 | 2 3 4 5 9 180.00 15.16700 2 ; C2- C3- C4- C5
209 | 2 3 4 10 9 180.00 15.16700 2 ; C2- C3- C4- H4
210 | 3 4 5 6 9 180.00 15.16700 2 ; C3- C4- C5- C6
211 | 3 4 5 11 9 180.00 15.16700 2 ; C3- C4- C5- H5
212 | 4 3 2 8 9 180.00 15.16700 2 ; C4- C3- C2- H2
213 | 4 5 6 12 9 180.00 15.16700 2 ; C4- C5- C6- H6
214 | 5 4 3 9 9 180.00 15.16700 2 ; C5- C4- C3- H3
215 | 6 1 2 3 9 180.00 15.16700 2 ; C6- C1- C2- C3
216 | 6 1 2 8 9 180.00 15.16700 2 ; C6- C1- C2- H2
217 | 6 5 4 10 9 180.00 15.16700 2 ; C6- C5- C4- H4
218 | 7 1 2 3 9 180.00 15.16700 2 ; H1- C1- C2- C3
219 | 7 1 2 8 9 180.00 15.16700 2 ; H1- C1- C2- H2
220 | 7 1 6 5 9 180.00 15.16700 2 ; H1- C1- C6- C5
221 | 7 1 6 12 9 180.00 15.16700 2 ; H1- C1- C6- H6
222 | 8 2 3 9 9 180.00 15.16700 2 ; H2- C2- C3- H3
223 | 9 3 4 10 9 180.00 15.16700 2 ; H3- C3- C4- H4
224 | 10 4 5 11 9 180.00 15.16700 2 ; H4- C4- C5- H5
225 | 11 5 6 12 9 180.00 15.16700 2 ; H5- C5- C6- H6
226 | [ moleculetype ]
227 | cyclohexane 3
228 | [ atoms ]
229 | 1 c3 1 MOL C1 1 -0.076100 12.01000 ; qtot -0.076
230 | 2 c3 1 MOL C2 2 -0.075500 12.01000 ; qtot -0.152
231 | 3 c3 1 MOL C3 3 -0.075500 12.01000 ; qtot -0.227
232 | 4 c3 1 MOL C4 4 -0.075500 12.01000 ; qtot -0.303
233 | 5 c3 1 MOL C5 5 -0.075500 12.01000 ; qtot -0.378
234 | 6 c3 1 MOL C6 6 -0.075500 12.01000 ; qtot -0.454
235 | 7 hc 1 MOL H1 7 0.037800 1.00800 ; qtot -0.416
236 | 8 hc 1 MOL H2 8 0.037800 1.00800 ; qtot -0.378
237 | 9 hc 1 MOL H3 9 0.037800 1.00800 ; qtot -0.340
238 | 10 hc 1 MOL H4 10 0.037800 1.00800 ; qtot -0.302
239 | 11 hc 1 MOL H5 11 0.037800 1.00800 ; qtot -0.265
240 | 12 hc 1 MOL H6 12 0.037800 1.00800 ; qtot -0.227
241 | 13 hc 1 MOL H7 13 0.037800 1.00800 ; qtot -0.189
242 | 14 hc 1 MOL H8 14 0.037800 1.00800 ; qtot -0.151
243 | 15 hc 1 MOL H9 15 0.037800 1.00800 ; qtot -0.113
244 | 16 hc 1 MOL H10 16 0.037800 1.00800 ; qtot -0.076
245 | 17 hc 1 MOL H11 17 0.037800 1.00800 ; qtot -0.038
246 | 18 hc 1 MOL H12 18 0.037800 1.00800 ; qtot -0.000
247 | [ bonds ]
248 | 1 2 1 1.5350e-01 2.5363e+05 ; C1 - C2
249 | 1 6 1 1.5350e-01 2.5363e+05 ; C1 - C6
250 | 1 7 1 1.0920e-01 2.8225e+05 ; C1 - H1
251 | 1 8 1 1.0920e-01 2.8225e+05 ; C1 - H2
252 | 2 3 1 1.5350e-01 2.5363e+05 ; C2 - C3
253 | 2 9 1 1.0920e-01 2.8225e+05 ; C2 - H3
254 | 2 10 1 1.0920e-01 2.8225e+05 ; C2 - H4
255 | 3 4 1 1.5350e-01 2.5363e+05 ; C3 - C4
256 | 3 11 1 1.0920e-01 2.8225e+05 ; C3 - H5
257 | 3 12 1 1.0920e-01 2.8225e+05 ; C3 - H6
258 | 4 5 1 1.5350e-01 2.5363e+05 ; C4 - C5
259 | 4 13 1 1.0920e-01 2.8225e+05 ; C4 - H7
260 | 4 14 1 1.0920e-01 2.8225e+05 ; C4 - H8
261 | 5 6 1 1.5350e-01 2.5363e+05 ; C5 - C6
262 | 5 15 1 1.0920e-01 2.8225e+05 ; C5 - H9
263 | 5 16 1 1.0920e-01 2.8225e+05 ; C5 - H10
264 | 6 17 1 1.0920e-01 2.8225e+05 ; C6 - H11
265 | 6 18 1 1.0920e-01 2.8225e+05 ; C6 - H12
266 | [ pairs ]
267 | 1 4 1 ; C1 - C4
268 | 1 11 1 ; C1 - H5
269 | 1 12 1 ; C1 - H6
270 | 1 15 1 ; C1 - H9
271 | 1 16 1 ; C1 - H10
272 | 2 5 1 ; C2 - C5
273 | 2 13 1 ; C2 - H7
274 | 2 14 1 ; C2 - H8
275 | 2 17 1 ; C2 - H11
276 | 2 18 1 ; C2 - H12
277 | 3 15 1 ; C3 - H9
278 | 3 16 1 ; C3 - H10
279 | 4 9 1 ; C4 - H3
280 | 4 10 1 ; C4 - H4
281 | 4 17 1 ; C4 - H11
282 | 4 18 1 ; C4 - H12
283 | 5 11 1 ; C5 - H5
284 | 5 12 1 ; C5 - H6
285 | 6 3 1 ; C6 - C3
286 | 6 9 1 ; C6 - H3
287 | 6 10 1 ; C6 - H4
288 | 6 13 1 ; C6 - H7
289 | 6 14 1 ; C6 - H8
290 | 7 3 1 ; H1 - C3
291 | 7 5 1 ; H1 - C5
292 | 7 9 1 ; H1 - H3
293 | 7 10 1 ; H1 - H4
294 | 7 17 1 ; H1 - H11
295 | 7 18 1 ; H1 - H12
296 | 8 3 1 ; H2 - C3
297 | 8 5 1 ; H2 - C5
298 | 8 9 1 ; H2 - H3
299 | 8 10 1 ; H2 - H4
300 | 8 17 1 ; H2 - H11
301 | 8 18 1 ; H2 - H12
302 | 9 11 1 ; H3 - H5
303 | 9 12 1 ; H3 - H6
304 | 10 11 1 ; H4 - H5
305 | 10 12 1 ; H4 - H6
306 | 11 13 1 ; H5 - H7
307 | 11 14 1 ; H5 - H8
308 | 12 13 1 ; H6 - H7
309 | 12 14 1 ; H6 - H8
310 | 13 15 1 ; H7 - H9
311 | 13 16 1 ; H7 - H10
312 | 14 15 1 ; H8 - H9
313 | 14 16 1 ; H8 - H10
314 | 15 17 1 ; H9 - H11
315 | 15 18 1 ; H9 - H12
316 | 16 17 1 ; H10 - H11
317 | 16 18 1 ; H10 - H12
318 | [ angles ]
319 | 1 2 3 1 1.1063e+02 5.2894e+02 ; C1 - C2 - C3
320 | 1 2 9 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H3
321 | 1 2 10 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H4
322 | 1 6 5 1 1.1063e+02 5.2894e+02 ; C1 - C6 - C5
323 | 1 6 17 1 1.1005e+02 3.8802e+02 ; C1 - C6 - H11
324 | 1 6 18 1 1.1005e+02 3.8802e+02 ; C1 - C6 - H12
325 | 2 1 6 1 1.1063e+02 5.2894e+02 ; C2 - C1 - C6
326 | 2 1 7 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H1
327 | 2 1 8 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H2
328 | 2 3 4 1 1.1063e+02 5.2894e+02 ; C2 - C3 - C4
329 | 2 3 11 1 1.1005e+02 3.8802e+02 ; C2 - C3 - H5
330 | 2 3 12 1 1.1005e+02 3.8802e+02 ; C2 - C3 - H6
331 | 3 2 9 1 1.1005e+02 3.8802e+02 ; C3 - C2 - H3
332 | 3 2 10 1 1.1005e+02 3.8802e+02 ; C3 - C2 - H4
333 | 3 4 5 1 1.1063e+02 5.2894e+02 ; C3 - C4 - C5
334 | 3 4 13 1 1.1005e+02 3.8802e+02 ; C3 - C4 - H7
335 | 3 4 14 1 1.1005e+02 3.8802e+02 ; C3 - C4 - H8
336 | 4 3 11 1 1.1005e+02 3.8802e+02 ; C4 - C3 - H5
337 | 4 3 12 1 1.1005e+02 3.8802e+02 ; C4 - C3 - H6
338 | 4 5 6 1 1.1063e+02 5.2894e+02 ; C4 - C5 - C6
339 | 4 5 15 1 1.1005e+02 3.8802e+02 ; C4 - C5 - H9
340 | 4 5 16 1 1.1005e+02 3.8802e+02 ; C4 - C5 - H10
341 | 5 4 13 1 1.1005e+02 3.8802e+02 ; C5 - C4 - H7
342 | 5 4 14 1 1.1005e+02 3.8802e+02 ; C5 - C4 - H8
343 | 5 6 17 1 1.1005e+02 3.8802e+02 ; C5 - C6 - H11
344 | 5 6 18 1 1.1005e+02 3.8802e+02 ; C5 - C6 - H12
345 | 6 1 7 1 1.1005e+02 3.8802e+02 ; C6 - C1 - H1
346 | 6 1 8 1 1.1005e+02 3.8802e+02 ; C6 - C1 - H2
347 | 6 5 15 1 1.1005e+02 3.8802e+02 ; C6 - C5 - H9
348 | 6 5 16 1 1.1005e+02 3.8802e+02 ; C6 - C5 - H10
349 | 7 1 8 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
350 | 9 2 10 1 1.0835e+02 3.2995e+02 ; H3 - C2 - H4
351 | 11 3 12 1 1.0835e+02 3.2995e+02 ; H5 - C3 - H6
352 | 13 4 14 1 1.0835e+02 3.2995e+02 ; H7 - C4 - H8
353 | 15 5 16 1 1.0835e+02 3.2995e+02 ; H9 - C5 - H10
354 | 17 6 18 1 1.0835e+02 3.2995e+02 ; H11 - C6 - H12
355 | [ dihedrals ]
356 | ; i j k l func phase kd pn
357 | 1 2 3 4 9 0.00 0.75312 3 ; C1- C2- C3- C4
358 | 1 2 3 4 9 180.00 0.83680 1 ; C1- C2- C3- C4
359 | 1 2 3 4 9 180.00 1.04600 2 ; C1- C2- C3- C4
360 | 1 2 3 11 9 0.00 0.66944 3 ; C1- C2- C3- H5
361 | 1 2 3 12 9 0.00 0.66944 3 ; C1- C2- C3- H6
362 | 1 6 5 4 9 0.00 0.75312 3 ; C1- C6- C5- C4
363 | 1 6 5 4 9 180.00 0.83680 1 ; C1- C6- C5- C4
364 | 1 6 5 4 9 180.00 1.04600 2 ; C1- C6- C5- C4
365 | 1 6 5 15 9 0.00 0.66944 3 ; C1- C6- C5- H9
366 | 1 6 5 16 9 0.00 0.66944 3 ; C1- C6- C5- H10
367 | 2 1 6 5 9 0.00 0.75312 3 ; C2- C1- C6- C5
368 | 2 1 6 5 9 180.00 0.83680 1 ; C2- C1- C6- C5
369 | 2 1 6 5 9 180.00 1.04600 2 ; C2- C1- C6- C5
370 | 2 1 6 17 9 0.00 0.66944 3 ; C2- C1- C6- H11
371 | 2 1 6 18 9 0.00 0.66944 3 ; C2- C1- C6- H12
372 | 2 3 4 5 9 0.00 0.75312 3 ; C2- C3- C4- C5
373 | 2 3 4 5 9 180.00 0.83680 1 ; C2- C3- C4- C5
374 | 2 3 4 5 9 180.00 1.04600 2 ; C2- C3- C4- C5
375 | 2 3 4 13 9 0.00 0.66944 3 ; C2- C3- C4- H7
376 | 2 3 4 14 9 0.00 0.66944 3 ; C2- C3- C4- H8
377 | 3 4 5 6 9 0.00 0.75312 3 ; C3- C4- C5- C6
378 | 3 4 5 6 9 180.00 0.83680 1 ; C3- C4- C5- C6
379 | 3 4 5 6 9 180.00 1.04600 2 ; C3- C4- C5- C6
380 | 3 4 5 15 9 0.00 0.66944 3 ; C3- C4- C5- H9
381 | 3 4 5 16 9 0.00 0.66944 3 ; C3- C4- C5- H10
382 | 4 3 2 9 9 0.00 0.66944 3 ; C4- C3- C2- H3
383 | 4 3 2 10 9 0.00 0.66944 3 ; C4- C3- C2- H4
384 | 4 5 6 17 9 0.00 0.66944 3 ; C4- C5- C6- H11
385 | 4 5 6 18 9 0.00 0.66944 3 ; C4- C5- C6- H12
386 | 5 4 3 11 9 0.00 0.66944 3 ; C5- C4- C3- H5
387 | 5 4 3 12 9 0.00 0.66944 3 ; C5- C4- C3- H6
388 | 6 1 2 3 9 0.00 0.75312 3 ; C6- C1- C2- C3
389 | 6 1 2 3 9 180.00 0.83680 1 ; C6- C1- C2- C3
390 | 6 1 2 3 9 180.00 1.04600 2 ; C6- C1- C2- C3
391 | 6 1 2 9 9 0.00 0.66944 3 ; C6- C1- C2- H3
392 | 6 1 2 10 9 0.00 0.66944 3 ; C6- C1- C2- H4
393 | 6 5 4 13 9 0.00 0.66944 3 ; C6- C5- C4- H7
394 | 6 5 4 14 9 0.00 0.66944 3 ; C6- C5- C4- H8
395 | 7 1 2 3 9 0.00 0.66944 3 ; H1- C1- C2- C3
396 | 7 1 2 9 9 0.00 0.62760 3 ; H1- C1- C2- H3
397 | 7 1 2 10 9 0.00 0.62760 3 ; H1- C1- C2- H4
398 | 7 1 6 5 9 0.00 0.66944 3 ; H1- C1- C6- C5
399 | 7 1 6 17 9 0.00 0.62760 3 ; H1- C1- C6- H11
400 | 7 1 6 18 9 0.00 0.62760 3 ; H1- C1- C6- H12
401 | 8 1 2 3 9 0.00 0.66944 3 ; H2- C1- C2- C3
402 | 8 1 2 9 9 0.00 0.62760 3 ; H2- C1- C2- H3
403 | 8 1 2 10 9 0.00 0.62760 3 ; H2- C1- C2- H4
404 | 8 1 6 5 9 0.00 0.66944 3 ; H2- C1- C6- C5
405 | 8 1 6 17 9 0.00 0.62760 3 ; H2- C1- C6- H11
406 | 8 1 6 18 9 0.00 0.62760 3 ; H2- C1- C6- H12
407 | 9 2 3 11 9 0.00 0.62760 3 ; H3- C2- C3- H5
408 | 9 2 3 12 9 0.00 0.62760 3 ; H3- C2- C3- H6
409 | 10 2 3 11 9 0.00 0.62760 3 ; H4- C2- C3- H5
410 | 10 2 3 12 9 0.00 0.62760 3 ; H4- C2- C3- H6
411 | 11 3 4 13 9 0.00 0.62760 3 ; H5- C3- C4- H7
412 | 11 3 4 14 9 0.00 0.62760 3 ; H5- C3- C4- H8
413 | 12 3 4 13 9 0.00 0.62760 3 ; H6- C3- C4- H7
414 | 12 3 4 14 9 0.00 0.62760 3 ; H6- C3- C4- H8
415 | 13 4 5 15 9 0.00 0.62760 3 ; H7- C4- C5- H9
416 | 13 4 5 16 9 0.00 0.62760 3 ; H7- C4- C5- H10
417 | 14 4 5 15 9 0.00 0.62760 3 ; H8- C4- C5- H9
418 | 14 4 5 16 9 0.00 0.62760 3 ; H8- C4- C5- H10
419 | 15 5 6 17 9 0.00 0.62760 3 ; H9- C5- C6- H11
420 | 15 5 6 18 9 0.00 0.62760 3 ; H9- C5- C6- H12
421 | 16 5 6 17 9 0.00 0.62760 3 ; H10- C5- C6- H11
422 | 16 5 6 18 9 0.00 0.62760 3 ; H10- C5- C6- H12
423 | [ moleculetype ]
424 | ethane 3
425 | [ atoms ]
426 | 1 c3 1 MOL C1 1 -0.093900 12.01000 ; qtot -0.094
427 | 2 c3 1 MOL C2 2 -0.093900 12.01000 ; qtot -0.188
428 | 3 hc 1 MOL H1 3 0.031300 1.00800 ; qtot -0.157
429 | 4 hc 1 MOL H2 4 0.031300 1.00800 ; qtot -0.125
430 | 5 hc 1 MOL H3 5 0.031300 1.00800 ; qtot -0.094
431 | 6 hc 1 MOL H4 6 0.031300 1.00800 ; qtot -0.063
432 | 7 hc 1 MOL H5 7 0.031300 1.00800 ; qtot -0.031
433 | 8 hc 1 MOL H6 8 0.031300 1.00800 ; qtot 0.000
434 | [ bonds ]
435 | 1 2 1 1.5350e-01 2.5363e+05 ; C1 - C2
436 | 1 3 1 1.0920e-01 2.8225e+05 ; C1 - H1
437 | 1 4 1 1.0920e-01 2.8225e+05 ; C1 - H2
438 | 1 5 1 1.0920e-01 2.8225e+05 ; C1 - H3
439 | 2 6 1 1.0920e-01 2.8225e+05 ; C2 - H4
440 | 2 7 1 1.0920e-01 2.8225e+05 ; C2 - H5
441 | 2 8 1 1.0920e-01 2.8225e+05 ; C2 - H6
442 | [ pairs ]
443 | 3 6 1 ; H1 - H4
444 | 3 7 1 ; H1 - H5
445 | 3 8 1 ; H1 - H6
446 | 4 6 1 ; H2 - H4
447 | 4 7 1 ; H2 - H5
448 | 4 8 1 ; H2 - H6
449 | 5 6 1 ; H3 - H4
450 | 5 7 1 ; H3 - H5
451 | 5 8 1 ; H3 - H6
452 | [ angles ]
453 | 1 2 6 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H4
454 | 1 2 7 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H5
455 | 1 2 8 1 1.1005e+02 3.8802e+02 ; C1 - C2 - H6
456 | 2 1 3 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H1
457 | 2 1 4 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H2
458 | 2 1 5 1 1.1005e+02 3.8802e+02 ; C2 - C1 - H3
459 | 3 1 4 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H2
460 | 3 1 5 1 1.0835e+02 3.2995e+02 ; H1 - C1 - H3
461 | 4 1 5 1 1.0835e+02 3.2995e+02 ; H2 - C1 - H3
462 | 6 2 7 1 1.0835e+02 3.2995e+02 ; H4 - C2 - H5
463 | 6 2 8 1 1.0835e+02 3.2995e+02 ; H4 - C2 - H6
464 | 7 2 8 1 1.0835e+02 3.2995e+02 ; H5 - C2 - H6
465 | [ dihedrals ]
466 | ; i j k l func phase kd pn
467 | 3 1 2 6 9 0.00 0.62760 3 ; H1- C1- C2- H4
468 | 3 1 2 7 9 0.00 0.62760 3 ; H1- C1- C2- H5
469 | 3 1 2 8 9 0.00 0.62760 3 ; H1- C1- C2- H6
470 | 4 1 2 6 9 0.00 0.62760 3 ; H2- C1- C2- H4
471 | 4 1 2 7 9 0.00 0.62760 3 ; H2- C1- C2- H5
472 | 4 1 2 8 9 0.00 0.62760 3 ; H2- C1- C2- H6
473 | 5 1 2 6 9 0.00 0.62760 3 ; H3- C1- C2- H4
474 | 5 1 2 7 9 0.00 0.62760 3 ; H3- C1- C2- H5
475 | 5 1 2 8 9 0.00 0.62760 3 ; H3- C1- C2- H6
476 | [ system ]
477 | mixture
478 |
479 | [ molecules ]
480 | toluene 3
481 | solute 1
482 | cyclohexane 80
483 | ethane 7
484 |
485 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/benzene.frcmod:
--------------------------------------------------------------------------------
1 | Remark line goes here
2 | MASS
3 |
4 | BOND
5 |
6 | ANGLE
7 |
8 | DIHE
9 |
10 | IMPROPER
11 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0)
12 |
13 | NONBON
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/benzene.mol2:
--------------------------------------------------------------------------------
1 | @MOLECULE
2 | ZYG
3 | 12 12 1 0 1
4 | SMALL
5 | USER_CHARGES
6 | @ATOM
7 | 1 C1 1.8850 -1.0360 -0.1120 ca 1 ZYG -0.130200
8 | 2 C2 2.9210 -1.6310 0.6080 ca 1 ZYG -0.130100
9 | 3 C3 2.8780 -1.6520 2.0020 ca 1 ZYG -0.130100
10 | 4 C4 1.8000 -1.0790 2.6760 ca 1 ZYG -0.130100
11 | 5 C5 0.7640 -0.4840 1.9550 ca 1 ZYG -0.130100
12 | 6 C6 0.8070 -0.4630 0.5610 ca 1 ZYG -0.130100
13 | 7 H1 1.9170 -1.0200 -1.1980 ha 1 ZYG 0.130100
14 | 8 H2 3.7610 -2.0770 0.0840 ha 1 ZYG 0.130100
15 | 9 H3 3.6850 -2.1150 2.5630 ha 1 ZYG 0.130100
16 | 10 H4 1.7660 -1.0950 3.7610 ha 1 ZYG 0.130100
17 | 11 H5 -0.0760 -0.0380 2.4790 ha 1 ZYG 0.130100
18 | 12 H6 0.0000 0.0000 -0.0000 ha 1 ZYG 0.130100
19 | @BOND
20 | 1 1 6 1
21 | 2 1 2 1
22 | 3 2 3 1
23 | 4 3 4 1
24 | 5 4 5 1
25 | 6 5 6 1
26 | 7 1 7 1
27 | 8 2 8 1
28 | 9 3 9 1
29 | 10 4 10 1
30 | 11 5 11 1
31 | 12 6 12 1
32 | @SUBSTRUCTURE
33 | 1 ZYG 1 RESIDUE 0 **** ROOT 0
34 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/cyclohexane.frcmod:
--------------------------------------------------------------------------------
1 | Remark line goes here
2 | MASS
3 |
4 | BOND
5 |
6 | ANGLE
7 |
8 | DIHE
9 |
10 | IMPROPER
11 |
12 | NONBON
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/cyclohexane.mol2:
--------------------------------------------------------------------------------
1 | @MOLECULE
2 | ZBC
3 | 18 18 1 0 1
4 | SMALL
5 | USER_CHARGES
6 | @ATOM
7 | 1 C1 0.3260 0.2270 -1.4210 c3 1 ZBC -0.075600
8 | 2 C2 -1.0120 -0.3780 -1.0040 c3 1 ZBC -0.075500
9 | 3 C3 -1.4190 0.0670 0.3980 c3 1 ZBC -0.075500
10 | 4 C4 -0.3260 -0.2270 1.4210 c3 1 ZBC -0.075500
11 | 5 C5 1.0120 0.3780 1.0050 c3 1 ZBC -0.075500
12 | 6 C6 1.4190 -0.0670 -0.3980 c3 1 ZBC -0.075500
13 | 7 H1 0.2150 1.3130 -1.5340 hc 1 ZBC 0.037800
14 | 8 H2 0.6200 -0.1680 -2.4000 hc 1 ZBC 0.037800
15 | 9 H3 -1.7870 -0.0890 -1.7230 hc 1 ZBC 0.037800
16 | 10 H4 -0.9420 -1.4720 -1.0330 hc 1 ZBC 0.037800
17 | 11 H5 -1.6320 1.1440 0.3910 hc 1 ZBC 0.037800
18 | 12 H6 -2.3450 -0.4390 0.6920 hc 1 ZBC 0.037800
19 | 13 H7 -0.6210 0.1680 2.4000 hc 1 ZBC 0.037800
20 | 14 H8 -0.2150 -1.3130 1.5340 hc 1 ZBC 0.037800
21 | 15 H9 0.9420 1.4720 1.0330 hc 1 ZBC 0.037800
22 | 16 H10 1.7880 0.0880 1.7230 hc 1 ZBC 0.037800
23 | 17 H11 2.3460 0.4400 -0.6910 hc 1 ZBC 0.037800
24 | 18 H12 1.6320 -1.1430 -0.3910 hc 1 ZBC 0.037800
25 | @BOND
26 | 1 1 6 1
27 | 2 1 2 1
28 | 3 2 3 1
29 | 4 3 4 1
30 | 5 4 5 1
31 | 6 5 6 1
32 | 7 1 7 1
33 | 8 1 8 1
34 | 9 2 9 1
35 | 10 2 10 1
36 | 11 3 11 1
37 | 12 3 12 1
38 | 13 4 13 1
39 | 14 4 14 1
40 | 15 5 15 1
41 | 16 5 16 1
42 | 17 6 17 1
43 | 18 6 18 1
44 | @SUBSTRUCTURE
45 | 1 ZBC 1 RESIDUE 0 **** ROOT 0
46 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/ethane.frcmod:
--------------------------------------------------------------------------------
1 | Remark line goes here
2 | MASS
3 |
4 | BOND
5 |
6 | ANGLE
7 |
8 | DIHE
9 |
10 | IMPROPER
11 |
12 | NONBON
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/ethane.mol2:
--------------------------------------------------------------------------------
1 | @MOLECULE
2 | ZJP
3 | 8 7 1 0 1
4 | SMALL
5 | USER_CHARGES
6 | @ATOM
7 | 1 C1 0.8150 -0.5380 0.4930 c3 1 ZJP -0.093800
8 | 2 C2 2.1550 -0.0520 -0.0120 c3 1 ZJP -0.093800
9 | 3 H1 0.0000 0.0010 0.0010 hc 1 ZJP 0.031300
10 | 4 H2 0.6930 -1.6070 0.2910 hc 1 ZJP 0.031300
11 | 5 H3 0.7300 -0.3800 1.5720 hc 1 ZJP 0.031300
12 | 6 H4 2.9700 -0.5910 0.4800 hc 1 ZJP 0.031300
13 | 7 H5 2.2770 1.0170 0.1910 hc 1 ZJP 0.031300
14 | 8 H6 2.2400 -0.2100 -1.0910 hc 1 ZJP 0.031300
15 | @BOND
16 | 1 1 2 1
17 | 2 1 3 1
18 | 3 1 4 1
19 | 4 1 5 1
20 | 5 2 6 1
21 | 6 2 7 1
22 | 7 2 8 1
23 | @SUBSTRUCTURE
24 | 1 ZJP 1 RESIDUE 0 **** ROOT 0
25 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/toluene.frcmod:
--------------------------------------------------------------------------------
1 | Remark line goes here
2 | MASS
3 |
4 | BOND
5 |
6 | ANGLE
7 |
8 | DIHE
9 |
10 | IMPROPER
11 | ca-ca-ca-ha 1.1 180.0 2.0 Using general improper torsional angle X- X-ca-ha, penalty score= 6.0)
12 |
13 | NONBON
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/monomers/toluene.mol2:
--------------------------------------------------------------------------------
1 | @MOLECULE
2 | ZJY
3 | 15 15 1 0 1
4 | SMALL
5 | USER_CHARGES
6 | @ATOM
7 | 1 C1 1.9310 -1.0140 -1.6030 c3 1 ZJY -0.054000
8 | 2 C2 1.8850 -1.0360 -0.1120 ca 1 ZJY -0.077000
9 | 3 C3 2.9210 -1.6310 0.6080 ca 1 ZJY -0.130500
10 | 4 C4 2.8780 -1.6520 2.0020 ca 1 ZJY -0.126800
11 | 5 C5 1.8000 -1.0790 2.6760 ca 1 ZJY -0.135000
12 | 6 C6 0.7640 -0.4840 1.9550 ca 1 ZJY -0.126800
13 | 7 C7 0.8070 -0.4630 0.5610 ca 1 ZJY -0.130500
14 | 8 H1 2.4390 -0.1080 -1.9480 hc 1 ZJY 0.043600
15 | 9 H2 2.4640 -1.8890 -1.9910 hc 1 ZJY 0.043600
16 | 10 H3 0.9210 -1.0370 -2.0250 hc 1 ZJY 0.043600
17 | 11 H4 3.7650 -2.0800 0.0910 ha 1 ZJY 0.130200
18 | 12 H5 3.6850 -2.1150 2.5630 ha 1 ZJY 0.129800
19 | 13 H6 1.7660 -1.0950 3.7610 ha 1 ZJY 0.129800
20 | 14 H7 -0.0760 -0.0380 2.4790 ha 1 ZJY 0.129800
21 | 15 H8 -0.0050 0.0030 0.0080 ha 1 ZJY 0.130200
22 | @BOND
23 | 1 1 2 1
24 | 2 2 7 1
25 | 3 2 3 1
26 | 4 3 4 1
27 | 5 4 5 1
28 | 6 5 6 1
29 | 7 6 7 1
30 | 8 1 8 1
31 | 9 1 9 1
32 | 10 1 10 1
33 | 11 3 11 1
34 | 12 4 12 1
35 | 13 5 13 1
36 | 14 6 14 1
37 | 15 7 15 1
38 | @SUBSTRUCTURE
39 | 1 ZJY 1 RESIDUE 0 **** ROOT 0
40 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/benzene.inpcrd:
--------------------------------------------------------------------------------
1 | benzene
2 | 12
3 | 1.8850000 -1.0360000 -0.1120000 2.9210000 -1.6310000 0.6080000
4 | 2.8780000 -1.6520000 2.0020000 1.8000000 -1.0790000 2.6760000
5 | 0.7640000 -0.4840000 1.9550000 0.8070000 -0.4630000 0.5610000
6 | 1.9170000 -1.0200000 -1.1980000 3.7610000 -2.0770000 0.0840000
7 | 3.6850000 -2.1150000 2.5630000 1.7660000 -1.0950000 3.7610000
8 | -0.0760000 -0.0380000 2.4790000 0.0000000 0.0000000 -0.0000000
9 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/benzene.prmtop:
--------------------------------------------------------------------------------
1 | %VERSION VERSION_STAMP = V0001.000 DATE = 05/21/15 09:54:32
2 | %FLAG TITLE
3 | %FORMAT(20a4)
4 | benzene
5 | %FLAG POINTERS
6 | %FORMAT(10I8)
7 | 12 2 6 6 12 6 24 6 0 0
8 | 52 1 6 6 6 2 2 2 2 0
9 | 0 0 0 0 0 0 0 0 12 0
10 | 0
11 | %FLAG ATOM_NAME
12 | %FORMAT(20a4)
13 | C1 C2 C3 C4 C5 C6 H1 H2 H3 H4 H5 H6
14 | %FLAG CHARGE
15 | %FORMAT(5E16.8)
16 | -2.37254346E+00 -2.37072123E+00 -2.37072123E+00 -2.37072123E+00 -2.37072123E+00
17 | -2.37072123E+00 2.37072123E+00 2.37072123E+00 2.37072123E+00 2.37072123E+00
18 | 2.37072123E+00 2.37072123E+00
19 | %FLAG ATOMIC_NUMBER
20 | %FORMAT(10I8)
21 | 6 6 6 6 6 6 1 1 1 1
22 | 1 1
23 | %FLAG MASS
24 | %FORMAT(5E16.8)
25 | 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01
26 | 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00
27 | 1.00800000E+00 1.00800000E+00
28 | %FLAG ATOM_TYPE_INDEX
29 | %FORMAT(10I8)
30 | 1 1 1 1 1 1 2 2 2 2
31 | 2 2
32 | %FLAG NUMBER_EXCLUDED_ATOMS
33 | %FORMAT(10I8)
34 | 10 9 8 7 6 5 2 1 1 1
35 | 1 1
36 | %FLAG NONBONDED_PARM_INDEX
37 | %FORMAT(10I8)
38 | 1 2 2 3
39 | %FLAG RESIDUE_LABEL
40 | %FORMAT(20a4)
41 | MOL
42 | %FLAG RESIDUE_POINTER
43 | %FORMAT(10I8)
44 | 1
45 | %FLAG BOND_FORCE_CONSTANT
46 | %FORMAT(5E16.8)
47 | 4.78400000E+02 3.44300000E+02
48 | %FLAG BOND_EQUIL_VALUE
49 | %FORMAT(5E16.8)
50 | 1.38700000E+00 1.08700000E+00
51 | %FLAG ANGLE_FORCE_CONSTANT
52 | %FORMAT(5E16.8)
53 | 6.71800000E+01 4.84600000E+01
54 | %FLAG ANGLE_EQUIL_VALUE
55 | %FORMAT(5E16.8)
56 | 2.09387240E+00 2.09457053E+00
57 | %FLAG DIHEDRAL_FORCE_CONSTANT
58 | %FORMAT(5E16.8)
59 | 3.62500000E+00 1.10000000E+00
60 | %FLAG DIHEDRAL_PERIODICITY
61 | %FORMAT(5E16.8)
62 | 2.00000000E+00 2.00000000E+00
63 | %FLAG DIHEDRAL_PHASE
64 | %FORMAT(5E16.8)
65 | 3.14159400E+00 3.14159400E+00
66 | %FLAG SCEE_SCALE_FACTOR
67 | %FORMAT(5E16.8)
68 | 1.20000000E+00 0.00000000E+00
69 | %FLAG SCNB_SCALE_FACTOR
70 | %FORMAT(5E16.8)
71 | 2.00000000E+00 0.00000000E+00
72 | %FLAG SOLTY
73 | %FORMAT(5E16.8)
74 | 0.00000000E+00 0.00000000E+00
75 | %FLAG LENNARD_JONES_ACOEF
76 | %FORMAT(5E16.8)
77 | 8.19971662E+05 7.62451550E+04 5.71629601E+03
78 | %FLAG LENNARD_JONES_BCOEF
79 | %FORMAT(5E16.8)
80 | 5.31102864E+02 1.04660679E+02 1.85196588E+01
81 | %FLAG BONDS_INC_HYDROGEN
82 | %FORMAT(10I8)
83 | 0 18 2 3 21 2 6 24 2 9
84 | 27 2 12 30 2 15 33 2
85 | %FLAG BONDS_WITHOUT_HYDROGEN
86 | %FORMAT(10I8)
87 | 0 15 1 0 3 1 3 6 1 6
88 | 9 1 9 12 1 12 15 1
89 | %FLAG ANGLES_INC_HYDROGEN
90 | %FORMAT(10I8)
91 | 0 15 33 2 0 3 21 2 3 0
92 | 18 2 3 6 24 2 6 3 21 2
93 | 6 9 27 2 9 6 24 2 9 12
94 | 30 2 12 9 27 2 12 15 33 2
95 | 15 0 18 2 15 12 30 2
96 | %FLAG ANGLES_WITHOUT_HYDROGEN
97 | %FORMAT(10I8)
98 | 0 15 12 1 0 3 6 1 3 0
99 | 15 1 3 6 9 1 6 9 12 1
100 | 9 12 15 1
101 | %FLAG DIHEDRALS_INC_HYDROGEN
102 | %FORMAT(10I8)
103 | 0 15 12 30 1 0 3 6 24 1
104 | 3 0 15 33 1 3 6 9 27 1
105 | 18 0 3 6 1 6 9 12 30 1
106 | 9 6 3 21 1 9 12 15 33 1
107 | 12 9 6 24 1 18 0 15 12 1
108 | 15 0 3 21 1 15 12 9 27 1
109 | 18 0 15 33 1 18 0 3 21 1
110 | 21 3 6 24 1 24 6 9 27 1
111 | 27 9 12 30 1 30 12 15 33 1
112 | 18 0 -15 -3 2 0 6 -3 -21 2
113 | 3 9 -6 -24 2 6 12 -9 -27 2
114 | 9 15 -12 -30 2 0 12 -15 -33 2
115 | %FLAG DIHEDRALS_WITHOUT_HYDROGEN
116 | %FORMAT(10I8)
117 | 0 15 12 9 1 0 3 -6 9 1
118 | 3 0 15 12 1 3 6 -9 12 1
119 | 15 0 3 6 1 6 9 -12 15 1
120 | %FLAG EXCLUDED_ATOMS_LIST
121 | %FORMAT(10I8)
122 | 2 3 4 5 6 7 8 9 11 12
123 | 3 4 5 6 7 8 9 10 12 4
124 | 5 6 7 8 9 10 11 5 6 8
125 | 9 10 11 12 6 7 9 10 11 12
126 | 7 8 10 11 12 8 12 9 10 11
127 | 12 0
128 | %FLAG HBOND_ACOEF
129 | %FORMAT(5E16.8)
130 |
131 | %FLAG HBOND_BCOEF
132 | %FORMAT(5E16.8)
133 |
134 | %FLAG HBCUT
135 | %FORMAT(5E16.8)
136 |
137 | %FLAG AMBER_ATOM_TYPE
138 | %FORMAT(20a4)
139 | ca ca ca ca ca ca ha ha ha ha ha ha
140 | %FLAG TREE_CHAIN_CLASSIFICATION
141 | %FORMAT(20a4)
142 | BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA
143 | %FLAG JOIN_ARRAY
144 | %FORMAT(10I8)
145 | 0 0 0 0 0 0 0 0 0 0
146 | 0 0
147 | %FLAG IROTAT
148 | %FORMAT(10I8)
149 | 0 0 0 0 0 0 0 0 0 0
150 | 0 0
151 | %FLAG RADIUS_SET
152 | %FORMAT(1a80)
153 | modified Bondi radii (mbondi)
154 | %FLAG RADII
155 | %FORMAT(5E16.8)
156 | 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00
157 | 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
158 | 1.30000000E+00 1.30000000E+00
159 | %FLAG SCREEN
160 | %FORMAT(5E16.8)
161 | 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01
162 | 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
163 | 8.50000000E-01 8.50000000E-01
164 | %FLAG IPOL
165 | %FORMAT(1I8)
166 | 0
167 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/cyclohexane.inpcrd:
--------------------------------------------------------------------------------
1 | cyclohexane
2 | 18
3 | 0.3260000 0.2270000 -1.4210000 -1.0120000 -0.3780000 -1.0040000
4 | -1.4190000 0.0670000 0.3980000 -0.3260000 -0.2270000 1.4210000
5 | 1.0120000 0.3780000 1.0050000 1.4190000 -0.0670000 -0.3980000
6 | 0.2150000 1.3130000 -1.5340000 0.6200000 -0.1680000 -2.4000000
7 | -1.7870000 -0.0890000 -1.7230000 -0.9420000 -1.4720000 -1.0330000
8 | -1.6320000 1.1440000 0.3910000 -2.3450000 -0.4390000 0.6920000
9 | -0.6210000 0.1680000 2.4000000 -0.2150000 -1.3130000 1.5340000
10 | 0.9420000 1.4720000 1.0330000 1.7880000 0.0880000 1.7230000
11 | 2.3460000 0.4400000 -0.6910000 1.6320000 -1.1430000 -0.3910000
12 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/cyclohexane.prmtop:
--------------------------------------------------------------------------------
1 | %VERSION VERSION_STAMP = V0001.000 DATE = 05/21/15 09:54:32
2 | %FLAG TITLE
3 | %FORMAT(20a4)
4 | cyclohexane
5 | %FLAG POINTERS
6 | %FORMAT(10I8)
7 | 18 2 12 6 30 6 48 18 0 0
8 | 106 1 6 6 18 2 3 5 2 0
9 | 0 0 0 0 0 0 0 0 18 0
10 | 0
11 | %FLAG ATOM_NAME
12 | %FORMAT(20a4)
13 | C1 C2 C3 C4 C5 C6 H1 H2 H3 H4 H5 H6 H7 H8 H9 H10 H11 H12
14 | %FLAG CHARGE
15 | %FORMAT(5E16.8)
16 | -1.37760588E+00 -1.37578365E+00 -1.37578365E+00 -1.37578365E+00 -1.37578365E+00
17 | -1.37578365E+00 6.88802940E-01 6.88802940E-01 6.88802940E-01 6.88802940E-01
18 | 6.88802940E-01 6.88802940E-01 6.88802940E-01 6.88802940E-01 6.88802940E-01
19 | 6.88802940E-01 6.88802940E-01 6.88802940E-01
20 | %FLAG ATOMIC_NUMBER
21 | %FORMAT(10I8)
22 | 6 6 6 6 6 6 1 1 1 1
23 | 1 1 1 1 1 1 1 1
24 | %FLAG MASS
25 | %FORMAT(5E16.8)
26 | 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01
27 | 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00
28 | 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00
29 | 1.00800000E+00 1.00800000E+00 1.00800000E+00
30 | %FLAG ATOM_TYPE_INDEX
31 | %FORMAT(10I8)
32 | 1 1 1 1 1 1 2 2 2 2
33 | 2 2 2 2 2 2 2 2
34 | %FLAG NUMBER_EXCLUDED_ATOMS
35 | %FORMAT(10I8)
36 | 15 14 13 12 11 10 5 4 3 2
37 | 3 2 3 2 3 2 1 1
38 | %FLAG NONBONDED_PARM_INDEX
39 | %FORMAT(10I8)
40 | 1 2 2 3
41 | %FLAG RESIDUE_LABEL
42 | %FORMAT(20a4)
43 | MOL
44 | %FLAG RESIDUE_POINTER
45 | %FORMAT(10I8)
46 | 1
47 | %FLAG BOND_FORCE_CONSTANT
48 | %FORMAT(5E16.8)
49 | 3.03100000E+02 3.37300000E+02
50 | %FLAG BOND_EQUIL_VALUE
51 | %FORMAT(5E16.8)
52 | 1.53500000E+00 1.09200000E+00
53 | %FLAG ANGLE_FORCE_CONSTANT
54 | %FORMAT(5E16.8)
55 | 6.32100000E+01 4.63700000E+01 3.94300000E+01
56 | %FLAG ANGLE_EQUIL_VALUE
57 | %FORMAT(5E16.8)
58 | 1.93085858E+00 1.92073567E+00 1.89106506E+00
59 | %FLAG DIHEDRAL_FORCE_CONSTANT
60 | %FORMAT(5E16.8)
61 | 2.00000000E-01 2.50000000E-01 1.80000000E-01 1.60000000E-01 1.50000000E-01
62 | %FLAG DIHEDRAL_PERIODICITY
63 | %FORMAT(5E16.8)
64 | 1.00000000E+00 2.00000000E+00 3.00000000E+00 3.00000000E+00 3.00000000E+00
65 | %FLAG DIHEDRAL_PHASE
66 | %FORMAT(5E16.8)
67 | 3.14159400E+00 3.14159400E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
68 | %FLAG SCEE_SCALE_FACTOR
69 | %FORMAT(5E16.8)
70 | 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00 1.20000000E+00
71 | %FLAG SCNB_SCALE_FACTOR
72 | %FORMAT(5E16.8)
73 | 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00 2.00000000E+00
74 | %FLAG SOLTY
75 | %FORMAT(5E16.8)
76 | 0.00000000E+00 0.00000000E+00
77 | %FLAG LENNARD_JONES_ACOEF
78 | %FORMAT(5E16.8)
79 | 1.04308023E+06 9.71708117E+04 7.51607703E+03
80 | %FLAG LENNARD_JONES_BCOEF
81 | %FORMAT(5E16.8)
82 | 6.75612247E+02 1.26919150E+02 2.17257828E+01
83 | %FLAG BONDS_INC_HYDROGEN
84 | %FORMAT(10I8)
85 | 0 18 2 0 21 2 3 24 2 3
86 | 27 2 6 30 2 6 33 2 9 36
87 | 2 9 39 2 12 42 2 12 45 2
88 | 15 48 2 15 51 2
89 | %FLAG BONDS_WITHOUT_HYDROGEN
90 | %FORMAT(10I8)
91 | 0 15 1 0 3 1 3 6 1 6
92 | 9 1 9 12 1 12 15 1
93 | %FLAG ANGLES_INC_HYDROGEN
94 | %FORMAT(10I8)
95 | 0 15 48 2 0 15 51 2 0 3
96 | 24 2 0 3 27 2 3 0 18 2
97 | 3 0 21 2 3 6 30 2 3 6
98 | 33 2 6 3 24 2 6 3 27 2
99 | 6 9 36 2 6 9 39 2 9 6
100 | 30 2 9 6 33 2 9 12 42 2
101 | 9 12 45 2 12 9 36 2 12 9
102 | 39 2 12 15 48 2 12 15 51 2
103 | 15 0 18 2 15 0 21 2 15 12
104 | 42 2 15 12 45 2 18 0 21 3
105 | 24 3 27 3 30 6 33 3 36 9
106 | 39 3 42 12 45 3 48 15 51 3
107 | %FLAG ANGLES_WITHOUT_HYDROGEN
108 | %FORMAT(10I8)
109 | 0 15 12 1 0 3 6 1 3 0
110 | 15 1 3 6 9 1 6 9 12 1
111 | 9 12 15 1
112 | %FLAG DIHEDRALS_INC_HYDROGEN
113 | %FORMAT(10I8)
114 | 0 15 12 42 4 0 15 12 45 4
115 | 0 3 6 30 4 0 3 6 33 4
116 | 3 0 15 48 4 3 0 15 51 4
117 | 3 6 9 36 4 3 6 9 39 4
118 | 18 0 3 6 4 21 0 3 6 4
119 | 6 9 12 42 4 6 9 12 45 4
120 | 9 6 3 24 4 9 6 3 27 4
121 | 9 12 15 48 4 9 12 15 51 4
122 | 12 9 6 30 4 12 9 6 33 4
123 | 18 0 15 12 4 21 0 15 12 4
124 | 15 0 3 24 4 15 0 3 27 4
125 | 15 12 9 36 4 15 12 9 39 4
126 | 18 0 15 48 5 18 0 15 51 5
127 | 18 0 3 24 5 18 0 3 27 5
128 | 21 0 15 48 5 21 0 15 51 5
129 | 21 0 3 24 5 21 0 3 27 5
130 | 24 3 6 30 5 24 3 6 33 5
131 | 27 3 6 30 5 27 3 6 33 5
132 | 30 6 9 36 5 30 6 9 39 5
133 | 33 6 9 36 5 33 6 9 39 5
134 | 36 9 12 42 5 36 9 12 45 5
135 | 39 9 12 42 5 39 9 12 45 5
136 | 42 12 15 48 5 42 12 15 51 5
137 | 45 12 15 48 5 45 12 15 51 5
138 | %FLAG DIHEDRALS_WITHOUT_HYDROGEN
139 | %FORMAT(10I8)
140 | 0 15 12 9 1 0 15 -12 9 2
141 | 0 15 -12 9 3 0 3 -6 9 1
142 | 0 3 -6 9 2 0 3 -6 9 3
143 | 3 0 15 12 1 3 0 -15 12 2
144 | 3 0 -15 12 3 3 6 -9 12 1
145 | 3 6 -9 12 2 3 6 -9 12 3
146 | 15 0 3 6 1 15 0 -3 6 2
147 | 15 0 -3 6 3 6 9 -12 15 1
148 | 6 9 -12 15 2 6 9 -12 15 3
149 | %FLAG EXCLUDED_ATOMS_LIST
150 | %FORMAT(10I8)
151 | 2 3 4 5 6 7 8 9 10 11
152 | 12 15 16 17 18 3 4 5 6 7
153 | 8 9 10 11 12 13 14 17 18 4
154 | 5 6 7 8 9 10 11 12 13 14
155 | 15 16 5 6 9 10 11 12 13 14
156 | 15 16 17 18 6 7 8 11 12 13
157 | 14 15 16 17 18 7 8 9 10 13
158 | 14 15 16 17 18 8 9 10 17 18
159 | 9 10 17 18 10 11 12 11 12 12
160 | 13 14 13 14 14 15 16 15 16 16
161 | 17 18 17 18 18 0
162 | %FLAG HBOND_ACOEF
163 | %FORMAT(5E16.8)
164 |
165 | %FLAG HBOND_BCOEF
166 | %FORMAT(5E16.8)
167 |
168 | %FLAG HBCUT
169 | %FORMAT(5E16.8)
170 |
171 | %FLAG AMBER_ATOM_TYPE
172 | %FORMAT(20a4)
173 | c3 c3 c3 c3 c3 c3 hc hc hc hc hc hc hc hc hc hc hc hc
174 | %FLAG TREE_CHAIN_CLASSIFICATION
175 | %FORMAT(20a4)
176 | BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA
177 | %FLAG JOIN_ARRAY
178 | %FORMAT(10I8)
179 | 0 0 0 0 0 0 0 0 0 0
180 | 0 0 0 0 0 0 0 0
181 | %FLAG IROTAT
182 | %FORMAT(10I8)
183 | 0 0 0 0 0 0 0 0 0 0
184 | 0 0 0 0 0 0 0 0
185 | %FLAG RADIUS_SET
186 | %FORMAT(1a80)
187 | modified Bondi radii (mbondi)
188 | %FLAG RADII
189 | %FORMAT(5E16.8)
190 | 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00
191 | 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
192 | 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
193 | 1.30000000E+00 1.30000000E+00 1.30000000E+00
194 | %FLAG SCREEN
195 | %FORMAT(5E16.8)
196 | 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01
197 | 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
198 | 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
199 | 8.50000000E-01 8.50000000E-01 8.50000000E-01
200 | %FLAG IPOL
201 | %FORMAT(1I8)
202 | 0
203 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/ethane.inpcrd:
--------------------------------------------------------------------------------
1 | ethane
2 | 8
3 | 0.8150000 -0.5380000 0.4930000 2.1550000 -0.0520000 -0.0120000
4 | 0.0000000 0.0010000 0.0010000 0.6930000 -1.6070000 0.2910000
5 | 0.7300000 -0.3800000 1.5720000 2.9700000 -0.5910000 0.4800000
6 | 2.2770000 1.0170000 0.1910000 2.2400000 -0.2100000 -1.0910000
7 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/ethane.prmtop:
--------------------------------------------------------------------------------
1 | %VERSION VERSION_STAMP = V0001.000 DATE = 05/21/15 09:54:32
2 | %FLAG TITLE
3 | %FORMAT(20a4)
4 | ethane
5 | %FLAG POINTERS
6 | %FORMAT(10I8)
7 | 8 2 6 1 12 0 9 0 0 0
8 | 29 1 1 0 0 2 2 1 2 0
9 | 0 0 0 0 0 0 0 0 8 0
10 | 0
11 | %FLAG ATOM_NAME
12 | %FORMAT(20a4)
13 | C1 C2 H1 H2 H3 H4 H5 H6
14 | %FLAG CHARGE
15 | %FORMAT(5E16.8)
16 | -1.70925174E+00 -1.70925174E+00 5.70357990E-01 5.70357990E-01 5.70357990E-01
17 | 5.70357990E-01 5.70357990E-01 5.70357990E-01
18 | %FLAG ATOMIC_NUMBER
19 | %FORMAT(10I8)
20 | 6 6 1 1 1 1 1 1
21 | %FLAG MASS
22 | %FORMAT(5E16.8)
23 | 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00
24 | 1.00800000E+00 1.00800000E+00 1.00800000E+00
25 | %FLAG ATOM_TYPE_INDEX
26 | %FORMAT(10I8)
27 | 1 1 2 2 2 2 2 2
28 | %FLAG NUMBER_EXCLUDED_ATOMS
29 | %FORMAT(10I8)
30 | 7 6 5 4 3 2 1 1
31 | %FLAG NONBONDED_PARM_INDEX
32 | %FORMAT(10I8)
33 | 1 2 2 3
34 | %FLAG RESIDUE_LABEL
35 | %FORMAT(20a4)
36 | MOL
37 | %FLAG RESIDUE_POINTER
38 | %FORMAT(10I8)
39 | 1
40 | %FLAG BOND_FORCE_CONSTANT
41 | %FORMAT(5E16.8)
42 | 3.03100000E+02 3.37300000E+02
43 | %FLAG BOND_EQUIL_VALUE
44 | %FORMAT(5E16.8)
45 | 1.53500000E+00 1.09200000E+00
46 | %FLAG ANGLE_FORCE_CONSTANT
47 | %FORMAT(5E16.8)
48 | 4.63700000E+01 3.94300000E+01
49 | %FLAG ANGLE_EQUIL_VALUE
50 | %FORMAT(5E16.8)
51 | 1.92073567E+00 1.89106506E+00
52 | %FLAG DIHEDRAL_FORCE_CONSTANT
53 | %FORMAT(5E16.8)
54 | 1.50000000E-01
55 | %FLAG DIHEDRAL_PERIODICITY
56 | %FORMAT(5E16.8)
57 | 3.00000000E+00
58 | %FLAG DIHEDRAL_PHASE
59 | %FORMAT(5E16.8)
60 | 0.00000000E+00
61 | %FLAG SCEE_SCALE_FACTOR
62 | %FORMAT(5E16.8)
63 | 1.20000000E+00
64 | %FLAG SCNB_SCALE_FACTOR
65 | %FORMAT(5E16.8)
66 | 2.00000000E+00
67 | %FLAG SOLTY
68 | %FORMAT(5E16.8)
69 | 0.00000000E+00 0.00000000E+00
70 | %FLAG LENNARD_JONES_ACOEF
71 | %FORMAT(5E16.8)
72 | 1.04308023E+06 9.71708117E+04 7.51607703E+03
73 | %FLAG LENNARD_JONES_BCOEF
74 | %FORMAT(5E16.8)
75 | 6.75612247E+02 1.26919150E+02 2.17257828E+01
76 | %FLAG BONDS_INC_HYDROGEN
77 | %FORMAT(10I8)
78 | 0 6 2 0 9 2 0 12 2 3
79 | 15 2 3 18 2 3 21 2
80 | %FLAG BONDS_WITHOUT_HYDROGEN
81 | %FORMAT(10I8)
82 | 0 3 1
83 | %FLAG ANGLES_INC_HYDROGEN
84 | %FORMAT(10I8)
85 | 0 3 15 1 0 3 18 1 0 3
86 | 21 1 3 0 6 1 3 0 9 1
87 | 3 0 12 1 6 0 9 2 6 0
88 | 12 2 9 0 12 2 15 3 18 2
89 | 15 3 21 2 18 3 21 2
90 | %FLAG ANGLES_WITHOUT_HYDROGEN
91 | %FORMAT(10I8)
92 |
93 | %FLAG DIHEDRALS_INC_HYDROGEN
94 | %FORMAT(10I8)
95 | 6 0 3 15 1 6 0 3 18 1
96 | 6 0 3 21 1 9 0 3 15 1
97 | 9 0 3 18 1 9 0 3 21 1
98 | 12 0 3 15 1 12 0 3 18 1
99 | 12 0 3 21 1
100 | %FLAG DIHEDRALS_WITHOUT_HYDROGEN
101 | %FORMAT(10I8)
102 |
103 | %FLAG EXCLUDED_ATOMS_LIST
104 | %FORMAT(10I8)
105 | 2 3 4 5 6 7 8 3 4 5
106 | 6 7 8 4 5 6 7 8 5 6
107 | 7 8 6 7 8 7 8 8 0
108 | %FLAG HBOND_ACOEF
109 | %FORMAT(5E16.8)
110 |
111 | %FLAG HBOND_BCOEF
112 | %FORMAT(5E16.8)
113 |
114 | %FLAG HBCUT
115 | %FORMAT(5E16.8)
116 |
117 | %FLAG AMBER_ATOM_TYPE
118 | %FORMAT(20a4)
119 | c3 c3 hc hc hc hc hc hc
120 | %FLAG TREE_CHAIN_CLASSIFICATION
121 | %FORMAT(20a4)
122 | BLA BLA BLA BLA BLA BLA BLA BLA
123 | %FLAG JOIN_ARRAY
124 | %FORMAT(10I8)
125 | 0 0 0 0 0 0 0 0
126 | %FLAG IROTAT
127 | %FORMAT(10I8)
128 | 0 0 0 0 0 0 0 0
129 | %FLAG RADIUS_SET
130 | %FORMAT(1a80)
131 | modified Bondi radii (mbondi)
132 | %FLAG RADII
133 | %FORMAT(5E16.8)
134 | 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
135 | 1.30000000E+00 1.30000000E+00 1.30000000E+00
136 | %FLAG SCREEN
137 | %FORMAT(5E16.8)
138 | 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
139 | 8.50000000E-01 8.50000000E-01 8.50000000E-01
140 | %FLAG IPOL
141 | %FORMAT(1I8)
142 | 0
143 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/toluene.inpcrd:
--------------------------------------------------------------------------------
1 | toluene
2 | 15
3 | 1.9310000 -1.0140000 -1.6030000 1.8850000 -1.0360000 -0.1120000
4 | 2.9210000 -1.6310000 0.6080000 2.8780000 -1.6520000 2.0020000
5 | 1.8000000 -1.0790000 2.6760000 0.7640000 -0.4840000 1.9550000
6 | 0.8070000 -0.4630000 0.5610000 2.4390000 -0.1080000 -1.9480000
7 | 2.4640000 -1.8890000 -1.9910000 0.9210000 -1.0370000 -2.0250000
8 | 3.7650000 -2.0800000 0.0910000 3.6850000 -2.1150000 2.5630000
9 | 1.7660000 -1.0950000 3.7610000 -0.0760000 -0.0380000 2.4790000
10 | -0.0050000 0.0030000 0.0080000
11 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/data/tleap/toluene.prmtop:
--------------------------------------------------------------------------------
1 | %VERSION VERSION_STAMP = V0001.000 DATE = 05/21/15 09:54:31
2 | %FLAG TITLE
3 | %FORMAT(20a4)
4 | toluene
5 | %FLAG POINTERS
6 | %FORMAT(10I8)
7 | 15 4 8 7 16 8 27 9 0 0
8 | 68 1 7 8 9 4 5 3 4 0
9 | 0 0 0 0 0 0 0 0 15 0
10 | 0
11 | %FLAG ATOM_NAME
12 | %FORMAT(20a4)
13 | C1 C2 C3 C4 C5 C6 C7 H1 H2 H3 H4 H5 H6 H7 H8
14 | %FLAG CHARGE
15 | %FORMAT(5E16.8)
16 | -9.84004200E-01 -1.40311710E+00 -2.37801015E+00 -2.31058764E+00 -2.46001050E+00
17 | -2.31058764E+00 -2.37801015E+00 7.94492280E-01 7.94492280E-01 7.94492280E-01
18 | 2.37254346E+00 2.36525454E+00 2.36525454E+00 2.36525454E+00 2.37254346E+00
19 | %FLAG ATOMIC_NUMBER
20 | %FORMAT(10I8)
21 | 6 6 6 6 6 6 6 1 1 1
22 | 1 1 1 1 1
23 | %FLAG MASS
24 | %FORMAT(5E16.8)
25 | 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01 1.20100000E+01
26 | 1.20100000E+01 1.20100000E+01 1.00800000E+00 1.00800000E+00 1.00800000E+00
27 | 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00 1.00800000E+00
28 | %FLAG ATOM_TYPE_INDEX
29 | %FORMAT(10I8)
30 | 1 2 2 2 2 2 2 3 3 3
31 | 4 4 4 4 4
32 | %FLAG NUMBER_EXCLUDED_ATOMS
33 | %FORMAT(10I8)
34 | 10 12 11 7 7 5 7 2 1 1
35 | 1 1 1 1 1
36 | %FLAG NONBONDED_PARM_INDEX
37 | %FORMAT(10I8)
38 | 1 2 4 7 2 3 5 8 4 5
39 | 6 9 7 8 9 10
40 | %FLAG RESIDUE_LABEL
41 | %FORMAT(20a4)
42 | MOL
43 | %FLAG RESIDUE_POINTER
44 | %FORMAT(10I8)
45 | 1
46 | %FLAG BOND_FORCE_CONSTANT
47 | %FORMAT(5E16.8)
48 | 3.23500000E+02 3.37300000E+02 4.78400000E+02 3.44300000E+02
49 | %FLAG BOND_EQUIL_VALUE
50 | %FORMAT(5E16.8)
51 | 1.51300000E+00 1.09200000E+00 1.38700000E+00 1.08700000E+00
52 | %FLAG ANGLE_FORCE_CONSTANT
53 | %FORMAT(5E16.8)
54 | 6.38400000E+01 4.69600000E+01 6.71800000E+01 4.84600000E+01 3.94300000E+01
55 | %FLAG ANGLE_EQUIL_VALUE
56 | %FORMAT(5E16.8)
57 | 2.10539158E+00 1.92248100E+00 2.09387240E+00 2.09457053E+00 1.89106506E+00
58 | %FLAG DIHEDRAL_FORCE_CONSTANT
59 | %FORMAT(5E16.8)
60 | 3.62500000E+00 0.00000000E+00 1.10000000E+00
61 | %FLAG DIHEDRAL_PERIODICITY
62 | %FORMAT(5E16.8)
63 | 2.00000000E+00 2.00000000E+00 2.00000000E+00
64 | %FLAG DIHEDRAL_PHASE
65 | %FORMAT(5E16.8)
66 | 3.14159400E+00 0.00000000E+00 3.14159400E+00
67 | %FLAG SCEE_SCALE_FACTOR
68 | %FORMAT(5E16.8)
69 | 1.20000000E+00 1.20000000E+00 0.00000000E+00
70 | %FLAG SCNB_SCALE_FACTOR
71 | %FORMAT(5E16.8)
72 | 2.00000000E+00 2.00000000E+00 0.00000000E+00
73 | %FLAG SOLTY
74 | %FORMAT(5E16.8)
75 | 0.00000000E+00 0.00000000E+00 0.00000000E+00 0.00000000E+00
76 | %FLAG LENNARD_JONES_ACOEF
77 | %FORMAT(5E16.8)
78 | 1.04308023E+06 9.24822270E+05 8.19971662E+05 9.71708117E+04 8.61541883E+04
79 | 7.51607703E+03 8.59947003E+04 7.62451550E+04 6.55825601E+03 5.71629601E+03
80 | %FLAG LENNARD_JONES_BCOEF
81 | %FORMAT(5E16.8)
82 | 6.75612247E+02 5.99015525E+02 5.31102864E+02 1.26919150E+02 1.12529845E+02
83 | 2.17257828E+01 1.18043746E+02 1.04660679E+02 2.00642027E+01 1.85196588E+01
84 | %FLAG BONDS_INC_HYDROGEN
85 | %FORMAT(10I8)
86 | 0 21 2 0 24 2 0 27 2 6
87 | 30 4 9 33 4 12 36 4 15 39
88 | 4 18 42 4
89 | %FLAG BONDS_WITHOUT_HYDROGEN
90 | %FORMAT(10I8)
91 | 0 3 1 3 18 3 3 6 3 6
92 | 9 3 9 12 3 12 15 3 15 18
93 | 3
94 | %FLAG ANGLES_INC_HYDROGEN
95 | %FORMAT(10I8)
96 | 3 0 21 2 3 0 24 2 3 0
97 | 27 2 3 18 42 4 3 6 30 4
98 | 6 9 33 4 9 6 30 4 9 12
99 | 36 4 12 9 33 4 12 15 39 4
100 | 15 12 36 4 15 18 42 4 18 15
101 | 39 4 21 0 24 5 21 0 27 5
102 | 24 0 27 5
103 | %FLAG ANGLES_WITHOUT_HYDROGEN
104 | %FORMAT(10I8)
105 | 0 3 18 1 0 3 6 1 3 18
106 | 15 3 3 6 9 3 6 3 18 3
107 | 6 9 12 3 9 12 15 3 12 15
108 | 18 3
109 | %FLAG DIHEDRALS_INC_HYDROGEN
110 | %FORMAT(10I8)
111 | 0 3 18 42 1 0 3 6 30 1
112 | 3 18 15 39 1 3 6 9 33 1
113 | 21 0 3 6 2 24 0 3 6 2
114 | 27 0 3 6 2 6 3 18 42 1
115 | 6 9 12 36 1 9 12 15 39 1
116 | 12 9 6 30 1 12 15 18 42 1
117 | 15 12 9 33 1 21 0 3 18 2
118 | 24 0 3 18 2 27 0 3 18 2
119 | 18 3 6 30 1 18 15 12 36 1
120 | 30 6 9 33 1 33 9 12 36 1
121 | 36 12 15 39 1 39 15 18 42 1
122 | 3 9 -6 -30 3 6 12 -9 -33 3
123 | 9 15 -12 -36 3 12 18 -15 -39 3
124 | 3 15 -18 -42 3
125 | %FLAG DIHEDRALS_WITHOUT_HYDROGEN
126 | %FORMAT(10I8)
127 | 0 3 18 15 1 0 3 6 9 1
128 | 3 18 15 12 1 3 6 -9 12 1
129 | 6 3 18 15 1 6 9 -12 15 1
130 | 9 6 3 18 1 9 12 -15 18 1
131 | 0 3 -18 -6 3
132 | %FLAG EXCLUDED_ATOMS_LIST
133 | %FORMAT(10I8)
134 | 2 3 4 6 7 8 9 10 11 15
135 | 3 4 5 6 7 8 9 10 11 12
136 | 14 15 4 5 6 7 8 9 10 11
137 | 12 13 15 5 6 7 11 12 13 14
138 | 6 7 11 12 13 14 15 7 12 13
139 | 14 15 8 9 10 11 13 14 15 9
140 | 10 10 0 12 13 14 15 0
141 | %FLAG HBOND_ACOEF
142 | %FORMAT(5E16.8)
143 |
144 | %FLAG HBOND_BCOEF
145 | %FORMAT(5E16.8)
146 |
147 | %FLAG HBCUT
148 | %FORMAT(5E16.8)
149 |
150 | %FLAG AMBER_ATOM_TYPE
151 | %FORMAT(20a4)
152 | c3 ca ca ca ca ca ca hc hc hc ha ha ha ha ha
153 | %FLAG TREE_CHAIN_CLASSIFICATION
154 | %FORMAT(20a4)
155 | BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA BLA
156 | %FLAG JOIN_ARRAY
157 | %FORMAT(10I8)
158 | 0 0 0 0 0 0 0 0 0 0
159 | 0 0 0 0 0
160 | %FLAG IROTAT
161 | %FORMAT(10I8)
162 | 0 0 0 0 0 0 0 0 0 0
163 | 0 0 0 0 0
164 | %FLAG RADIUS_SET
165 | %FORMAT(1a80)
166 | modified Bondi radii (mbondi)
167 | %FLAG RADII
168 | %FORMAT(5E16.8)
169 | 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00 1.70000000E+00
170 | 1.70000000E+00 1.70000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
171 | 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00 1.30000000E+00
172 | %FLAG SCREEN
173 | %FORMAT(5E16.8)
174 | 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01 7.20000000E-01
175 | 7.20000000E-01 7.20000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
176 | 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01 8.50000000E-01
177 | %FLAG IPOL
178 | %FORMAT(1I8)
179 | 0
180 |
--------------------------------------------------------------------------------
/solvationtoolkit/test/test_solvated_mixtures.py:
--------------------------------------------------------------------------------
1 | import os.path, sys
2 | sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), os.pardir))
3 | from openmoltools import utils
4 | import unittest
5 | from unittest import skipIf
6 | from solvationtoolkit.solvated_mixtures import MixtureSystem
7 |
8 |
9 | try:
10 | oechem = utils.import_("openeye.oechem")
11 | if not oechem.OEChemIsLicensed(): raise(ImportError("Need License for OEChem!"))
12 | oequacpac = utils.import_("openeye.oequacpac")
13 | if not oequacpac.OEQuacPacIsLicensed(): raise(ImportError("Need License for oequacpac!"))
14 | oeiupac = utils.import_("openeye.oeiupac")
15 | if not oeiupac.OEIUPACIsLicensed(): raise(ImportError("Need License for OEOmega!"))
16 | oeomega = utils.import_("openeye.oeomega")
17 | if not oeomega.OEOmegaIsLicensed(): raise(ImportError("Need License for OEOmega!"))
18 | HAVE_OE = True
19 | except:
20 | HAVE_OE = False
21 |
22 |
23 | class TestMixtureSystem(unittest.TestCase):
24 | @skipIf(not HAVE_OE, "Cannot test core functionality without OpenEye tools.")
25 | def setUp(self):
26 | with utils.enter_temp_directory():
27 | self.inst = MixtureSystem()
28 |
29 | #Test class Initialization
30 | #These should be able to run without OpenEye tools at least with suitable re-architecting
31 | @skipIf(not HAVE_OE, "Cannot test core functionality without OpenEye tools.")
32 | def test_InsufficientInit(self):
33 | with utils.enter_temp_directory():
34 | #Check wrong number of arguments for adding a component - it requires a name or label at least.
35 | self.assertRaises(ValueError, self.inst.addComponent, smiles="CC")
36 |
37 | #Check what happens if we don't actually add components
38 | self.assertRaises(TypeError, self.inst.build )
39 |
40 |
41 | #Should be able to run without OE tools with suitable re-architecting
42 | @skipIf(not HAVE_OE, "Cannot test core functionality without OpenEye tools.")
43 | def test_TypeArgs(self):
44 | #Check passed input Types
45 | with utils.enter_temp_directory():
46 |
47 | #Add a component with an integer name to ensure we catch
48 | self.inst = MixtureSystem()
49 | self.assertRaises(ValueError, self.inst.addComponent, name=1 )
50 |
51 | #Add a non-integer number of molecules to ensure we catch
52 | self.assertRaises(ValueError, self.inst.addComponent, name='phenol', number=3.5)
53 |
54 | #Add an invalid mole fraction
55 | self.assertRaises(ValueError, self.inst.addComponent, name='phenol', mole_fraction=1.2 )
56 | self.assertRaises(ValueError, self.inst.addComponent, name='phenol', mole_fraction=-0.2 )
57 |
58 | #Add mole fractions totaling greater than 1, check that we catch
59 | self.inst.addComponent('phenol', mole_fraction = 0.9)
60 | self.inst.addComponent('toluene', mole_fraction = 0.2)
61 | self.assertRaises( ValueError, self.inst.build )
62 |
63 | @skipIf(not HAVE_OE, "Cannot check smiles or name handling without OpenEye tools.")
64 | def test_ChemParsing(self):
65 | with utils.enter_temp_directory():
66 | self.inst = MixtureSystem()
67 | #Try passing invalid SMILES
68 | self.assertRaises( ValueError, self.inst.addComponent, name='phenol', smiles='smiles')
69 | #Try building with an invalid solute_index
70 | self.inst = MixtureSystem()
71 | self.inst.addComponent('toluene')
72 | self.assertRaises( AssertionError, self.inst.build, gromacs = True,
73 | solute_index = 2)
74 |
75 |
76 | #Test a bunch of different run cases which actually ought to work and ensure that they do
77 | @skipIf(not HAVE_OE, "Cannot test core functionality without OpenEye tools.")
78 | def test_run(self):
79 | with utils.enter_temp_directory():
80 |
81 | #Set up some names, labels, components
82 | names = ['toluene','benzene','cyclohexane','water', 'ethane']
83 | labels = ['toluene','benzene','cyclohexane','water', 'ethane']
84 | smiles = ['Cc1ccccc1','c1ccccc1','C1CCCCC1','O', 'CC']
85 | datapath = 'test' #Use non-default
86 | numbers = [3, 5, 80, 11, 7 ]
87 | mole_fractions = [ 0.1, 0.1, 0.1, 0.0, 0.7 ]
88 | n_components = len(names)
89 |
90 | #Build using name
91 | self.inst = MixtureSystem( datapath )
92 | for n in range(n_components):
93 | self.inst.addComponent( name = names[n], mole_fraction = mole_fractions[n])
94 | self.inst.build()
95 |
96 | #Build using label
97 | self.inst = MixtureSystem( 'data' )
98 | for n in range(n_components):
99 | self.inst.addComponent( label = labels[n], mole_fraction = mole_fractions[n])
100 | self.inst.build()
101 |
102 | #Build using label and name
103 | self.inst = MixtureSystem( 'data2' )
104 | for n in range(n_components):
105 | self.inst.addComponent( name = names[n], label = labels[n], mole_fraction = mole_fractions[n])
106 | self.inst.build()
107 |
108 | #Build using label and smiles
109 | self.inst = MixtureSystem( 'data3' )
110 | for n in range(n_components):
111 | self.inst.addComponent( label = labels[n], smiles = smiles[n], mole_fraction = mole_fractions[n])
112 | self.inst.build()
113 |
114 | #Build using number rather than mole fraction
115 | self.inst = MixtureSystem( 'data4' )
116 | for n in range(n_components):
117 | self.inst.addComponent( label = labels[n], smiles = smiles[n], number = numbers[n])
118 | self.inst.build()
119 |
120 |
121 | #Build using solute_index and GROMACS (implying also AMBER)
122 | self.inst = MixtureSystem( 'data5' )
123 | for n in range(n_components):
124 | self.inst.addComponent( label = labels[n], smiles = smiles[n], number = numbers[n])
125 | self.inst.build( gromacs = True, solute_index = 2)
126 |
127 | #Build for AMBER only
128 | self.inst = MixtureSystem( 'data6' )
129 | for n in range(n_components):
130 | self.inst.addComponent( label = labels[n], smiles = smiles[n], number = numbers[n])
131 | self.inst.build( amber = True)
132 |
133 |
134 | #Make sure filling compound works
135 | self.inst = MixtureSystem( 'data7' )
136 | for n in range(n_components)[:-1]:
137 | self.inst.addComponent( label = labels[n], smiles = smiles[n],
138 | mole_fraction = mole_fractions[n])
139 | self.inst.addComponent('methane')
140 | self.inst.build( gromacs = True )
141 |
142 |
143 | #We are already testing the infinite dilution case for one of the compounds
144 |
145 |
146 | if __name__ =='__main__':
147 | unittest.main()
148 |
149 |
--------------------------------------------------------------------------------
|