查看原文
其他

GATK之BaseRecalibrator

2017-05-02 hoptpop 生信媛

BaseRecalibrator

简介

用途: 检测碱基质量分数中的系统错误。
分类: 序列数据处理工具
概要: 所谓的变异位点,就是与参考基因组不同的部分,假设原始数据中就存在着一些由于测序仪器产生的系统性误差,那么变异位点识别过程中找到的variant,就会存在大量的假阳性。即便机器说他识别的5亿个碱基有99%的概率是对,那么也就说有5千万可能是错的。

碱基质量分数重校准(Base quality score recalibration,BQSR),就是利用机器学习的方式调整原始碱基的质量分数。它分为两个步骤:

  1. 利用已有的snp数据库,建立相关性模型,产生重校准表( recalibration table)
  2. 根据这个模型对原始碱基进行调整,只会调整非已知SNP区域。

:如果不是人类基因组,并且也缺少相应的已知SNP数据库,可以通过严格SNP筛选过程(例如结合GATK和samtools)建立一个snp数据库。

输入

  • 需要重校准的BAM文件
  • 已知的多态性位点数据库,用于屏蔽那些不需要重校准的部分

输出

GATK可能会报告许多表格:

  • 参数列表
  • 量化质量表
  • 每个read gruop的重校准表
  • 按质量得分的重校准表
  • 所有可选协变量的重校准表

案例

java -jar GenomeAnalysisTK.jar \   -T BaseRecalibrator \   -R reference.fasta \   -I my_reads.bam \   -knownSites latest_dbsnp.vcf \   -o recal_data.table

参数说明:

-T : 运行的工具 -R : 参考基因组 -I : 输入的BAM文件 -knownSites 已知SNP的vcf文件 -o : 输出的重校准表

我是如何用的

首先我用BaseRecalibrator根据snp数据建立了重校准表,然后又做了一次重校准,用AnalyzeCovariates作图(要有R环境)观察前后变化,最后用PrintReads应用。

# 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 data java -Xmx16g -jar $gatk -T PrintReads \    -R $reference -I $file \    -BQSR ${file%%.*}_recal_data.table \    -o ${file%%.*}_recal_reads.bam

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存