Snippy 怎么用?一份从安装到多样本比对的完整实操笔记
2026/8/21 1:12:09 网站建设 项目流程

Snippy 怎么用?一份从安装到多样本比对的完整实操笔记

【免费下载链接】snippy:scissors: :zap: Rapid haploid variant calling and core genome alignment项目地址: https://gitcode.com/gh_mirrors/sn/snippy

Snippy 是一套面向单倍体基因组的快速变异检测流水线,它能在参考序列与测序数据之间一次性定位 SNP 和插入缺失,并自动完成注释与核心基因组比对。如果你是做细菌、病毒或质粒测序的研究人员,下面这份笔记会按"选型 → 安装 → 首跑 → 批量"的顺序,带你走完从零到产出变异清单的全过程。

它到底帮你做什么

设想一个常见场景:你手上有十几个样本的测序数据,想快速知道它们相对某个参考基因组各自发生了哪些突变,还想比较它们之间的亲缘关系。手工比对、逐位筛查显然不现实,Snippy 就是把这条流水线压缩成一条命令的工具。

  • 适用对象:细菌、病毒、质粒、线粒体等单倍体基因组
  • 输出内容:变异位点清单(VCF/TAB)、比对文件(BAM)、修正版基因组(consensus)、核心 SNP 比对(core.aln)
  • 工作方式:内部依次调用 bwa 做比对、freebayes 找变异、snpEff 做注释,对外只暴露一个入口
输入形态适用情况
双端 FASTQ最常见的 Illumina 测序产物
单端 FASTQIon Torrent 等平台,或双端文件只剩其一
contigs原始 reads 已丢失,仅剩拼装结果

⚠️ 注意:Snippy 面向单倍体样本。人类这类二倍体需要区分杂合位点,不在它的处理范围内。

开工前,先核对这几样

  • ✅ 参考基因组:FASTA 或 GenBank 格式均可,多 contig 不影响
  • ✅ 测序数据:FASTQ 或 FASTA,支持 gzip 压缩
  • ✅ 一个专门存放结果的文件夹
  • ✅ 硬件:多核 CPU 能显著提速(官方在 64 核机器上验证过)
  • ✅ 外部依赖:bwa、minimap2、samtools、bcftools、bedtools、freebayes、snpEff、samclip、seqtk 等

最后一项最容易被忽视:Snippy 本体只是一个调度脚本,真正干重活的是背后那一串外部程序。任何一个缺失,流程都会在中途停下。所以判断安装是否成功,不能只看 Snippy 本身。

三条安装路径怎么取舍

路径适合谁优点要注意什么
Conda大多数用户依赖自动装齐、环境隔离、卸载干净需要先配置好 Bioconda 源
HomebrewmacOS 用户一条命令搞定,与系统软件统一管理依赖按 brew 方式处理
源码想追最新版的人代码最新、便于二次开发依赖全部自己装,PATH 需手动配置

Conda 路线,一条命令把依赖一起装齐:

conda install -c conda-forge -c bioconda -c defaults snippy

Homebrew 路线

brew install brewsci/bio/snippy

源码路线,先把代码拿到手,再补依赖:

git clone https://gitcode.com/gh_mirrors/sn/snippy.git export PATH=$PWD/snippy/bin:$PATH

源码方式只是拿到 Snippy 本体,配套程序仍需另行安装,例如:

conda install -c bioconda bwa samtools bcftools freebayes snpeff samclip seqtk

连续实操:装完 → 验证 → 跑第一个案例

第 1 步:确认版本号。

snippy --version

预期会打印出版本字符串(当前仓库为 5.0.0-dev);如果提示找不到命令,多半是 PATH 没配对,回头检查一下路径配置。

第 2 步:检查全部依赖。

snippy --check

命令会逐个探测比对、排序、变异识别、注释等环节用到的外部程序,可用的显示 OK 或版本信息。若有缺失就针对性补装,然后重新检查,直到全部通过。这一步值得认真做——检查通过再上真实数据,能避免跑到一半才发现缺工具

第 3 步:准备一份练手数据。

仓库的 test 目录里已经备好 example.fna(参考序列)、example.gbk(带注释版本)和 example.bed(区域文件)。真实 reads 文件比较大,先用 wgsim 按参考序列模拟一对双端 reads:

cd test wgsim -S 7 -h -r 0.005 -N 12000 -1 100 -2 100 -d 200 example.fna sim_1.fq sim_2.fq

这行命令的作用:以参考序列为模板,随机撒入约 0.5% 的变异,生成 1.2 万对、长度 100 bp 的虚拟双端 reads,用来验证整条流程是否通畅。

第 4 步:正式检出变异。

