【翻译】GWAS教程:质量控制和统计分析【第二部分:软件介绍&质量控制】


原文标题:A tutorial on conducting genome-wide association studies: Quality control and statistical analysis
原文链接:https://pubmed.ncbi.nlm.nih.gov/29484742/

2 | 软件

质量控制流程和统计分析将使用免费的、开源的全基因组管理分析工具集PLINK 1.07版(Purcell等人,2007)进行说明,该工具集可以从 http://zzz.bwh.harward.edu/plink 下载。PLINK 1.9测试版包含相同的选项,同时运行的速度要快得多 https://www.cog-genomics.org/plink/1.9/ 。由于PLINK 1.9目前是测试版本,我们在本教程中使用了官方版本的PLINK。但是,也可以使用PLINK 1.9完成教程的所有内容。尽管本文中讨论的某些步骤可以在R等传统统计软件包中执行,但专门用于分析遗传数据的软件包使用起来要方便得多。除了PLINK,还有许多其他不错的选择可用于分析SNP数据,例如Genebel(Aulchenko等人,2007)和 SNPTEST(Marchini等人,2007)。 此外,允许在基于家庭的GWAS中测试关联的方法的软件也被开发出来了(Chen和Yang,2010,Ott等)。我们建议使用基于GNU/Linux的计算机环境,尽管许多选项也可以通过Windows版本的PLINK获得。可以在 http://www.ee.surrey.ac/Teaching/Unix 上找到shell和命令行的基本介绍。Github上的示例脚本生成的所有图形都将使用免费的开源编程语言R( https://www.r-project.org/ )获得。

2.1 | 数据格式

PLINK可以读取文本格式的文件,也可以读取二进制格式的文件。由于读取大型的文本文件可能耗费大量的时间,于是我们推荐使用二进制格式的文件。文本形式的PLINK数据由两个文件组成:一个包含了个体及其基因型的信息(*.ped),另一个包含了遗传标记信息(*.map;详情见图1)。相应的,二进制形式的PLINK数据由三个文件组成,其中一个二进制文件包含了个体的标识符(IDs)和基因型(*.bed),另两个文本文件各自包含了个体信息(*.fam)和遗传标记信息(*.bim,详情见图1)。例如,在双向情感障碍的研究中,*.bed文件包含了所有患者和健康对照的基因分型结果;*.fam文件包含了与受试者相关的数据(与研究中其他参与者的家庭关系、性别和临床诊断);而*.bim文件包含了有关SNP物理位置的信息。使用协变量(covariates)的分析通常需要第四个文件,其中包含了每个人的相关协变量的值(参见图1)。

图1 各种常用的PLINK文件。SNP即单核苷酸多态性

2.2 | PLINK基础命令

PLINK是一款命令行程序,因此,使用PLINK需要一个活动的shell来等待命令。这可以通过光标前的提示($或者>)来识别。通常情况下,当前目录的路径会显示在提示符之前,如图2所示。当前目录是PLINK使用中的一个核心概念,因为在默认情况下,PLINK将从当前目录加载数据文件,并将运行产生的结果文件保存在当前目录中。当前目录可以通过传统的Unix命令(通常是cd)来改变为任何目录。在提示之后,通过输入plink关键字表示我们需要使用PLINK。如果PLINK没有安装在标准目录中,则必须在命令前面加上PLINK的安装目录路径,例如,/usr/local/bin/plink

在输入的plink关键字之后,控制PLINK的工作流程的其他选项将紧随其后,并以空格分隔。这些选项全都以两个横线(--)开头。需要提供的第一个选项之一是数据文件的格式和名称:对于文本文件,使用--file {your_file},二进制文件则使用--bfile {your_file}。之后,可以添加所有其他必须的选项,例如,--assoc选项表示执行关联分析,如图2所示;此选项将告诉PLINK为每个SNP对感兴趣的表型执行\(X^{2}\)测试。可以在单个命令行中结合使用多个选项。在PLINK中已经对命令选项实现了默认的顺序,无论执行的命令行中的命令顺序如何,它都能正常工作。一个有用的、有时也是强制性的选项是--out {outfile},它为PLINK提供了输出文件的名称(PLINK会根据需要添加文件后缀名)。请注意,PLINK会在静默状态下(不通知用户)删除任何与之同名的现有文件(所以要注意当前文件夹下的现有文件是否存在冲突)。请注意,PLINK中的命令选项超出了本文所讨论的范围;关于全部的可用选项,请参见 http://zzz.bwh.harvard.edu/plink/ 。

