An automatic generator of OPLS-AA force-field parameters for organic molecules and ligands — bond, angle, dihedral and Lennard-Jones terms with 1.14*CM1A or 1.14*CM1A-LBCC partial charges, ready for the major molecular-dynamics packages.
Powered by BOSS — the group's Monte Carlo engine does the work behind this form.
Before you can simulate a small molecule — a drug candidate, a ligand, a solvent — a computer needs its full force field: the numbers describing how each of its atoms bonds, bends, twists, and interacts with everything around it. Working those out by hand is slow and easy to get wrong.
LigParGen puts that job one paste away. Give it a molecule — as a SMILES string or a structure file — and it hands the work to BOSS, the group’s simulation engine, which assigns the OPLS-AA atom types and computes the CM1A partial charges. LigParGen then writes what comes back out as a complete parameter set — every bonded term included — formatted for GROMACS, OpenMM, CHARMM and seven more packages.
That convenience is why LigParGen is cited in well over a thousand studies — it turns a fiddly, error-prone setup step into a few seconds.
| BOSS Quick Start | TIP3P, TIP4P & TIP5P | Organic Solvents | LigParGen this page | |
|---|---|---|---|---|
| It answers | What shape does my molecule take, and how does it behave in water? | How do I get my molecule into a box of water, ready to simulate? | How do I get my molecule into an organic solvent? | What numbers does my MD program need for this molecule? |
| You get | The most stable shape, hydration free energy, dipole, surface area | Your molecule in thousands of water molecules, with ions, relaxed by BOSS | Your molecule in 512 solvent molecules, relaxed by BOSS | Force-field parameters |
| Files for | Docking, quantum chemistry, viewing | GROMACS, OpenMM, LAMMPS, AMBER, BOSS — ready to run | BOSS, GROMACS, OpenMM, LAMMPS — ready to run | GROMACS, OpenMM, CHARMM and 7 more |
| Solvent | Continuum water (GB/SA) | Real water molecules | Seven organic solvents | None |
| Time | Seconds to a few minutes | A few minutes | A few minutes | A few seconds |
Find your molecule’s best shape with BOSS Quick Start → put it in water on TIP3P, TIP4P & TIP5P, or in another solvent on Organic Solvents — or take only its force field here.
The PDB we send had no CONECT records, so OpenMM could not match the residue and ForceField.createSystem stopped with “no bonds between its atoms”. It now carries them. Separately, OpenMM's force-field format cannot express the geometric combination rule OPLS is parameterised with, so loading the XML on its own gives energies about 0.5 kcal/mol out on a molecule the size of aspirin, and more in solution. Every run now also includes a .py file that builds the system with the right rule — use it, and OpenMM agrees with GROMACS.
The data file was right, but we sent nothing to say which conventions it was written with, and two of LAMMPS's defaults are wrong for OPLS — its special_bonds removes the 1-4 interactions OPLS keeps at half strength, which on ethanol is 20.9 kcal/mol where the answer is 9.5. Every run now includes a .in file with the units, styles, geometric mixing and 1-4 scaling. Run it as it stands and it prints the energy.
The topology declared RESI MOL while the PDB beside it used the name you asked for, so psfgen could not find the residue. It now uses your name in both. And NAMD mixes Lennard-Jones radii arithmetically whatever the NONBONDED line asks for, which put the van der Waals energy out by about 10%; the OPLS rule is now written out as NBFIX entries, which NAMD honours. NAMD and GROMACS now agree to 0.0001 kcal/mol.
Three faults, all in what X-PLOR was told rather than in the parameters. The multiplicity of a torsion has to be declared in the topology as well as the parameter file, or X-PLOR reads the first of its four Fourier terms and drops the rest — torsion energy −0.3 kcal/mol where it should be 2.8. The nonbonded block we documented is not recognised outside a parameter statement, so the 1-4 electrostatic scaling was silently ignored, worth 9 kcal/mol on ethanol. And X-PLOR has no setting for the geometric combination rule, so it is now written out as NBFIX entries, one per pair of atom types.
Every OPLS convention was already in the key file, but nothing said so, and Tinker stopped before doing anything to ask for a parameter file that does not exist — with no terminal to press Enter in, it failed outright. One line, parameters NONE, says the parameters are there.
The .gro was written with three decimals in nanometres, ten times coarser than the three decimals in ångström of the PDB in the same download. The same molecule therefore reached GROMACS at a slightly different shape from every other program — 0.7 kcal/mol on ethanol, which is rounding and not the force field. It now carries six decimals, which GROMACS reads and which matches the PDB.
The CHARMM and Q coordinate files stopped after the last atom. A strict reader keeps going: X-PLOR's coordinate statement carried on through the file and swallowed the commands after it.
A molecule above about 152 atoms cannot be geometry-optimized by BOSS: its optimizer holds at most 450 internal coordinates, a limit built into the program. BOSS said so in its own output and then stopped, but nothing read that file, so the run ended with a bare Python message (“AttributeError: 'NoneType' object has no attribute 'group'”) that looked like a problem with your structure. The reason is now reported instead, with the numbers for your molecule and what to do: run it again with 0 optimization rounds and the parameters are produced from the geometry you supplied. Nothing else about large molecules has changed — only optimization has this ceiling.
A ligand taken from a PDB file often names its hydrogens 1H10, 2H10, 3H10. We kept those names in the files we send back, but GROMACS's pdb2gmx moves a leading digit to the end (H101, H102, H103) when it reads the coordinates, so the topology no longer matched them and gmx grompp stopped with “non-matching atom names”. Names starting with a digit are now rotated the same way before anything is written, so every file agrees. Names that already start with a letter, including every name LigParGen generates itself, are unchanged.
A structure with nothing but monatomic ions, such as lithium chloride, passed the check and then stopped with an error that didn't explain why. It is now flagged before the run: LigParGen parameterizes molecules, so use your force field's standard ion parameters for each ion.
BOSS's charge calculation handles at most 250 atoms, hydrogens included. Larger molecules, such as long alkane chains (C83H168 and up), passed the size check and then stopped with “'NoneType' object has no attribute 'group'”. They are now flagged before the run, with how to split the molecule into fragments that fit.
Molecules of only two atoms stopped with “IndexError: list index out of range”. OPLS-AA atom types are not built for them: when we made them run, no bond was written and CO's carbon was typed as an alkane carbon. They are now flagged before the run, with what to use instead: a model made for small gas molecules (such as TraPPE's for N2 and O2), or Cl- and Br- ion parameters for HCl and HBr in water.
A SMILES copied from a polymer repeat unit, such as *CC*, has open ends marked *, and the run stopped with an error. It is now flagged before the run, with how to fix it: cap each * with a hydrogen or a methyl group (*CC* becomes CCCC), or for a polymer use a capped trimer.
Structures saved from a drawing program with their hydrogens left implicit stopped with an error ending in “'NoneType' object has no attribute 'group'”. They are now flagged before the run, with how to fix it: enter the molecule as SMILES or save it with explicit hydrogens.
Borane and carborane cages were rejected with “This file could not be read”, which suggested re-exporting the file might help. They are now recognised and the page explains why LigParGen cannot parameterize them: cage atoms are bonded to five or six neighbours, which OPLS-AA atom types do not describe.
Flat 2D structures, such as PubChem's 2D SDF or a drawing program's export, can place unbonded atoms closer together than a bond. LigParGen then joins them and the run stopped with “'NoneType' object has no attribute 'group'” or “ERROR in atom order”. These files are now flagged before the run: upload a 3D structure (PubChem's 3D conformer SDF works) or enter the molecule as SMILES.
Some larger molecules, such as alkylthiophene oligomers, stopped with “invalid literal for int() with base 10: 'are'” because a note BOSS writes among its torsion parameters was read as data. They now run normally.
A file with many molecules, such as a box built with Packmol, was rejected with “This file could not be read”. The page now says how many separate molecules the file holds and to submit one molecule, or a capped repeat unit for a polymer.
Ions such as perchlorate, chlorate, bromate and periodate stopped with an error ending in “has no attribute 'GetBonds'”. OPLS-AA has no atom types for a halogen with more than one bond, so they are now refused before the run with a clear message and a pointer to published ion parameters.
Neutral amino acids labelled as standard residues (MET, GLY, …) with the acid hydrogen on the atom named O stopped with an error ending in “has no attribute 'GetBonds'”. They now run normally.
Files with more than one molecule, atoms missing a bonded partner, an odd electron count, elements BOSS cannot type, or too many atoms are now flagged under the file in about a second, all at once and with how to fix each, instead of failing after the run.
Molecules with a linear group, such as benzonitrile, acetonitrile or phenylacetylene, failed with two or more optimization rounds, and a structure drawn with an exactly 180° angle could run until it timed out. They now run normally.
PDB files that use HETATM rather than ATOM records are now accepted, and a run that would have returned all-zero charges is stopped with an explanation.
23 in all — scroll inside the box
If your problem is listed here, please run it again — whether the run failed or finished: several of these gave files that ran, with the wrong numbers.
Citation count from Google Scholar, October 2026. Map from the peer-reviewed research citing LigParGen (doi:10.1093/nar/gkx312; via OpenAlex).
Dodda, L. S.; Cabeza de Vaca, I.; Tirado-Rives, J.; Jorgensen, W. L. LigParGen Web Server: An Automatic OPLS-AA Parameter Generator for Organic Ligands. Nucleic Acids Res. 2017, 45, W331–W336. doi:10.1093/nar/gkx312
Jorgensen, W. L.; Tirado-Rives, J. Molecular Modeling of Organic and Biomolecular Systems Using BOSS and MCPRO. J. Comput. Chem. 2005, 26, 1689–1700. doi:10.1002/jcc.20297