本文为个人学习整理,仅供参考。如有侵权,请联系删除。
在植物基因组学研究中,SNP(单核苷酸多态性) 和 InDel(插入/缺失突变) 是基因变异的两大重要类型,对植物品种的性状改良、抗逆性研究、基因定位等具有重要意义。变异检测是基因组学分析的基础步骤之一,准确高效的检测工具对于获取可靠的变异数据至关重要。本文将对比常用的变异检测工具 GATK
和 VarScan
,并介绍如何使用 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
是一个开源工具,相较于GATK
,VarScan
在性能上可能稍逊一筹,特别是在处理极大规模的数据时,速度和资源消耗可能较高。
准确性
GATK
使用基于图形的多重定位方法(如 HaplotypeCaller)来检测变异,能够有效减少错误检测,尤其是在复杂区域(如基因组的重复序列)中表现良好。因此,GATK 通常能提供较为准确的变异检测结果。VarScan
的变异检测基于相对简单的算法,虽然在某些小规模数据集上效果不错,但其在准确性上不及GATK
,尤其是在复杂数据或大样本量情况下,容易出现假阳性或假阴性。
易用性
GATK
对新用户来说可能稍显复杂,特别是其庞大的工具集和众多的参数设置。需要一些学习曲线才能熟练使用。VarScan
相对简单,适合快速进行小规模数据集的变异检测。对于非专业用户,它的上手难度较低。
功能差异
GATK
提供了全面的变异检测功能,尤其是在SNP 和 InDel
的检测上,支持丰富的过滤、注释和后期分析功能。VarScan
主要专注于高效的SNP 和 InDel
检测,对于后期分析和大规模数据的支持略显不足。
比较维度 | GATK | VarScan |
---|---|---|
性能 | 高通量数据集的变异检测,支持大规模测序数据,处理能力强 | 适合中小规模数据集,在大数据集时性能较差 |
准确性 | 基于图形的多重定位方法,减少假阳性/假阴性,尤其在复杂区域 | 基于较简单的算法,适合小数据集,但大数据时容易出现错误 |
易用性 | 上手较难,庞大的工具集和参数设置需要一定学习曲线 | 使用简单,易于上手,适合非专业用户 |
功能差异 | 提供全面的变异检测、注释和后期分析功能 | 主要专注于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
:选择要保留的变体类型,这里选择SNP
和INDEL
。
VariantFiltration
用于对检测到的SNP 和 InDel
进行过滤,以排除那些不符合要求的变异。(我还没做,不做演示。参考https://gatk.broadinstitute.org/hc/en-us/articles/360041850471-VariantFiltration)
通过上述步骤,我们可以得到一个变异 VCF
文件。接下来,可以通过工具如 ANNOVAR 或 snpEff
对 VCF
文件进行功能注释,了解每个变异对基因的影响,以及是否与某些性状相关。
仅提供最简单的使用
GATK
的使用方法,更多内容及参数可参考官方文档。
可凡的学习笔记本
主要参考:
[1.] https://gatk.broadinstitute.org/hc/en-us
[2.] https://www.jianshu.com/p/744635975129
[3.] https://www.jianshu.com/p/f9c948a6c7de
免责声明:本文为个人学习笔记,整理过程难免有误。如有错误,欢迎指正。仅供个人学习使用,如有侵权,请联系删除