【生信入门笔记】| 如何使用 GATK 准确检测 SNP 和 InDel变异

文摘   科技   2024-11-09 12:17   甘肃  

本文为个人学习整理,仅供参考。如有侵权,请联系删除。

在植物基因组学研究中,SNP(单核苷酸多态性)InDel(插入/缺失突变) 是基因变异的两大重要类型,对植物品种的性状改良、抗逆性研究、基因定位等具有重要意义。变异检测是基因组学分析的基础步骤之一,准确高效的检测工具对于获取可靠的变异数据至关重要。本文将对比常用的变异检测工具 GATKVarScan,并介绍如何使用 GATK 准确检测 SNP 和 InDel

本文主要内容

  • 为什么要关注 SNP 和 InDel?

  • VarScan 与 GATK比较

    • 性能

    • 准确性

    • 易用性

    • 功能差异

  • 使用 GATK 检测 SNP 和 InDel

    • 准备数据

    • SNP 和 InDel 检测

为什么要关注 SNP 和 InDel?

SNP 和 InDel 是基因组变异中最常见且最具研究价值的类型。SNP 通常是由单个碱基的替换造成的变异,而 InDel 则是指基因组中插入或缺失的小片段。 这两类变异是导致植物性状差异的关键因素,尤其在植物的抗病性、耐逆性、产量等性状改良研究中,SNP 和 InDel 提供了重要的遗传标记。

例如,SNP 变异可能引起基因的功能丧失或增强,从而影响植物的生长发育、果实品质等性状。而 InDel 变异往往通过影响基因结构、剪接位点等,改变转录产物的结构和功能,对植物的抗性、产量等性状产生重要影响。因此,精确地识别和分析 SNP 和 InDel 变异,是植物基因组学研究中不可或缺的环节。

VarScan 与 GATK比较

在变异检测中,GATK(Genome Analysis Toolkit)VarScan 是两款常用的软件工具。尽管它们都用于基因组变异的检测,但它们各自的优缺点和应用场景略有不同。

性能

  • GATK 是由 Broad Institute 开发的强大工具,支持高通量数据集的变异检测。它经过多年的优化,能够处理大规模的测序数据,适用于全基因组的高效变异分析。
  • VarScan 是一个开源工具,相较于 GATKVarScan性能上可能稍逊一筹,特别是在处理极大规模的数据时,速度和资源消耗可能较高。

准确性

  • GATK 使用基于图形的多重定位方法(如 HaplotypeCaller)来检测变异,能够有效减少错误检测,尤其是在复杂区域(如基因组的重复序列)中表现良好。因此,GATK 通常能提供较为准确的变异检测结果。

  • VarScan 的变异检测基于相对简单的算法,虽然在某些小规模数据集上效果不错,但其在准确性上不及 GATK,尤其是在复杂数据或大样本量情况下,容易出现假阳性或假阴性。

易用性

  • GATK 对新用户来说可能稍显复杂,特别是其庞大的工具集和众多的参数设置。需要一些学习曲线才能熟练使用。
  • VarScan 相对简单,适合快速进行小规模数据集的变异检测。对于非专业用户,它的上手难度较低。

功能差异

  • GATK 提供了全面的变异检测功能,尤其是在 SNP 和 InDel 的检测上,支持丰富的过滤、注释和后期分析功能。
  • VarScan 主要专注于高效的 SNP 和 InDel 检测,对于后期分析和大规模数据的支持略显不足。
比较维度GATKVarScan
性能高通量数据集的变异检测,支持大规模测序数据,处理能力强适合中小规模数据集,在大数据集时性能较差
准确性基于图形的多重定位方法,减少假阳性/假阴性,尤其在复杂区域基于较简单的算法,适合小数据集,但大数据时容易出现错误
易用性上手较难,庞大的工具集和参数设置需要一定学习曲线使用简单,易于上手,适合非专业用户
功能差异提供全面的变异检测、注释和后期分析功能主要专注于SNP和InDel检测,缺少复杂后期分析功能
  • GATK 更适用于大规模、复杂数据的变异分析,尤其适合高通量基因组数据。
  • VarScan 则适合快速分析小规模数据集,尤其是资源有限时非常方便。

