笔记 GWAS 操作流程5-1:根红苗正的GWAS分析软件:GEMMA

本文详细介绍GEMMA软件在全基因组关联研究(GWAS)中的高效应用,包括其快速运行特性、简化语法、支持plink二进制文件、线性模型与混合线性模型分析流程,并对比了LM与LMM模型结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

笔记 GWAS 操作流程5-1:根红苗正的GWAS分析软件:GEMMA

1. GEMMA软件介绍

这个肯定厉害了,是大家闺秀,是名门望族,是根红苗正的GWAS分析软件。

GEMMA名称来源:

  • G: Genome-wide
  • E:Efficient
  • MM:Mixed-model
  • A:Association

GEMMAX主要特点:

快,话说同样的检测方法,GEMMA跑了3.3小时,而EMMA估计要跑27年???
在这里插入图片描述

2. GEMMA语法特点

相对于plink的语法,GEMMA语法更简练,一个杠,一个字母。比如:

  • 表型数据:-p
  • 协变量:-c
    而plink的语法的是两个杠,一个单词:
  • 表型数据:--pheno
  • 协变量:--covar

GEMMA支持plink的二进制文件:

  • 读取plink文件:-bfile

表型数据格式:
一列,注意顺序和基因组的ID顺序一致,如果是多个性状,那就是多列,没有ID列。

一列
协变量格式:
协变量是数字类型,如果有因子,需要转化为虚拟变量的形式。没有ID列,第一列是cov1,第二列是cov2……,注意,如果有一协变量,第一列为1(截距),第二列为协变量。

比如下面的数据是一个协变量,第一列为截距。

3. GEMMA分析一般线性模型没有协变量

首先将plink格式转化为二进制的plink格式:

plink --file b --make-bed --out c

然后将表型数据提取单独一列:

awk '{print $3}' phe.txt >p.txt

然后进行一般线性模型关联分析:

gemma-0.98.1-linux-static -bfile c -p p.txt -lm 1

结果和plink的linear结果对比:

plink的结果:

gemma的结果:

两者结果完全一致。

事实上,加上协变量的分析,gemma和plink的结果也是一样的,因为都是应用的是一般线性模型。

4. GEMMA分析混合线性模型

第一步:先生成G矩阵

gemma-0.98.1-linux-static -bfile c -gk 2 -p p.txt 

代码解释:

  • -bfile 读取plink的二进制文件
  • -gk 2 标准化的方法计算G矩阵
  • -p 读取表型数据(这个不能省掉)
GEMMA 0.98.1 (2018-12-10) by Xiang Zhou and team (C) 2012-2018
Reading Files ... 
## number of total individuals = 1500
## number of analyzed individuals = 1500
## number of covariates = 1
## number of phenotypes = 1
## number of total SNPs/var        =    10000
## number of analyzed SNPs         =     3946
Calculating Relatedness Matrix ... 
================================================== 100%
**** INFO: Done.

G矩阵在output文件夹下:result.sXX.txt

第二步:使用混合线性模型进行GWAS分析

gemma-0.98.1-linux-static -bfile c -k output/result.sXX.txt -lmm 1 -p p.txt 
代码解释:
* -bfile plink的二进制文件
* -k 读取G矩阵的文件
* -lmm 1 使用Wald的方法进行SNP检验
* -p 表型数据

GEMMA 0.98.1 (2018-12-10) by Xiang Zhou and team (C) 2012-2018
Reading Files ... 
## number of total individuals = 1500
## number of analyzed individuals = 1500
## number of covariates = 1
## number of phenotypes = 1
## number of total SNPs/var        =    10000
## number of analyzed SNPs         =     3946
Start Eigen-Decomposition...
pve estimate =0.120599
se(pve) =0.0279188
================================================== 100%
**** INFO: Done.

第三步:查看结果文件
结果在output文件夹下:result.assoc.txt
在这里插入图片描述

5. GEMMA中LM模型和LMM模型的结果比较

setwd("/home/dengfei/gwas/qmsim/dat/plink_file/10_gemma_analysis_lmm/output")

mm_re = fread("result.assoc.txt")
head(mm_re)

lm_re = fread("../../06_gemma_analysis_lm/output/result.assoc.txt")
head(lm_re)
lm_re1 = lm_re[!is.na(p_wald)]
head(lm_re1)

dim(mm_re)
dim(lm_re1)

head(mm_re)
head(lm_re1)

re1 = merge(mm_re,lm_re1,by="rs")
head(re1)

# Pvalue 比较
cor(re1$p_wald.x,re1$p_wald.y)
plot(re1$p_wald.x,re1$p_wald.y)

# Beta回归系数比较
cor(re1$beta.x,re1$beta.y)
plot(re1$beta.x,re1$beta.y)

Pvalue比较

> cor(re1$p_wald.x,re1$p_wald.y)
[1] 0.5278895

Beta回归系数比较:

> cor(re1$beta.x,re1$beta.y)
[1] 0.8357564


注意:
这里面,混合线性模型分析时,一般要加上PCA的结果,防止群体结构造成的假阳性。下一章节,我们介绍LMM模型,如何加入协变量。

