内容

1概述

这个描述提供了一个描述如何使用《创世纪》计划运行遗传协会测试数组(SNP)数据。《创世纪》使用混合遗传协会测试模型,作为个人电脑pc航空可以用作固定效果调整人口分层,反是和亲属关系矩阵(或亲缘关系矩阵)从PC-Relate可以用来估计占表型相关性由于基因样本之间的相似度。

2数据

2.1准备扫描注释数据

fitNullModel功能《创世纪》包从一个读取样本数据标准data.frame类对象或一个ScanAnnotationDataFrame类对象创建的GWASTools包中。这个对象必须包含所有结果和协变量数据的样本被包括在混合模型分析。此外,这个对象必须包含一个名为“scanID”包含的变量中的每个样本分析的惟一标识符。而一个标准data.frame可以使用,我们建议使用吗ScanAnnotationDataFrame对象,如它可以配对与基因型数据(见下文),以确保样本表型和基因型数据的匹配。通过使用GWASTools,一个ScanAnnotationDataFrame类对象可以很容易地从一个创建的data.frame类对象。R代码创建一个示例ScanAnnotationDataFrame下面是对象。可以找到更多的细节GWASTools包参考手册。

从先前的pc航空分析# # mypcair包含电脑把是一个向量的表型值#做一个data.frame mydat < - data.frame (scanID = mypcair美元样本。id, pc1 = mypcair向量[1],美元把=把)头(mydat)
# # scanID pc1把# # NA19919 NA19919 -0.12511091 - 0.1917327 # # NA19916 NA19916 -0.13151738 - -0.5687960 # # NA19835 NA19835 -0.08832100 - 0.8734804 # # NA20282 NA20282 -0.08617667 - 0.5787452 # # NA19703 NA19703 -0.11969449 - 1.6116791 # # NA19902 NA19902 -0.11458896 - 0.6663577
#让ScanAnnotationDataFrame scanAnnot < - ScanAnnotationDataFrame scanAnnot (mydat)
# #一个类的对象“ScanAnnotationDataFrame”# #扫描:NA19919 NA19916……NA19764 (173) # # varLabels: scanID pc1把# # varMetadata: labelDescription

2.2阅读在基因型数据

assocTestSingle功能《创世纪》包读取基因型的数据GenotypeData类对象创建的GWASTools包中。通过使用GWASTools,一个GenotypeData可以很容易地创建类对象:

  • 一个R矩阵的SNP基因型数据
  • GDS文件
  • 叮铃声文件

R代码创建一个示例GenotypeData下面是对象。可以找到更多的细节GWASTools包参考手册。

2.2.1R矩阵

基因族群< - MatrixGenotypeReader(基因型=基因型,snpID = snpID =染色体,染色体位置=位置,scanID = scanID) genoData < - GenotypeData(基因工程)
  • 基因型是一个矩阵编码的基因型值0 / 1 / 2,行索引SNPs和列索引样品在哪里
  • snpID是一个整数向量独特的SNP id
  • 染色体是一个整数向量指定每个SNP的染色体
  • 位置是一个整数向量指定每个SNP的位置
  • scanID是一个向量独特的个人id

2.2.2GDS文件

基因族群< - GdsGenotypeReader(文件名=“genotype.gds”) genoData < - GenotypeData(基因工程)
  • 文件名文件路径到GDS对象吗

2.3人类基因组单体型图数据

演示协会测试《创世纪》包,我们分析SNP数据从墨西哥裔美国人在洛杉矶,加州(MXL)和非裔美国人在美国西南部(ASW)人口样本的人类基因组单体型图3所示。墨西哥裔美国人,非洲裔美国人有不同祖先的背景,和家庭亲属存在于这些数据。20 k常染色体单核苷酸多态性基因型数据的一个子集为173人提供一个GDS文件。

