GATK变异检测

变异检测

GATK 变异检测

在这里插入图片描述

GATK是Genome Analysis Toolkit的缩写,是用来处理高通量测序数据的一套软件。最初,GATK被设计用来分析人类基因组和外显子,主要用来寻找SNP和indel。后开,GATK的功能越来越丰富,增加了short variant calling、计算copy number(CNV)和结构变异(SV)等新功能。同时,GATK也越来越广泛地应用于其他物种的数据分析中。现在,GATK已经成为了基因组和RNA-seq分析过程中,寻找变异的行业标准。

数据类型:Illumina数据

软件版本:Gatk 4.1.8.1、fastp 0.20.0、bwa 0.7.17、samtools 1.9

测试数据:

$ref = ~/database/hg19_BWA /hg19.fa
$tumor1.fq = ~/GATK_passway/Illumina测序文件/ 202011_R1.fq
$tumor2.fq = ~/GATK_passway/Illumina测序文件/ 202011_R2.fq
$normal1.fq =  ~/GATK_passway/Illumina测序文件/ 2020NC_R1.fq
$normal2.fq = ~/GATK_passway/Illumina测序文件/ 2020NC_R2.fq
$bed = ~/GATK_passway/Illumina测序文件/ Illumina.bed

GATK的使用流程:

Gatk的使用流程共3个步骤:原始数据的处理,变异检测,过滤质控
在这里插入图片描述

第一部份:原始数据的处理
1. 对原始数据进行质控,去除掉质量较低的reads
Fastp –i ${tumor1.fq} –o ${tumor1.clean.fq} –I ${tumor2.fq} –O ${ tumor2.clean.fq}
2. 建立ref的dict索引,便于对ref文件的查询

后续比对,建立panel normal,bed文件处理等

Samtools dict ${ref} -o ${ref.dict}

文件格式:软件的版本,染色体号,染色体长度,MD5,来源
在这里插入图片描述

3. 创建参考基因组的索引,用于bwa的比对
Bwa index ${ref}

建立完成后文件夹下有 hg19.fa.amb、hg19.fa.ann、hg19.fa.bwt 、hg19.fa.pac、hg19.fa.sa,5个文件

4. 将质控后的文件与数据库文件做比对
Bwa men –R ‘@RG\tID:id1\tPL:${type}\tSM:${sm}${ref} ${tumor1.clean.fq1} ${tumor2.clean.fq2} | samtools view –bS > ${tumor.bam}

@RG:reads group,ID:reads的id号, PL:下机数据的平台,例如:Illumina,SM:样本名
这个步骤直接将比对后的sam文件转化为了bam

5. 比对后bam文件排序,统计比对情况

将比对后的文件进行排序

Samtools sort ${out.bam} –o ${out.sorted.bam}

建立索引便于查询和搜索

Samtools index ${out.sorted.bam} 

统计比对后的信息,查看比对情况

Samtools flagstat ${out.sorted.bam}
6. 标记重复序列
Gatk MarkDuplicates –I ${.sorted.bam} –O ${.sorted.marked.bam}-M { .txt}

将pcr过程中的多拷贝或高密度的flowcell使得测序的通量显著提升产生的重复,进行标记

7. 将bed文件转化为GATK的所需的格式,同时进行窗口划分
Gatk PreprocessIntervals –L ${bed} –R${ref} --bin-length 0 --interval-merging-rule OVERLAPPING_ONLY –O ${list}	

–bin-length:为你创建的窗口的大小,interval-merging-rule :OVERLAPPING_ONLY 有重叠区域时合并窗口

第二部分:变异检测
1. somatic call SNP 和INDEL的流程图

call somatic 变异的流程图
对于成对样本的somatic变异检测,将normal的样本创建为panel of normal ,通过GATK的Mutect2的算法进行tumor样本的变异进行筛选

在这里插入图片描述

mutect2 的算法基本原理,根据Normal panel,划分活跃区域,对区域内的序列重新组装,建立相似性矩阵,确定基因型,从而获得变异信息
在这里插入图片描述

构建normal panel

对normal样本进行call变异处理

Gatk Mutect2 –R ${ref} –I ${.sorted.marked.bam } –O ${normal.vcf}

本次未引入其他数据库,如有需要自行下载

获取tumor样本中的原始变异信息

获取原始变异时,按照变异的频率进行筛选,过滤掉低频率的变异信息

成对样本tumor and normal的变异检测

Gatk Mutect2 -R ${ref} -I ${tumor.MarkDup.sorted.bam} -I ${normal.MarkDup.sorted.bam} -tumor ${sm1} -normal ${sm2} -pon ${normal.vcf} --minimum-allele-fraction ${int} -L ${list} -O ${out.vcf}

将假阳性的结果进行标记

