GATK变异检测

news/2024/11/28 20:54:11/

变异检测

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】样本名


http://www.ppmy.cn/news/966963.html

相关文章

四、肿瘤全基因组学体细胞点突变特征(The repertoire of mutational signatures in human cancer)

全文链接 一、肿瘤突变特征&#xff1a;碱基置换及插入、缺失突变 单碱基置换&#xff08;49种特征类型&#xff0c;single-base-substitution&#xff0c;SBS&#xff09; 双碱基置换&#xff08;11种特征类型&#xff0c;doublet-base-substitution&#xff0c;DBS&#xf…

TCGA_联合GTEx分析2_查看批次效应

在 TCGA_联合GTEx分析1_得到表达矩阵.tpm_老实人谢耳朵的博客-CSDN博客 中&#xff0c;获取了TCGA和GTEx中样本的表达矩阵数据&#xff0c;数据格式均为tpm。本文对二者进行合并后&#xff0c;通过PCA分析、绘制内参箱线图等方法&#xff0c;查看是否存在批次效应。 关于批次效…

TCGA 亚型突变负荷代码

#1、准备文件/数据并加载相应的包 #1.1下载并加载相应的包&#xff0c;有就直接加载&#xff0c;没有就下载后再加载。 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::install("TCGAbiolinks") library(t…

基因组变异检测SNPcalling(GATK)

基因组变异检测SNPcalling&#xff08;GATK&#xff09; 第一步&#xff0c;将数据软连接到自己的工作路径下第二步&#xff0c;用BWA index功能为ref文件做index&#xff0c;用Samtools软件为ref做index第三步&#xff0c;用BWA软件做序列比对&#xff0c;得到序列比对的sam文…

提取TCGA 中体细胞突变数据的表达矩阵

#因为之前的命令调用GDCquery_Maf 发现用不了 #故找到了一些其他的方法&#xff0c;并且自己试着将其弄成了一个表达矩阵。 #代码如下 #1、下载加载相应的包 install.packages("pacman") library(pacman) p_load(TCGAbiolinks,DT,tidyverse) BiocManager::insta…

maftools|TCGA肿瘤突变数据的汇总,分析和可视化

之前介绍了使用maftools | 从头开始绘制发表级oncoplot&#xff08;瀑布图&#xff09; R-maftools包绘制组学突变结果&#xff08;MAF&#xff09;的oncoplot或者叫“瀑布图”&#xff0c;以及一些细节的更改和注释。 本文继续介绍maftools对于MAF文件的其他应用&#xff0c;为…

新版TCGA的突变SNP数据添加临床信息

文章目录 加载数据和R包读取数据 今天给大家演示下如何用自己的数据完成maftools的分析&#xff0c;主要是snp文件和临床信息的制作&#xff0c;其实很简单&#xff0c;但是网络上的教程都说的不清楚。 这次我们直接用之前TCGA-COAD和TCGA-READ合并后的数据演示&#xff0c;合…

ChatGPT 增长逐渐放缓,不再能吞噬整个网络?

整理 | 陈静琳 责编 | 屠敏 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09; ChatGPT 的爆火&#xff0c;是昙花一现&#xff0c;还是未来可期&#xff1f; 近日&#xff0c;网站流量分析工具 Similarweb 针对 ChatGPT 目前的数据流量现状进行了一次深度的调研…