This release is a pre-release and may not be stable for production use.
K-Fold
[Notice] Preprint will be released soon!
K-Fold predicts biomolecular complex structures and binding-induced conformational changes. Through an apo-to-holo diffusion bridge, K-Fold aims to capture conformational changes in systems such as G protein-coupled receptors (GPCRs).
K-Fold supports proteins, DNA, RNA, small molecules, and chemical modifications without multiple sequence alignments (MSAs). This repository provides pretrained models, inference and training code, and data preprocessing workflows.
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/SeonghwanSeo/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
By default, K-Fold prepares apo structures with AtlasFold, then runs K-Fold predictions. You can also provide apo structures from experiments or other prediction tools (e.g., AlphaFold2).
Use --kernel {triton,cuequiv,torch} to select the backend for K-Fold complex prediction.
Automatic selection prefers Triton, then cuEquivariance, then PyTorch, depending on availability.
For multi-seed inference, use --share-apo-seeds 1 2 3 to generate one apo ensemble per target and reuse it across all inference seeds specified by --seeds.
This is particularly useful for relatively rigid apo structures or runs with many inference seeds; see automatic apo generation.
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
See kfold --help, the inference guide, or the Python API guide for details.
Training
See the training guide for data preparation, training commands, and configuration.
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,†
- 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
- Engineering lead: Seonghwan Seo3,†
- 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.0b3
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.0b3.tar.gz | 367.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| kfold-1.0.0b3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 870.2 kB
Release files / kfold-1.0.0b3.tar.gz
| Download URL | kfold-1.0.0b3.tar.gz |
|---|---|
| Size | 367.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f70be97bdd6bc7d339c99e2efd8d98a5d7c9d8024d1180484762547e24967466
|
|
BLAKE2b-256 checksum How to use checksums |
c846ff832a6e9876d8508e55a999c020ff19a7f8f3b1cb6e45b06d86545efa83
|
| 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.0b3-py3-none-any.whl
| Download URL | kfold-1.0.0b3-py3-none-any.whl |
|---|---|
| Size | 503.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ea4d2e80ba1943321643843a0a510527be4dfa4ad0a94c98a366ab454e46b7b
|
|
BLAKE2b-256 checksum How to use checksums |
d15d1d919a92810a86a679a577d087c88aa6d1f2eba2d8c9a453b59b0573abf4
|
| 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}
|