ICML 2026
Minzhang Li1,2, Mingrui Li1, Weichen Qin1, Qihe Chen1,2, Sixian Shen1, Yuan Pei1, Jiakai Zhang1,2, and Jingyi Yu1
1ShanghaiTech University 2Cellverse Co., Ltd.
Project Page | arXiv | Paper
CryoACE builds precise atomic models directly from cryo-EM density maps by sampling density features at atom coordinates and using local-resolution-guided inference to recover both static structures and heterogeneous conformational ensembles.
Tutorial data are coming soon.
Download the bundled checkpoint:
pip install gdown
gdown --fuzzy "https://drive.google.com/file/d/1b6CFdOcOTzi1WxrUY-7B__8zdO8mj3Jt/view?usp=sharing" \
-O cryoace_boltz1_mapfit_alpha500_with_conditioners.ckptThe checkpoint bundles the Boltz/CryoACE model weights, the density conditioner, and the atom-profile conditioner. Use this file as the single checkpoint path:
boltz predict <SEQ_PATH> \
--density_map <MAP.mrc> \
--aligned_model <ALIGNED_MODEL.cif> \
--res <MAP_RESOLUTION> \
--thresh <MAP_THRESHOLD> \
--checkpoint cryoace_boltz1_mapfit_alpha500_with_conditioners.ckpt \
--cryoace_density_conditioning \
--cryoace_atom_profile_conditioning \
--use_msa_server \
--out_dir resultsProtein automodeling from cryo-EM density maps faces unique challenges in enforcing physicochemical validity and managing conformational heterogeneity. Current solvers are often limited to static predictions or require computationally intensive heuristic searches. We present CryoACE, an end-to-end framework that reconstructs precise atomic graphs for both homogeneous and heterogeneous structures.
Our method features two key innovations: an atom-centric reconstruction paradigm, where density features are sampled directly at atomic coordinates and iteratively recycled to refine structures, replacing expensive voxel convolutions for efficient multimodal fusion; and a training-free guidance mechanism that leverages predicted local resolution priors to resolve dynamic ambiguity. Validated on a newly constructed high-quality dataset, CryoACE significantly outperforms existing baselines on static benchmarks and unveils atomic-level dynamic conformations on complex real-world datasets such as EMPIAR-10345.
This repository currently keeps the Boltz/CryoBoltz command surface runnable
while adding CryoACE modules under src/cryoace. The main implemented
components are:
- CryoACE data and density preprocessing utilities.
- Density and atom-profile conditioning modules.
- Inference runners for CryoACE-guided prediction and self-refinement.
- Map-fitting loss and evaluation utilities.
- Postprocess tools for map hand candidates, cyclic symmetry detection, confidence/map-fit sweep summaries, and density-driven local fitting.
Use a clean Python environment. The code currently follows the Boltz package
layout and exposes the boltz command.
conda create -n cryoace python=3.10
conda activate cryoace
git clone https://github.com/Cellverse/CryoACE.git
cd CryoACE
pip install -e .Check the command-line entry point:
boltz predict --helpBasic cryo-EM-guided inference follows the CryoBoltz-style Boltz command:
boltz predict <SEQ_PATH> \
--density_map <MAP.mrc> \
--aligned_model <ALIGNED_MODEL.cif> \
--res <MAP_RESOLUTION> \
--thresh <MAP_THRESHOLD> \
--use_msa_server \
--out_dir resultsInputs:
SEQ_PATH: FASTA or YAML sequence input in Boltz format.MAP.mrc: cryo-EM density map.ALIGNED_MODEL.cif: a rough initial model aligned to the map, such as an unguided Boltz model or another draft model.MAP_RESOLUTION: estimated map resolution in Angstrom.MAP_THRESHOLD: density threshold used by map guidance and fitting.
The current command surface follows the Boltz input convention while adding CryoACE density and aligned-model arguments.
CryoACE-specific code is organized under src/cryoace:
src/cryoace/
data/ # manifest, structure, volume, and batch utilities
geometry/ # coordinate and density sampling helpers
guidance/ # staged guidance schedules
inference/ # CryoACE runners, atom profiling, self-refinement
loss/ # map-fitting losses
model/ # density and atom-profile conditioning modules
postprocess/ # symmetry, hand, map-fit, and local fitting utilities
The postprocess tools live in scripts/postprocess and import reusable code
from cryoace.postprocess.
Detect cyclic symmetry from a map:
PYTHONPATH=src python scripts/postprocess/cryoace_symmetry.py detect-cn \
--map /path/to/map.mrc \
--candidate-orders 2,3,4,5,6,7,8Prepare a symmetry-reduced map using automatic C_n detection:
PYTHONPATH=src python scripts/postprocess/cryoace_symmetry.py prepare-cn \
--order auto \
--map /path/to/map.mrc \
--out-dir /path/to/cn_preparedGenerate map-hand candidates:
PYTHONPATH=src python scripts/postprocess/cryoace_map_hand.py \
--axis z /path/to/map.mrcSummarize confidence and map-fit metrics across a sweep:
PYTHONPATH=src python scripts/postprocess/cryoace_mapfit_eval.py \
--sweep-dir /path/to/predictions \
--log-dir /path/to/logs \
--fasta /path/to/input.fasta \
--res 3.0 \
--out-json /path/to/summary.json \
--out-csv /path/to/summary.csvRun local density-driven fitting presets:
PYTHONPATH=src python scripts/postprocess/cryoace_geometry_fit.py \
--model /path/to/model.cif \
--map /path/to/map.mrc \
--out-dir /path/to/fit_out \
--preset mild \
--preset balancedAggressive fitting outputs are diagnostic. Use visual inspection, confidence, map-fit metrics, and stereochemical validation before making structural claims.
Density manifest and preprocessing helpers:
scripts/preprocess_cryoace_manifest.py
The dataset utilities expect preprocessed cryo-EM volumes and corresponding structure metadata.
@misc{li2026cryoace,
title = {CryoACE: An Atom-centric Framework for Accurate and Automated Model Building in Cryo-EM},
author = {Li, Minzhang and Li, Mingrui and Qin, Weichen and Chen, Qihe and Shen, Sixian and Pei, Yuan and Zhang, Jiakai and Yu, Jingyi},
year = {2026},
eprint = {2606.31332},
archivePrefix = {arXiv},
primaryClass = {cs.AI},
url = {https://arxiv.org/abs/2606.31332}
}CryoACE builds upon CryoBoltz and Boltz-1. We thank the authors and maintainers of these projects for their open-source contributions. If you use CryoACE, please also cite CryoBoltz and Boltz-1 where appropriate.
