1,软件介绍

FreeBayes is a Bayesian genetic variant detector designed to find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), indels (insertions and deletions),

MNPs (multi-nucleotide polymorphisms), and complex events (composite insertion and substitution events) smaller than the length of a short-read sequencing alignment.

FreeBayes is haplotype-based, in the sense that it calls variants based on the literal sequences of reads aligned to a particular target, not their precise alignment.

This model is a straightforward generalization of previous ones (e.g. PolyBayes, samtools, GATK) which detect or report variants based on alignments.

This method avoids one of the core problems with alignment-based variant detection--- that identical sequences may have multiple possible alignments.

haplotype: 单倍型。一个染色单体里具有统计学关联性的一类SNPs.   基因在一条染色体上的组合为haplotype

freebayse 不仅call SNPs , INDELs,还有

MNPs(multi-nucleotide polymorphisms), 连续两个snp位点,如ref为AT, alt为CG

Complex events(composite insetion and substitution events)

所有的结果为:

五中基本类型:'snp','ins','del','mnp','complex',

'snp,snp',   和ref不同的碱基有两个,比如ref为A, alt为T,G 并且这两个的数量都是显著的。但是对于杂合二倍体来说是可能的。举个例子,参考基因组某位点是A, 比对的reads中有两种情况,C和G, 这应该就是snp,snp。其他的这种情况以此类推。

默认的--ploidy就是 dploid, by default all samples are assumed to be diploid。

除了以上五种,还有杂合二倍体可能出现的一下几种情况:(但是这种情况占的比例非常小,因为从进化的角度来看,一个位点两个都突变的概率就很小。杂合度和遗传距离有关,遗传距离越远杂合度就高,遗传距离越近,纯合度越高。一般超过百分之一的杂合度就肯定是杂种了。粳稻和粳稻之间01肯定比粳稻和籼稻之间的01少!!)

'ins,snp', 'ins,ins', 'ins,mnp',

'del,mnp', 'del,del', 'del,snp', 'del,ins'

'mnp,snp', 'mnp,mnp',

'complex,complex',  'complex,del', 'complex,snp',  'complex,mnp',  'complex,ins',

软件中几个重要的参数:

--haplotype-length  应该是haplotype中各变异位点之间的距离,比如mnp和complex都应该是haplotype, 如果设置为0的话:mnp肯定是可以call出来, 因为mnp是连续的几个snp,每个snp之间的距离就是0。而complex比较复杂,如果ref和alt对应的碱基个数相等。当设置为0的时候,会被过滤掉, 但是不等的并不会被过滤掉。

如果不想要complex直接用--no-complex(-u)参数,但是这个参数会将complex拆分,比如可能一个complex拆分成了几个snp等等。如果使用--no-mnps(-X)的话也会分成两个snp,但是并不能保证每个snp的准确性。

之前做snp比较没有使用这个两个参数,所以导致相似度很低,以后将这两个参数加上以后再和sam和gatk比较。

--min-alternare-count     应该就是-C 观察到的最少的alt碱基数,这个很不好设置,因为我觉得深度不同,应该设置的值也不同,整个一刀切不好。 假如深度为10 , 你-C设置为2.和深度是100-C设置为2的效果和你想象的结果是不同的,100的时候你也许想着5以下的都别call出来,深度为10的时候,你也许2一下的别call出来。

--min-alternate-fraction 就是-F 下面有解释。

-K --pooled-continuous。 Output all alleles which pass input filters, regardles of genotyping outcome or model.   问一下--pooled-continuous什么意思?

只加-K 结果类型有:

'mnp', 'ins', 'del', 'snp', 'complex'。

'complex,complex', 'complex,del',  'del,mnp',  'del,ins', 'del,del', 'snp,snp', 'complex,snp', 'complex,mnp', 'del,snp', 'mnp,snp', 'ins,ins', 'ins,snp', 'ins,mnp', 'mnp,mnp', 'complex,ins'。