#读GDS数据gdsfile < -系统。文件(“extdata”、“HapMap_ASW_MXL_geno。gds”,包=“创世纪”)HapMap_geno < - GdsGenotypeReader(文件名= gdsfile)
#创建一个GenotypeData类对象成对ScanAnnotationDataFrame HapMap_genoData < - GenotypeData HapMap_genoData (HapMap_geno, scanAnnot = scanAnnot)
# #的对象类GenotypeData # # |数据:# #文件:/ tmp / RtmpapzYB7 / Rinst285f21e4c0721创世纪/ extdata / HapMap_ASW_MXL_geno。gds (901.8 k) # # +[] * # # | - +样品。173邮政id {Int32,因素(40.9%)、283 b} * # # | - + snp。id {Int32 20000邮政(34.6%),27.1 k} # # | - + snp。位置{ Int32 20000 ZIP(34.6%), 27.1K } ## |--+ snp.chromosome { Int32 20000 ZIP(0.13%), 103B } ## \--+ genotype { Bit2 20000x173, 844.7K } * ## | SNP Annotation: ## NULL ## | Scan Annotation: ## An object of class 'ScanAnnotationDataFrame' ## scans: NA19919 NA19916 ... NA19764 (173 total) ## varLabels: scanID pc1 pheno ## varMetadata: labelDescription

2.4GRM从PC-Relate阅读

混合模型遗传协会测试通常包括一个遗传关系矩阵(GRM)占样本个体之间的遗传相似性。如果我们使用的是亲属关系系数估计PC-Relate构建这个克,那么函数pcrelateToMatrix应该被用来提供的矩阵在适当的格式吗fitNullModel

# mypcrel包含亲属估计从先前PC-Relate分析myGRM < - pcrelateToMatrix (mypcrel) myGRM (1:5, 1:5)
# # 5 x 5矩阵类“dsyMatrix”# # NA19625 NA19649 NA19650 NA19651 NA19652 # # NA19625 # # NA19649 0.9802757412 -0.001187704 -0.001460617 -0.008141279 0.0003310268 -0.0011877043 1.040838166 0.569730537 -0.0014606167 0.569730537 1.053822976 0.006999645 0.0146377241 0.004897574 - -0.0128561993 # # NA19650 # # NA19651 # # NA19652 -0.0081412786 0.004897574 0.006999645 1.011024569 0.0093895282 0.0003310268 -0.012856199 0.014637724 0.009389528 - 0.9818343788

注意,这个矩阵的行和列的名称都是一样的scanIDs扫描注释中使用的数据。

3混合模型协会测试

有两个步骤来进行遗传协会测试《创世纪》。首先,零模型(即没有SNP基因型的模型项)配合使用fitNullModel函数。第二,零的输出模型适合用于与基因型数据快速运行SNP-phenotype协会测试使用assocTestSingle函数。有一个计算优势分裂成两个函数调用这两个步骤;零模型只需要满足一次,和SNP协会测试可以通过染色体或其他分区paralelized加快分析(详情如下)。

3.1适合零模型

协会的第一步测试《创世纪》适合混合模型在零假设下,每个SNP没有影响。这个零协变量模型包含所有的,包括祖先代表电脑,以及任何随机效应,如多基因效应由于遗传相似度,但它不包含任何SNP基因型作为固定效应。

使用fitNullModel在空函数,随机效应模型指定通过协方差结构。这允许包含的多基因的随机效应用亲属关系矩阵或遗传关系矩阵(GRM)。

3.1.1定量的表型

一个线性混合模型(LMM)时应符合分析定量表型。下面的示例R代码符合基本零混合模型。

#适合零nullmod < - fitNullModel混合模型(scanAnnot,结果=“把”,柯伐合金=“pc1浸。垫= myGRM、家庭=“高斯”)
# # [1]0.4545551 0.4545551 -240.5810010 1.0922746 # # [1]0.07965827 - 0.76971759 -237.50257078 - 1.07504652 # # [1]0.1002053 0.8089861 -237.4969271 1.0050101 # # 0.8127311 -237.4969254 1.0000249 0.1010074 [1]
  • 第一个参数是类ScanAnnotationDataFramedata.frame对象包含样例数据
  • 结果指定结果变量的名称scanAnnot
  • 柯伐合金协变量指定的名称scanAnnot
  • cov.mat指定随机效应的协方差结构包括在模型中
  • 家庭应该为定量高斯表型,指定一个线性混合模型

