Phenotype : 大规模表型数据处理工具

2020-08-11 10:59:56 浏览数 (3)

表型数据的处理,一直是困扰许多同学的问题。面对大规模的表型数据,如果不会编程,纯用Excel的话,往往会消耗大量精力。

为了解决大规模表型数据难以处理的问题,小编开发了R包"Phenotype",用于剔除表型中的异常值、计算统计指标和遗传力、绘制直方图和进行BLUP分析。

安装R包

该包已在CRAN发布,可以直接安装。

代码语言:javascript复制
install.packages("Phenotype")

"Phenotype"一共包含4个函数,分为"outlier"、"stat"、"histplot"和"blup"。

outlier:利用boxplot剔除数据中的异常值

在之前的推送中,小编教过大家使用boxplot剔除异常值(利用箱线图巧剔异常值)。基于上述原理,开发了outlier函数,使用方法如下:

代码语言:javascript复制
## 加载R包
library("Phenotype")
## 导入数据
df <- read.table("brix.txt", header = T,sep = "t")

outlier包含8个参数。sample/year/loc/rep/phe这5个参数用来设置输入文件的列名,fold指IQR前的倍数,mode设置异常值剔除模式,"normal"表示按照样本剔除异常值,"blup"表示根据环境型和样本剔除异常值。

代码语言:javascript复制
## 按照样本剔除异常值
inlier <- outlier(df, sample = "Line", loc = "Loc", rep = "Rep", year = "Year", phe = "Brix", fold = 1.5, mode = "normal")
代码语言:javascript复制
## 按照环境型和样本剔除异常值
inlier <- outlier(df, sample = "Line", loc = "Loc", rep = "Rep", year = "Year", phe = "Brix", fold = 1.5, mode = "blup")

stat:计算表型数值的统计指标

该函数可以用来计算每个材料的平均值、中位数、标准差、标准偏差和样本数量。

代码语言:javascript复制
## 计算统计指标
stat_out <- stat(x = inlier, sample = "Sample", phe = "inlier")

histplot:绘制正态分布直方图并进行正态分布检验

该函数用来绘制直方图及进行正态分布检验,含有非常多的参数。

代码语言:javascript复制
## 导入数据
wheatph <- read.table("wheatph.txt", header = T,sep = "t")
## 剔除异常值
inlier <- outlier(wheatph, sample = "Line", loc = "Env", rep = "Rep", phe = "DS", mode = "blup")
## 计算统计指标
stat_out <- stat(x = inlier, sample = "Sample", phe = "inlier")
## 绘制直方图
histplot(x = stat_out$mean,xlab = "Plant height",ylab = "Number")

图中右上角的P值是Shapiro-Wilk normality test结果,P值小于0.05代表数据不符合正态分布。

blup:计算多年多点表型数据的BLUP值

最佳线性无偏预测(Best Linear Unbiased Prediction,简称BLUP)可以对多环境数据进行整合,去除环境效应,得到个体稳定遗传的表型。该函数可以自动完成异常值剔除、遗传力计算和BLUP分析,共包含7个参数。sample/year/loc/rep/phe这5个参数用来设置输入文件的列名,fold指IQR前的倍数。

代码语言:javascript复制
## 进行BLUP分析
blup_out <- blup(df, sample = "Line", loc = "Loc", rep = "Rep", year = "Year", phe = "Brix", fold = 1.5)
Heritability = 0.82019463339184

执行完毕后,我们可以得到该表型遗传力为0.82及每个样本的平均值、BLUP值及校正后的平均值(平均值 BLUP值)。

写在最后

包中所有函数的具体参数,均可通过在R语言中输入?函数名来查看。

代码语言:javascript复制
## 查看outlier函数的参数
?outlier

这是"Phenotype"的第一个公开版本,由于本人水平有限,包中难免有些bug存在。如大家在使用过程中遇到问题,请随时与我联系。

0 人点赞