图2 PLINK命令行的结构。*并非所有shell都像这样显示。**如果PLINK不在当前目录中,请提供安装PLINK的目录的路径(例如,\usr\local\bin\plink)。请注意,此示例命令是使用Putty(一个免费的SSH和Telnet客户端)生成的。使用其他资源(ssh连接软件或者终端软件)进行操作时,可能在图形界面上有略微的变化;但是,PLINK命令的基本结构将是相同的。

3 | 基因(遗传?)数据的质量控制

任何GWAS中都应该存在的一个重要的步骤就是使用适当的质量控制(Quality Control),如果没有广泛的质量控制,GWAS产生的结果将不会是可靠的,因为原始的基因型数据本质上是不完美的。数据中的错误可能有多种原因,例如,由于DNA样本的质量很差、DNA与芯片(array)的杂交效果不佳、基因型探针性能不佳以及样本的混淆或污染(contamination)。例如,因为未能彻底控制这些数据上的问题,导致Sebastiani等人发表的一篇文章被撤回(2010) in Science (Sebastiani 等人, 2010, 2011; Sebastiani等人, 2012; Sebastiani等人, 2013)。被撤回的文章的结果受到了Illumina 610芯片技术错误和质量控制不足的影响。尽管经过适当的质量控制后,(文章中的)主要科学发现仍然能得到足够的支持,但新的分析得到的结果偏差很大,以至于作者决定撤回该文章。

3.1 | 使用HapMap数据进行数据模拟

