尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

Snippy 变异检测上手指南:五步跑通你的第一个 SNP 检出

Snippy 变异检测上手指南:五步跑通你的第一个 SNP 检出 Snippy 变异检测上手指南五步跑通你的第一个 SNP 检出【免费下载链接】snippy:scissors: :zap: Rapid haploid variant calling and core genome alignment项目地址: https://gitcode.com/gh_mirrors/sn/snippySnippy 是一款面向单倍体基因组细菌、病毒、质粒、线粒体等的快速变异检测工具它能把测序 reads 与参考基因组逐位比对一次性找出 SNP、插入缺失indel并给出基因层面的注释还能把多个样本合并成核心基因组比对。这篇文章用五步里程碑的思路带你走完全程先看懂它的运转机制再选一条省心的安装路线体检确认环境就绪跑通第一个变异检出案例最后扩展到批量样本。每一步都给出明确的预期结果让你随时知道自己走到了哪里、有没有走偏。第一步 看懂 Snippy 的生产线明确到底要装什么动手敲命令之前先花两分钟搞清楚 Snippy 是怎么工作的。这一点搞明白后面所有的安装和排错都顺理成章。Snippy 是个调度员不是全能工人Snippy 本身几乎不直接处理序列数据它更像一条流水线的车间主任把一堆外部工具按固定顺序组织起来统一调度、统一收口。真正干重活的是这些设备bwa把测序 reads 比对贴回参考基因组freebayes从比对结果里识别变异位点samtools / bcftools处理 BAM、VCF 等比对与变异文件snpEff给变异做功能注释告诉你变异落在哪个基因、是否改变氨基酸另外还有minimap2、bedtools、seqtk、samclip等一批辅助工具。明白了这个机制你就抓住了 Snippy 安装的命门装好 Snippy 本体只是拿到调度脚本生产线上的设备一台都不能少。这也是新手最容易踩的坑——工具装好了却跑不起来多半不是 Snippy 的问题而是某个依赖缺了。顺手校正三个常见误解围绕 Snippy 的适用场景有三个高频误解提前排掉能省下不少排查时间。以为 Snippy 只能处理细菌。其实只要基因组是单倍体每个位置只有一份拷贝Snippy 都能胜任——细菌、病毒、质粒、线粒体都没问题。反而是人类这类二倍体样本不适合它因为二倍体需要区分杂合位点那不是 Snippy 的定位。以为必须提供双端测序数据。Snippy 默认接收--R1/--R2双端 FASTQ但单端 reads 同样能跑更贴心的是如果你手里只剩拼装好的 contigs、原始 reads 已经丢了它还能用--ctgs选项把 contigs 撕成虚拟 reads 再比对。以为装好 Snippy 就万事大吉。这就是前面说的调度员误区。依赖能不能一并被解决比 Snippy 本身装没装上更重要。仓库根目录的README.md是权威说明文档命令、参数与输出文件清单都以它为准test/目录里放着官方测试材料etc/目录里还附带了结核分枝杆菌的掩码 BED 文件后面会用到。第二步 三条安装路线选一条把整条线一次装齐既然依赖才是关键那么哪种方式能一并解决依赖就成了选择安装路线的核心标准。三张路线各有取舍先看对比表再对号入座。安装路线适合谁优点需要留意的点Conda大多数想省心的用户依赖自动装齐、环境隔离、卸载干净需要先装好 Bioconda包版本可能略旧HomebrewmacOS 用户一条命令搞定和系统其他工具统一管理依赖按 brew 方式处理个别工具可能要额外步骤源码安装想追最新版、愿意自己动手的人永远拿到最新代码方便二次开发PATH 要手动配外部依赖全部自己装想省心Conda 一键安装只要机器上已经配好 Bioconda一条命令就能把所有依赖一起装齐conda install -c conda-forge -c bioconda -c defaults snippy预期结果终端会打印一长串待安装包列表除了 snippy 本身还会看到 bwa、freebayes、samtools 等依赖包。全部装完回到命令行提示符就算成功了。macOS 用户Homebrew 一条命令平时习惯用 brew 管理软件的用户直接执行brew install brewsci/bio/snippy依赖会自动解析安装适合在 macOS 上把 Snippy 和系统其他工具统一管理。想追最新版源码安装等不及 conda 包更新、或者想基于源码二次开发就走源码路线。克隆仓库并把bin目录加进 PATHgit clone https://gitcode.com/gh_mirrors/sn/snippy.git export PATH$PWD/snippy/bin:$PATH预期结果此时敲snippy --help能弹出完整的参数说明而不是 command not found。需要提醒的是源码路线只拿到 Snippy 本体bwa、samtools、freebayes、snpEff 等依赖要自己另装例如conda install -c bioconda bwa samtools bcftools freebayes snpeff samclip seqtk。嫌麻烦就回到第一条路线会更舒服。第三步 两分钟体检确认环境能上岗装完别急着上真实数据先用两条命令给环境做个快速体检合格了再开工。这一步能避免你在正式数据上跑到一半才发现缺工具。第一项确认版本号。snippy --version预期结果打印出版本字符串类似snippy 5.0.0-dev。如果这里就报错说明 Snippy 本体没装好回到第二步检查 PATH 配置。第二项检查全部依赖。snippy --check预期结果工具会逐个探测 bwa、minimap2、samtools、bcftools、bedtools、freebayes、snpEff 等组件每个可用项旁边显示 OK 或对应的版本信息。如果看到某个组件标记为缺失就针对它单独补装。在 conda 环境里最省事conda install -c bioconda bwa samtools bcftools freebayes snpeff samclip seqtk补装完成后重新跑一遍snippy --check直到全部通过为止。体检合格再开工这条纪律值得认真对待。第四步 第一次实战彩排用仓库自带测试数据跑通全流程环境就绪现在做第一次实战彩排。好消息是仓库的test/目录已经备好了一套现成材料example.fna参考基因组序列FASTA 格式example.gbk带注释的参考基因组GenBank 格式用于输出基因注释列example.bed区域文件后面进阶用得上test/Makefile官方测试流程脚本。真实测序 reads 文件通常很大不适合入门演示所以这里用wgsim根据参考序列模拟一对双端 reads——这也是test/Makefile官方测试流程的做法。命令里的参数含义是随机种子 1 保证可复现12000 对长度为 100 bp 的 reads插入片段 200 bp含 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 文件。接下来正式跑变异检测--outdir指定结果文件夹--cpus控制并行线程数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标准 VCF 变异文件、snps.tab易读的表格汇总、snps.bam比对文件、snps.consensus.fa把变异回贴到参考上得到的修正版基因组、snps.txt整体统计等。用head看一下表格的前几行head -5 my_first_run/snps.tab各列含义CHROM是变异所在的序列名POS是位置TYPE是变异类型snp/mnp/ins/del/complexREF和ALT分别是参考碱基和样本碱基EVIDENCE给出支持各碱基的 reads 计数。这里有个小贴士如果你用带注释的example.gbk作为--ref而不是 FASTA表格里还会多出基因名GENE、产物描述PRODUCT和 snpEff 预测的影响效应EFFECT等列直接告诉你变异落在哪个基因、会不会改变氨基酸。这是 Snippy 很贴心的设计——把注释信息直接送到你眼前。到这里你的第一个 SNP 检出案例已经跑通了。第五步 从 1 个样本到几十个样本批量与核心基因组比对单样本跑通后你大概率会遇到真实场景手里有十几个样本都要跟同一个参考基因组比对还想知道它们之间的亲缘关系。一个个手敲snippy命令显然太低效Snippy 为此准备了批量入口snippy-multi。先准备一个制表符分隔的清单文件input.tab每行一个样本。支持三种形态双端 reads、单端 reads、以及没有 reads 时直接传 contigsIsolate1 /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多样本 VCF等。最后你会看到类似下面的汇总行Found 2814 core SNPs from 96615 SNPs.意思是总共有 96615 个变异位点其中 2814 个是全体样本共有的核心 SNP。core.aln可以直接丢给 FastTree 等建树工具画系统发育树。三个值得记住的高价值参数进阶路上有三个参数出场率极高这里一并记住--subsample应对超高深度。有的样本深度高达上千倍而绝大多数变异在 50~100 倍深度下就能可靠检出。深度约 1000x、只需要 100x 时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--ctgs让 contigs 也能参与。只有拼装好的 contigs、没有原始 reads 时用它把 contigs 撕成伪 reads 再做比对输出目录与 reads 样本完全兼容可以混在一起参与snippy-core分析snippy --ctgs contigs.fa --outdir out --ref ref.fna日志里出现 Shredding ... into pseudo-reads. 即为成功。应急预案跑挂了先对照这四张诊断卡工具装好、案例跑通真实数据往往没那么听话。下面四个问题按出现频率排序遇到时直接对照处理。现象常见原因解决办法敲snippy提示 command not foundSnippy 或某个依赖不在 PATH 里用which snippy、which bwa逐个定位把对应 bin 目录加进 PATH或改用绝对路径调用提示输出目录已存在、拒绝运行Snippy 默认不覆盖已有结果目录换一个新的--outdir或加--force强制重跑仅当你确认旧结果可以丢弃时snippy --check标红某个工具缺失依赖没装全用conda install -c bioconda ...补装对应包装完重跑--check直到全绿深度很高但跑得特别慢测序深度远超变异检出所需用--subsample 0.1按比例抽读看到日志提示即为生效其中第一条最隐蔽有时候 Snippy 本体没问题缺的是某个依赖的 PATH用which逐个排查是最快的方法。收尾装好之后接下来做什么回顾一下这条五步路径先看懂 Snippy 的生产线机制明白依赖比本体更重要再按自己的环境从 Conda、Homebrew、源码三条路线里选一条把依赖一起装齐用--version和--check确认环境就绪用test/目录的测试材料跑通第一个案例并学会读snps.tab最后通过snippy-multi把流程扩展到批量样本和核心基因组比对。装好之后建议你做三件事先用测试数据完整彩排一遍--check→ 单样本 → 批量把每一步的预期输出都记在脑子里再碰真实数据。真实样本跑之前备份好原始 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),仅供参考
返回列表