跳转至

摘要: MitoFinder是一款用于线粒体基因组装配与注释的生物信息学流程工具,由Allio等人于2020年发表在《Molecular Ecology Resources》期刊。该工具能够从修剪后的测序读段数据中组装线粒体基因组,并对线粒体基因进行自动注释;同时支持对已有基因组装配结果(包括HiFi/PacBio/Nanopore/Illumina等多种测序平台产生的数据)进行线粒体序列的识别与注释。MitoFinder主要基于Python 2.7编写,适用于各类Linux系统,依赖automake、autoconf及gcc等基础工具。为方便在无管理员权限的服务器环境或Python 3.x默认环境中使用,该工具提供Singularity容器版本(需3.0及以上),用户可直接拉取镜像运行,无需从源码编译安装。MitoFinder在系统发育基因组学研究中具有重要应用价值,可高效支持大规模线粒体基因组数据的获取与分析,为物种进化关系研究提供基因组层面的数据支撑。


MitoFinder:线粒体基因组装配与注释流程工具

概述

MitoFinder 是一款专为系统发育基因组学(Phylogenomics)设计的线粒体基因组装配与注释流水线工具,由 Allio 等人于 2020 年发表在 Molecular Ecology Resources(20, 892-905)上。其核心功能有两个方向:一是从修剪后的测序原始读段(trimmed reads)中从头组装线粒体基因组并进行基因注释;二是在已有的基因组装配结果中定位并注释线粒体序列,支持 HiFi/PacBio/Nanopore/Illumina 等多种测序平台产生的组装数据。

在系统发育研究中,线粒体基因组是不可或缺的分子标记资源,但从全基因组测序数据中提取和注释线粒体基因组往往流程繁琐、工具分散。MitoFinder 通过整合主流基因组装配工具(MEGAHIT、MetaSPAdes、IDBA-UD)与多种 tRNA 注释工具(MiTFi、ARWEN、tRNAscan-SE),将组装、比对、注释等步骤整合为一条自动化流水线,显著降低了分析门槛,提高了研究效率。

该工具适用于所有类 Linux 系统,要求预装 automakeautoconfgcc,主要以 Python 2.7 编写。对于无管理员权限的服务器用户或默认 Python 版本为 3.x 的用户,官方提供了 Singularity 容器作为替代安装方式。


核心原理与功能

1. 双模式工作流

MitoFinder 支持两种主要运行模式:

  • 从头组装模式(De novo assembly mode):接收配对端(Paired-end, PE)或单端(Single-end, SE)的修剪后 FASTQ 格式读段,调用下游组装工具进行组装,随后在组装结果中识别线粒体相关 contig(重叠群),并对其进行基因注释。
  • 已有组装注释模式(Existing assembly mode):跳过组装步骤,直接对用户提供的 FASTA 格式组装文件进行线粒体序列识别与基因注释。

2. 组装工具集成

MitoFinder 集成了以下三种组装工具,用户可按需选择:

工具特点推荐场景
MEGAHIT速度快,内存占用低,默认选项常规分析,大数据集
MetaSPAdes效率更高,组装质量更好,速度稍慢追求组装质量;不兼容单端读段
IDBA-UD经典宏基因组组装工具Linux 系统;Mac OS 暂不支持

3. tRNA 注释工具集成

在 tRNA(转运 RNA)注释步骤中,MitoFinder 提供三种工具选择:

  • MiTFi(默认):基于协方差模型,注释精度高,速度较慢,需要 java 环境
  • ARWEN:速度快,适合快速扫描
  • tRNAscan-SE:广泛使用的 tRNA 注释标准工具

4. 线粒体序列识别机制

MitoFinder 使用 BLAST(包括 makeblastdbblastnblastx)将组装 contig 与用户提供的参考线粒体基因组(GenBank 格式 .gb 文件)进行比对,筛选出线粒体相关 contig。关键比对参数包括:

  • BLAST e-value-e):默认 0.00001,用于控制比对显著性阈值
  • 核苷酸序列一致性--blast-identity-nucl):BLAST 比对核苷酸层面的最低一致性百分比
  • 蛋白序列一致性--blast-identity-prot):BLAST 比对蛋白层面的最低一致性百分比
  • 比对覆盖度阈值--blast-size):默认 30%,用于判断 contig 是否保留

5. 基因注释功能

识别到线粒体 contig 后,MitoFinder 执行以下注释流程:

  • 利用参考基因组信息,识别编码序列(CDS)、核糖体 RNA(rRNA)和 tRNA 基因
  • 通过滑窗搜索起始密码子和终止密码子,参数 -n--nwalk)控制搜索步数(默认 5 步,对应 30 个碱基)
  • 支持含内含子(intron)基因的搜索(--allow-intron),可设置最大内含子大小(--intron-size,默认 5000 bp)
  • 支持核线粒体 DNA 片段(NUMTs, Nuclear mitochondrial DNA segments)的搜索(--numt
  • 支持非标准线粒体基因的注释(--new-genes),如真菌线粒体中的 rps3
  • 可输出 GenBank 格式的注释文件(--out-gb

6. contig 过滤参数

参数默认值说明
--min-contig-size1000 bp参与分析的最小 contig 长度
--max-contig-size25000 bp参与分析的最大 contig 长度
--max-contig0(不限制)保留匹配参考的最大 contig 数量
-l--length100MEGAHIT 组装时保留的最短 contig 长度

7. 遗传密码支持

通过 -o 参数指定生物体遗传密码类型(genetic code),这对于线粒体基因组尤为重要,因为线粒体密码子与标准遗传密码存在差异(如无脊椎动物线粒体遗传密码为 5)。


安装与使用

方式一:Singularity 容器安装(推荐用于服务器和 Python 3 环境)

对于无管理员权限的集群用户,或系统默认 Python 为 3.x 的用户,官方强烈推荐使用 Singularity 容器。

# 拉取 MitoFinder 容器镜像(版本 v1.4.2,架构 amd64)
singularity pull --arch amd64 library://remiallio/default/mitofinder:v1.4.2

# 运行容器并查看帮助信息(方式一)
singularity run mitofinder_v1.4.2.sif -h

# 运行容器并查看帮助信息(方式二,直接调用 .sif 文件)
mitofinder_v1.4.2.sif -h

将容器路径添加至系统 PATH:

# 克隆容器辅助仓库(包含测试用例)
git clone https://github.com/RemiAllio/MitoFinder_container.git

# 进入容器镜像所在目录
cd PATH/TO/MITOFINDER_IMAGE/

# 获取当前目录绝对路径并写入 ~/.bashrc
p=$(pwd)
echo -e "\n#Path to MitoFinder image \nexport PATH=\$PATH:$p" >> ~/.bashrc

# 使配置立即生效
source ~/.bashrc

# 验证 PATH 中的 MitoFinder 版本是否正确
mitofinder_v1.4.2.sif -v

警告:若系统中已安装旧版本 MitoFinder,需先手动编辑 ~/.bashrc,删除旧版 PATH 配置行,关闭终端后重新打开,再执行上述步骤,避免版本冲突。在集群上可使用 nanovi 编辑 ~/.bashrc


方式二:Linux 源码安装

1. 安装系统依赖:

# 安装 automake 和 autoconf(构建工具)
sudo apt-get install automake autoconf

# 安装 Java 运行环境(MiTFi tRNA 注释工具所需)
sudo apt install default-jre

# (可选)安装 pillow 用于生成注释 contig 图像,需 pip 对应 Python 2.7
pip2.7 install pillow==6.2.2

2. 克隆仓库并编译安装:

# 从 GitHub 克隆源码
git clone https://github.com/RemiAllio/MitoFinder.git

# 进入目录
cd MitoFinder

# 执行安装脚本(编译依赖工具)
./install.sh

# 查看帮助,验证安装成功
PATH/TO/MITOFINDER/mitofinder -h

或通过 zip 包安装:

# 下载 zip 压缩包
wget https://github.com/RemiAllio/MitoFinder/archive/master.zip

# 解压
unzip master.zip

# 重命名目录
mv MitoFinder-master MitoFinder

# 进入目录
cd MitoFinder

# 执行安装脚本
./install.sh

# 查看帮助
PATH/TO/MITOFINDER/mitofinder -h

3. 配置 PATH 环境变量:

# 进入 MitoFinder 安装目录
cd PATH/TO/MITOFINDER/

# 获取绝对路径并写入 ~/.bashrc
p=$(pwd)
echo -e "\n#Path to MitoFinder \nexport PATH=\$PATH:$p" >> ~/.bashrc

# 使配置生效
source ~/.bashrc

# 验证版本
mitofinder -v

方式三:Mac OS 安装

1. 使用 Homebrew 安装构建工具:

# 安装 autoconf 和 automake
brew install autoconf automake

# (可选)安装 wget
brew install wget

2. 克隆并安装:

# 克隆源码
git clone https://github.com/RemiAllio/MitoFinder.git
cd MitoFinder
./install.sh

3. 配置 BLAST 工具(Mac OS 需手动安装):

# 下载 BLAST+ 二进制包(macOS x64 版本)
wget https://ftp.ncbi.nlm.nih.gov/blast/executables/blast+/LATEST/ncbi-blast-2.12.0+-x64-macosx.tar.gz

# 解压
tar -xvf ncbi-blast-*-x64-macosx.tar.gz

# 进入可执行文件目录,将路径填写至 Mitofinder.config
cd ncbi-blast-*+/bin/

4. 安装组装工具(以 MEGAHIT 为例,通过 conda):

# 使用 conda 安装 MEGAHIT
conda install -c bioconda megahit

安装后,将可执行文件路径填写至 Mitofinder.config 文件中对应字段。

5. 安装 SPAdes(推荐预编译二进制):

# 下载 SPAdes macOS 预编译包
curl http://cab.spbu.ru/files/release3.14.0/SPAdes-3.14.0-Darwin.tar.gz -o SPAdes-3.14.0-Darwin.tar.gz

# 解压
tar -zxf SPAdes-3.14.0-Darwin.tar.gz

# 进入 bin 目录,将 metaspades.py 路径填写至 Mitofinder.config
cd SPAdes-3.14.0-Darwin/bin/

6. 编译 ARWEN(Mac OS 专属步骤):

# 进入 arwen 源码目录
cd PATH/TO/MITOFINDER/arwen/

# 使用 gcc 编译
gcc arwen1.2.3.c

# 重命名可执行文件
mv a.out arwen

# 测试 arwen 是否正常运行
./arwen -h

提示:在 Mac OS 上,安装完成后需在 Mitofinder.config 文件中手动填写各工具可执行文件的路径。可使用 which <工具名> 查找 PATH 中已有工具的路径,或 cd 进入工具目录后用 pwd 获取路径。


实战示例

示例一:配对端读段从头组装与注释

# 标准配对端测序数据分析流程
# -j: 序列 ID(贯穿整个流程的唯一标识符)
# -1: 正向读段文件(Forward paired-end reads)
# -2: 反向读段文件(Reverse paired-end reads)
# -r: 参考线粒体基因组(GenBank 格式 .gb 文件)
# -o: 遗传密码类型(5 = 无脊椎动物线粒体密码)
# -p: 使用线程数
# -m: 最大内存用量(单位:GB)
mitofinder -j [seqid] -1 [left_reads.fastq.gz] -2 [right_reads.fastq.gz] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]

示例二:单端读段从头组装与注释

# 单端测序数据分析
# -s: 单端读段文件(Single-end reads)
mitofinder -j [seqid] -s [SE_reads.fastq.gz] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]