(三种类型)'complex,complex,del',  'del,mnp,snp', 'del,snp,snp',  'del,ins,ins', 'complex,ins,mnp', 'complex,del,ins', 'complex,complex,complex', 'complex,ins,ins',  'del,del,snp', 'complex,ins,snp', 'mnp,snp,snp', 'ins,mnp,snp',  'del,ins,snp', 'complex,complex,mnp', 'mnp,mnp,snp', 'complex,del,del',  'del,del,del', 'ins,ins,snp', 'complex,snp,snp',  'del,del,mnp',  'del,del,ins',  'complex,del,mnp', 'complex,del,snp', 'ins,snp,snp', 'complex,mnp,mnp', 'mnp,mnp,mnp', 'snp,snp,snp', 'ins,ins,mnp', 'del,mnp,mnp',  'complex,complex,snp', 'ins,ins,ins','complex,mnp,snp', 'complex,complex,ins',

(四种类型)'complex,complex,complex,mnp',  'del,del,del,del', 'complex,complex,ins,snp', 'complex,ins,ins,snp', 'complex,del,mnp,snp', 'complex,del,del,snp', 'complex,complex,del,del', 'complex,complex,del,snp', 'complex,mnp,snp,snp', 'complex,ins,ins,ins',

'ins,ins,ins,snp', 'complex,complex,snp,snp', 'complex,complex,complex,snp',  'complex,complex,complex,complex',  'mnp,snp,snp,snp', 'complex,complex,complex,del', 'del,snp,snp,snp',  'complex,complex,mnp,snp','mnp,mnp,snp,snp', 'complex,del,snp,snp','del,del,del,snp'

后面两种类型,在其他模式下是call不出来的,观察了一下结果,对于类型为complex,complex,complex,complex, 比如某个位点的深度为5, 而alt的深度分别为2,1,1,1。 很明显是测序错误或比对错误导致的这种情况。所以不要用这个参数。

--report-monomorphic :

Report even loci which appear to be monomorphic, and report all considered alleles, even those which are not in called genotypes. Loci which do not have any potential alternates have '.' for ALT.

会报告每个位点。虽然这个位点并没有alt base, 基因型为0/0, alt为. 相当于你的参考序列有多长,就有多少个报告位点。。。。慎重考虑是否需要。

-n --use-best-n-alleles N。 Evaluate only the best N SNP alleles, ranked by sum of supporting quality scores.  (Set to 0 to use all; default: all)。 如果将n设置为1,只会call出5中基本类型,其他的都会被滤掉。但是除了滤掉others,这五中基本类型也会减少很多!

下面两张图类型的顺序为: snp, ins, del, mnp, complex, others, total

上图是没有加n1

上图是加了n1,  可以看到others没有了,但是其他五中类型都少了很多。查看了一下丢失的位点,并没有发现质量很低,深度很低等情况。。所以这参数还是不要用了,丢太多数据了!问海宝这个参数到底是什么一个概念。

如果将n设置成2, 默认的设置为0(all)结果基本没有区别。

2,安装与使用

服务器已经安装好软件,下面举例说明用法,

参考序列为:

RAP_cDAN.fasta

bam文件为:

LCS173-1.sorted.rmp.rg.bam

LCS173-2.sorted.rmp.rg.bam

LCS173-3.sorted.rmp.rg.bam

RCS173-1.sorted.rmp.rg.bam

RCS173-2.sorted.rmp.rg.bam

RCS173-3.sorted.rmp.rg.bam

这是样本CS173的六组数据,每组bam数据都经过了sort, remove duplicate, add read group 步骤,这几个前期处理数据步骤是必须的。对bam文件的处理

详见本博客其他文章。除了这几步以为,还要对bam文件进行index,即每个bam文件都要有相应的bai文件。数据处理好后,就可以进行call snp了。

命令:

freebayes -f RAP_cDAN.fasta -L bamfile.list > CS173.vcf

其中,-f 后跟参考序列。-L 后面跟纯文本文件,里面就是bam文件的名字,因为文件较多,所以将名字都放到一个文件中。如果你只有一个文件,那直接将

文件名放于参考序列后面就可以了。 > 是进行重定向,即将结果保存到CS173.vcf文件中。

也可以同时call 不同的样本, 只要将不同的样本数据放到bam.list文件中就可以了,注意,不同样本数据的read group必须唯一,不能重复。

当命令结束后,就会得到结果文件,文件中记录了snp的信息。详细的vcf格式说明另见博客文章。

对于bam文件, 可以合并去call, 也可以分开向上面那样去call. 结果是一样的。建议不合并,既然一样, 干嘛多做合并那一步?浪费时间和硬盘空间。freebayse会根据bam的SM将不同的样本分开,和单独call一个样本相比,同时call多个样本的snp,结果文件格式上会有些差别。

Format后面是对各个样本的描述,

只要某个样本在这个变异位点上有比对情况,就会有相应的信息,但是如果这个位点对于某个样本就没有任何信息,会用点.来代替这个样本在此点的情况。同时在一个文件中展现多个样本,有一个问题,比如info列中的信息,type指的是哪个样的?明明是三个样,为何只有一个类型。

另外ALT列,指的是哪个样的?当三个样的类型是00 01 11 还可以区分,但是如果类型更复杂些,必定是区分不清,下一步研究主要集中在snp。

这是最简单的使用方法,还有一些参数,如果感兴趣的话可以调试,如-C ,默认值为2,即变异位点处至少有两个和参考碱基不同,才会考虑是snp位点。

假如,此某位点的覆盖度为10,但之后一个和参考碱基不同,剩下9个是一样的,那么这个位点不会被call出。

另一个参数-F (--min-alternate-fraction)默认为0.2 ,即至少有20%的碱基和参考碱基不同才能被call出。假如某位点深度为100,但是只有10个碱基和参考序列不同,是不会被call出的。如果该值设置为0,那么参考序列的每个碱基位点都会被call SNP, 尽管没有,也会用0/0代替。现在有个问题是,加入深度是1000, alt是190, 如果按照默认的,这个位点不会出现在结果中,但很明显这应该是一个杂合位点。因为190个碱基被测错, 并且190个测错的结果都一样,这基本是不可能的。所以这个参数的设置挺重要的,怎么样保留我们需要的snp位点。需要考虑一下,比如考虑DP和测序平均深度?

这主要是考虑到了测序错误,比对错误等原因,才设置下限,目的是提高call snp的准确性。但是要根据你自己的数据情况,假如你用RNA-seq数据研究等位基因特异性表达,

某些位点也许表达量很多,深度达到了1000,其中有100个碱基和参考序列有差别,如果你用默认设置,此时并不能将snp call 出,但这可能是一个很重要的特异表达位点。

所以要根据自己的使用目的来设置参数。

3,更多的例子。

examples:

# call variants assuming a diploid sample

freebayes -f ref.fa aln.bam >var.vcf

# require at least 5 supporting observations to consider a variant

freebayes -f ref.fa -C 5 aln.bam >var.vcf

# use a different ploidy

freebayes -f ref.fa -p 4 aln.bam >var.vcf

# assume a pooled sample with a known number of genome copies

freebayes -f ref.fa -p 20 --pooled-discrete aln.bam >var.vcf

# generate frequency-based calls for all variants passing input thresholds

freebayes -f ref.fa -F 0.01 -C 1 --pooled-continuous aln.bam >var.vcf

# use an input VCF (bgzipped + tabix indexed) to force calls at particular alleles

freebayes -f ref.fa -@ in.vcf.gz aln.bam >var.vcf

# generate long haplotype calls over known variants

freebayes -f ref.fa --haplotype-basis-alleles in.vcf.gz \   --haplotype-length 50 aln.bam

# naive variant calling: simply annotate observation counts of SNPs and indels

freebayes -f ref.fa --haplotype-length 0 --min-alternate-count 1 \    --min-alternate-fraction 0 --pooled-continuous --report-monomorphic >var.vcf

对结果进一步筛选,如qual, DP, AO....

大部分问题是出在那些深度较低的位点。

freebayes 产生的是VCF 4.1, 适用于描述很多样本,当然也可以描述一个样本

在freebayes中,qual 指这个位点是变异位点的概率, 理解为1-P, P 是这个位点是纯合的概率。

ROC receiver-operator characteristic ROC曲线

freebayes可以同时call多个样本:

freebayes isdesigned to be run on many individuals from the same population(e.g. many human individuals)simultaneously.

同时call的好处,1, 能够使结果更加准确。2,最后输出文件一致,更容易下游处理, 如某个位点不同样本的情况。如果单独call, 这个样本在这是纯合就不会显示,但是一起call, 都会显示出来。

不同的样本是根据RG信息来区分的, 注意不同样本他们的group ID 不能一样。

The VCF output will have one column per sample in the input.

3,进一步阅读

https://github.com/ekg/freebayes

在装有freebayes的服务器中 敲击 freebayes -h

转载于:https://www.cnblogs.com/xiaofeiIDO/p/7009320.html

