chemparam - an automated interface for calling forcesolve using Gromacs and CHARMM-style interaction energy forms.
Although it's been available since 2008 as the first general-purpose force matching software ever, few research groups have developed methods which use it. Forcesolve is blindingly fast, rock solid, and can fit arbitrary generalized additive forms.
This code uses OpenBabel to read in molecules and assign
initial chemical atom types, sample molecular conformers,
then (optionally) libnwchem to compute forces. Next,
it runs forcesolve to match parameters to the best of the
fitting form's ability and outputs them in both Gromacs itp
and CHARMM prm
formats.
- Can fit pairwise LJ terms or assign from an existing parameter file.
- Can either fit charges or leave them alone.
- Can include Urey-Bradley terms.
- Can fit special 1-4 terms or assign the same LJ terms everywhere.
- Can handle special 1-4 LJ or charge scaling.
- Caveat: Cannot fit LJ using a special 1-4 scale.
- Python 2 or 3
- OpenBabel 2.3
- requires pybel option:
apt-get install python-openbabel
- requires pybel option:
- ForceSolve
- Copy it to any site-packages, there's no C to compile there
- Optional: LibNWChem
The parameterize.sh
script should be a one-shot wonder. If you didn't install libnwchem, your only option is theory=mmff. Try it out on your favorite mol
file while enjoying as many handfuls of popcorn as possible (but you probably won't get past 3).
Most of the work is done by match.py
, which has self-explanatory long-style commandline options. No extra assembly required, no BS.
Pull requests and bug reports are welcome!
- David M. Rogers PredictiveStatMech
- This code was made possible by the persistence of Phillip S. Hudson and H. Lee Woodcock.
Please cite ChemParam as:
David M. Rogers, ChemParam (2018) https://github.com/frobnitzem/chemparam.