[[Category:Software]][[Category:BiomolecularSimulation]]{{ draft }}
== General ==
[https://alanwilter.github.io/acpype/ ACPYPE: AnteChamber PYthon Parser interfacE] (pronounced as ace + pipe), is a tool written in Python
to use Antechamber to generate topologies for chemical compounds and to interface with others python applications like CCPN and ARIA.
It will generate topologies for CNS/XPLOR, [[GROMACS]], CHARMM and [[AMBER]], that are based on General Amber Force Field (GAFF)
and should be used only with compatible forcefields like AMBER and its variants.
We provide [[Available_Python_wheels|Python wheels]] for ACPYPE for [[Standard_software_environments|StdEnv/2020 and StdEnv/2023]]
in our wheelhouse that you should install into a [[Python#Creating_and_using_a_virtual_environment|virtual environment]].
Please note that you need to load the openbabel
module before installing ACPYPE and anytime you want to use it.
== Creating a virtual environment for ACPYPE ==
{{Commands
| prompt=[user@login1]$
| module load python openbabel
| virtualenv ~/venv_acpype
| source ~/venv_acpype/bin/activate
| pip install --no-index acpype
}}
Now the acpype
command can be used:
{{Command
|prompt=(venv_acpype) [user@login1]$
| acpype --help
|result=
usage:
acpype -i _file_ {{!}} _SMILES_string_ [-c _string_] [-n _int_] [-m _int_] [-a _string_] [-f] etc. or
acpype -p _prmtop_ -x _inpcrd_ [-d {{!}} -w]
output: assuming 'root' is the basename of either the top input file,
the 3-letter residue name or user defined (-b option)
root_bcc_gaff.mol2: final mol2 file with 'bcc' charges and 'gaff' atom type
root_AC.inpcrd : coord file for AMBER
root_AC.prmtop : topology and parameter file for AMBER
root_AC.lib : residue library file for AMBER
root_AC.frcmod : modified force field parameters
root_GMX.gro : coord file for GROMACS
root_GMX.top : topology file for GROMACS
root_GMX.itp : molecule unit topology and parameter file for GROMACS
root_GMX_OPLS.itp : OPLS/AA mol unit topol & par file for GROMACS (experimental!)
em.mdp, md.mdp : run parameters file for GROMACS
root_NEW.pdb : final pdb file generated by ACPYPE
root_CNS.top : topology file for CNS/XPLOR
root_CNS.par : parameter file for CNS/XPLOR
root_CNS.inp : run parameters file for CNS/XPLOR
root_CHARMM.rtf : topology file for CHARMM
root_CHARMM.prm : parameter file for CHARMM
root_CHARMM.inp : run parameters file for CHARMM
options:
-h, --help show this help message and exit
-i INPUT, --input INPUT
input file type like '.pdb', '.mdl', '.mol2' or SMILES string (mandatory if -p and -x not set)
-b BASENAME, --basename BASENAME
a basename for the project (folder and output files)
-x INPCRD, --inpcrd INPCRD
amber inpcrd file name (always used with -p)
-p PRMTOP, --prmtop PRMTOP
amber prmtop file name (always used with -x)
-c {gas,bcc,user}, --charge_method {gas,bcc,user}
charge method: gas, bcc (default), user (users charges in mol2 file)
-n NET_CHARGE, --net_charge NET_CHARGE
net molecular charge (int), it tries to guess it if not not declared
-m MULTIPLICITY, --multiplicity MULTIPLICITY
multiplicity (2S+1), default is 1
-a {gaff,amber,gaff2,amber2}, --atom_type {gaff,amber,gaff2,amber2}
atom type, can be gaff, gaff2 (default), amber (AMBER14SB) or amber2 (AMBER14SB + GAFF2)
-q {mopac,sqm,divcon}, --qprog {mopac,sqm,divcon}
am1-bcc flag, sqm (default), divcon, mopac
-k KEYWORD, --keyword KEYWORD
mopac or sqm keyword, inside quotes
-f, --force force topologies recalculation anew
-d, --debug for debugging purposes, keep any temporary file created (not allowed with arg -w)
-w, --verboseless print nothing (not allowed with arg -d)
-o {all,gmx,cns,charmm}, --outtop {all,gmx,cns,charmm}
output topologies: all (default), gmx, cns or charmm
-z, --gmx4 write RB dihedrals old GMX 4.0
-t, --cnstop write CNS topology with allhdg-like parameters (experimental)
-s MAX_TIME, --max_time MAX_TIME
max time (in sec) tolerance for sqm/mopac, default is 3 hours
-y, --ipython start iPython interpreter
-g, --merge Merge lower and uppercase atomtypes in GMX top file if identical parameters
-u, --direct for 'amb2gmx' mode, does a direct conversion, for any solvent (EXPERIMENTAL)
-l, --sorted sort atoms for GMX ordering
-j, --chiral create improper dihedral parameters for chiral atoms in CNS
-v, --version Show the Acpype version and exit
}}
== Using ACPYPE ==
=== Running as a non-interactive job ===
You can run ACPYPE as a short job with a job script similar to the one shown below.
If you have already a file with the 3D-coordinates of your molecule,
you can delete the lines that use obabel
to generate the file adp.mol2
from the [https://en.wikipedia.org/wiki/SMILES SMILES] string.
{{File
|name=job_acpype_ADP.sh
|lang="sh"
|contents=
#!/bin/bash
#SBATCH --time=00:15:00
#SBATCH --cpus-per-task=4
#SBATCH --mem-per-cpu=2000M
module load python openbabel
source ~/venv_acpype/bin/activate
export OMP_NUM_THREADS="${SLURM_CPUS_PER_TASK:-1}"
# generate "adp.mol2" file from SMILES string:
obabel -:"c1nc(c2c(n1)n(cn2)[C@H]3[C@@H]([C@@H]([C@H](O3)COP(=O)(O)OP(=O)(O)O)O)O)N" \
-i smi -o mol2 -O adp.mol2 -h --gen3d
acpype -i adp.mol2
}}
=== Running on a login node ===
As apart of the topology generation, ACPYPE will run a short QM calculation to optimize the structure and determine the partial charges.
For small molecules this should take less than two minutes and can therefore be done on a login-node, however in this case the number of threads should be limited by running ACPYPE with: OMP_NUM_THREADS=2 acpype ...
.
For larger molecules or generating topologies for several molecules you should submit a job as shown above.
First the [[Python|python]] and [[Open Babel|openbabel]] need to be loaded.
We also download a structure file of Adenosine triphosphate (ATP) from [https://pubchem.ncbi.nlm.nih.gov/ PubChem]:
{{Commands
| prompt=[user@login1]$
| module load python openbabel
| source ~/venv_acpype/bin/activate
| # download a test file for ATP:
| wget "https://pubchem.ncbi.nlm.nih.gov/rest/pug/compound/CID/5957/record/SDF?record_type{{=}}3d&response_type{{=}}save&response_basename{{=}}ATP" -O atp.sdf
}}
We run ACPYPE, restricting it to using a maximum of two threads:
{{Command
|prompt=(venv_acpype) [user@login1]$
| OMP_NUM_THREADS{{=}}2 acpype -i atp.sdf
|result=
============================================================================
{{!}} ACPYPE: AnteChamber PYthon Parser interfacE v. 2023.10.27 (c) 2025 AWSdS {{!}}
============================================================================
WARNING: no charge value given, trying to guess one...
==> ... charge set to 0
==> Executing Antechamber...
==> * Antechamber OK *
==> * Parmchk OK *
==> Executing Tleap...
==> * Tleap OK *
[...]
==> Removing temporary files...
Total time of execution: 1m 32s
}}
The directory atp.acpype
is created
{{Command
| ls atp.acpype/
|result=
acpype.log ANTECHAMBER_PREP.AC0 atp_CHARMM.prm atp_GMX_OPLS.top posre_atp.itp
ANTECHAMBER_AC.AC ATOMTYPE.INF atp_CHARMM.rtf atp_GMX.top rungmx.sh
ANTECHAMBER_AC.AC0 atp_AC.frcmod atp_CNS.inp atp_NEW.pdb sqm.in
ANTECHAMBER_AM1BCC.AC atp_AC.inpcrd atp_CNS.par atp.pkl sqm.out
ANTECHAMBER_AM1BCC_PRE.AC atp_AC.lib atp_CNS.top atp.sdf sqm.pdb
ANTECHAMBER_BOND_TYPE.AC atp_AC.prmtop atp_GMX.gro em.mdp
ANTECHAMBER_BOND_TYPE.AC0 atp_bcc_gaff2.mol2 atp_GMX.itp leap.log
ANTECHAMBER_PREP.AC atp_CHARMM.inp atp_GMX_OPLS.itp md.mdp
}}
== Useful Links ==
* [https://github.com/alanwilter/acpype/wiki/Frequent-Asked-Questions-about-ACPYPE Frequent Asked Questions about ACPYPE]
* [https://github.com/alanwilter/acpype/wiki/Tutorial-Using-ACPYPE-for-GROMACS Tutorial Using ACPYPE for GROMACS]
* [https://github.com/alanwilter/acpype/wiki/Tutorial-NAMD Tutorial NAMD]