View Single Page Version
LigParGen Forcefields
Importing data from the LigParGen service
15 minutes
Summary
As you will have already seen, the requirement of a full forcefield description for each molecule is one of the biggest differences between Dissolve and EPSR. That introduces a barrier in the set-up of your simulation, and while we provide a small selection of common or semi-specific forcefields (which is growing all the time as the code is applied to new problems) there will inevitably be many molecules for which these built-in forcefields aren’t suitable.
This example shows some basic usage of the LigParGen service offered by the Jorgensen group at Yale, from which you can extract a full forcefield for a target molecule, and bring it in to Dissolve.
Preparation
If, for some reason, the LigParGen service is offline we provide some test data here, and which is also included in the example data ( zip or tar.gz ).
- Caffeine XML: Caffeine_D892BE.xml
- Caffeine XYZ: Caffeine_D892BE.xyz
File ⇨ New
File ⇨ Save As…
Save your input file under a sensible name in same directory as the example data
Step 1 - SMILES Code
LigParGen needs to know which molecule you’re interested in - we can provide that information either by uploading the full atomic coordinates or by giving it a Simplified Molecular-Input Line-Entry System (SMILES) code. Finding out the SMILES code for your molecule is often just a matter of checking chemical information on a supplied website, or just performing a web search (e.g. for “caffeine smiles code”). So that you know what to expect, some example codes are:
Molecule | SMILES Code |
---|---|
Ethanol | OCC |
Hexane | CCCCCC |
Benzene | C1CCCCC1 |
Imidazole | c1c[nH]cn1 |
Caffeine | Cn1cnc2n(C)c(=O)n(C)c(=O)c12 |
Step 1
With your SMILES code in hand, you can go to the LigParGen service and enter it in “Step 1”.
Step 2
The service will convert your SMILES code into a full 3D molecule which can be further optimised if you wish by choosing a number of Molecule Optimisation Iterations if you wish. If your molecule is charged you can enter that here as well in order to get suitable atomic charges on the molecule (noting the caveats stated on the website).
When you’re ready, click the
button.Step 2 - LigParGen Output
Presuming that your molecule wasn’t too exotic and LigParGen managed to do its thing you’ll be presented with a page containing a lot of download options for the generated data. All Dissolve needs is the XML
data containing the forcefield terms (found under the OpenMM section) and the 3D XYZ
coordinates of the target molecule (found under the Tinker section). Download both of those individually, or alternatively grab the ZIP
file which contains all of the available data files.
Step 3 - Import into Dissolve
We’re now ready to get this data into Dissolve, so fire it up if you haven’t already and create a new, empty simulation.
Then:
Species ⇨ Import… ⇨ From LigParGen…
The wizard first asks you for the OpenMM (
XML
) andXYZ
data that LigParGen provided, so…
Set the OpenMM File to the xml file from LigParGen
If the corresponding xyz file was in the same location as the xml it will have been automatically selected by Dissolve. If not, select it now.
Press
to continue
The wizard will then show you the 3D structure as read in from the xyz file, just for you to confirm.
Assuming everything looks good you can press
to continue.
You’ll then be presented with a breakdown of all the forcefield terms that have been read in from the xml file. While it isn’t necessary to review all of these, they are given to show you what has been found and to highlight any obvious failings of the process (e.g. zero bond terms etc.). Take a look through the data if you like.
Press
to continue.
The wizard then focuses specifically on how to introduce the terms defined in the LigParGen data. It’s often the case that, except for very small molecules, there will exist atom types or intramolecular interactions (e.g. bond or angle terms) that use identical parameters. On those occasions it’s good to fold identical atom types into one, and reduce the intramolecular parameter sets into terms into master terms - we like master terms in Dissolve! Those options are enabled here by default.
Press
to continue.
The final page of the wizard is for handling creation of a forcefield object that can be applied to other species, but at present (as well as here) we don’t use it.
click
to exit the wizard.
Step 4 - Results
Now that the wizard has completed you’ll see that the process has yielded a species with a full forcefield assignment, ready to do your simulated bidding. That was easy, wasn’t it?
Some things to consider / think about when using this approach:
- Many simulators (including myself) have a lot of faith in the underlying parameter set (OPLS-AA) used by LigParGen, so it should give usable results for a great many molecules. However, you may find systems that do not work, so don’t treat it as a guarantee.
- Charges are assigned to species atoms, not atom types, so you may need to ensure that this particular source of charges is selected / forced in the Forcefield .
- If you use LigParGen, please cite it as it’s a fantastic resource. The necessary references are produced below for convenience.
References:
-
“Potential energy functions for atomic-level simulations of water and organic and biomolecular systems.”, W. L. Jorgensen and J. Tirado-Rives, Proc. Nat. Acad. Sci. USA 102, 6665-6670 (2005).
-
“1.14*CM1A-LBCC: Localized Bond-Charge Corrected CM1A Charges for Condensed-Phase Simulations.”, L. S. Dodda, J. Z. Vilseck, J. Tirado-Rives, and W. L. Jorgensen, Phys. Chem. B 121 (15), 3864-3870 (2017).
-
“LigParGen web server: An automatic OPLS-AA parameter generator for organic ligands.”, L. S. Dodda, I. Cabeza de Vaca, J. Tirado-Rives, and W. L. Jorgensen, Nucleic Acids Research 45 (W1), W331-W336 (2017).
Exercises
Follow-on exercises:
-
- Cook It - Set up a single-molecule configuration and watch your molecule live.
Exercise 1 - Cook It
Nice to check that your new forcefield lets your favourite molecule move in fabulous ways, right? So why don’t you set up a “gas phase” calculation of a single copy of your molecule and run some molecular dynamics on it to see it dance?
Tips:
- Your configuration will need to contain a single molecule at a low density (maybe 1.0e-4 atoms Å-3 or lower) in order to get a box with enough space to make the simulation viable.
- No point in doing any Monte Carlo evolution, unless you really want to.
- Make sure you’re looking at the configuration viewer when the simulation is running!