当前位置: 首页 > 工具软件 > GATK > 使用案例 >

GATK之BaseRecalibrator

吕承福
2023-12-01

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
 类似资料: