跳转至

MEGAHIT — 超大宏基因组高效组装工具


一句话说明

MEGAHIT 是专为宏基因组设计的从头组装工具,使用简洁的 de Bruijn 图(succinct DBG),内存占用极低(同样数据量比 SPAdes 低 5-10 倍),能在普通服务器上组装上百 GB 的宏基因组数据。


安装与配置

# 方法1:conda 安装(推荐)
conda install -c bioconda megahit  # 从 bioconda 安装

# 方法2:源码编译
git clone https://github.com/voutcn/megahit.git  # 克隆源码
cd megahit && mkdir build && cd build             # 创建构建目录
cmake .. -DCMAKE_BUILD_TYPE=Release               # 配置 Release 模式
make -j 16                                         # 编译

# 验证安装
megahit --version  # 当前最新 v1.2.9(2020年发布,至今无新版本)

为什么选 MEGAHIT

  • 内存效率极高:100GB 宏基因组数据约需 30-50GB RAM
  • 速度快:比 metaSPAdes 快 2-5 倍
  • 适合超大规模数据(数千个样本的联合组装)

核心用法

基本组装

# 单样本宏基因组组装
megahit \
  -1 R1.fq.gz \                  # Read 1
  -2 R2.fq.gz \                  # Read 2
  -o megahit_output \             # 输出目录
  -t 32 \                        # 32 线程
  --min-contig-len 500            # 最短 contig 长度(过滤短片段)

# 组装结果
# megahit_output/final.contigs.fa — 最终 contig 序列

进阶用法

# 多样本联合组装(co-assembly,提高低丰度物种检测)
megahit \
  -1 s1_R1.fq.gz,s2_R1.fq.gz,s3_R1.fq.gz \  # 多个样本的 R1 用逗号分隔
  -2 s1_R2.fq.gz,s2_R2.fq.gz,s3_R2.fq.gz \  # 多个样本的 R2
  -o coassembly_output \
  -t 32 \
  --min-contig-len 1000           # 联合组装建议过滤 <1000bp

# 带交叉读段的组装(单端 + 双端混合)
megahit \
  -1 R1.fq.gz -2 R2.fq.gz \      # 双端读段
  -r unpaired.fq.gz \             # 单端/未配对读段
  -o mixed_output \
  -t 32

# 超大数据集的内存优化
megahit \
  -1 R1.fq.gz -2 R2.fq.gz \
  -o low_mem_output \
  -t 32 \
  -m 0.5 \                        # 只使用 50% 可用内存
  --k-min 21 \                    # 最小 k-mer(默认 21)
  --k-max 141 \                   # 最大 k-mer(默认 141)
  --k-step 12                     # k-mer 步进(默认 12)

# 预设参数组合
megahit \
  -1 R1.fq.gz -2 R2.fq.gz \
  --presets meta-large \           # 大型宏基因组预设(更大 k-mer 范围)
  -o preset_output \
  -t 32

# 从断点恢复
megahit \
  -o megahit_output \
  --continue                       # 从上次中断处继续

组装后标准分析

# 1. 统计组装质量
# 用 seqkit 快速统计
seqkit stats megahit_output/final.contigs.fa
# 或用 QUAST
quast megahit_output/final.contigs.fa -o quast_report

# 2. 将读段比对回组装(计算 contig 覆盖度,binning 必需)
bwa-mem2 index megahit_output/final.contigs.fa
bwa-mem2 mem -t 16 megahit_output/final.contigs.fa R1.fq.gz R2.fq.gz \
  | samtools sort -@ 4 -o mapped.bam
samtools index mapped.bam

# 3. 基因预测
prodigal -i megahit_output/final.contigs.fa \
  -o genes.gff -a proteins.faa -p meta    # -p meta 宏基因组模式

常见问题与踩坑

问题1:MEGAHIT vs metaSPAdes 怎么选

对比:MEGAHIT 内存低、速度快,适合大数据;metaSPAdes 组装质量略好但内存需求大
建议:数据量 >50GB 或服务器内存 <64GB 用 MEGAHIT;小数据且内存充足用 metaSPAdes

问题2:min-contig-len 设多少

建议:单样本组装设 500bp;联合组装设 1000bp;binning 下游分析设 1500-2000bp

问题3:联合组装 vs 单样本组装

联合组装优点:提高低丰度物种检出率
联合组装缺点:嵌合体 contig 风险增加,内存需求大
建议:同一项目的样本做联合组装,不同项目分开组装

问题4:输出目录已存在报错

原因:MEGAHIT 不会覆盖已有输出目录
解决:删除旧目录或使用 --continue 从断点恢复


速查卡片

命令/参数用途
megahit -1 R1 -2 R2 -o out基本组装
--min-contig-len 500最短 contig 过滤
-m 0.5限制使用 50% 内存
--presets meta-large大宏基因组预设
--k-min 21 --k-max 141自定义 k-mer 范围
-r unpaired.fq.gz加入单端读段
--continue从断点恢复
final.contigs.fa最终组装结果
-t N线程数
--no-mercy禁用 mercy k-mer(更严格)