parameterize is a tool to obtain force field parameters for new molecules easily and efficiently.

Commonly used AMBER and CHARMM force fields contain parameters for biomolecules (proteins, nucleotides, saccharides, lipids, etc.), but lack parameters for other biologically relevant molecules (co-factors, drugs, etc.).

GAFF and CGenFF address this by using empirical rules and pre-computed data sets to derive parameters for arbitrary organic molecules. However, these parameters are not guaranteed to be transferable to all possible chemical environments.

parameterize improves the quality of the parameters by using QM data, i.e. refitting ESP charges and rotatable dihedral angle parameters. It fundamentally solves the problem of transferability.



  • Supported force fields:
    • AMBER
    • CHARMM
  • Atom typing and initial parameters:
    • GAFF and GAFF2 (for AMBER)
    • CGenFF (for CHARMM)
  • Supported QM codes:
    • Psi4
    • Gaussian (experimental)
  • Atomic charges:
    • Fitted to reproduce the electrostatic potential (ESP) of QM
    • Selected charges can be fixed during the fitting
  • Dihedral angle parameters:
    • Automatic rotatable dihedral detection
    • Automatic identical dihedral detection
    • Dihedral scanning with and without QM structure optimization
    • Parameter fitting to reproduce QM energies
  • QM job execution:
    • Local machine
    • LSF/Slurm queuing systems

parameterize comes with HTMD. It takes a MOL2 file, parameterizes it, and outputs force field files in CHARMM and AMBER formats. There are many options that are shown in detail below. The structure inside the output directory (controlled by the --output flag) is the following:

├── dihedral-opt
├── esp
├── minimize
└── parameters

The output inside dihedral-opt/, esp/, and minimize/ is related with the QM calculations performed during the parameterization of the molecule and work as check-points for the different steps of the parameterization process. The parameters is where the relevant outputs are written with following format: parameters/<force-field>/<theory>-<basis-set>-<vacuum/water>/. Inside this directory there are the force-field parameter files, as well as a plots/ directory, where one can check the optimization carried on by the tool.


Acellera small molecule parameterization tool

usage: parameterize [-h] [-c CHARGE] [-l] [--rtf-prm <filename> <filename>]
                    [-ff {GAFF,GAFF2,CGENFF} [{GAFF,GAFF2,CGENFF} ...]]
                    [--fix-charge <atom name> [<atom name> ...]]
                    [-d A1-A2-A3-A4 [A1-A2-A3-A4 ...]]
                    [--code {Psi4,Gaussian}] [--theory {HF,B3LYP}]
                    [--basis {6-31G*,6-31+G*,cc-pVDZ,aug-cc-pVDZ}]
                    [--environment {vacuum,PCM}] [--no-min] [--no-esp]
                    [--no-dihed] [--no-dihed-opt]
                    [-q {local,Slurm,LSF,AceCloud}] [-n NCPUS] [-m MEMORY]
                    [-o OUTDIR] [--seed SEED] [--version]

Positional Arguments

filename Molecule file in MOL2 format

Named Arguments

-c, --charge Total charge of the molecule (default: sum of partial charges)
-l, --list List parameterizable dihedral angles
--rtf-prm CHARMM RTF and PRM files
-ff, --forcefield

Possible choices: GAFF, GAFF2, CGENFF

Inital force field guess (default: [‘GAFF2’])

--fix-charge Fix atomic charge during charge fitting (default: none)
-d, --dihedral Select dihedral angle to parameterize (default: all parameterizable dihedral angles)

Possible choices: Psi4, Gaussian

QM code (default: “Psi4”)


Possible choices: HF, B3LYP

QM level of theory (default: “B3LYP”)


Possible choices: 6-31G*, 6-31+G*, cc-pVDZ, aug-cc-pVDZ

QM basis set (default: “cc-pVDZ”)


Possible choices: vacuum, PCM

QM environment (default: “vacuum”)

--no-min Do not perform QM structure minimization
--no-esp Do not perform QM charge fitting
--no-dihed Do not perform QM scanning of dihedral angles
--no-dihed-opt Do not perform QM structure optimisation when scanning dihedral angles
-q, --queue

Possible choices: local, Slurm, LSF, AceCloud

QM queue (default: “local”)

-n, --ncpus Number of CPU per QM job (default: queue defaults)
-m, --memory Maximum amount of memory in MB to use.
-o, --outdir Output directory (default: “./”)
--seed Random number generator seed (default: 20170920)
--version show program’s version number and exit