
从零跑通 Snippy 变异检测一次安装、一个案例、三种提速技巧【免费下载链接】snippy:scissors: :zap: Rapid haploid variant calling and core genome alignment项目地址: https://gitcode.com/gh_mirrors/sn/snippySnippy 是一款面向细菌、病毒等单倍体基因组的快速变异检测工具它能把测序 reads 与参考基因组逐位比对一次性交出 SNP 与插入缺失清单还能顺手生成核心基因组比对。这篇实战笔记是写给刚接触生信、手头攥着一批测序数据却不知从哪下手的你全程跟着同事的操作思路走从安装一路跑到第一个结果。周一早晨20 个样本躺在你的硬盘里你刚从测序公司取回一批细菌样本的双端 FASTQ导师只说了一句跟参考基因组比对一下看看有哪些 SNP最后画棵树。听起来不难可当你打开终端才发现这条路比想象中长先要 bwa 比对再用 freebayes 找变异中间还得靠 samtools 整理 BAM/VCF最后用 snpEff 做注释。每一步参数各异、格式不同一个地方出错前面的活全白干。你需要的不是又一个单点工具而是一个能把整条流水线接管过去的总调度。为什么是它把五步流水线收成一条命令Snippy 自己并不做重活它更像一位调度员bwa 负责把 reads 比对到参考基因组freebayes 负责识别变异samtools/bcftools 负责整理中间文件snpEff 负责把变异注释到基因上——这些步骤它全都替你串好了你只需给出一条命令它按顺序跑完把结果整整齐齐放进同一个文件夹。几个值得记住的要点适用对象是单倍体基因组细菌、病毒、质粒、线粒体都没问题人类这种二倍体反而不适合因为它不区分杂合位点。数据形式很宽容默认接收--R1/--R2双端 reads单端也行只有拼装好的 contigs 也没关系--ctgs能顶上。跑得快单机就能用满多核官方测试到 64 核输出文件命名统一方便后续批量分析。开工前先备齐三样东西敲安装命令之前建议先对照清单自查一遍Perl 环境≥5.18Snippy 本体是 Perl 写的 一批依赖工具bwa、samtools、bcftools、freebayes、snpEff、minimap2、bedtools 等——Snippy 不打包这些任何一个缺失都会在中途卡住测试数据仓库test/目录里的 example.fna、example.gbk、example.bed第三样就是你这次要跑通的第一份模拟数据。记住一个判断标准依赖能不能一并解决比 Snippy 本身装没装上更重要它会直接决定你该选哪条安装路线。选一条顺手的 Snippy 从零开始安装路线路线一Conda最省心推荐。只要机器上装好了 Bioconda一条命令把所有依赖一起拉齐conda install -c conda-forge -c bioconda -c defaults snippy预期结果终端列出 bwa、freebayes、samtools 等一大串待安装包装完后回到提示符。路线二HomebrewmacOS 或装了 LinuxBrew 的 Linuxbrew install brewsci/bio/snippy路线三源码安装想追最新代码的人git clone https://gitcode.com/gh_mirrors/sn/snippy.git export PATH$PWD/snippy/bin:$PATH提醒一句源码路线只把 Snippy 本体拿到手bwa、freebayes、snpEff 这些依赖还得自己另外装。嫌麻烦就回到路线一。两分钟体检--version 和 --check 一条都别省装完别急着上真实数据先做两件小事snippy --version预期看到类似snippy 5.0.0-dev的版本字符串。再跑snippy --check它会逐个探测 bwa、minimap2、samtools、bcftools、freebayes、snpEff 等组件每个可用项旁边显示 OK 或版本信息 。看到哪个标记 missing就单独补装conda install -c bioconda samtools bcftools bwa freebayes snpeff samclip seqtk体检合格再开工能帮你躲开正式数据跑到一半才发现缺工具的尴尬。第一次跑通 SNP 检出跟着官方测试数据走一遍仓库test/目录里放着一套现成的测试材料。真实 reads 太大官方测试流程的做法是先用 wgsim 根据 example.fna 模拟一对双端 reads约 12000 对掺入 0.5% 的随机变异wgsim -S 1 -h -r 0.005 -N 12000 -1 100 -2 100 -d 200 example.fna R1.fq R2.fq预期结果当前目录多出 R1.fq、R2.fq 两个 FASTQ 文件。然后正式开跑snippy --cpus 4 --outdir my_first_run --ref example.fna --R1 R1.fq --R2 R2.fq运行日志会依次出现 bwa 比对、freebayes 变异识别等内容收尾时打印Walltime used: 3 min, 42 sec Results folder: my_first_run Done.进结果目录看一眼ls my_first_run会看到snps.vcf标准变异文件、snps.tab易读表格、snps.bam比对文件、snps.consensus.fa把变异贴回参考的修正版基因组等一整套产物。跑完结果怎么读懂 snps.tab用head -5 my_first_run/snps.tab打开表格前几列的含义是CHROM变异所在的序列名POS变异位置TYPEsnp / ins / del / mnp / complexREF / ALT参考碱基与样本碱基EVIDENCE支持各碱基的 reads 数如果你用的是 example.gbk 这种带注释的参考而不是 fna表格还会多出GENE、PRODUCT、EFFECT等列——直接告诉你变异落在哪个基因、会不会改变氨基酸这是 Snippy 很贴心的设计。怎么跑得更快更好三个小技巧技巧一深度太高先按比例抽读。有时候样本深度上千倍而 50–100 倍就足够可靠地检出变异。用--subsample随机抽读snippy --subsample 0.1 --outdir out --ref ref.fna --R1 R1.fq.gz --R2 R2.fq.gz日志里会出现Sub-sampling reads at rate 0.1的提示提速立竿见影。技巧二只想盯几个基因用 --targets 限定范围。比如只关心耐药基因上的突变把感兴趣的区域写进 BED 文件再传进去能省下一大截计算量snippy --targets sites.bed --outdir out --ref ref.fna --R1 R1.fq.gz --R2 R2.fq.gz技巧三只有 contigs 没有原始 reads用 --ctgs。Snippy 会把 contigs 撕成 250 bp 的伪 reads 再比对输出格式与 reads 样本完全兼容可以混在一起参与后续分析。从单个样本到十几个样本snippy-multi 批量上线手上有十几个样本要对同一个参考比对时一个个手敲命令太低效。用snippy-multi先准备一个制表符分隔的清单 input.tab每行一个样本Isolate1 /path/to/R1.fq.gz /path/to/R2.fq.gz Isolate2 /path/to/SE.fq.gz Isolate3 /path/to/contigs.fa然后执行snippy-multi input.tab --ref Reference.gbk --cpus 16 runme.sh less runme.sh # 先检查脚本内容是否符合预期 sh runme.sh # 确认无误后再放行批跑结束时Snippy 会自动调用snippy-core把所有样本都有覆盖的位置挑出来形成核心 SNP 比对产物core.aln、core.vcf可直接丢给 FastTree 等建树工具。收尾时你会看到类似Found 2814 core SNPs from 96615 SNPs.的汇总行。卡壳了怎么办三个高频问题自救问题一提示 command not found。原因PATH 没配好。 解决which snippy、which bwa逐个排查把缺失工具的目录加进 PATH或干脆用绝对路径调用。问题二--check 里某个依赖标记为 missing。原因安装路线没把依赖带全。 解决针对缺失项单独补装参考前面的 conda 补装命令补完重跑一遍--check直到全部通过。问题三数据深度太高跑得特别慢。原因样本深度上千倍远超检出所需。 解决用--subsample按比例抽读通常能快好几倍。装好之后接下来做什么最后给你三句叮嘱先把体检 → 单样本 → 批量用官方测试数据完整走一遍把每步的预期输出记在心里再碰真实数据。真实样本跑之前备份好原始 reads给每个样本取清晰的 ID方便日后追溯。记下版本号和关键参数。变异检测结果与版本强相关写报告或文章时注明snippy --version的输出结果才可复现、可信。Snippy 的价值在于把比对—识别—注释—汇总这条长流水线封装成一条命令。当你能熟练地把第一份 reads 变成一张清晰的变异表格后面的群体分析和系统发育研究也就有了扎实的数据地基。【免费下载链接】snippy:scissors: :zap: Rapid haploid variant calling and core genome alignment项目地址: https://gitcode.com/gh_mirrors/sn/snippy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考