原理
SPAdes基于多k-mer de Bruijn图策略:同时使用多个k-mer长度(如k=21,33,55,77)构建图,用较小k-mer填补低覆盖度区域、较大k-mer解析重复区。各k-mer图的contig通过Graph Simplification和Bridging合并,最终输出scaffold。virusSPAdes模块内建病毒基因组预期长度和环化逻辑,在组装完成后自动检测末端重叠并环化基因组。
步骤
1. 运行SPAdes
virusSPAdes模式对病毒数据优化:
spades.py -1 trimmed_R1.fq.gz -2 trimmed_R2.fq.gz --isolate -o spades_output/ -t 8 -m 32
--isolate标志假定单一基因组(不含宿主),适合病毒富集测序数据。宏基因组数据改用--meta模式。
2. 检查组装结果
核心输出文件:contigs.fasta(contig序列)、scaffolds.fasta(scaffold序列)、assembly_graph.gfa(de Bruijn图,可用Bandage可视化)。用QUAST评估N50和基因组完整性。
3. 病毒基因组环化
环状病毒基因组(如双链DNA病毒)末端应有>30 bp重叠。用NUCmer比对contig首尾,确认末端重叠后用samtools faidx截取去除重复区。
4. 组装质量评估
理想病毒组装结果:单一contig覆盖全基因组、N50=全长、覆盖度>100×且均匀。若得到多个contig,检查是否为多节段病毒(如流感8条)或混合感染。
参数选择建议
| 参数 | 推荐值 | 说明 |
|---|---|---|
| --isolate | - | 单一基因组模式,病毒富集数据必选 |
| k-mer范围 | 自动选择 | 默认21,33,55,77,病毒基因组可自动适配 |
| -m | 不少于32 | 内存(GB),病毒数据32 GB足够 |
FAQ
Q:SPAdes和Canu怎么选?
A:短读长(Illumina)用SPAdes,长读长(Nanopore/PacBio)用Canu。SPAdes专为短读长de Bruijn图优化,Canu为长读长overlap-layout-consensus设计。
Q:组装出多个contig是失败了吗?
A:不一定。多节段病毒(流感8条、汉坦3条)天然产生多个contig——此时每个contig对应一个节段。若单节段病毒得到2-3个contig,检查覆盖度低谷是否对应重复区。
Q:--meta和--isolate模式哪个对病毒数据更好?
A:病毒富集后(如探针捕获或PCR扩增)数据用--isolate,组装更连续。未富集的临床样本直测数据用--meta,否则SPAdes会因宿主reads太多而错误连接。
参考文献
- Bankevich A, Nurk S, Antipov D, et al. SPAdes: A New Genome Assembly Algorithm and Its Applications to Single-Cell Sequencing. J Comput Biol. 2012;19(5):455-477. DOI: 10.1089/cmb.2012.0021
- Nurk S, Meleshko D, Korobeynikov A, et al. metaSPAdes: a new versatile metagenomic assembler. Genome Res. 2017;27(5):824-834. DOI: 10.1101/gr.213959.116
