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(更严格) |