平均信息REML (AIREML)过程是用来估计方差随机效应的组件。当verbose = TRUE方差分量估计,对数似,每次迭代的残差平方和R打印到控制台(如上所示)。在这个例子中,σ^ 2 _a是随机效应方差分量中指定吗cov.mat,σ^ 2 _e剩余方差分量。

3.1.1.1多个固定效果不

协变量模型可以适应多个固定效果的设置柯伐合金等于向量协变量的名字。例如,如果我们想要包括的变量“pc1”,“pc2”,“性”和“时代”都不模型:

nullmod < - fitNullModel (scanAnnot结果=“把”,柯伐合金= c (“pc1”、“pc2”,“性”,“年龄”),浸。垫= myGRM、家庭=“高斯”)

3.1.1.2多个随机效应

模型还可以适应多个随机效应。这是通过设置cov.mat等于矩阵的列表。例如,如果我们想和协方差结构包括一个多基因的随机效应的矩阵“myGRM”和家庭随机效应与协方差结构矩阵指定的“H”:

nullmod < - fitNullModel (scanAnnot结果=“把”,柯伐合金=“pc1浸。垫=列表(= myGRM“克”,“房子”= H),家庭=“高斯”)

矩阵的名称cov.mat确定方差分量参数的名称。因此,在这个例子中,R控制台将包括打印输出σ^ 2 _grm为指定的随机效应“myGRM”,σ^ 2 _house“H”指定的随机效应,和σ^ 2 _e剩余方差分量。

注意:每个矩阵的行和列名称用于指定一个随机效应的协方差结构混合模型中必须唯一scanIDs每个样本的分析。

3.1.1.3异构剩余方差

LMMs通常适合在一个恒定的假设(均匀)对所有观察剩余方差。然而,对于一些结果,可能有证据表明,不同组的观察有不同的剩余方差,在这种情况下,假设同方差性侵犯。group.var可以使用为了适应独立(异类)剩余方差组件被一些分组变量。例如,如果我们有一个类别变量在我们的“研究”scanAnnot,那么我们可以不同的剩余方差分量估计每个独特价值的“研究”通过使用下面的代码:

nullmod < - fitNullModel (scanAnnot结果=“把”,柯伐合金=“pc1浸。垫= myGRM、家庭=“高斯”组。var = "研究")

在这个例子中,剩余方差分量σ^ 2 _e被替换为集团具体剩余方差分量σ^ 2 _study1,σ^ 2 _study2…,“所”、“study2…独特的价值观是“研究”变量。

3.1.2二进制Phentoypes

理想情况下,一个广义线性混合模型(GLMM)将适合一个二进制表型;然而,配件GLMM比安装一个LMM更多的计算要求。提供一个compuationally有效的方法拟合这种模型,fitNullModel使用惩罚quasi-likelihood (PQL)近似GLMM(布勒斯洛和Clayton)。这个过程的实现《创世纪》是一样的在GMMAT (Chen等人),和更多的细节可以在手稿。如果我们的结果变量,“把”,是二进制,然后可以使用相同的R代码以适应零模型,但是家庭=二项

nullmod < - fitNullModel (scanAnnot结果=“把”,柯伐合金=“pc1浸。垫= myGRM、家庭=“二项”)

多个固定协变量的影响和多个随机效应可以为二进制指定表型在同样的方式为定量表型。group.var在这里不适用。

3.2运行测试SNP-Phenotype协会

第二步为协会测试《创世纪》是使用了零模型测试的单核苷酸多态性GenotypeData对象与指定的结果变量。这是完成了assocTestSingle函数。的使用assocTestSingle与定量运行协会测试或二进制表型是相同的。

我们可以运行一个协会测试之前GenotypeData对象,我们首先决定多少个snp我们想读一次。为此,我们创建一个GenotypeBlockIterator对象定义的snp。默认设置是在每一块读10000个snp,但这可能会改变了snpBlock论点。

genoIterator < - GenotypeBlockIterator (HapMap_genoData snpBlock = 5000)

下面的代码运行示例R协会分析使用零模型我们配合使用fitNullModel在前一节中。

协会< - assocTestSingle (genoIterator null。模型= nullmod)
  • genoData是一个GenotypeData类对象
  • null.model的输出是fitNullModel

