Genome_Factory
基因组基础模型(GFM)调优与部署的全流程集成库,支持 EVO/DNABERT-2/HyenaDNA 等 6 大模型 + LoRA/Adapter 微调
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基因组基础模型(GFM)调优与部署的全流程集成库,支持 EVO/DNABERT-2/HyenaDNA 等 6 大模型 + LoRA/Adapter 微调
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
小明盯着屏幕上的 DNA 序列发愁——导师让他用 Evo 模型做增强子区域预测。翻遍 GitHub,不是缺数据预处理脚本,就是模型版本和论文对不上,好不容易找到个工具,训练代码跑起来报错,换个参数又是一堆坑。他叹了口气:"要是能有一个统一的工具,把数据下载、预处理、训练、推理全流程串起来就好了。"
这不只是小明一个人的痛点。基因组基础模型(Genomic Foundation Model,GFM)正在颠覆生命科学研究——EVO、DNABERT-2、HyenaDNA、Caduceus 等模型相继问世,但"如何在自己的下游任务上 fine-tune 这些模型",至今缺乏统一、成熟的开源工具链。Genome-Factory 正是为解决这个痛点而生。
Genome-Factory 是一个 Python 编写的基因组基础模型集成库,其设计理念是覆盖基因组 AI 研究全流程的每一个关键环节。整个框架由六大核心组件构成:
| 组件 | 功能 |
|---|---|
| Genome Collector | 从 NCBI GenBank、RefSeq、ENA 等公开数据库下载基因组序列,支持多阶段预处理流水线(质量过滤、宿主过滤、物种筛选、序列切分) |
| Model Loader | 统一加载主流基因组模型(GenomeOcean、EVO、DNABERT-2、HyenaDNA、Caduceus、Nucleotide Transformer)及其分词器 |
| Model Trainer | 配置微调工作流,支持分类/回归任务,提供全量微调和参数高效微调(LoRA、Adapter) |
| Inference Engine | 序列嵌入提取、序列生成、分类/回归推理 |
| Benchmarker | 标准基准测试,支持接入自定义评估任务 |
| Biological Interpreter | 通过稀疏自编码器(SAE)增强模型可解释性,解读 DNA 序列与生物学功能之间的映射关系 |
所有组件通过 YAML 配置文件驱动,用户只需编写一份配置,即可端到端执行完整流程——这一点极大降低了使用门槛。
Genome-Factory 的一大优势是对主流基因组模型的广泛支持。项目 README 详细列出了 6 大类模型:
这些模型代表了当前基因组深度学习的前沿方向。Genome-Factory 的 Model Loader 模块对它们进行了统一封装,用户无需深入了解每个模型的内部架构,只需通过简单的 YAML 配置即可切换不同的底座模型。
如果你熟悉移动开发,可以把 Genome-Factory 类比为 Android SDK——它为开发者提供了统一的 API 和工具链,使得在不同芯片(模型)上开发应用(下游任务)变得标准化、可移植。Genome-Factory 之于基因组模型,就如同 Android SDK 之于 Android 手机应用开发。
Genome-Factory 在训练模块中内置了完整的 PEFT 支持:
# train_lora.yaml 示例
task_type: classification
model_name: DNABERT-2
peft_method: lora
lora_config:
r: 8
lora_alpha: 16
target_modules: ["all"]
LoRA(Low-Rank Adaptation)通过在原始权重矩阵旁注入低秩分解矩阵,大幅减少可训练参数量——4B 参数的 GenomeOcean 模型,用 LoRA 微调可能只需训练几百万参数,而不是几十亿。这意味着在消费级 GPU 上 fine-tune 超大模型成为可能。
Genome Collector 的 Pipeline 模块支持将多个处理阶段串联:
HostFilter:用 minimap2 比对去除宿主基因组污染(病毒基因组研究的必需步骤)QualityTrim:质量过滤(长度、GC 含量、N 碱基比例)TaxonExtract:按物种分类 ID 筛选目标生物SequenceExtract:固定长度切分 + 训练/验证/测试集划分CustomCommand:执行任意 shell 命令这个设计非常贴近真实生物信息学工作流——不是简单的脚本拼接,而是真正可组合、可复用的流水线。
Biological Interpreter 模块引入了稀疏自编码器(SAE) 来解释模型学到的 DNA 特征表示。SAE 能够将模型隐藏层的激活分解为可解释的"特征方向",让研究人员能够回答"模型的这个决策是基于 DNA 的什么区域/模式做出的"这类问题——这在药物靶点发现、疾病机制研究中具有重要价值。
# 数据下载
genomefactory-cli download genomeFactory/Examples/download_by_species.yaml
# 数据预处理
genomefactory-cli process genomeFactory/Examples/process_normal.yaml
# LoRA 微调
genomefactory-cli train genomeFactory/Examples/train_lora.yaml
# 嵌入提取
genomefactory-cli inference genomeFactory/Examples/infer_embedding.yaml
优势:所有操作统一在 genomefactory-cli 下,通过 YAML 配置驱动,与传统的写 Python 脚本相比,参数管理和实验复现更规范。
门槛:安装过程较为复杂——需要 conda 环境、CUDA 11.8、ncbi-datasets-cli,EVO 模型还需要从源码编译安装。README 中的版本说明也较为细碎(transformers 版本需按模型切换,DNABERT-2 需卸载 triton 等),对新手不友好。
Genome-Factory 并非完美,以下几点值得注意:
基因组基础模型是 2023 年以来 AI + 生命科学最活跃的领域之一。EVO 模型由 Stanford 和 Arc Institute 联合发布,HyenaDNA 来自 MIT,Caduceus 来自 UCLA——它们各自强大,但彼此独立、互不兼容。Genome-Factory 的价值在于充当"翻译层",让研究人员能够以统一的方式探索这些模型,而不用被各种模型特有的 API 折腾。
从增长趋势看,基因组数据量正以指数级速度增长(人类基因组计划后,二代测序产生了 EB 级数据),对自动化、可复现的基因组 AI 工作流需求只会越来越强烈。Genome-Factory 踩在了这个趋势上。
如果你在研究基因组功能预测、增强子检测、启动子分析、病毒基因组分类等方向,Genome-Factory 值得一试——尤其是当你需要在多个基因组模型之间做对比实验时,它能显著提升效率。但请做好心理准备:安装过程有一定复杂度,需要对 conda 环境管理和 GPU 配置有一定经验。