示例三:使用已有组装文件直接注释

# 跳过组装步骤,直接对已有 FASTA 文件进行线粒体序列识别与注释
# -a: 已有组装文件(FASTA 格式,可包含单个或多个 contig)
mitofinder -j [seqid] -a [assembly.fasta] -r [genbank_reference.gb] -o [genetic_code] -p [threads] -m [memory]

示例四:运行内置测试用例(含组装与注释步骤)

# 进入测试用例目录
cd PATH/TO/MITOFINDER/test_case/

# 运行完整流程测试
# 遗传密码 5 = 无脊椎动物线粒体密码,使用 5 线程和 10 GB 内存
../mitofinder \
  -j Aphaenogaster_megommata_SRR1303315 \
  -1 Aphaenogaster_megommata_SRR1303315_R1_cleaned.fastq.gz \
  -2 Aphaenogaster_megommata_SRR1303315_R2_cleaned.fastq.gz \
  -r reference.gb \
  -o 5 \
  -p 5 \
  -m 10

示例五:仅运行注释步骤的测试用例

# 进入测试用例目录
cd PATH/TO/MITOFINDER/test_case/

# 仅注释步骤(使用已有 FASTA 文件)
../mitofinder \
  -j Hospitalitermes_medioflavus_NCBI \
  -a Hospitalitermes_medioflavus_NCBI.fasta \
  -r Hospitalitermes_medioflavus_NCBI.gb \
  -o 5