<think>好的,我现在需要处理用户关于GEMMA进行GWAS分析的问题,特别是使用GLM模型并进行PCA矫正的步骤。首先,我得回忆一下GEMMA的基本知识。GEMMA是一个用于全基因组关联分析GWAS)的工具,它支持多种线性混合模型,能够有效处理群体结构等问题。用户提到使用GLM模型,也就是一般线性模型,同时要进行PCA矫正,这通常是为了控制群体结构带来的假阳性结果。 首先,我需要确认GEMMA是否支持GLM模型。根据之前的了解,GEMMA主要基于线性混合模型(LMM),但GLM可能也是可行的,或者用户可能有其他配置方法。可能需要查看GEMMA的文档来确认。此外,PCA矫正通常是在模型中添加前几个主成分作为协变量,以减少群体结构的影响。因此,用户的问题可能涉及如何在GEMMA中运行GLM模型并整合PCA结果作为协变量。 接下来,我应该分解步骤。首先,用户需要准备基因型数据,通常是PLINK格式(.bed, .bim, .fam)。然后,进行PCA分析,可能使用PLINK或GCTA等工具生成主成分。接着,将PCA结果作为协变量添加到GLM模型中。在GEMMA中,运行GLM可能需要指定正确的模型选项,并包含协变量文件。 需要注意的细节包括:数据格式是否正确,PCA的计算是否正确,协变量文件是否包含所需的列(比如个体ID和主成分分数),以及GLM在GEMMA中的参数设置是否正确。例如,GEMMA的命令行参数可能包括-k选项指定亲缘关系矩阵,-c指定协变量文件,而模型的选择可能需要通过选项来指定为GLM而非默认的LMM。 另外,用户可能会遇到PCA矫正后的结果解释问题,比如选择多少个主成分作为协变量,通常前几个(比如前510)主成分能解释大部分群体结构。需要提醒用户根据数据情况调整主成分数量。 可能存在的误区是混淆GLM和LMM的应用场景。GLM假设样本间独立,而LMM通过引入随机效应处理样本间的遗传相关性。如果用户的数据存在复杂的亲缘关系,即使加入PCA作为固定效应,GLM可能仍不足以控制假阳性,此时可能需要考虑使用LMM。但用户明确要求使用GLM,所以应按照其需求进行指导,同时可以适当提醒不同模型的适用情况。 最后,验证步骤是否完整,包括检查输出结果的显著性位点,曼哈顿图和QQ图的分析,以及可能的多重检验校正。这些步骤能帮助用户确认分析的有效性。 总结,回答的结构应包括:数据准备、PCA计算、协变量文件准备、GEMMA运行命令、结果解释,以及注意事项。需要确保每个步骤清晰,并强调PCA在控制群体结构中的作用,以及正确应用GLM的配置方法。</think>以下是使用GEMMA进行GWAS分析(采用GLM模型并结合PCA矫正)的逐步说明: --- ### **1. 数据准备** - **基因型数据**:需为PLINK二进制格式(`.bed`, `.bim`, `.fam`)。 - **表型数据**:文本文件(如`.txt`),每行对应一个样本的表型值。 - **协变量文件**:包含PCA主成分及其他协变量(如性别、年龄)的文本文件。 --- ### **2. 生成PCA主成分** #### 目的:校正群体结构对关联分析的干扰。 - **使用PLINK计算PCA**: ```bash plink --bfile [genotype_prefix] --pca 10 --out pca_result ``` - `--pca 10`:提取前10个主成分(数量可根据数据调整)。 - 输出文件:`pca_result.eigenvec`(主成分得分)。 --- ### **3. 准备协变量文件** - **格式**:文本文件,第一列为样本ID,后续列为协变量(包括PCA主成分)。 ```plaintext FID IID PC1 PC2 PC3 ... PC10 sample1 sample1 0.01 -0.02 0.03 ... 0.05 sample2 sample2 -0.03 0.01 -0.04 ... 0.02 ``` - 保存为`covariates.txt`。 --- ### **4. 运行GEMMA的GLM模型** #### **命令示例**: ```bash gemma -bfile [genotype_prefix] \ -p [phenotype_file] \ -c covariates.txt \ -glm 1 \ -outdir results \ -o gemma_glm_pca ``` - **参数说明**: - `-bfile`:基因型文件前缀。 - `-p`:表型文件路径。 - `-c`:协变量文件(含PCA主成分)。 - `-glm 1`:指定使用线性模型(GLM)。 - `-outdir`:输出目录。 - `-o`:输出文件名前缀。 --- ### **5. 结果解读** - **主要输出文件**:`gemma_glm_pca.assoc.txt` - 列包括:SNP名称、染色体、位置、$p$值、效应量(beta)等。 - **可视化工具**: - 曼哈顿图:展示全基因组显著性位点。 - QQ图:评估$p$值分布是否偏离期望(若存在系统性偏离,可能提示残余混杂因素)。 --- ### **关键注意事项** 1. **主成分数量选择**: - 通常取前5-10个主成分,可通过观察PCA特征值碎石图或交叉验证确定。 2. **模型选择**: - GLM假设样本独立,若数据存在复杂亲缘结构,建议改用LMM(线性混合模型)。 3. **多重检验校正**: - 使用Bonferroni或FDR方法校正$p$值阈值(如$p < 5 \times 10^{-8}$)。 --- ### **附加建议** - **敏感性分析**:尝试不同数量主成分,观察结果稳定性。 - **软件版本**:确保使用最新版GEMMA(如v0.98.5+)。 通过以上步骤,可有效控制群体结构对GWAS结果的干扰,提升分析的可靠性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值