OPLS-AA Parameter Generator

LigParGen New: AMBER

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, AMBER, 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.

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.

  • Single ions and noble-gas atoms now run

    A single atom or ion, such as Na+, Cl- or argon, was refused with “LigParGen parameterizes molecules, not single atoms or monatomic ions”. Those that BOSS's oplsaa.par has parameters for now run with exactly those parameters: He, Ne, Ar, Kr, Xe; F-, Cl-, Br-, I-; Li+, Na+, K+, Rb+, Cs+; Mg2+, Ca2+, Sr2+, Ba2+; and La3+, Nd3+, Eu3+, Gd3+. The net charge now follows a charged structure by itself: type [Na+] and it is set to +1. An ion BOSS has no parameters for, such as Zn2+, is still refused, with the list of those that run.

  • Structures written by BOSS failed with “BOSS did not finish”

    Some structure files written by BOSS from its own Z-matrices, such as many molecules from BOSS's library, failed with “BOSS did not finish, so there are no parameters to read. Its last message was: (its output was empty)”. These files put one atom exactly where LigParGen places one of its three dummy atoms. An earlier fix moved that atom only when it came first, but LigParGen reorders the atoms, so it was often second or later. Any atom on a dummy atom's position is now moved off it. All 140 of BOSS's 1,625 library molecules that failed this way now get parameters, with the same atom types as BOSS's own tools, and your files keep your structure's coordinates.

  • A ring turned away from your structure's coordinates

    When an atom of the structure lay on the line through two of the helper (dummy) atoms the Z-matrix is built from, as tetrahydropyran's oxygen does in files written by BOSS, the molecule still built, but with part of it turned about that line, up to 2 Å from your coordinates. Such atoms are now moved clear first, like those sitting exactly on a dummy atom.

  • DESMOND: files that could not be read

    In the DESMOND .cms file, a coordinate below −10 Å ran into the one before it (“-2.9190-10.0660”), and the file could not be read. That happened for 35 of the 1,625 molecules in BOSS's library. Coordinates are now separated.

  • OpenMM: improper torsions at shapes other than the one built

    OpenMM's force-field file matched improper torsions to atoms in its own order, not BOSS's. At the molecule's own shape the energy was right, but at any other shape, such as during a simulation, the improper energy was wrong. The OpenMM loader in the download now applies BOSS's impropers, charges and Lennard-Jones parameters atom by atom.

  • The same charges in every program's files

    GROMACS, AMBER, CHARMM, X-PLOR, TINKER, Q and PQR wrote partial charges to 4 decimals and OpenMM to 6, so the programs disagreed by up to 0.06 kcal/mol on the same molecule. Every format now carries BOSS's own 6 decimals, and GROMACS's torsion constants have 5 decimals instead of 3, which reached 0.11 kcal/mol on long chains. The programs now agree within 0.03 kcal/mol.

  • Nitriles, alkynes, azides, allenes and CO2 lost their straight angle

    Since the 26 September fix for nitriles and alkynes, the 180° angle of such a group (C–C≡N, C≡C–H, N=N=N, C=C=C, O=C=O) was missing from every program's files. TINKER and NAMD stopped with “Undefined Angle” or “UNABLE TO FIND ANGLE PARAMETERS”, and the other programs let the group bend freely. The angle is back, with OPLS-AA's own parameters. AMBER's sander reports about 0.3 kcal/mol more per straight angle than OpenMM reading the same files; that comes from sander itself, which can't measure an angle very close to 180°.

  • X-PLOR: molecules with Cl or Br, large molecules, and the nonbonded settings

    X-PLOR reads atom names in a topology in capitals but takes a PDB's names as written, so any molecule with Cl or Br stopped with “atom … not found in molecular structure”. The download now includes its own .xplor.pdb with the names in capitals. Large molecules stopped with “exceeded MAXCP (PARAM) parameter --> recompile program”, or with “duplication of bond” above 100 atoms, because X-PLOR keeps only four characters of a type name. Zero torsion terms are no longer written, and the type names now fit. Finally, X-PLOR-NIH refused the nonbonded settings given in the .param header, and its default shifted electrostatics changed the energy. The header now gives settings X-PLOR accepts, with plain Coulomb. Across BOSS's library, X-PLOR now agrees with OpenMM within 0.03 kcal/mol on all but very large or strained molecules (within 0.02% of the energy).

  • LAMMPS: “Invalid data file section” for small molecules, atoms outside the box for long ones

    For a molecule with no torsions, such as methane, ammonia or CO2, LAMMPS stopped with “Invalid data file section: Dihedrals”, because the data file had an empty section. Long chains, such as a 50-carbon alkane, stopped with “Did not assign all atoms correctly”, because the box was always 50 Å wide. Empty sections are no longer written, and the box now fits the molecule. LAMMPS now runs every molecule in BOSS's library and agrees with OpenMM.

  • TINKER: improper torsions left out, and molecules over 100 atoms refused

    TINKER builds an improper torsion only when its central atom is the third on the imptors line. LigParGen wrote it second, so TINKER silently left out every improper torsion: 1.3 kcal/mol on carvone, 7.7 on camphor. The fourth Fourier term of each torsion was also left off (0.33 kcal/mol on atorvastatin), and a molecule of more than 100 atoms stopped with “Undefined Atom Types”. All three are fixed. Across BOSS's library of 1,625 molecules, TINKER now agrees with GROMACS and OpenMM to within 0.03 kcal/mol.

  • Symmetric atoms with different charges, such as urea's two nitrogens

    Atoms that are equivalent by symmetry could get different partial charges: urea's two nitrogens came out as −1.364 and −1.385, and guanidinium's three nitrogens differed by up to 0.45. LigParGen computed the CM1A charges once, on the starting 3D shape, and a slightly lopsided shape gave lopsided charges. The charges now come from BOSS's own charge cycle (CM1A charges, then an OPLS-AA optimization, three times), as the earlier LigParGen version did: urea's nitrogens are both −1.327, and equivalent atoms get the same charge. Your files keep your structure's own coordinates, and atom types, bonds, angles and torsions are unchanged. Charges for other molecules shift a little too, since they are now computed on BOSS's optimized shape. Runs take longer, a minute or two for the largest molecules, and the page now waits for them.

  • Structure files written by BOSS from its own Z-matrices

    A structure file whose first atom sits exactly at x = 1, y = 1, z = 0 (the frame BOSS uses when it writes out the Z-matrices of its own molecule library) gave BOSS a bond of length zero: that atom landed on one of the helper (dummy) atoms the Z-matrix is built from. The run ended with “LigParGen timed out — try a smaller molecule or fewer optimizations”, even for a molecule as small as aspirin. The atom is now moved clear first, every output file keeps your coordinates, and such files run in seconds.

  • Files over 1 MB said “Couldn’t reach the parameter service”

    A structure file larger than 1 MB, such as a supercell of a framework or crystal, was refused before it reached LigParGen, but the page showed “Couldn’t reach the parameter service” instead of the reason. Such a file is now stopped as soon as you choose it, with its size, the 1 MB limit, and how to parameterize a fragment instead: LigParGen handles one molecule of up to about 110 non-hydrogen atoms.

  • “Try a fresh 3D shape” keeps the molecule from a PDB file

    After an uploaded file failed, the button “Try a fresh 3D shape” rebuilt the molecule from the file's atoms and bonds. A PDB file does not say which bonds are double or triple, so the rebuild read every bond as single and added hydrogens to fill them: acetonitrile came back as ethylamine. The bond types are now worked out from the hydrogens the file already has, no atoms are added, and the rebuild is refused if the molecule would change. No one had used the button on a PDB file before this was fixed.

  • “ERROR in atom order” for some molecules with a triple bond

    Some molecules, most often with a terminal alkyne, stopped with “ERROR in atom order”, depending on the 3D shape: the same SMILES could fail several times and then work. After putting the atoms in order, LigParGen worked out the bonds again from the distances between atoms, and for some shapes it missed a bond that was there. It now uses the molecule's own bonds whenever the two disagree; molecules where they agreed come out exactly as before.

  • Molecules drawn exactly straight, such as acetonitrile from a drawing program

    A structure file with three atoms on an exactly straight line — C–C≡N at 180°, as drawing programs write a nitrile or an alkyne — could end with “LigParGen stopped without producing parameters for this molecule … BOSS did not finish”. With the line exactly straight, the hydrogens on the end carbon had no direction to be placed from, so all three were put on the same spot and BOSS stopped. Such a line is now bent by a tenth of a degree (a few thousandths of an ångström) before the run, and the molecule runs; its charges match the same molecule built in an ordinary 3D shape. Allene, which failed the same way, now runs too. The 26 September fix for nitriles and alkynes covered lines that were nearly straight, not exactly.

  • Two-atom molecules uploaded as a file are explained, not failed

    A two-atom molecule such as N₂ uploaded as a PDB file ended with “LigParGen stopped without producing parameters for this molecule, for a reason it does not explain”, however often it was tried. Typed as SMILES it was already turned away with the reason; a file slipped past because the check first filled in missing hydrogens, which made two bonded nitrogens look like hydrazine. A file with two atoms and no carbon — N₂, O₂, Cl₂, HCl and the like — now gets the same explanation before the run: LigParGen's OPLS-AA atom types are for atoms in larger molecules, and a model made for small gas molecules, such as TraPPE's for N₂ and O₂, is the one to use.

  • A typed molecule sent to the lab now reaches us

    “Send this molecule to the lab” attached the SMILES as a file our mail labelled a multimedia file (.smi is also the extension of one), and it arrived without the molecule. It is now sent as text, and written into the message as well. If you sent us a typed molecule before 23 October, please send it again.

  • Large typed molecules: told before the run, not blamed on a file

    A typed SMILES of more than about 152 atoms, run with optimization rounds, could end with “The structure could not be read (RDKit could not interpret the file)” — about a file nobody had uploaded. Two things lay behind it: building the 3D shape from the SMILES sometimes failed, and the molecule was in any case too large for BOSS's geometry optimizer, which holds at most 450 variables. The 3D shape is now built with a second RDKit method before falling back to Open Babel; a shape that still cannot be built is reported as a problem with the SMILES; and a molecule too large to optimize is told so before the run starts, with what to do: set “Optimization rounds” to 0, and the parameters are produced from the 3D shape as built.

  • Very large typed molecules no longer time out

    For some large molecules typed as SMILES, RDKit's standard method for building the 3D shape took minutes, so the run was stopped with “LigParGen timed out — try a smaller molecule or fewer optimizations” even with 0 optimization rounds. When that method has not finished within 15 seconds, the shape is now built by a faster one (plain distance geometry, then a short MMFF clean-up), which keeps the E/Z double bonds and stereocentres your SMILES specifies, and the run continues from it. Molecules the standard method handles in time are built exactly as before.

  • LAMMPS: the input script sets the improper style, and the box follows the molecule

    The LAMMPS input script set the pair, bond, angle and dihedral styles but not the improper one, so for any molecule with impropers — an aromatic ring, a carbonyl, an amide — LAMMPS stopped with “Must define improper_style before Improper Coeffs”. The data file writes impropers in cvff form, which is OPLS's improper term exactly, and the script now says improper_style cvff. Its fixed box walls (boundary f f f) also lost atoms when a larger molecule was minimised (“Angle atoms … missing”); the box now follows the molecule (boundary m m m). The parameters themselves were always right: checked on nine molecules, LAMMPS and GROMACS agree to 0.015 kcal/mol, and a short constant-energy run keeps the total energy steady. If you have older files, add improper_style cvff after the dihedral_style line and change boundary f f f to boundary m m m.

  • 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.

44 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

Dodda, L. S.; Vilseck, J. Z.; Tirado-Rives, J.; Jorgensen, W. L. 1.14*CM1A-LBCC: Localized Bond-Charge Corrected CM1A Charges for Condensed-Phase Simulations. J. Phys. Chem. B 2017, 121, 3864–3870. doi:10.1021/acs.jpcb.7b00272 (for 1.14*CM1A-LBCC charges)

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