示例六:查看基本用法示例

# 打印 MitoFinder 内置的基本使用示例
mitofinder --example

常见问题

Q1:运行 MitoFinder 时提示 Python 版本不兼容,怎么办?

MitoFinder 使用 Python 2.7 编写。若系统默认 Python 版本为 3.x,直接源码运行可能遇到依赖问题。官方推荐的解决方案是使用 Singularity 容器(mitofinder_v1.4.2.sif),该容器内已内置正确的 Python 2.7 环境,无需额外配置。

Q2:处理捕获数据(如 UCE 超保守元件数据)时,为什么找不到线粒体 contig?

在使用目标捕获数据(如 UCE)时,线粒体序列来自非目标区域的偏读(off-target reads),组装出的线粒体 contig 通常较短。此时需调低以下两个参数: - --min-contig-size(默认 1000 bp):适当降低,否则短 contig 会被直接过滤 - --blast-size(默认 30%):适当降低覆盖度阈值,否则短 contig 的 BLAST 命中可能不达标

Q3:重新运行 MitoFinder 时,程序跳过了组装步骤,如何强制重新组装?

若上一次运行已生成组装结果目录,MitoFinder 默认会跳过组装步骤直接进行注释。如需强制重新组装(例如上次组装失败或参数有变动),需添加 --override 选项,该选项会覆盖已有的组装结果目录。

Q4:如何搜索含内含子的基因或核线粒体 DNA 片段(NUMTs)?

  • 搜索含内含子基因:添加 --allow-intron 选项,并可通过 --intron-size 设置允许的最大内含子大小(默认 5000 bp)。官方建议先在不使用该选项的情况下运行 MitoFinder,找到线粒体 contig 后,再对这些 contig 使用 --allow-intron 进行精细注释。
  • 搜索 NUMTs:添加 --numt 选项。同样建议先完成常规运行,再对核基因组 contig 启用该选项。

Q5:在 Mac OS 上安装后,MitoFinder 找不到 BLAST 或组装工具,如何解决?

Mac OS 安装与 Linux 不同,需要在 Mitofinder.config 配置文件中手动填写各外部工具的可执行文件路径。具体步骤: 1. 使用 which <工具名>(如 which megahit)查找已在 PATH 中的工具路径 2. 若工具不在 PATH 中,cd 进入工具所在目录,执行 pwd 获取绝对路径 3. 将获取到的路径填入 Mitofinder.config 文件中对应工具的字段


总结

MitoFinder 是一款面向系统发育基因组学研究的自动化线粒体基因组处理流水线,其核心价值在于将组装(MEGAHIT/MetaSPAdes/IDBA-UD)、线粒体 contig 识别(BLAST)和基因注释(MiTFi/ARWEN/tRNAscan-SE)三大步骤整合为一条高度自动化的流程。工具支持从原始读段出发的从头组装模式,也支持对已有组装结果的直接注释模式,兼容 Illumina、PacBio、Nanopore 等多平台数据。对于不同部署场景,提供了 Singularity 容器(推荐用于集群和 Python 3 环境)和源码编译两种安装方式。使用时需特别注意根据数据类型(如 UCE 捕获数据)调整 --min-contig-size--blast-size 等关键过滤参数,并正确指定 -o 遗传密码类型以确保 CDS 注释准确性。