默认情况下,函数将执行协会测试的snpgenoData对象。然而,对于计算的原因可能是实际的并行化这一步,分区snp的染色体或其他预先选择分组。如果我们只是想测试一组预先确定的单核苷酸多态性,可以通过snpID值的一个向量snpInclude当我们创建迭代器参数。

# mysnps是一个向量的snp snpID值我们想测试genoIterator < - GenotypeBlockIterator (HapMap_genoData, snpInclude = mysnps) assoc < - assocTestSingle (genoIterator, null。模型= nullmod)

3.3输出

3.3.1零模型

fitNullModel函数将返回一个列表的大量数据。为用户的一些更有用的输出包括:

  • varComp:随机效应方差分量估计
  • fixef:一个data.frame点估计,标准错误,测试数据,并假定值为每个固定的协变量的影响
  • 适合:一个data.frame结果,拟合值和各种模型的残差

也有指标评估模型适合如对数似(logLik),限制对数似(logLikR),Akaike信息准则(另类投资会议)。此外,有一些对象(如工作结果向量(workingY)和柯列斯基分解的逆估计表型协方差矩阵(cholSigmaInv使用的)assocTestSingle协会测试的功能。可以找到更多细节描述的所有输出的命令帮助(fitNullModel)

3.3.2该协会测试

assocTestSingle函数将返回一个data.frame的摘要信息为每个SNP联想测验。每一行对应一个不同的SNP。

(协会)
# #变体。id对应pos n。观察频率,MAC得分得分。SE得分。Stat # # 1 1 1 1 173 0.3901734 135 1.201347 8.670690 0.1385526 # # 2 2 1 2 173 0.4942197 171 -6.915853 9.150746 -0.7557693 # # 3 3 1 35 3 173 0.1011561 -1.366449 5.441663 -0.2511087 # # 4 4 1 4 173 0.4855491 168 -7.120154 9.429106 -0.7551251 # # 5 5 5 172 0.4447674 153 7.404077 8.708558 0.8502070 # # 6 6 1 6 172 0.2093023 72 10.364356 7.374279 1.4054739 # #得分。pval Est Est.SE通过# # 1 # # 2 0.4497875 -0.08259101 0.1092807 0.01597942 0.1153311 0.0001122594 0.8898037 0.8017301 0.0033401932 # # 3 # # 4 0.4501739 -0.08008448 0.1060546 -0.04614558 0.1837674 0.0003687368 0.3952100 0.0033345010 # # 5 # 6 # 0.1598804 0.19059138 0.1356065 0.09762892 0.1148296 0.0042270995 0.0115515076
  • variant.id:唯一的snp ID
  • 空空的:染色体
  • pos:这个职位
  • n.obs:样品的数量分析SNP
  • 频率:测试的频率(“A”)等位基因
  • MAC:轻微的等位基因数
  • 分数:分数的价值功能
  • Score.SE:分数的估计标准误差
  • Score.Stat:分数Z检验统计量
  • Score.pval:假定值基于评分检验统计量
  • 美国东部时间:一个近似的效果估计(β)的SNP
  • Est.SE:一个近似大小估计标准误差的影响
  • 通过:一个近似的比例表型方差解释道

可以找到更多细节描述的所有输出的命令帮助(assocTestSingle)

4遗传评估

通常感兴趣的估计总数的比例表型变异解释整个组的基因单核苷酸多态性avaialable;这提供了一个估计的狭义遗传特征。估计遗传的一个方法是使用零方差分量估计混合模型。《创世纪》包括varCompCI函数计算每个随机效应方差解释的比例的95%置信区间。

varCompCI (nullmod,道具= TRUE)
95上95 # # # #比例低V_A 0.110543 -0.2190884 0.4401745 # # V_resid。var 0.889457 0.5598255 1.2190884

当中包括额外的随机效应模型(如共享家庭的影响),varCompCI也将返回的比例变化解释为每一个组件。

注意:varCompCI不能计算比例的方差解释当异构剩余方差(即用于零模型。group.var被用在fitNullModel)。置信区间仍然可以计算的方差分量估计原始量表通过设置支持= FALSE

注意:方差分量估计不是二进制可判断的表型在适合使用PQL方法实现fitNullModel;比例的方差解释不应计算为这些模型。

5引用