跳转至

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主要输出文件