Moltemplate

Latest version: v2.22.3

Safety actively analyzes 723177 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 13

2.20.23

Added the "-report_duplicates" which warns the user when multiple bonds, angles, dihedrals, or impropers were automatically generated for the same set of atoms. This kind of ambiguity occurs frequently. This is especially important for the upcoming 2023 version of the OPLSAA force-field, which contains many duplicate or ambiguous bonded interaction definitions.

This feature makes it possible for users to find out when other possible bonded interactions exist. If so, they can override the default choice manually.

This feature is probably not very useful unless you are using the 2023 version of OPLSAA force field (which has not yet been released).

2.20.22

Summary
For OPLSAA, the strength of the improper forces was corrected.
Previously simulations prepared with the OPLSAA force field, had improper forces which were too weak by a factor of 2.
After this correction, those improper forces have been strengthened to the correct value.

The impact of this change is expected to be small. *(See below.)*


How this happened
All of this time, I have been relying on the [TINKER version of the OPLS parameters](https://dasher.wustl.edu/tinker/distribution/params/oplsaa.prm). Apparently I have been misinterpreting the numbers in the improper section of that file.


Impact
In OPLSAA, improper forces are only used to impose planar constraints. The strength of these interactions was already quite strong. Strengthening them by a factor of 2 only serves to make these atoms a little bit more co-planar than they were before. So hopefully this correction should not have a large effect on the shape or flexibility of a molecule.

Most papers describing force fields (including OPLS) omit a detailed explanation of improper forces (and their symmetries).
I apologize for this mistake, but there may be additional errors in the way improper interactions are calculated. *(See below.)*


Remaining sources of error: Symmetry

In the current implementation of OPLSAA for moltemplate, **multiple improper interactions** are generated for atoms bonded in a Y-shape. *(For example, ethylene contains 6 improper interactions, even though the Y-shape only appears twice. See [here](https://github.com/jewettaij/moltemplate/blob/master/moltemplate/nbody_alt_symmetry/opls_imp.py) for details.)* That's because the improper angle used to calculate the forces depends on the order of these atoms. The improper interaction is calculated 3 times using all 3 (=3!/2) different ways of ordering the 3 outer atoms.

It is not clear whether the original authors of the OPLS force fields intended all 3 of these (somewhat redundant) interactions to be calculated, or if the strength of these interactions should have been weakened (by 1/3) accordingly.

***(If anyone knows the answer, please contact me. Currently moltemplate calculates all 3 and does not weaken these interactions.)***



Contributors

I'd like to thank Domenico Marson who found the new parameters used by BOSS and explained them to me.
He has been working on getting the 2023 version of OPLSAA converted to moltemplate format. That version will hopefully be available in moltemplate shortly. (See 104 for details.)

2.20.21

- The option -overlay-all has been redefined to have a consistent behaviour on different OSs.
- Cosmetic changes to the cleaning of processed files: removing head tab spaces.

(Credit: Otello Roscioni)

2.20.20

Change of philosophy: moltemplate now handles the case where atoms are not created. It requires the option -nocheck to render the input deck successfully. This way, moltemplate can create valid input decks for more heterogeneous tasks such as rerun, create_atoms etc.
I verified that the program produces a valid input deck for standard usage, with the "new MOLECULE" command invoked.

This change generalizes the kinds of files that moltemplate.sh can create.

Thanks to Otello Roscioni (hothello) for contributing this change!

2.20.19

Fixed bug 86 which prevented cleanup_moltemplate.sh from working whenever "moltemplate" was installed using pip or pip3.

*(This bug did not effect the small number of users like me who [install moltemplate by other means](https://github.com/jewettaij/moltemplate/blob/master/INSTALL.md#installation-method-2-editing-bashrc).)*

All credit belongs to github user **PhnRvTjN** (Phani Ravi Teja Nunna) for solving the bug, and to github user **yurivict** for reporting the bug!

2.20.17

I replaced

!/usr/bin/env python

with

!/usr/bin/env python3

...everywhere.

This means users are no longer required to use "python" instead of "python3" when trying to run .py executable files directly from the shell (such as mol22lt.py, ltemplify.py, and genpoly_lt.py). This will enable most users to be able to invoke these python programs directly by their names, without having to predicate them with "python3".

Comment:
I'm sorry I didn't make this change earlier. I've been using anaconda python for a long time, and anaconda automatically adds a link from "python3" to "python", so that users can type "python" instead of "python3". I didn't realize that for most users, "python" isn't even defined.

Page 2 of 13

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.