SPAdes — 小基因组从头组装标准工具¶
一句话说明¶
SPAdes 是基于 de Bruijn 图的基因组从头组装工具,主要用于细菌等小基因组的组装,支持 Illumina 短读段、PacBio/ONT 长读段、以及混合组装模式。
安装与配置¶
# 方法1:conda 安装(推荐)
conda install -c bioconda spades # 从 bioconda 安装
# 方法2:预编译下载
wget https://github.com/ablab/spades/releases/download/v4.0.0/SPAdes-4.0.0-Linux.tar.gz
tar -xzf SPAdes-4.0.0-Linux.tar.gz # 解压即用
# 验证安装
spades.py --version # 当前最新 v4.0.0(2024年)
内存需求¶
- 细菌基因组(~5Mb):约 4-8GB
- 真菌基因组(~40Mb):约 16-32GB
- 不建议用于大基因组(>300Mb),那是 MEGAHIT 的场景
核心用法¶
基本组装¶
# 细菌基因组组装(双端 Illumina)
spades.py \
-1 R1.fq.gz \ # Read 1
-2 R2.fq.gz \ # Read 2
-o spades_output \ # 输出目录
-t 16 \ # 16 线程
-m 32 # 最大内存 32GB
# 组装结果在 spades_output/ 下:
# scaffolds.fasta — 最终脚手架序列(通常用这个)
# contigs.fasta — contig 序列(无连接信息)
# assembly_graph.gfa — 组装图(Bandage 可视化用)
进阶用法¶
# 混合组装(短读 + 长读,推荐细菌完成图)
spades.py \
-1 R1.fq.gz -2 R2.fq.gz \ # Illumina 短读段
--nanopore ont_reads.fq.gz \ # ONT 长读段
-o hybrid_output \
-t 16 -m 64
# 仅用长读段组装(PacBio CLR)
spades.py \
--pacbio clr_reads.fq.gz \ # PacBio CLR 读段
-o pacbio_output \
-t 16
# 分离株模式(单一菌株,更严格的组装)
spades.py \
--isolate \ # 分离株模式(低错误率、均匀覆盖度)
-1 R1.fq.gz -2 R2.fq.gz \
-o isolate_output \
-t 16
# 谨慎模式(减少错误组装,牺牲一些连续性)
spades.py \
--careful \ # 减少错配和短 indel
-1 R1.fq.gz -2 R2.fq.gz \
-o careful_output \
-t 16
# 从断点恢复(组装中断后继续)
spades.py \
-o spades_output \ # 使用之前的输出目录
--restart-from last # 从最后的检查点恢复
# 使用 mate-pair 文库提高连续性
spades.py \
-1 pe_R1.fq.gz -2 pe_R2.fq.gz \ # paired-end 文库
--mp1-1 mp_R1.fq.gz --mp1-2 mp_R2.fq.gz \ # mate-pair 文库
-o mp_output \
-t 16
常见问题与踩坑¶
问题1:内存不足 killed¶
原因:SPAdes 对大基因组内存需求高
解决:用 -m 限制内存上限,或改用 MEGAHIT;细菌基因组 32GB 通常够用
问题2:--careful 和 --isolate 能一起用吗¶
回答:不能,两个是互斥模式。分离株用 --isolate,宏基因组样本中的单菌用 --careful
问题3:组装结果碎片化严重¶
原因:覆盖度不均匀、重复区域多、或文库质量差
解决:加入长读段做混合组装;检查覆盖度是否 >50x;先做严格质控
问题4:metaSPAdes vs SPAdes 区别¶
说明:metaSPAdes(--meta 参数)专门处理宏基因组混合样本,能处理不均匀覆盖度
选择:单一菌株用 SPAdes --isolate,混合菌群用 spades.py --meta(即 metaSPAdes)
速查卡片¶
| 命令/参数 | 用途 |
|---|---|
spades.py -1 R1 -2 R2 -o out | 基本双端组装 |
--isolate | 分离株模式(单一菌株) |
--careful | 谨慎模式(减少错误) |
--meta | 宏基因组模式(metaSPAdes) |
--plasmid | 质粒组装模式 |
--nanopore | 添加 ONT 长读段 |
--pacbio | 添加 PacBio 长读段 |
-t 16 -m 32 | 设线程数和内存上限 |
--restart-from last | 从断点恢复 |
scaffolds.fasta | 主要输出文件 |