快速准确的蛋白质化学计量预测工具

Stoic 可直接从序列预测蛋白质复合物组分的拷贝数,还能基于预测的最佳化学计量结果导出适用于 AF3 的 JSON 文件。
网页版(Hugging Face Space):stoic-space
预印本:Stoic: Fast and accurate protein stoichiometry prediction
venvpython -m venv .venv
source .venv/bin/activateconda / mambamamba create -n stoic-env python=3.10 -y
mamba activate stoic-envgit clone https://github.com/PickyBinders/stoic.git
cd stoic
python -m pip install --upgrade pip
python -m pip install -e .python -m pip install git+https://github.com/PickyBinders/stoic.git注意: 首次推理运行需要互联网连接,以便从 Hugging Face 下载模型权重。后续运行会重用
~/.cache/huggingface中的缓存文件,因此模型缓存后即可离线使用。
stoic_predict_stoichiometry 命令支持:
usage: stoic_predict_stoichiometry [-h]
[--sequences SEQ [SEQ ...] | --input-path INPUT_PATH]
[--model MODEL]
[--top-n TOP_N]
[--return-residue-weights]
[--max-inference-seq-len MAX_INFERENCE_SEQ_LEN]
[--output-dir OUTPUT_DIR]
[--device DEVICE]
options:
-h, --help show this help message and exit
--sequences SEQ [SEQ ...]
Protein sequences (one per unique chain)
--input-path INPUT_PATH
Path to a FASTA file or a directory with FASTA files
--model MODEL HuggingFace model name or local path (default: PickyBinders/stoic)
--top-n TOP_N Number of top stoichiometry candidates (default: 3)
--return-residue-weights
Return residue weights and save residue-level predictions
--max-inference-seq-len MAX_INFERENCE_SEQ_LEN
Maximum sequence length for full-length inference
--output-dir OUTPUT_DIR
Output directory for predictions and AF3 JSON files
--device DEVICE Device to use, e.g. cuda or cpu (default: auto-detect)stoic_predict_stoichiometry \
--sequences "SENECA" "VIRTVS" \
--top-n 3stoic_predict_stoichiometry \
--input-path path/to/complex.fasta \
--top-n 3stoic_predict_stoichiometry \
--input-path path/to/fasta_dir \
--top-n 3 \
--output-dir stoic_predictions在目录模式下,输出将按复合物保存(<fasta_stem>.json、<fasta_stem>_af3_input.json 以及可选的残基预测结果)。
当提供 --output-dir 时:
results.jsonaf3_input.jsonresidue_predictions.pkl(若使用 --return-residue-weights)<complex_name>.json<complex_name>_af3_input.json<complex_name>_residue_predictions.pkl(若使用 --return-residue-weights)from stoic.predict_stoichiometry import predict_stoichiometry
results = predict_stoichiometry(
sequences=["SENECA", "VIRTVS"], # or FASTA path / FASTA dir path
model_name="PickyBinders/stoic",
top_n=3,
)
print(results)import torch
from stoic.model import Stoic
device = "cuda" if torch.cuda.is_available() else "cpu"
model = Stoic.from_pretrained("PickyBinders/stoic")
model.eval().to(device)
pred = model.predict_stoichiometry(["SENECA", "VIRTVS"], top_n=3)
print(pred)如果您使用 Stoic,请引用:
@article{litvinov2026stoic,
title = {Stoic: Fast and accurate protein stoichiometry prediction},
author = {Litvinov, Daniil and Pantolini, Lorenzo and {\v{S}}krinjar, Peter and Tauriello, Gerardo and McCafferty, Caitlyn L and Engel, Benjamin D and Schwede, Torsten and Durairaj, Janani},
journal = {bioRxiv},
year = {2026},
doi = {10.64898/2026.03.13.711535},
url = {https://www.biorxiv.org/content/10.64898/2026.03.13.711535v1}
}