使用 GATK 检测 SNP 和 InDel

GATK 是目前应用最广泛的基因组分析工具之一,尤其擅长于大规模基因组数据的变异检测。以下是使用 GATK 检测 SNP 和 InDel 的部分步骤:

关于GATK的下载、安装及详细使用方法,可参考官方文档:https://gatk.broadinstitute.org/hc/en-us

准备数据

首先,准备参考基因组文件(reference_genome.fasta和样本的对齐文件(sample.bam)、FASTA 序列字典文件(.dcit)、FASTA 索引文件(.fai。这些文件是后续变异检测的基础。

关于FASTA 序列字典文件、FASTA 索引文件,可参考:https://gatk.broadinstitute.org/hc/en-us/articles/360035531652-FASTA-Reference-genome-format。可以使用gatk CreateSequenceDictionary -R ref.fasta来建立,也可使用bwa来建立。

SNP 和 InDel 检测

通常使用HaplotypeCaller进行变异检测。该工具通过分析 BAM 文件中的 reads参考基因组,来识别可能的 SNP 和 InDel

使用HaplotypeCaller,其实生成的是中间文件。

gatk HaplotypeCaller \
    -R {REFSEQ_PATH} \
    -I {final_bam} \
    -O {variant_result_gvcffile} \
    --emit-ref-confidence GVCF
  • -R:指定参考基因组
  • -I:输入的 BAM 文件。
  • -O:输出文件,通常为 VCF或者gvcf 格式,包含检测到的 SNP 和 InDel

GenotypeGVCFs对使用 HaplotypeCaller 预先调用的一个或多个样本进行联合基因分型。最终的 VCF,其中所有样品都已进行联合基因分型。

最终的 VCF 文件。可以用于下一步的SNP 和 InDel检出。

gatk GenotypeGVCFs \
    -R {REFSEQ_PATH} \
    -V {variant_result_gvcffile} \
    -O {variant_result_file}
  • -R:参考基因组。
  • -V:输入的 gvcf 文件。
  • -O:输出文件,通常为 VCF 格式,包含检测到的 SNP 和 InDel

SelectVariants用来从 VCF 文件中选择变体的子集.

gatk SelectVariants \
    -R {REFSEQ_PATH} \
    -V {variant_result_file} \
    --select-type-to-include SNP \
    -O {snp_result_file}

gatk SelectVariants \
    -R {REFSEQ_PATH} \
    -V {variant_result_file} \
    --select-type-to-include INDEL \
    -O {indel_result_file}
  • -R:参考基因组。
  • -V:输入的 VCF 文件。
  • --select-type-to-include:选择要保留的变体类型,这里选择 SNPINDEL

VariantFiltration 用于对检测到的 SNP 和 InDel 进行过滤,以排除那些不符合要求的变异。(我还没做,不做演示。参考https://gatk.broadinstitute.org/hc/en-us/articles/360041850471-VariantFiltration)

通过上述步骤,我们可以得到一个变异 VCF 文件。接下来,可以通过工具如 ANNOVAR 或 snpEffVCF 文件进行功能注释,了解每个变异对基因的影响,以及是否与某些性状相关。

仅提供最简单的使用GATK的使用方法,更多内容及参数可参考官方文档。

欢迎大家关注我的公众号

可凡的学习笔记本


主要参考:

[1.] https://gatk.broadinstitute.org/hc/en-us

[2.] https://www.jianshu.com/p/744635975129

[3.] https://www.jianshu.com/p/f9c948a6c7de

免责声明:本文为个人学习笔记,整理过程难免有误。如有错误,欢迎指正。仅供个人学习使用,如有侵权,请联系删除

可凡的学习笔记本
在读硕士生,R、Python爱好者
 最新文章