三代变异检测操作说明-DeepVariant
众所周知,三代测序的单碱基测序错误率远远高于二代测序,PB的单碱基错误率有10-15%,而ONT也有5-20%[1],那么如此高的错误率是不是就一定不能做SNP和INDEL的变异检测了呢?答案是当然有办法做检测。PacBio公司2019年推出CCS模式的测序能够产出单碱基的正确性足以媲美二代测序的HiFi数据,从而实现SNP和INDEL的检测。下面我们就一起来看看检测方法吧。
认识SNP和INDEL变异
SNP:单核苷酸多态性(single nucleotide polymorphism,SNP),是一种DNA序列变异,是基因组中单个核苷酸腺嘌呤(A)、胸腺嘧啶(T)、胞嘧啶(C)或鸟嘌呤(G)在物种成员之间或个体配对染色体之间的差异,最常见也最简单的一种基因组变异形式。
INDEL:一种短多态性,很短的Insertion 和 Deletion,即在DNA序列中添加或删除少量碱基,主要指在基因组某个位置上发生较短长度的线性片段插入或者删除的现象。强调线性的原因是,这里的插入和删除是有前后顺序的与结构性变异不同,INDEL长度通常在50bp以下,更多时候甚至是不超过10bp。据估计,在现代人类中,约有1-2百万个频率高低不等的INDEL,绝大多数发生在短串联重复区域。
SNP和INDEL变异检测有助于我们更深入地了解基因组,认识基因变异和疾病的之间的联系,从测序数据中进行准确的检测变异是医学研究的基础。
目前SNP和INDEL变异检测的软件有很多,下表是一篇文献测评了比较流行的检测软件,我们可以看出DeepVariant软件表现是很优秀的。接下来我们详细介绍下DeepVarient。
Deepvarient简介
-
DeepVariant是google推出的开源工具,用深度神经网络从DNA测序数据中快速较精确识别碱基变异位点。深度学习是一种适用于多种领域的机器学习技术,包括图像分类,翻译,游戏和生命科学。该软件首先使用标准的算法预处理技术,在reads中找到与参考基因组一致的候选单核苷酸多态性(SNPs)和Indels,这些多态性具有高敏感性,但特异性较低。然后使用深度学习模型,计算每个候选变异位点的三个二倍体基因型的概率,并读取每个候选变体周围的数据 在一个位点计算三种二倍体基因型的概率,使用参考的累积图像并读取每个候选变体周围的数据。
-
DeepVarient软件运行运行流程如下图所示:
左边:筛选候选的变异位点集合;中间:SNN训练样本;右边:用训练好的模型判断Genotype。
- DeepVariant优点:
- 准确性:与其他软件相比,DeepVarient应用于不同平台的测序数据,不同的物种,准确率很高。
- 灵活性:人和其他物种都可使用。
- 易用:不需要设置太多参数。
- 花费少:30x 全基因组的成本约为9.11美元,外显子组的成本约为0.39美元。
- 速度快:5小时内完成50x WGS,在16分钟内完成exome。(来源官方说明)
软件安装
DeepVarient官方提供了3种安装方式:
- Docker,官方推荐使用的安装方式。
- 源代码构建,DeepVariant附带了在Ubuntu 14和16上构建它的脚本,推荐使用Ubuntu 16。要在其他基于unix的系统上构建和运行,需要修改这些脚本。
- 二进制文件,编译器使用SSE4和AVX指令,因此需要一个支持它们的CPU(如Intel Sandy Bridge)。
注意事项:
1.只能在类似于unix的系统上运行,无法在window系统运行
2.依赖环境Python 2.7
软件实操
1.数据准备
- 样本参考基因组文件
- 比对排序后的BAM文件
2.运行命令
run_deepvariant --model_type=PACBIO \
--ref=/input/YOUR_REF \
--reads=/input/YOUR_BAM \
--output_vcf=/output/YOUR_OUTPUT_VCF \
--output_gvcf=/output/YOUR_OUTPUT_GVCF \
--num_shards=$(nproc)
参数说明如下:
- --model_type:训练模型,可选[WGS,WES,PACBIO],我们用的PacBio的数据,所以选择PACBIO
- --ref:参考基因组
- --reads:比对后的bam文件
- --output_vcf:输出的vcf
- --output_gvcf:输出的gvcf
- --num_shards:类似并行运行的数目,默认1,建议设置大些,缩短运行时间
DeepVarient更多参数参考如下:
3.结果说明
DeepVarient软件输出结果为vcf格式文件,相信做生物信息的小伙伴都很熟悉了,这里不再赘述。
DeepVarient运行结束后,SNP和INDEL还在一个vcf文件里,为了后续单独分析,我们可以用GATK分离他们,命令如下:
gatk SelectVariants -R /input/YOUR_REF \
-V /input/YOUR_VCF \
-O /output/YOUR_RAW_SNP \
-select-type SNP|INDEL
-select-type参数分别给定SNP和INDEL,将会分别得到对应变异类型的结果,输出仍然是vcf格式的文件。有了这个结果后,就可以进行后续的分析了。
特别说明:
作者在文中使用了GIAB数据作为验证并与GATK进行对比,DeepVariant胜出。
据文献测评[1],DeepVarient应用CCS模型,减少了约30%的indel假阴性和假阳性,达到了97.835%的准确率和97.141%召回率。
参考文献
- Sedlazeck F J , Rescheneder P , Smolka M , et al. Accurate detection of complex structural variations using single-molecule sequencing[J]. Nature Methods, 2018.
- A universal SNP and small-indel variant caller using deep neural networks.[J]. Nature biotechnology, 2018.
作者:Charon
审稿:童蒙
编辑:amethyst