ChemEM fits small molecules into Cryo-EM maps using difference-map–guided docking and optional MD-based refinement.
# install Mambaforge if needed, then:
mamba create -n chemem python=3.11.11
mamba activate chemem
mamba install -c conda-forge chemem
conda create -n chemem python=3.11.11
conda activate chemem
conda install -c conda-forge chemem
Use WSL/WSL2 (Ubuntu), then follow the Linux instructions above.
ChemEM runs from a configuration file. Minimum example:
# ChemEM config file
protein = ~/test_data/7jjo_protein.pdb
ligand = CC(C)NC[C@@H](c1ccc(c(c1)O)O)O
centroid = (134.087, 133.507, 174.180)
output = ~/some_directory
densmap = ~/test_data/7jjo.mrc
resolution = 2.6
# enabled stages (1 = enable, 0 = disable)
pre_process = 1
pre_process_split_density = 1
auto_split_point = 1
auto_split_zone = 0
fitting = 1
dock_only = 0
post_process = 0
rescore = 0
Run ChemEM with your configuration:
chemem <configuration_file>
Enable a stage with 1, disable with 0
ligand = ...
lines or use ligands_from_dir = ~/test_data/
system_ligand_file = sys_lig.sdf
or system_ligands_from_dir = ./sys_lig_dir
difference_map = /path/to/map.mrc
chemem.protonate <config_file | 'SMILES'>
pH = [6.4, 7.4]
, pKa_prec = 1.0
protonation = 0
rings = 0
chirality = 0
forcefield = amber14 # required when specifying force fields
Protein = amber14/protein.ff14SB.xml
Ions = amber14/tip3pfb.xml
Implicit = amber14/tip3pfb.xml
# Supported ions: amber14/tip3p.xml, amber14/tip3pfb.xml, amber14/tip4pew.xml, amber14/tip4pfb.xml, amber14/spce.xml, amber14/opc.xml, amber14/opc3.xml
# Supported implicit: implicit/hct.xml, implicit/obc1.xml, implicit/obc2.xml, implicit/gbn.xml, implicit/gbn2.xml
Generate a map of unaccounted densities (α-sphere SASA masking):
chemem.alpha_mask <config_file>
Outputs include masked maps of candidate ligand density and segmented centroids.
Full docs, parameter reference, and examples:
https://chemem.topf-group.com
Please open issues and feature requests in this repository.
Sweeney A., Mulvaney T., Maiorca M., & Topf M. (2024). ChemEM: flexible docking of small molecules in Cryo-EM structures using difference maps. Journal of Medicinal Chemistry 67(1), 199–212. 10.1021/acs.jmedchem.3c01134