多基因风险评分3
PRSice是当前比较流行的多基因风险评分工具,它主要是用R语言编写的,运行速度快,可以高通量处理大数据。它既有Linux版本,也有Windows版本,由于我们平时研究中使用Linux操作系统比较多,故本次主要以Linux版本为例进行讲解。如果有小伙伴想在Windows操作系统下安装并使用该软件,那么可以在PRSice官网(https://www.prsice.info/)上获取相关教程。
第一部分:准备文件
1. Base文件:使用参数--base来指定该文件,它本质上就是GWAS的结果文件。我们可以使用如下参数指定base文件的列,比如--snp SNP --chr CHR --bp BP --A1A1 --A2 A2 --stat OR --pvalue P就是如下文件的参数设置,其中--snp SNP就是指定列名为SNP的列作为snp。
2. Target文件:该文件是包含个体基因型信息的文件,我们可以使用--target参数来指定该文件,PRSice支持两种格式的target文件,一种是PLINK格式的二进制文件,包括bed、bim和fam这三个文件,另一种是BGEN文件,包括bgen和sample这两个文件。关于PLINK文件,请参考往期内容初探PLINK文件格式(bed,bim,fam),BGEN文件格式我会在之后的推送中详细讲解,它在大型遗传数据库中应用十分广泛。
3. Phenotype文件:这是一份表型文件,这个文件的前两列必须是FID(家系ID)和IID(个体ID),其余的列存储的都是表型信息。对于一个二分类性状(有病/无病),NA或者-9表示缺失值,而-9在连续型性状中不表示缺失,这个尤其需要注意。
4. LD文件:该文件是估计SNP之间连锁不平衡关系的,可以从1000 Genomes官网上下载。
https://www.internationalgenome.org/
第二部分:具体操作及代码
当我们下载并安装好PRSice软件后,可以看到base文件TOY_BASE_GWAS.assoc,其具体内容如下图所示:
之后,我们还可以看到PLINK格式的二进制文件TOY_TARGET_DATA。
最后一个就是表型文件TOY_TARGET_DATA.pheno,如下图所示:该文件前两列必须是FID和IID,后面的就是表型信息。
运行代码如下:
Rscript ./PRSice.R --dir . --prsice ./PRSice_linux --base TOY_BASE_GWAS.assoc --target TOY_TARGET_DATA --thread 1 --stat OR --binary-target T --out TOY_OUT
这里有两个参数需要注意,一个是--thread,它表示的是程序运行所使用的线程数,一般线程越多,运行速度越快,线程数的使用视计算机的性能而定,四核计算机可以使用4个线程,一般服务器可以使用20个以上的线程,该参数在处理大数据时尤其有用。另一个参数就是--out,它是用来指定输出结果的前缀。
PRSice软件运行时有很多参数可供调整,极大地方便了使用者,如果想了解它的详细参数,可以使用如下代码:Rscript PRSice.R –help。
米老鼠已经把帮助文档提取出来,有兴趣的伙伴可以看下面的PRSice英文版使用文档。
第三部分:输出结果
程序运行完毕一般会有6个文件输出,如下图所示:
前两个文件是图片,后四个是文本文件,其中以log结尾的文件是记录程序运行情况的日志型文件,一般当程序运行出错时需要仔细查看一下。
关于PRSice软件的使用就先讲到这里,在下期内容中我会和大家详细解读PRSice的输出结果,敬请期待!
- 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 数组属性和方法
- kill -9 导致 Kakfa 重启失败的惨痛经历!
- 图解 DataX 核心设计原理
- 不会吧不会吧,你不会还不知道这些提高JS代码质量的骚操作吧?
- Flask架站基础篇(一)--环境配置
- Flask架站基础篇(三)--Flask生成文件内容和文件夹详解
- Flask架站基础篇(四)--URL
- Flask架站基础篇(六)--mysql-python 安装
- Flask架站基础篇(五)----Jinja2模板
- Flask架站基础篇(七)--SQLAlchemy(1)
- JavaScript 进阶教程(1)--面向对象编程
- Flask架站基础篇(八)--SQLAlchemy(2)
- JavaWeb - EL and JSTL
- Python模拟登陆新版知乎
- 第一天:创建型模式--工厂方法模式
- 第二天:创建型模式--抽象工厂模式