freebayes - called variant软件相关推荐

  1. 推荐阅读:变异检测到底应该用什么软件?

    原文见:Validating generalized incremental joint variant calling with GATK HaplotypeCaller, FreeBayes, P ...

  2. 突变检测软件 测试数据库,合作文章|变异检测软件技能大PK,谁才是Battle King?...

    DNA变异是个体间遗传变异的重要来源之一.第二代测序技术(NGS)和第三代测序技术(TGS)都在遗传变异研究中大放异彩.许多变异检测工具可以用来解析二代或三代数据,但是目前没有软件能兼顾灵敏性和特异性 ...

  3. modbus软件开发实战指南_C++核心准则?GSL:指南支持库

    GSL: Guidelines support library GSL:指南支持库 The GSL is a small library of facilities designed to suppo ...

  4. 线框图用什么软件_为什么要在线框中着色?

    线框图用什么软件 I was recently involved in a debate around why some wireframes (which were definitely not U ...

  5. 一种全新的软件界面设计方法

    一种全新的软件界面设计方法 撰文:Aweay 你可转载,拷贝,但必须加入作者署名Aweay,如果用于商业目的,必须经过作者同意. 下载实例代码 关键字:COM MySpy IE SetUIHanlde ...

  6. 2021年度最佳开源软件榜单出炉!

    来源| OSC开源社区(ID: oschina2013) 小伙伴们大家好,今天我们来聊一聊InfoWorld发布的2021年最佳开源软件榜单. 每年InfoWorld 都会根据软件对开源界的贡献,以及 ...

  7. 突变检测软件 测试数据库,测序数据比对和变异检测

    全基因组重测序是对已知基因组序列的物种进行不同个体的基因组测序,并在此基础上对个体或群体进行差异性分析.所以首先我们需要某个物种的全基因组序列和该物种的某个个体的基因组序列. 重测序数据分析流程 重测 ...

  8. 工作中使用到的单词(软件开发)_2022-02-26_备份

    ■原文 工作中使用到的单词(软件开发)_sun0322-CSDN博客 目录 ■常用链接 ■2020/03/15  (最初整理  242个单词) 2020 6/28 整理 2020 6/29 整理 20 ...

  9. Creating a universal SNP and small indel variant caller with deep neural networks理解

    一.deepvariant研究背景 1.NGS数据的测序过程存在测序错误,错误率~0.1-10% 不等,并且不同测序设备的错误类型存在不同 read1第一个碱基T 对应的质量字符为/,其质量值为ASC ...

最新文章

  1. FPGA之道(29)VHDL的串行语句
  2. 淘宝和QQ空间顶部工具栏三角形箭头的实现方式
  3. LoadRunner+Android模所器实现抓包并调试本地服务端
  4. ConcurrentHashMap核心原理,这次彻底给整明白了
  5. mysql、sqlserver、oracle各数据类型与java类型对应
  6. 怎么保存在界面输入的内容_还在担心忘记密码?使用这款软件轻松找回浏览器中保存的密码...
  7. Linux里常见术语的缩写
  8. 数据库连接池 C3p0
  9. lib包含# #pragma comment
  10. 嵌入式Linux入门:概述
  11. 微信公众号文章排版php,微信内容排版工具总结
  12. SSRF漏洞原理及检测
  13. 手机(摩托罗拉、索爱、西门子、LG)大部分机型的cpu型号
  14. 联想模拟器安装激活面具magisk教程
  15. 使用Falco检测Kubernetes安全问题简介
  16. linux用户motd,linux – 每个用户的SSH MOTD
  17. 重读经典(CLIP上):《Learning Transferable Visual Models From Natural Language Supervision》
  18. git pull报错Pulling is not possible because you have unmerged files
  19. 云GIS架构的研究与实践
  20. python培训实习报告

热门文章

  1. TPS5430DDAR型号芯片的学习
  2. MySQL --- 常用函数 - 字符串函数
  3. Qt QLocalSocket 进程间通信
  4. Python实验舱谢尔宾斯基三角形绘制教程
  5. 关于学习C语言的心得体会吧!
  6. 面试真题:经典智力题最详汇总(中)
  7. java读取word文档中的文字和图片,doc和docx兼容版
  8. python 自动化办公实例_Python控制Excel实现自动化办公
  9. 设置windows10 的默认应用
  10. 各种机器学习方法实现多分类(KNN,Logistics,Decision tree,byeis,SVM)以鸢尾花数据集为例