为了能够使用真实的遗传数据说明所有分析步骤,我们使用了来自国际HapMap项目(http://hapmap.ncbi.nlm.nih.gov/downloads/genotypes/2010-05_phaseIII/plink_format/ ;Gibbs 等人,2003 年)的公开数据模拟了一个数据集(N=207),其中包含了二进制形式的结果度量。在本教程中,为了创建种族同质的数据集,(在数据集中)我们只包括了来自北欧和西欧(CEU)血统的犹他州(Utah)居民。由于HapMap数据的样本量相对较小,这些模拟中的遗传效应大小设置为比通常在复杂性状遗传研究中观察到的值要大。需要注意到的是,检测复杂性状的遗传风险因素需要更大的样本量(例如,至少在数千,甚至可能是数万或数十万)。可以在 https://github.com/MareesAT/GWA_tutorial/ (1_QC_GWAS.zip) 找到具有模拟表型特征的 HapMap 数据。

3.2 | 质量控制步骤概述

由于GWAS所面临的挑战,我们旨在说明基本的质量控制步骤并提供示例的脚本。表1总结了七个质量控制的步骤,并包括有关特定阀值的建议。但是,阀值可能会根据研究的具体特征而有所不同。七个质量控制的步骤根据以下的内容来过滤掉SNP和个体:(1)个体和SNP缺失,(2)受试者的分配和遗传性别不一致(见性别差异,sex discrepancy),(3)次要等位基因频率(MAP,minor allele frequency),(4)与哈代-温伯格平衡(Hardy-Weinberg equilibrium, HWE)的偏差,(5)杂合率,(6)相关性,以及(7)种族异常值(见种群分层,population stratification)。

通过遵循我们的在线教程(https://github.com/MareesAT/GWA_tutorial/ 上的1_QC_GWAS.zip + 2_Population_stratification.zip)中概述的所有步骤,可以获得有关质量控制步骤1-7性能表现的实践经验。教程中提供了用于数据质量控制和潜在偏差来源可视化的脚本。这些脚本对HapMap数据的CEU组执行了质量控制,可以应用于其他数据集,不过基于家庭的数据集和涉及多个不同种族的数据集除外。通常来说,如果样本包括多个种族(例如,非洲人、亚洲人和欧洲人),建议分别对每个种族进行关联测试并使用适当的方法,例如meta分析(Willer等人,2010),来将结果结合起来。如果您的样本中包括来自单一族群的受试者,则可以通过以下讨论的方法来校正剩余的种群分层。

表1 在遗传关联分析之前应进行的七个质量控制步骤

步骤 命令 功能 阈值和相关解释
1:个体和SNP缺失 (1)--geno

(2)--mind
(1)排除大部分受试者中缺失的SNP。在这一步中,删除具有低基因型调用(low genotype calls)的SNP。
(2)排除基因型缺失率高的个体。在此步骤中,删除具有低基因型调用的个体。
我们建议首先根据宽松的阈值(0.2;>20%)过滤SNP和个体,因为这将过滤掉SNP和具有非常高水平缺失的个体。然后可以应用具有更严格阈值的过滤器(0.02)。
注意,SNP过滤应该在个体过滤之前进行。
2:性别差异 -check-sex 根据X染色体杂合率/纯合率检查数据集中,记录的个体的性别与其性别之间的差异。 可以揭示样品混淆。如果许多受试者都有这种差异,则应仔细检查数据。男性的X染色体纯合度估计值应大于0.8,而女性的值应小于0.2。
3:次要等位基因频率(MAF) --maf 仅包括高于设定的MAF阈值的SNP。 具有低MAF的SNP很少见,因此缺乏检测SNP表型关联的能力。
这些SNP也更容易出现基因分型错误。
MAF阈值应取决于您的样本大小,较大的样本可以使用较低的MAF阈值。
对于大样本(N=100,000)与中等样本(N=10000),通常使用0.01和0.05作为MAF阈值。
4:哈代-温伯格平衡(HWE) --hwe 排除偏离哈代-温伯格平衡的标记。 基因分型错误的常见指标,也可能表明进化选择。
对于二元性状,我们建议的用于排除的阈值:在cases中的HWE p值小于1e-10和在controls中p值小于1e-6。不太严格的case阈值可避免在选择时丢弃与疾病相关的SNP(参见我们的在线教程)。
对于数量性状,我们建议HWE的p值小于1e-6。
5:杂合率 见在线教程中的示例脚本 排除杂合率较高或较低的个体。 (杂合率的)偏差(deviation)可以揭示样品污染和近亲繁殖的存在。
我们建议删除偏离样本杂合率平均值±3 SD的个体。
6:相关性 (1)--genome

(2)--min
(1)计算所有样本对的IBD(identity of descent)。
(2)设置阈值,并创建相关性高于所选阈值的个体列表。这意味着可以检测到相关对象(个体),例如pi-hat>0.2(即二级亲属,second degree relatives)
在此分析中使用独立的SNP(修剪,pruning)并将其限制为仅常染色体。
隐藏的相关性会干扰关联分析。如果您有一个基于家庭的样本(例如,父母-后代),则不需要删除相关对,但统计分析应考虑家庭相关性。然而,对于基于种群的样本,我们建议使用0.2的pi-hat阈值,这与文献中提到的一致(Anderson 等人,2010 年;Guo 等人,2014 年)。
7:种群分层 (1)--genome
(2)--cluster --mds-plot k
(1)计算所有样本对的IBD(identity of descent)。
(2)基于IBS生成数据中任何子结构的k维表示。
在此分析中使用独立的SNP(修剪,pruning)并将其限制为仅常染色体。
K是维数,需要定义(通常是10)。这是有多个程序组成的质量控制中的重要步骤,但出于完整性考虑,我们在表中简要地提及此步骤。此步骤将在“控制种群分层”一节中更详细地描述。

相关