摘要: Jaeger 是一款基于深度学习的噬菌体序列检测工具,专为宏基因组序列组装数据设计。与传统同源性比对方法不同,Jaeger 采用无同源性依赖的机器学习策略,能够在宏基因组组装结果中准确识别噬菌体基因组序列,包括整合于宿主基因组中的前噬菌体。该工具支持 GPU 加速,可显著提升运行效率,同时兼容 CPU 及 Apple Silicon 等多种计算平台,安装部署灵活便捷,提供 Bioconda、PyPI 及容器镜像等多种安装方式。Jaeger 的核心优势在于其检测速度快、精度高,适用于大规模宏基因组数据分析场景。该工具已发表于预印本平台 bioRxiv(2024),由来自多个机构的研究团队联合开发。Jaeger 的推出为病毒宏基因组学研究提供了一种高效可靠的噬菌体发现手段,有望推动环境、临床及生态等领域中噬菌体多样性与功能的深入探索。
Jaeger:基于深度学习的噬菌体序列快速精准检测工具¶
概述¶
Jaeger 是一款专为宏基因组分析设计的深度学习工具,能够从宏基因组(metagenome)组装序列中快速、精准地识别噬菌体(bacteriophage)基因组序列。该工具的核心特点是采用无同源性(homology-free)机器学习方法,不依赖已知序列的比对,因此能够发现与已知数据库差异较大的新型噬菌体。
在宏基因组学研究中,噬菌体作为地球上数量最多的生物实体,对微生物群落的结构与功能具有深远影响。然而,噬菌体序列往往隐藏在复杂的宏基因组数据中,传统基于同源性比对的方法难以覆盖序列多样性极高的未知噬菌体。Jaeger 的出现正是为了解决这一核心问题。
Jaeger 不仅能够检测独立存在的烈性噬菌体(lytic phage)序列,还能识别整合在宿主基因组中的原噬菌体(prophage),使其在宏基因组组装物分析场景中具备广泛的适用性。该工具已发表于预印本平台 bioRxiv,由 Yasas Wijesekara 等人于 2024 年提交,由欧盟 Horizon 2020 计划及欧洲研究理事会(ERC)资助开发。
核心原理与功能¶
无同源性深度学习方法¶
Jaeger 的核心技术是 homology-free machine learning(无同源性机器学习)。与传统工具(如 BLAST 比对、HMM 搜索)不同,Jaeger 不依赖已知噬菌体序列数据库进行比对,而是通过深度学习模型直接从原始核苷酸序列中提取特征,判断该序列是否来自噬菌体。
这一设计带来以下优势:
- 不受数据库覆盖度限制:即便是序列差异极大的新型噬菌体,也可能被识别
- 速度更快:省去序列比对步骤,预测效率显著提升
- 适用于片段化序列:宏基因组组装产生的 contig(重叠群)往往是不完整的片段,Jaeger 专为此类输入设计
检测目标¶
Jaeger 能够检测两类主要目标:
- Phages(噬菌体):独立存在于宏基因组组装序列中的噬菌体基因组
- Prophages(原噬菌体):整合于细菌宿主基因组中的噬菌体序列
模型体系¶
从版本 1.26.0 起,Jaeger 引入了全新的模型管理机制:
- 内置的
default模型已被弃用,该模型使用旧版预测工作流 - 推荐使用新一代 SavedModel 格式的模型,例如
jaeger_38341_1.4M_fragment - 新模型需在安装后单独下载,通过
jaeger download命令获取 - 用户可通过
jaeger register-models命令注册自定义模型路径,支持使用自行训练或微调的模型
平台与加速支持¶
Jaeger 支持多种运行环境:
- GPU 加速:支持 NVIDIA CUDA GPU,通过 CUDA Toolkit 和 cuDNN 库显著提升推理速度
- CPU 运行:无 GPU 时仍可正常运行,适合普通工作站
- Apple Silicon(arm):针对 Mac M 系列芯片提供专项支持
- 容器化部署:支持 Apptainer(原 Singularity),适合 HPC 集群环境
结果可视化¶
Jaeger 的预测结果可与配套工具 phage_contig_annotator 联合使用,对预测出的噬菌体 contig 进行注释和可视化展示。
安装与使用¶
Jaeger 提供五种安装方式,根据用户环境选择最适合的方案。
方式一:一键安装脚本(推荐)¶
最简便的安装方式,脚本会自动检测运行平台(GPU、CPU 或 Apple Silicon)并配置相应环境。
# 通过 curl 下载并执行官方安装脚本,自动完成平台检测与环境配置
curl -sSL https://raw.githubusercontent.com/MGXlab/Jaeger/main/install.sh | bash
方式二:Bioconda 安装¶
适合已有 conda/mamba 环境的用户。若需 GPU 加速,需确保 CUDA Toolkit 和 cuDNN 对 conda 可用。
# 创建名为 jaeger 的 conda 环境并从 bioconda 频道安装指定版本
mamba create -n jaeger -c bioconda jaeger-bio==1.26
# 激活 jaeger 环境
conda activate jaeger
# 运行健康检查,验证安装是否成功
jaeger health
方式三:PyPI 安装(推荐)¶
支持 GPU、CPU 及 Mac arm 三种版本,灵活性较高。
# 方案 A:使用 conda 创建环境(含 CUDA 支持)
mamba create -n jaeger -c nvidia -c conda-forge cuda-nvcc "python>=3.11,<3.14" pip
conda activate jaeger
# 方案 B:使用 Python venv 创建虚拟环境
python3 -m venv jaeger
source jaeger/bin/activate
# 安装 GPU 版本(需要 NVIDIA GPU)
pip install jaeger-bio[gpu]
# 安装 CPU 版本(无 GPU 时使用)
pip install jaeger-bio[cpu]
# 安装 Mac(Apple Silicon arm 架构)版本
pip install jaeger-bio[darwin-arm]
# 验证安装是否正常
jaeger health
方式四:从 Git 主分支安装¶
适合需要使用最新开发版本的用户。
# 创建 conda 环境(含 CUDA 支持)
mamba create -n jaeger -c nvidia -c conda-forge cuda-nvcc "python>=3.11,<3.14" pip
conda activate jaeger
# 或使用 venv 虚拟环境
python3 -m venv jaeger
source jaeger/bin/activate
# 从 GitHub 主分支安装 GPU 版本
pip install --no-cache-dir "jaeger-bio[gpu] @ git+https://github.com/MGXlab/Jaeger@main"
# 从 GitHub 主分支安装 CPU 版本
pip3 install --root-user-action=ignore --no-cache-dir "jaeger-bio[cpu] @ git+https://github.com/MGXlab/Jaeger@main"
# 从 GitHub 主分支安装 Mac arm 版本
pip3 install --root-user-action=ignore --no-cache-dir "jaeger-bio[darwin-arm] @ git+https://github.com/MGXlab/Jaeger@main"
# 验证安装
jaeger health
方式五:Apptainer(Singularity)容器¶
适用于 HPC 集群环境。建议在本地机器构建容器后再传输到集群。
# 下载容器定义文件
wget -O jaeger_singularity.def https://raw.githubusercontent.com/Yasas1994/Jaeger/main/singularity/jaeger_singularity.def
# 下载配置文件
wget -O config.json https://raw.githubusercontent.com/Yasas1994/Jaeger/main/src/jaeger/data/config.json
# 构建 Apptainer 容器镜像
apptainer build jaeger.sif singularity/jaeger_singularity.def
# 测试容器是否可以运行(--nv 启用 NVIDIA GPU 支持)
apptainer run --nv jaeger.sif jaeger --help
# 运行健康检查
apptainer run --nv jaeger.sif jaeger health
模型下载与注册¶
安装完成后,需要单独下载预测模型。
# 列出所有可供下载的模型
jaeger download --list
# 下载指定模型并保存到指定路径
jaeger download --path /path/to/store/models --model_name jaeger_38341_1.4M
# 如果后续更改了模型存放路径,或添加了新的自训练模型,注册新路径
jaeger register-models --path /new/model/path
实战示例¶
场景一:使用 Apptainer 完整运行噬菌体预测¶
以下是在 HPC 集群上使用 Apptainer 容器执行完整噬菌体检测流程的示例:
# 步骤 1:列出可用模型,确认模型名称
apptainer run --nv jaeger.sif jaeger download --list
# 步骤 2:下载推荐模型(以 jaeger_38341_1.4M_fragment 为例)
apptainer run --nv jaeger.sif jaeger download \
--model_name jaeger_38341_1.4M_fragment \
--path /path/to/save/model \
--config /path/to/config.json
# 步骤 3:对宏基因组组装的 FASTA 文件执行噬菌体预测
apptainer run --nv jaeger.sif jaeger predict \
--model jaeger_38341_1.4M_fragment \ # 指定使用的模型名称
--config /path/to/config.json \ # 指定配置文件路径
-i /path/to/input.fasta \ # 输入的组装序列文件(FASTA 格式)
-o /path/to/save/results # 输出结果保存目录
场景二:标准安装后的本地预测流程¶
# 步骤 1:安装完成后验证工具可用性
jaeger health
# 步骤 2:查看可用模型列表
jaeger download --list
# 步骤 3:下载所需模型
jaeger download --path /path/to/store/models --model_name jaeger_38341_1.4M
# 步骤 4(可选):若模型存放在非默认路径,注册路径
jaeger register-models --path /path/to/store/models
场景三:结果可视化¶
完成预测后,可使用配套工具 phage_contig_annotator 对 Jaeger 输出结果进行注释和可视化。该工具由同一作者维护,可进一步展示噬菌体 contig 的基因组注释信息 [待验证具体使用命令,请参考该工具的独立文档]。
常见问题¶
Q1:Jaeger 与传统噬菌体检测工具(如 VIBRANT、VirSorter)有何本质区别?
Jaeger 采用无同源性(homology-free)深度学习方法,不需要与已知噬菌体序列数据库进行比对。传统工具大多依赖数据库比对或标志基因搜索,对于与已知噬菌体差异较大的新型噬菌体,检出率可能受限。Jaeger 从序列本身的特征出发进行分类,理论上对新型噬菌体具有更好的泛化能力。
Q2:安装后运行 jaeger health 报错,应如何排查?
jaeger health 是安装验证命令,用于检测工具链是否完整。若报错,建议按以下顺序排查:确认 Python 版本在 3.11 至 3.14 之间;确认已正确激活对应的 conda 或 venv 虚拟环境;若使用 GPU 版本,确认 CUDA Toolkit 和 cuDNN 已正确安装且版本兼容;详细排查步骤请参考官方文档。
Q3:从版本 1.26.0 升级后,原有的 default 模型还能使用吗?
内置的 default 模型已被官方标记为废弃(deprecated),它使用旧版预测工作流,官方不再推荐使用。升级后应通过 jaeger download 命令下载新一代 SavedModel 格式模型(如 jaeger_38341_1.4M_fragment)以获得最佳预测效果。
Q4:在没有 GPU 的服务器上能否正常运行 Jaeger?
可以。Jaeger 提供独立的 CPU 版本(pip install jaeger-bio[cpu]),在无 GPU 的环境中同样可以完成预测,但运行速度会低于 GPU 版本。官方文档指出,GPU 支持能显著提升工作流的整体性能。
Q5:如何在 HPC 集群上部署 Jaeger?
推荐使用 Apptainer(Singularity)容器方式部署。官方建议先在本地机器构建容器镜像(.sif 文件),再将其传输到集群节点上运行,以避免集群环境权限限制导致的构建问题。运行时通过 --nv 参数启用 NVIDIA GPU 支持。
总结¶
Jaeger 是一款面向宏基因组学场景的深度学习噬菌体检测工具,其核心优势在于采用无同源性机器学习方法,突破了传统比对工具对已知数据库的依赖,能够从宏基因组组装序列中检测噬菌体和原噬菌体序列。工具提供五种灵活的安装方式,覆盖 GPU、CPU、Apple Silicon 及 HPC 集群容器化等多种环境。从 1.26.0 版本起,模型管理机制升级,用户需在安装后单独下载新一代 SavedModel 模型,旧版内置 default 模型已被废弃。预测结果可配合 phage_contig_annotator 工具进行可视化注释。Jaeger 已发表预印本并获欧盟及 ERC 科研项目支持,是当前宏基因组噬菌体挖掘领域值得关注的工具之一。