GWAS | 使用GEMMA进行全基因组关联分析
GEMMA (Genome-wide Efficient Mixed Model Association) 是基于混合模型进行全基因组关联分析的工具。运行速度非常快,结果准确,使用也十分方便,非常适合初学者做GWAS分析。
首先我们要下载和安装GEMMA。
## 下载GEMMA
wget -c https://github.com/genetics-statistics/GEMMA/releases/download/0.98.1/gemma-0.98.1-linux-static.gz
## 解压
gzip -d gemma-0.98.1-linux-static.gz
## 设置权限
chmod a+x gemma-0.98.1-linux-static
GEMMA的输入文件格式为Plink二进制格式 (bed/bim/fam),具体的转换方法可以参考我之前的推送 一文掌握Plink文件格式转换。
## 转换格式
plink --vcf snp.vcf --recode --out snp
plink --file snp --make-bed --out gemma_input
需要注意的是,fam文件的第六列需要是真实的表型数据,缺失值用"-9"表示。
接下来计算kinship矩阵。
./gemma-0.98.1-linux-static -bfile gemma_input -gk 2 -o gemma
-bfile:输入Plink二进制格式文件的前缀。
-gk:指定生成的kinship矩阵类型。-gk 1 为centered matrix,-gk 2 为standardized matrix。
-o:输出文件前缀。
计算好的kinship矩阵在目录下的output文件夹中,接下来就可以进行关联分析了。
./gemma-0.98.1-linux-static -bfile gemma_input -k ./output/gemma.sXX.txt -lmm 4 -o gemma_out
-bfile:输入Plink二进制格式文件的前缀。
-k:输入kinship矩阵。
-lmm:选择Frequentist test方法。-lmm 1 表示使用Wald test,-lmm 2 表示使用likelihood ratio test,-lmm 3 表示使用score test,-lmm 4 表示同时执行三种方法。
-o:输出文件前缀。
GEMMA的计算速度很快,大概几分钟就可以执行完。
输出文件在目录下的output文件夹中。
比较重要的结果有以下几列:
chr:染色体名称。
rs:SNP编号。
ps:SNP物理位置。
p_wald:Wald test的P值。
p_lrt:Likelihood ratio test的P值。
p_score:Score test的P值。
这三种P值我们选一个就行。
接下来还可以根据我们之前的推送绘制QQ图和曼哈顿图。
参考资料:
https://github.com/genetics-statistics/GEMMA/blob/master/doc/manual.pdf
- Percona Toolkit 常用工具使用介绍
- 深入浅出Redis-redis哨兵集群
- Spring-Blog:个人博客(一)-Mybatis 读写分离
- Spring-boot:5分钟整合Dubbo构建分布式服务
- MYSQL5.6优化器的一个新特性MMR
- Mysql聚集索引和非聚集索引
- Spring-Boot:6分钟掌握SpringBoot开发
- Zookeeper-5分钟快速掌握分布式应用程序协调服
- Mysql索引长度计算
- Spring-Boot:Spring Cloud构建微服务架构
- Python-WXPY实现微信监控报警
- MySQL InnoDB Lock(一)
- Java 时间类-Calendar、Date、LocalDate/LocalTime
- Java消息队列--JMS概述
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
- android之json数据过长打印不全问题的解决
- PHP实现时间日期友好显示实现代码
- AndroidStudio插件GsonFormat之Json快速转换JavaBean教程
- android studio错误: 常量字符串过长的解决方式
- Android Shader着色器/渲染器的用法解析
- PHP实现的文件浏览器功能简单示例
- Laravel中正确地返回HTTP状态码方法示例
- Android 实现抖音头像底部弹框效果的实例代码
- Android Studio修改Log信息颜色的实现
- Android 之BottomsheetDialogFragment仿抖音评论底部弹出对话框效果(实例代码)
- Yii框架的路由配置方法分析
- Android 购物车加减功能的实现代码
- Yii框架函数简单用法分析
- PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】