Gatk FilterMutectCalls -V ${out.vcf} -R ${ref} -O ${out.Filtered.vcf}
grep "^#|PASS" ${out.Filtered.vcf} > ${output.vcf}

tumor-only 的变异检测

Gatk Mutect2 -R ${ref} -I ${tumor.MarkDup.sorted.bam} -tumor ${sm} --minimum-allele-fraction ${int} -pon ${normal.vcf} -O ${out.vcf}

somatic变异检测中对于panel of normal 的构建会帮你去除掉许多的变异,变异结果更为的准确

2. Germline SNP和INDEL的变异检测
1.	寻找活跃区域,就是和参考基因组不同部分较多的区域
2.	通过对该区域进行局部重组装,确定单倍型(haplotypes)
3.	在给定的read数据下,计算单倍型的可能性。
4.	分配样本的基因型

在这里插入图片描述

对于Germline的变异检测

Gatk HaplotypeCaller -R ${ref} -I ${.sorted.marked.bam} -O ${out.vcf}
3. 拷贝数变异检测
统计每个窗口中ref的GC含量百分比
Gatk AnnotateIntervals -L ${list} -R ${hg19.fa} --interval-merging-rule OVERLAPPING_ONLY -O ${out.tsv}

contig所在的位置,起止位置,GC复制比率
在这里插入图片描述

获取样本的read counts

统计bam文件在每个窗口的reads数,成对样本请处理normal 和tumor

Gatk CollectReadCounts -L ${out.list} -R ${hg19.fa} -I ${normal.MarkDup.sorted.bam} --format HDF5 --interval-merging-rule OVERLAPPING_ONLY -O ${normal.HDF5}
创建正常样本的CNV
Gatk CreateReadCountPanelOfNormals -I ${normal.MarkDup.sorted.bam} --minimum-interval-median-percentile 5.0 -O ${normal.HDF5}
降噪DenoiseReadCounts

进行标准化和降噪处理,去除掉创建normal时引入的噪音

Gatk DenoiseReadCounts -I ${tumor.HDF5} --count-panel-of-normals ${normal.HDF5} --standardized-copy-ratios ${normal.standard.tsv} --denoised-copy-ratios ${normal.Denoised.tsv}
计算单倍体的拷贝数,用于下面的拷贝数变异统计
Gatk CollectAllelicCounts -L ${out.list} -R ${hg19.fa} -I ${normal.MarkDup.sorted.bam} -O ${normal.AllelicCounts.tsv}
ModelSegments

将结果信息存放在file文件夹下,文件的名字以name为字段的一部分

Gatk ModelSegments --denoised-copy-ratios ${normal.Denoised.tsv} --allelic-counts ${tumor.AllelicCounts.tsv}  --normal-allelic-counts ${normal.AllelicCounts.tsv} -O ${file} --output-prefix ${name}
获取拷贝数变异结果
Gatk CallCopyRatioSegments -I ${name.cr.seg} -O ${output.cr.called.seg}

结果中的name.igv.seg文件可以使用igv进行查看
在这里插入图片描述
【1】contig所在的染色体 【2】【3】【4】【5】平均拷贝的比率,大于 0.14 就是扩增,小于 -0.15 就是缺失,其他的为正常【6】检测结果,+、-、0,分别代表这增加,减少,正常

第三部分:过滤质控
1. 硬过滤标准

对文件进行过滤分析,按照深度对vcf进行过滤,剔除低深度的变异

Gatk FilterVcf --MIN_DP ${int} -I ${output.vcf} -O ${output.filter.vcf}

低于该深度的会在info中进行相应的展示
在这里插入图片描述
过滤掉低深度的变异信息

grep -v "LowDP" ${output.filter.vcf} > ${result.vcf}

按照变异类型将文件中的SNP、INDEL进行筛选 ,将文件拆分为两种类型的变异,拆分过程可能会丢失数据,请在原数据中进行查找

Gatk SelectVariants -select-type ${type} -V ${result.vcf} –O ${result.type.vcf}

不同的变异检测hard filter标准不同

Gatk VariantFiltration –V ${result.type.vcf} --filter-expression “QD < 2.0 || MQ < 40.0 || FS > 60.0 || SOR > 3.0 || MQRankSum < -12.5 || ReadPosRankSum < -8.0” --filter-name ${filter} –O ${result.type.filter.vcf}

过滤后的vcf文件重新整理为新的vcf

Gatk MergeVcfs -I ${result.snp.filter.vcf} -I ${result.indel.filter.vcf} -O ${result.last.vcf}
2. 软过滤标准

该过滤过程是对结果文件通过机器学习的方式,需多种变异数据库的变异检测结果

