Official Emap2lig inference pipeline for finding ligand density blobs and building atomic ligand structures in cryo-EM maps.
- Stage 1 (Find): segment ligand density blobs from cryo-EM maps.
- Stage 2 (Build): generate ligand atomic coordinates from blobs.
Important
Local inference requires an NVIDIA CUDA GPU (CUDA 12/13). CPU inference is not supported.
No GPU? Use the free KiharaLab web server instead.
| Path | GPU | Install |
|---|---|---|
| KiharaLab Web Server | No | None |
| Local — CLI, Web GUI, or Agent Skill | Yes | See below |
No installation or GPU. Upload a map on Find, then run Build with your ligands.
| Stage | URL |
|---|---|
| Find | em.kiharalab.org/algorithm/Emap2lig-Find |
| Build | em.kiharalab.org/algorithm/Emap2lig-Build |
Details: docs/web-server.md
- GPU: NVIDIA GPU with 8 GB+ VRAM, Post-Ampere (RTX 30xx / 40xx / 50xx or newer)
- CUDA: CUDA 12 / 13 compatible driver
- Python: 3.12 (uv recommended)
Model weights download automatically from HuggingFace on first run — no manual download step.
uv tool install --from git+https://github.com/kiharalab/Emap2lig emap2lig
emap2lig \
--input-map examples/emd_30556.map.gz \
--output-dir outputs_30556 \
--ligand-list examples/emd_30556.yaml \
--emdb-id 30556Full flags and examples: docs/cli.md · Install options: docs/installation.md
Requires cloning the repo (includes pre-built frontend; no Node.js needed for normal use):
git clone https://github.com/kiharalab/Emap2lig.git
cd Emap2lig && uv sync --group web
uv run --group web python app/start.pyOpen http://localhost:40427. Guide: docs/web-gui.md
npx skills add kiharalab/Emap2lig --skill emap2ligThen ask your agent: "Run the Emap2lig pipeline on EMD-30556". Guide: docs/agent-skill.md
| Topic | Guide |
|---|---|
| Installation | docs/installation.md |
| CLI | docs/cli.md |
| Web GUI | docs/web-gui.md |
| KiharaLab web server | docs/web-server.md |
| Agent Skill | docs/agent-skill.md |
| Input formats | docs/input-format.md |
| Output structure | docs/output.md |
| Programmatic API | docs/api.md |
| Fragment detection | docs/fragment-detection.md |
| Model weights | docs/models.md |
- The source code in this repository is released under the GNU General Public License v3.0.
- The trained model weights are distributed under a separate license and are free for academic and non-commercial research use only.
Commercial use of the model weights is not permitted without permission. For commercial licensing inquiries, please contact the authors.
See WEIGHT_LICENSE.md for full terms.
Weights download automatically on first run; see Model weights.
-
2026-05-22: uv Tool Installation
- Emap2lig can now be installed globally via
uv tool install— no cloning needed for CLI usage. - Added Agent Skill following the agentskills.io specification for AI-agent-guided usage.
- Emap2lig can now be installed globally via
-
2026-01-12: v0.3.1 Release
- Detection model update.
- Per-blob ligand assignment in Web GUI.
- Web GUI tutorial system.
-
2025-11-05: v0.3.0 Release
- Initial public release with CLI and Web GUI.
- Two-stage pipeline: MUNet segmentation + PairFormer/AtomDiffusion modeling.
Emap2lig builds upon and is inspired by several excellent open-source projects:
-
Boltz (Wohlwend et al.) — A diffusion-based biomolecular interaction modeling framework. Emap2lig's structure prediction approach is inspired by diffusion-based modeling techniques pioneered in the Boltz family of models.
-
Mol* (Sehnal et al.) — An open-source molecular visualization library used for 3D rendering of cryo-EM maps and predicted ligand structures in the Emap2lig Web GUI.
-
Hugging Face Hub — Model weight and data distribution platform.
If you use Emap2lig in your research, please cite our work (see below) and the relevant dependencies above.
If you use Emap2lig in your research, please cite the following:
@article{li2026direct,
title = {Direct Detection and Atomic Modeling of Ligands in Cryo-EM Maps Using Deep Learning},
author = {Li, Shu and Jain, Anika and Kagaya, Yuki and Park, Joon Hong and Kihara, Daisuke},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.06.01.729423},
url = {https://www.biorxiv.org/content/10.64898/2026.06.01.729423v1},
note = {Preprint}
}

