OPLS-AA Parameter Generator

LigParGen

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.

What it is

Force-field parameters for any small molecule.

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.

Which tool do I need?

Four tools to get your molecule ready.

BOSS Quick StartTIP3P, TIP4P & TIP5POrganic Solvents LigParGen this page
It answersWhat 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 getThe most stable shape, hydration free energy, dipole, surface areaYour molecule in thousands of water molecules, with ions, relaxed by BOSSYour molecule in 512 solvent molecules, relaxed by BOSS Force-field parameters
Files forDocking, quantum chemistry, viewingGROMACS, OpenMM, LAMMPS, AMBER, BOSS — ready to runBOSS, GROMACS, OpenMM, LAMMPS — ready to run GROMACS, OpenMM, CHARMM and 7 more
SolventContinuum water (GB/SA)Real water moleculesSeven organic solventsNone
TimeSeconds to a few minutesA few minutesA few minutesA 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.

Generate parameters

Your molecule.

Structure

Enter a SMILES string. Explicit hydrogens are added automatically.

Charge model

LBCC is for neutral molecules. For an ion, choose 1.14*CM1A — the 1.14 scaling is automatically dropped for charged molecules.

Rounds of geometry optimization before charges are computed.

Recently fixed

Problems fixed, now working.

  • OpenMM: the files now build a system, with the right energies

    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.

  • LAMMPS: the settings OPLS needs now travel with the data file

    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.

  • CHARMM and NAMD: the residue name, and the combination rule

    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.

  • X-PLOR: torsions, 1-4 charges and the combination rule

    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.

  • Tinker: it no longer stops to ask for a parameter file

    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.

  • GROMACS coordinates at the same precision as the PDB

    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.

  • PDB files now end with an END record

    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.

  • Large molecules failed with a Python error instead of an explanation

    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.

  • Atom names that start with a digit (1H10, 2H10)

    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.

  • Salts made only of ions (LiCl, NaCl)

    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.

  • Molecules with more than 250 atoms

    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.

  • Two-atom molecules (N2, O2, CO, HCl)

    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.

  • SMILES with * (open attachment points)

    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.

  • MOL/SDF files saved without hydrogens

    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.

  • Boron clusters (boranes and carboranes)

    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.

  • 2D drawings saved as MOL/SDF

    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.

  • Thiophene oligomers with alkyl side chains

    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.

  • Files holding a whole simulation box

    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.

  • Perchlorate and other hypervalent halogens

    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.

  • Amino acids read from PDB files

    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.

  • Every problem with a structure, before running

    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.

  • Nitriles and alkynes

    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 written with HETATM records

    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.

Used worldwide

A tool the community relies on.

—+

citations in the research literature since 2017

—countries publishing
—most active
Fewer More

Citation count from Google Scholar, October 2026. Map from the peer-reviewed research citing LigParGen (doi:10.1093/nar/gkx312; via OpenAlex).

How to cite

If you use LigParGen, please cite.

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