构建重新校准模型,为筛选目的对变体质量进行评分

 Gatk VariantRecalibrator -R ${ref} -V ${output.vcf} --resource:hapmap,known=false,training=true,truth=true,prior=15.0 hapmap_3.3.hg38.sites.vcf.gz -an QD -an MQ -an MQRankSum -an ReadPosRankSum -an FS -an SOR -mode ${type} -O ${output.recal} --tranches-file ${output.tranches} 

训练集名字,这个名字是可以随便改动的
known:该数据是否作为已知变异数据集,用于对变异数据的标注;
training:该数据是否作为模型训练的数据集,用于训练VQSR模型;
truth:该数据是否作为验证模型训练的真集数据,这个数据同时还是VQSR训练bad model时自动进行参数选择的重要数据;
prior:该数据集在VQSR模型训练中的权重,或者叫Prior likelihood(这里转化为Phred-scale,比如20代表的是0.99)

Gatk ApplyVQSR -R ${ref} -V ${output.vcf} --truth-sensitivity-filter-level 99.0 --tranches-file output.tranches --recal-file ${output.recal} -mode SNP -O ${output.vcf.gz}
附录

由下机数据的fastq格式文件到比对后的sam,转换格式之后的bam文件,call变异之后的VCF文件,各种格式文件的内容及所便是的含义如下

fastq文件的格式

在这里插入图片描述
第一行:必须以“@”开头,后面跟着唯一的序列ID标识符,然后跟着可选的序列描述内容,标识符与描述内容用空格分开。
第二行:序列字符。
第三行:必须以“+”开头,后面跟着可选的ID标识符和可选的描述内容,如果“+”后面有内容,该内容必须与第一行“@”后的内容相同。
第四行:碱基质量字符,每个字符对应第二行相应位置碱基或氨基酸的质量,该字符可以按一定规则转换为碱基质量得分,碱基质量得分可以反映该碱基的错误率。这行的字符数与第二行中的字符数必须相同。

sam文件的格式
https://blog.csdn.net/genome_denovo/article/details/78712972
bam文件的格式

在这里插入图片描述
共计11个字符段
【1】reads的ID标识符 【2】标记数字 【3】比对到的染色体 【4】 比对到的染色体的位置 【5】比对的质量值 【6】比对结果的CIGAR字符串 M:匹配,I:插入,D:删除 【7】 "="表示正确匹配到序列上、"X"表示错误匹配到序列上 【8】mate在序列上的名称【9】mate在序列上的位置 【10】reads的序列 11.reads序列的碱基质量 【11】AS:i 匹配的得分、XS:i 第二好的匹配的得分、S:i mate 序列匹配的得分、XN:i 在参考序列上模糊碱基的个数、XM:i 错配的个数、XO:i gap open的个数、XG:i gap 延伸的个数、NM:i 经过编辑的序列、YF:i 说明为什么这个序列被过滤的字符串、YT:Z、MD:Z? 代表序列和参考序列错配的字符串

vcf文件的格式

在这里插入图片描述
【1】染色体位置 【2】变异所在位置 【3】variant的ID 【4】变异在ref上的信息 【5】突变后的情况,出现染色体号的为染色体的倒置【6】突变后的质量值 【7】按照突变质量的过滤情况 【8】详情信息 【9】格式 【10】样本名

  • 16
    点赞
  • 94
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
GATK Mutect2是一种广泛用于检测体细胞突变的工具,以下是其检测流程的简要说明。 首先,Mutect2通过比较肿瘤样本和正常样本的测序数据来区分突变事件。它采用配对样本的测序数据,其中包括Tumor样本和Normal样本,用于检测在Tumor样本中特有的变异。 其次,Mutect2将输入的DNA测序数据首先进行处理和去噪,包括读取比对、质量控制和去除PCR偏差等步骤。然后,它使用GATK提供的基于Bayesian模型的变异检测算法来识别可能的单核苷酸变异(SNVs)和小片段插入/删除突变(indels)。 然后,Mutect2使用多个过滤器来排除假阳性的变异。这些过滤器包括测序深度过滤器、错配率过滤器、基因组运行过滤器等。通过应用这些过滤器,Mutect2可以准确地识别并过滤掉可能是由于技术问题或其他伪变异引起的假阳性。 最后,Mutect2输出一个突变调用文件(VCF),其中包含检测到的变异信息,如变异位置、变异类型、基因型频率、基因型质量评分等。这个VCF文件可以进一步用于变异注释、功能预测和统计分析,从而为研究人员提供更多研究突变现象的细节。 总之,GATK Mutect2是一种高效准确的基于比较正常和肿瘤样本测序数据的突变检测工具,它的检测流程包括数据处理、变异检测和过滤、突变调用等步骤,为研究人员提供了有效分析体细胞突变的工具和结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值