前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bcftools进行SNP calling

bcftools进行SNP calling

作者头像
生信修炼手册
发布2020-05-11 11:53:09
5K0
发布2020-05-11 11:53:09
举报
文章被收录于专栏:生信修炼手册生信修炼手册

bcftools也可以进行SNP calling。在之前的版本中,通常都是和samtools的mpileup命令结合使用, 命令如下

代码语言:javascript
复制
samtools mpileup -uf ref.fa aln.bam | bcftools view -bvcg - > var.raw.bcf

由于samtools和bcftools更新得都很快,只要有一个版本不对,采用上面的pipeline就会报错。为了减少版本不合适带来的问题,bcftools的开发团队将mpileup这个功能添加到了bcftools中。

在最新版的bcftools 中,只需要使用bcftools这一个工具就可以实现SNP calling, 用法如下

代码语言:javascript
复制
bcftools mpileup mpileup.1.bam --fasta-ref mpileup.ref.fa | bcftools call -mv -o raw.vcf

--fasta-ref参数指定参考序列的fasta文件,mpileup.bam是输入文件,通常都是GATK 标准预处理流程得到的bam文件。

需要注意的是mpileup命令虽然也会输出VCF格式的文件,但是并不直接进行snp calling。下面的命令可以生成VCF格式的文件

代码语言:javascript
复制
bcftools mpileup mpileup.1.bam --fasta-ref mpileup.ref.fa >mpileup.vcf

直接生成的VCF文件内容如下

代码语言:javascript
复制
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT HG00100
17 1 . A <*> 0 . DP=5; PL
17 2 . A <*> 0 . DP=5; PL
17 3 . G <*> 0 . DP=5; PL
17 4 . C <*> 0 . DP=5; PL
17 5 . T <*> 0 . DP=5; PL

里面的每一条记录并不是一个SNP位点,而是染色体上每个碱基的比对情况的汇总。这种信息官方称之为genotype likelihoods。

call命令才是真正的执行SNP calling的程序,基本用法如下

代码语言:javascript
复制
bcftools call mpileup.vcf -c  -v -o variants.vcf

在进行SNP calling 时,必须选择一种算法,有两种calling算法可供选择,分别对应-c-m参数。-c参数对应consensus-caller算法, -m参数对应multiallelic-caller算法,后者更适合多种allel和罕见变异的calling。

-v参数也是常用参数,作用是只输出变异位点的信息,如果一个位点不是snp/indel, 不会输出。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-07-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档