parameterize is a molecular force field parameterization tool.

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

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


parameterize can be installed with Conda package manager:

  1. Install Conda, if not yet available. We recommend to install the latest Miniconda following these instructions.

  2. Install parameterize into an active (default) Conda environment:

    $ conda install -c acellera -c psi4 -c conda-forge parameterize

Alternative one, can install parameterize into a separe Conda environment:

$ conda create -n param_env -c acellera -c psi4 -c conda-forge parameterize
$ conda activate param_env


Acellera small molecule parameterization tool

usage: parameterize [-h] [-c CHARGE] [-l] [--rtf-prm <filename> <filename>]
                    [-ff {CGenFF_2b6,GAFF,GAFF2}]
                    [--fix-charge <atom name> [<atom name> ...]]
                    [-d A1-A2-A3-A4 [A1-A2-A3-A4 ...]]
                    [--code {Psi4,Gaussian}] [--theory {HF,B3LYP,wB97X-D}]
                    [--basis {6-31G*,6-31+G*,6-311G**,6-311++G**,cc-pVDZ,aug-cc-pVDZ}]
                    [--environment {vacuum,PCM}] [--min-type {None,qm,mm}]
                    [--charge-type {None,Gasteiger,AM1-BCC,ESP}] [--no-dihed]
                    [--scan-type {None,qm,mm}]
                    [--dihed-num-iterations DIHED_NUM_ITERATIONS]
                    [--dihed-fit-type {iterative,NRS}] [-q {local,Slurm,LSF}]
                    [-n NCPUS] [-m MEMORY] [-o OUTDIR] [--seed SEED]

Positional Arguments


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


CHARMM RTF and PRM files

-ff, --forcefield

Possible choices: CGenFF_2b6, GAFF, GAFF2

Initial atom type and parameter assignment (default: “GAFF2”)


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, wB97X-D

QM level of theory (default: “wB97X-D”)


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

QM basis set (default: “6-311++G**”)


Possible choices: vacuum, PCM

QM environment (default: “vacuum”)


Possible choices: None, qm, mm

Type of initial structure optimization (default: “mm”)


Possible choices: None, Gasteiger, AM1-BCC, ESP

Partial atomic charge type (default: “AM1-BCC”)


Do not perform QM scanning of dihedral angles


Possible choices: None, qm, mm

Type of structure optimization when scanning dihedral angles (default: “mm”)


Number of iterations during the dihedral parameter fitting


Possible choices: iterative, NRS

Dihedral fitting method. Can be either iterative or naive random search (NRS).

-q, --queue

Possible choices: local, Slurm, LSF

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: “./”)


Random number generator seed (default: 20170920)


show program’s version number and exit