首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >根红苗正的GWAS软件:GEMMA

根红苗正的GWAS软件:GEMMA

作者头像
邓飞
发布2026-03-12 18:09:07
发布2026-03-12 18:09:07
60
举报

大家好,我是邓飞。

跑GWAS项目,几百个样本,几万个位点,rMVP、GAPIT都可以用,如果是几千万个位点,几千个样本,GEMMA运算速率更高,占用内存和运行时间都比较理想,下面介绍一下这个软件。

GEMMA名称来源:

- G:Genome-wide

- E:Efficient

- MM:Mixed-model

- A:Association

GEMMAX主要特点:快

就是它跑3.3h,其它软件跑27年的那种!!!

GEMMA语法特点

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

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

GEMMA支持plink的二进制文件:

  • 读取plink文件:-bfile

GEMMA生成G矩阵:

代码语言:javascript
复制
gemma-0.98.1-linux-static-bfilec-gk 2 -pp.txt

GEMMA分析MLM模型:

代码语言:javascript
复制
gemma-0.98.1-linux-static -bfile c -k output/result.sXX.txt -lmm 1 -p p.txt

结果查看:

干货来了:

GEMMA软件默认是没有PVE的(snp解释表型变异百分比),根据PVE的公式:

分子分母都有MAF*(1-MAF),可以删除,剩下的公式为:

PVE = 2* beta^2 /( 2*beta^2 + 2*N*se^2)

这里写了一个代码脚本,输入结果文件和样本个数,就可以生成pve的结果和显著性位点。

代码如下:

代码语言:javascript
复制
$ cat ~/bin/add_pve_from_gemma_result_and_tiqu_sig.R 
#! /home/dengfei/bin/Rscript

args = commandArgs(T)

if(length(args) == 0){
  cat("\n\n\tRscript add_pve_from_gemma_result_and_tiqu_sig.R result.assoc.txt N,geaam的gwas结果, N为分析的样本数\n
       结果生成文件:添加pve的文件:result.assoc_add_pve.txt,还有显著性文件:result_signals.csv\n")
  quit("no")
}

library(data.table)
library(tidyverse)

N = as.numeric(args[2])
# d1 = fread("output/result.assoc.txt")
dd = fread(args[1])
head(dd)

dd$pve = 2*dd$beta^2/(2*dd$beta^2+dd$se^2 * 2 * (N-dd$n_miss))
head(dd)
fwrite(dd,"result.assoc_add_pve.txt",sep=" ",quote=F)

# 导出显著性的SNP位点

dat1 = dd %>% dplyr::select(SNP = rs, CHROM = chr, POS = ps,REF=allele1, ALT=allele0, maf = af,Effect = beta, SE=se, pvalue = p_wald,pve) %>% drop_na(pvalue)
head(dat1)

p_th = 1/nrow(dat1)

dat2 = dat1 %>% filter(pvalue <p_th)
fwrite(dat2,"result_signals.csv")

代码调用说明:

代码语言:javascript
复制
$ add_pve_from_gemma_result_and_tiqu_sig.R 


  Rscript add_pve_from_gemma_result_and_tiqu_sig.R result.assoc.txt N,geaam的gwas结果, N为分析的样本数

       结果生成文件:添加pve的文件:result.assoc_add_pve.txt,还有显著性文件:result_signals.csv

代码调用演示:

结果文件:

代码语言:javascript
复制
result.assoc_add_pve.txt
result_signals.csv

资源推荐:

1,快来领取 | 飞哥的GWAS分析教程

2,飞哥汇总 | 入门数据分析资源推荐

3,数量遗传学,分享几本书的电子版

4,R语言学习看最新版的电子书不香嘛?

5,书籍及配套代码领取--统计遗传分析导论

6,飞哥的学习圈子

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 育种数据分析之放飞自我 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档