搜索
查看: 5407|回复: 4

GATK之BaseRecalibrator

[复制链接]

18

主题

56

帖子

403

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
403
发表于 2017-5-2 12:43:08 | 显示全部楼层 |阅读模式
本帖最后由 hoptop 于 2017-5-2 14:32 编辑

BaseRecalibrator简介
用途: 检测碱基质量分数中的系统错误。
分类: 序列数据处理工具
概要: 所谓的变异位点,就是与参考基因组不同的部分,假设原始数据中就存在着一些由于测序仪器产生的系统性误差,那么变异位点识别过程中找到的variant,就会存在大量的假阳性。即便机器说他识别的5亿个碱基有99%的概率是对,那么也就说有5千万可能是错的。
碱基质量分数重校准(Base quality score recalibration,BQSR),就是利用机器学习的方式调整原始碱基的质量分数。它分为两个步骤:
  • 利用已有的snp数据库,建立相关性模型,产生重校准表( recalibration table)
  • 根据这个模型对原始碱基进行调整,只会调整非已知SNP区域。
:如果不是人类基因组,并且也缺少相应的已知SNP数据库,可以通过严格SNP筛选过程(例如结合GATK和samtools)建立一个snp数据库。

输入
  • 需要重校准的BAM文件
  • 已知的多态性位点数据库,用于屏蔽那些不需要重校准的部分
输出
GATK可能会报告许多表格:
  • 参数列表
  • 量化质量表
  • 每个read gruop的重校准表
  • 按质量得分的重校准表
  • 所有可选协变量的重校准表

案例
[Java] 纯文本查看 复制代码
java -jar GenomeAnalysisTK.jar \   -T BaseRecalibrator \
   -R reference.fasta \
   -I my_reads.bam \
   -knownSites latest_dbsnp.vcf \
   -o recal_data.table


参数说明
[Bash shell] 纯文本查看 复制代码
-T : 运行的工具
-R : 参考基因组
-I : 输入的BAM文件
-knownSites 已知SNP的vcf文件
-o : 输出的重校准表


我是如何用的
首先我用BaseRecalibrator根据snp数据建立了重校准表,然后又做了一次重校准,用AnalyzeCovariates作图(要有R环境)观察前后变化,最后用PrintReads应用。
[Java] 纯文本查看 复制代码
# Analyze patterns of covariation in the sequence dataset
java -Xmx16g -jar $gatk -T BaseRecalibrator -R $reference \ 
       -I $file  -knownSites $dbsnp -o ${file%%.*}_recal_data.table
# Do a second pass to analyze covariation remaining after recalibration
java -Xmx16g -jar $gatk -T BaseRecalibrator -R $reference  \
    -I $file  -knownSites $dbsnp -BQSR ${file%%.*}_recal_data.table \
   -o ${file%%.*}_post_recal_data.table    
#  Generate before/after plots, need configure your R environment
java -Xmx16g -jar $gatk -T AnalyzeCovariates \
    -R $reference  -before ${file%%.*}_recal_data.table \
    -after ${file%%.*}_post_recal_data.table \
    -plots ${file%%.*}_recalibration_plots.pdf
# Apply the recalibration to your sequence datajava -Xmx16g -jar $gatk -T PrintReads \
    -R $reference -I $file \
    -BQSR ${file%%.*}_recal_data.table \
    -o ${file%%.*}_recal_reads.bam



我在公众号发布这篇文章后,有人留言说这个工具可能会弄巧成拙,非但不能让结果更好,可能还会让HC步骤出现问题,有没有大神能说下。









上一篇:perl 软件安装及使用的坑,gottcha
下一篇:人类血液里面必然是有细菌等微生物
回复

使用道具 举报

1

主题

11

帖子

246

积分

中级会员

Rank: 3Rank: 3

积分
246
发表于 2017-7-10 15:57:58 | 显示全部楼层
请问下缺少已知SNP数据库时,那个GATK+samtools建立SNP数据库是如何实现的,最近碰到一个无参的,是不是用的samtools直接预测得到的SNP作为已知的数据库吗?
回复 支持 反对

使用道具 举报

18

主题

56

帖子

403

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
403
 楼主| 发表于 2017-7-10 19:32:52 | 显示全部楼层
php_duck 发表于 2017-7-10 15:57
请问下缺少已知SNP数据库时,那个GATK+samtools建立SNP数据库是如何实现的,最近碰到一个无参的,是不是用 ...

一般是用取不同软件的交集作为SNP数据库。
回复 支持 反对

使用道具 举报

1

主题

11

帖子

246

积分

中级会员

Rank: 3Rank: 3

积分
246
发表于 2017-7-10 20:34:08 | 显示全部楼层
hoptop 发表于 2017-7-10 19:32
一般是用取不同软件的交集作为SNP数据库。

哦哦,好,谢谢,我再看看
回复 支持 反对

使用道具 举报

1

主题

4

帖子

58

积分

注册会员

Rank: 2

积分
58
发表于 2017-9-13 08:10:48 | 显示全部楼层
请问,在AnalyzeCovariates这一步生成的图像怎么看呀?它们如何评估一个质量矫正好好坏呢?如果效果不好,是不是就不做最后PrintReads这一步了?谢谢
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-10-19 01:23 , Processed in 0.031451 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.