This tutorial aims to prepare, step by step, a QM/MM model of an enzyme-ligand complex for CP2K, starting from a PDB structure and ending with a validated set of CP2K inputs: an Amber topology and equilibrated coordinates, the &QMMM section (QM atoms, QM/MM links and QM cell), a charge-corrected topology for electrostatic embedding, and single-point tests that confirm the setup before any expensive calculation is started.
It is the companion of the Tutorial for Transition State (TS) searches of Enzymatic Reaction Mechanisms using QM/MM methods in CP2K, which starts exactly where this one ends. Most of the information here came from the CP2K site, the CP2K manual, the Amber tutorials, the CP2K discussion group and the BioExcel QM/MM material listed at the bottom of this page. You should also follow the good practices found in the literature for the specific chemistry of your system.
Example system
All the commands and outputs shown in the tutorial come from a worked example: human α-thrombin, a trypsin-like serine protease with the classic Ser195/His57/Asp102 catalytic triad, in complex with a D-Phe-Pro-benzylamide inhibitor (ligand lig_5 of the OpenFF protein-ligand benchmark, prepared from the crystal structure 2ZFF). The system has about 42 500 atoms after solvation. Thrombin uses the chymotrypsin numbering scheme, with insertion codes, so the residues of the catalytic triad have different numbers in the Amber topology (His57 = 44, Asp102 = 100, Ser195 = 206). Keeping track of this kind of renumbering is part of the work, and we point it out along the way.
The steps are general and apply to any enzyme-substrate or enzyme-inhibitor complex parameterized with an Amber force field. Replace the residue numbers, masks and file names with those of your system.
Requirements
-
AmberTools (pdb4amber, antechamber, parmchk2, tleap, cpptraj, ParmEd) and an MD engine (pmemd.cuda, pmemd or sander). The example was run with AmberTools 23.
-
CP2K, compiled with MPI (cp2k.psmp or cp2k.popt). The inputs were tested with CP2K 2026.2.
-
PROPKA 3 (pip install propka) for pKa estimates, and VMD for visualization and atom selections.
-
Python 3 with ParmEd and NumPy (both come with AmberTools, or pip install parmed numpy) to run the scripts of this repository.
Files
| File | Description |
|---|---|
| cp2k_qmmm_setup.py | Builds the &QMMM include file (QM_KIND, LINK, QM cell), the &KIND sections, the QM region XYZ and the charge-corrected topology |
| prmtop_fix_types.py | Renames atom types that CP2K cannot read from a prmtop (e.g. Ca2+) |
| mol2_charge_fix.py | Makes the ligand partial charges add up to an integer |
| cp2k_ewald_scan.sh | Scans the Ewald ALPHA parameter with CP2K single points |
| plot_ewald_scan.py | Plots the output of cp2k_ewald_scan.sh |
| AMBER_INPUTS.zip | tleap, MD (min1, min2, heat, npt, prod), run_md.sh and cpptraj inputs |
| CP2K_INPUTS.zip | CP2K inputs for the MM validation, the Ewald scan and the QM/MM single points, with the files generated for the example |
Once you have a PDB structure of your enzyme-ligand complex, you are ready to start this tutorial.
*As in the TS tutorial, the QM method of the provided QM/MM inputs is SCC-DFTB with the D3(0) dispersion correction, which allows for fast tests but has several limitations. Check that the method you choose has parameters for every element of your QM region (for example, the SCC-DFTB set distributed with CP2K has no fluorine, which is why the fluorinated ligand of the benchmark was replaced by its unsubstituted analogue in this example).
Useful Links:
- CP2K manual: QM/MM with the built-in QM/MM driver (formerly the “QMMM for biochemical systems” howto)
- Preparing to run biomolecular QM/MM simulations with CP2K using AmberTools
- QM/MM tutorials adapted to CP2K
- Best Practices in QM/MM Simulation of Biomolecular Systems
- Tutorial for TS searches of enzymatic reaction mechanisms using QM/MM methods in CP2K