介绍下freebayes软件
FreeBayes是一种贝叶斯遗传变异检测器,设计用于发现小的多态性,特别是SNP(单核苷酸多态性),插入缺失(插入和缺失),MNP(多核苷酸多态性)和复杂事件(复合插入和替代事件) 短读序列比对的长度。
FreeBayes是基于单倍型的,在某种意义上,它基于与特定目标对齐的读取的字面序列调用变体,而不是它们的精确对齐。 该模型是基于比对检测或报告变体的先前概述(例如PolyBayes,samtools,GATK)。 该方法避免了基于比对的变体检测的核心问题之一 - 相同的序列可以具有多种可能的比对:
FreeBayes对来自群体和参考基因组(以FASTA格式)的任意数量的个体使用短读比对(具有Phred + 33编码质量评分的BAM文件,现在是标准的),以确定群体的最可能的基因型组合 参考中的每个位置。 它报告它在变体调用文件(VCF)格式中发现假定为多态的位置。 它还可以使用变体的输入集合(VCF)作为先验信息的来源,以及使用拷贝数变体图谱(BED)来定义分析中的样品的非均匀倍数变异。
以上来源于google对github上freebayes软件简介的翻译。
用我自己的话来说,freebayes是用来检测snp,indel的软件,是目前最准确的软件。
验证思路
总体分为图片上的几步,其中Bwa、create bam和sort bam使用了两个工具,bwa软件和samtools软件。网上学习下使用方法即可。
验证过程我主要做的是Mutation、Reads和compere三个步骤。依次解释下每个步骤。
Mutation 变异
根据已知的生物知识模拟DNA的变异,主要是SNP和Indel,并将模拟的结果保存,用于之后的比较。
要特殊注意的是,在模拟时不能将SNP和Ins(插入)位点选取在del(删减)区域内,原因是,即使发生了SNP和Ins但是这也是无法观察到的。
Reads 读取DNA序列
这一步我是根据Illumina的测序流程来进行模拟的,具体过程在前面的文章中。在这里我遇到的一个坑是,我要根据mutation文件来进行变异的操作,然后在操作过程中不能改变位点的位置,即发生del和ins时,后面的位点位置不能发生变化。起初我将DNA序列作为字符串处理,但这样进行del操作时,del位点之后的位置都会向前移,ins也同样,这样的话,结果就与mutation文件中的就完全不一样,没有任何价值。
纠正的方法是使用数组,将DNA序列作为数组处理。最后生成read文件。
Bwa、bam bwa比较和bam文件生产排序
这几步主要都由现有的软件来完成。
首先使用Bwa比对read与原始DNA的位置关系。
之后使用samtools软件生产bam文件并对bam文件的索引进行排序。
freebayes软件检测
使用freebayes软件很简单,输入原始的DNA序列和排序后的bam文件,即可得到检测结果。
输出的格式为vcf文件。
最后进行验证比较
这一步就是最后对freebayes软件进行验证了,主要是用正则提取出mutation文件和vcf文件中的SNP与Indel信息,统一两者的格式,同一位置发生同样的变异则算为检测成功。最后可以得到两个信息:覆盖度(所有真变异有多少被检测出来了)和准确度(所有检测到的变异有多少是正确的)。
最终结果
可以看到结果还是很不错的,能有90%以上。