K-Fold
K-Fold is a biomolecular foundation model that predicts binding-induced conformational changes. Through an apo-to-holo diffusion bridge, it models how unbound molecules assemble and change shape upon binding, including GPCR and kinase systems.
Preprint will be available soon.
Model parameters
K-Fold uses pretrained AtlasLM for protein sequence representations and TriProRep for protein structure representations. The parameters for these models and K-Fold are downloaded automatically on first use from Hugging Face.
Installation
K-Fold requires Python 3.11 or later.
Install from PyPI:
pip install kfold
Or install from source:
git clone https://github.com/kaist-ai-bio/kfold.git
cd kfold
pip install -e .
Inference
Run predictions from a YAML or JSON query file, or a directory of query files for bulk runs:
kfold --input examples/8and.yaml --out-dir predictions/ --seeds 42
See kfold --help, the inference guide, or the Python API guide for details.
By default, K-Fold prepares apo structures with AtlasFold, then runs complex structure prediction. You can also provide apo structures from experiments or other prediction tools (e.g., AlphaFold2).
Efficient inference with multiple seeds:
For multi-seed inference, use --share-apo-seeds to generate an apo ensemble for each protein entry and reuse it across all inference seeds.
This is particularly useful for relatively rigid apo structures or runs with many inference seeds; see automatic apo generation.
kfold --input examples/ --out-dir predictions/ --share-apo-seeds 1 2 3 --seeds 1 2 3 4 5 6 7 8 9 10
Multi-stage inference:
Use --stage apo to prepare apo structures only, or --stage complex to predict complexes from prepared apos:
kfold --stage apo --input examples/ --out-dir predictions/ --seeds 42
kfold --stage complex --input examples/ --out-dir predictions/ --seeds 42
Kernel selection:
Use --kernel {auto,triton,cuequiv,torch} to select the backend for AtlasFold apo preparation and K-Fold complex prediction.
The default, auto, prefers Triton, then cuEquivariance, then PyTorch, depending on availability.
Training
See the training guide for data preparation, training commands, and configuration.
Citation
TBA
Acknowledgements
K-Fold was developed at KAIST as part of the K-Fold initiative supported by the Ministry of Science and ICT (MSIT), Republic of Korea.
Members of Team KAIST are listed below (alphabetical order):
- Project management: Hyeongwoo Kim3,†
- Engineering lead: Seonghwan Seo3,†
- K-Fold architecture: Seokhyun Moon3,†, Jun Hyeong Kim3, Shinwoo Kim3, Minha Park3, Jisu Seo3, Mingyeong Shin3, Wonho Zhung3
- Protein structure encoder: Hyosoon Jang1,†, Taewon Kim1,†, Hyunjin Seo1
- RNA sequence encoder: Dongki Kim1,†, Jun Hyeong Kim1,†, Jinheon Baek1, Jaehyeong Jo1
- Training data preparation: Yeongnam Bae2,†, Woosung Jeon2,†, Joongwon Lee3,†, Junyup Lee2,†, Yunsu Shin2,†, Eugene Choi2, Jeong Hun Choi2, Hyeongyu Han2, Calvin Samuel2
- Kernel optimization: Youngchan Kim4
- Supervision: Sungsoo Ahn1, Dongsu Han4,1, Sung Ju Hwang1, Ho Min Kim2, Woo Youn Kim3, Gyu Rie Lee2, Byung-Ha Oh2
† Core contributor; 1 KAIST AI; 2 KAIST Biological Sciences; 3 KAIST Chemistry; 4 KAIST Electrical Engineering.
We thank our collaborators at HITS for their contributions to K-Fold.
License
Copyright © 2026 Korea Advanced Institute of Science and Technology (KAIST).
K-Fold source code and model weights are licensed under the Apache License 2.0.
Metadata
Release files for kfold 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| kfold-1.0.0.tar.gz | 360.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kfold-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 855.4 kB
Release files / kfold-1.0.0.tar.gz
| Download URL | kfold-1.0.0.tar.gz |
|---|---|
| Size | 360.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b8ae244784f979d4a6fbd9209800f1a1c315bc76b838724bb2b76c1e41c610cb
|
|
BLAKE2b-256 checksum How to use checksums |
0b02015ee33474d548226912bca90c92b4ac694b5934d40443c35cbb9902bbaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / kfold-1.0.0-py3-none-any.whl
| Download URL | kfold-1.0.0-py3-none-any.whl |
|---|---|
| Size | 494.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8d9b84bfa15099af47949376259553f0947478bf4e2d62997ca2a2513da6d016
|
|
BLAKE2b-256 checksum How to use checksums |
f3852ba7f678c41f36f3c26c836f6c49b8abd9bc95b737b5f42539f72e7d1473
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.12 {"installer":{"name":"uv","version":"0.12.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|