Repository navigation
EnhancerScope v1.0.0
用基因组语言模型预测增强子活性:防泄漏基准 + 浏览器工具 + MCP 插件
核心结果(test split,Spearman ρ)
| 模型 | Dev | Hk | 说明 |
|---|---|---|---|
| k-mer(6)+GC → LightGBM | 0.581 | 0.519 | 词袋无位置信息 |
| DeepSTARR 风格 CNN | 0.639 ± 0.003 | 0.566 ± 0.005 | 从零训练,3 种子 |
| DNABERT-2 零样本(embed+Ridge) | 0.428 | 0.363 | 不微调 |
| LoRA 微调 DNABERT-2 | 0.6214 ± 0.0088 | 0.5722 ± 0.0044 | 只训 0.50% 参数,显存 2.67GB |
| LoRA 微调 HyenaDNA | 0.2845 ± 0.0021 | 0.2486 ± 0.0008 | 负结果(归因见 docs/experiments.md §4.1) |
- 微调把 DNABERT-2 自身零样本提升 +0.19 / +0.21;只微调 0.5% 参数即在 Hk 上超过全量 CNN
- 防泄漏划分:整条 chr2R 臂 held out;valid/test 坐标零重叠(0.00%,实测断言)
这一版包含
- 科研内核:三条 baseline + 两个模型的 LoRA 微调(3 种子)+ 可解释性(突变扫描/窗口遮蔽 + JASPAR 对照,含失败案例)
- 交付工具:浏览器 demo(ONNX Runtime Web,单序列 2–15ms)与 MCP 工具层(
predict_activity/explain_sequence/batch_scan) - 文档:数据卡 / 实验记录 / 可解释性 / 决策记录 / 面试问答 / 开发日志(21 个坑与解法)
- 工程:34 个单测(CI 全绿)、代码与数据分离(权重不入库)、ONNX 导出一致性闸门(max|Δ|<1e-6)
快速开始
uv sync --all-groups
uv run enhancerscope-demo
uv run enhancerscope-mcp # MCP server(stdio)在线演示:https://fzyz-whx.github.io/EnhancerScope/
资产说明
model_fp32_single.onnx:最优模型(LoRA DNABERT-2)的 ONNX 导出,fp32、481MB,
与 PyTorch 数值一致(max|Δ|=7e-6,证据见仓库results/onnx_parity.json)。
浏览器 demo 不加载它(体积原因),页面用的是 0.81MB 的 CNN(见webapp/README.md的取舍说明)。- 若附件缺失(大文件上传受网络限制),可在本地复现导出:
uv run --group ml python scripts/download_model.py # 下载基座权重
uv run --group ml python scripts/finetune_lora.py --model dnabert2 --seed 42 --epochs 3
uv run --group ml python scripts/export_onnx.py # 导出 + 一致性闸门引用
de Almeida et al., Nature Genetics 2022(数据 DeepSTARR)· Zhou et al., ICLR 2024(DNABERT-2)·
Nguyen et al., NeurIPS 2023(HyenaDNA)· Hu et al., ICLR 2022(LoRA)· Fornes et al., NAR 2020(JASPAR)