snippy --cpus 4 --outdir demo1 --ref example.fna --R1 sim_1.fq --R2 sim_2.fq

运行过程中会依次看到比对、变异识别等阶段日志,收尾时打印结果目录路径并显示 Done。

第 5 步:查看产出。

ls demo1

此时文件夹里已经躺着整套标准产物。

结果文件夹里都有什么

文件作用
snps.vcf注释后的标准变异文件
snps.tab / snps.csv便于阅读的表格汇总
snps.bam比对结果,含未比对与多比对 reads
snps.consensus.fa把变异回贴到参考序列的"修正版基因组"
snps.raw.vcf / snps.filt.vcf过滤前后的变异记录
snps.html可在浏览器打开的网页版汇总

想直接看变异清单,执行:

head -5 demo1/snps.tab

表格各列的含义依次是:变异所在的序列名(CHROM)、位置(POS)、类型(TYPE,取值 snp/mnp/ins/del/complex)、参考碱基(REF)、样本碱基(ALT)、支持各碱基的 reads 计数(EVIDENCE)。

如果参考用的是 example.gbk 这类带注释的文件,表格还会多出基因名、产物描述和影响效应列——变异落在哪个基因、是否改变氨基酸,一眼就能看到,这是 Snippy 很贴心的设计。

从单样本扩展到批量分析

样本一多,逐个手敲命令就不现实了。Snippy 提供了批量入口:先准备一个制表符分隔的清单文件 input.tab,每行描述一个样本:

SampleA /path/to/A_1.fq.gz /path/to/A_2.fq.gz SampleB /path/to/B.fq.gz SampleC /path/to/C.contigs.fa

生成并检查批量脚本:

snippy-multi input.tab --ref Reference.gbk --cpus 16 > runme.sh less runme.sh

确认脚本内容无误后放行:

sh runme.sh

脚本会逐个样本输出结果文件夹,并在末尾自动调用 snippy-core,把所有样本都有覆盖的位点聚合成核心 SNP 比对,产出 core.aln(多序列比对)和 core.vcf(多样本 VCF)。core.aln 可以直接交给 FastTree 等建树工具绘制系统发育树,做亲缘关系分析。

三个高频调参场景

场景一:深度太高,跑得特别慢。有的样本深度高达上千倍,而多数变异在 50~100 倍深度下就能可靠检出。用 --subsample 按比例随机抽读:

snippy --subsample 0.1 --outdir demo2 --ref ref.fna --R1 R1.fq.gz --R2 R2.fq.gz

场景二:只关心特定区域。比如只想筛耐药基因上的突变,把目标区域写进 BED 文件,用 --targets 限定范围,能省下大量计算:

snippy --targets sites.bed --outdir demo3 --ref ref.fna --R1 R1.fq.gz --R2 R2.fq.gz

场景三:只有 contigs 没有原始 reads。改用 --ctgs 传入 contigs 文件,Snippy 会把它撕成约 250 bp 的伪 reads 再比对,产物与 reads 样本完全兼容,可以混在一起参与批量分析:

snippy --outdir demo4 --ref ref.fna --ctgs sample.fasta

另外三个核心过滤参数也值得记住:--mincov(位点最少覆盖数,默认 10)、--minfrac(支持变异碱基的最低比例)、--minqual(最低质量值,默认 100),它们共同决定了最终哪些变异会被保留。

出问题时的排查速查表

症状常见原因处理办法
提示 command not foundPATH 没配好或依赖缺失用 which 逐个定位缺失工具,补进 PATH 或补装
运行极慢数据深度过高用 --subsample 按比例抽读
--check 报某项缺失外部依赖未安装用 conda 补装对应包,再重跑检查
结果缺注释列参考文件是 FASTA 而非 GenBank换成带注释的 .gbk 文件重跑

收尾:跑通之后继续做什么

  1. 用测试数据完整走一遍"验证 → 单样本 → 批量"的流程,把每个环节的输出记在脑子里,再碰真实数据。
  2. 正式样本开跑前备份好原始 reads,并为每个样本建立清晰的命名规范,方便日后追溯。
  3. 记录 --version 的输出和关键参数——变异检测结果与版本强相关,注明版本能让你的结果更可信、可复现。
  4. 进阶方向:结合 --report 生成逐位点可视化报告,或把 core.aln 送入建树、重组过滤流程做群体分析。

Snippy 的价值在于把"比对—变异识别—注释—汇总"这条长流水线封装成一条命令。当你把第一份 reads 顺利变成一张清晰的变异表格时,后续的群体分析和系统发育研究也就有了可靠的数据地基。

【免费下载链接】snippy:scissors: :zap: Rapid haploid variant calling and core genome alignment项目地址: https://gitcode.com/gh_mirrors/sn/snippy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询