title: muma-代谢组学单变量和多变量统计分析R包
date: 2019-02-23 21:38:55
tags: [单变量, 多元统计, R包]
categories: 代谢组学
导读
代谢组学和其它组学数据类似,也是多维的,所以分析起来不是那么清爽。这篇文章的作者开发了一个R软件包muma (metabolomics univariate and multivariate statistical analysis)
,简单实用且高效,并且对于R语言初学者来说偶比较容易上手。这个包的涉及代谢组学数据分析过程如是说:PCA分析和(O)PLS-DA,组间差异检验等常见的分析.
如何运行muma软件
我们先看下如下的流程图
文件准备
文件准备如下图所示
- 第一列为
样品名
,不能有重复 - 第二列是
样品分组
- 第三列以后接的就是
代谢物变量
流程解读
1 | 创建工作文件夹
library(muma) # 加载muma包
setwd("D:\\R\\R-exercise\\muma")
work.dir(dir.name="WorkDir") #创建名为WorkDir的文件夹用于存放后期分析的结果
2 | 开始分析
2.1 | muma
分析的第一步从函数explore.data()
开始,这个函数的主要功能就是数据的预处理(pre-processing)和数据探索。其基本用法如下:
> explore.data(file="YourFile.csv", scaling="ScalingType", scal=TRUE, normalize=TRUE, imputation=FALSE, imput="ImputType")
2.2 | 这个函数执行的结果是可以产生三个新的文件夹
- "Group",这个文件夹存放的是每个组的样本数据,因为刚开始输入的表中
class
列指定了分组; - "PCA_Data_scalingused",这个文件存放的是主成分分析得到的score值和loading值矩阵,以及与PCA-相关的图表,注意:这个文件夹的名称根据你用的scaling的方法不同而不同
- "Preprocessing_Data_scalingused"这个文件夹存放的是存放的是预处理前的所有的文件和数据集
2.3 | 实例运行
explore.data(file = "MetaBc.csv", scaling = "pareto", scal = TRUE,
imputation = TRUE, imput = "mean")
- 这一步做了如下这些事:
1)读取了数据表,以及将可能存在的负值转为数值0
。
2)我们可能读取的数据表是含有缺失值的,该函数的imputation
参数值默认为FALSE
,但是如果设置为TRUE
就可以通过指定填充的方法,这里有四种填充的方式:a. 平均值,一般就是用这个变量在所有个体中的平均值作为缺失值的填充值;b. 最小值;c. 最小值的一半;d. 用数值0
作为填充值
3)另外,如果某个变量在大于80%的个体中都是缺失的话,那么默认会把这个变量给删除
4)接下来就是对数据进行标度化处理,这里也介绍了常见的5种方法:a. pareto scaling(柏拉图标准化,与标准差标准化类似,但是区别就是除的是标准差的平方根);b. auto scaling(又叫单位方差标准化,标准差标准化,Z-core标准化等,具体实施方法就是变量减去平均值后再除以标准差,得到均值为0,标准差为1的数据结构);c. vast scaling(在auto scaling的基础上乘以平均值和标准差的比值);d. range scaling(就是最大值最小值标准化,每个变量减去平均值后除以最大值减去最小值的差);e. median scaling(和range scaling类似,只不过不是减平均值,而是减去中位数)
5)最后一部分是该函数还进行了PCA分析。默认产生包含1个主成分的PCA图和scree图
3 | 主成分分析
前面我们已经选择了数据的标准化方法,并且发现前面两个组成分就可以解释数据大部分的差异,因此选择前两个主成分作图
Plot.pca(pcx=1, pcy=2, scaling="pareto", test.outlier=TRUE)
注:由于个人认为这个软件做出的图并不美观,因此后续只展示数据分析代码及部分原理
4 | 单变量分析
muma包提供了几种单变量统计分析方法,如进行数据的正态性检验,组间两两比较的方法Welch's t Test和Wilcoxon Mann-Whitney test,并且会产生相应的文件夹。
univariate(file="MetaBc.csv", imputation=TRUE, imput="mean",
normalize=TRUE, multi.test=TRUE, plot.volcano=TRUE)
4.1 | 除了组间两两比较的结果(会采用多重检验对P值进行校正),还提供了组间倍数和火山图
的结果,以及箱线图
的结果。
5 | 合并单变量和多元统计分析结果
这里通过函数
Plot.pca.pvalues
不仅可以将PCA的loading图展示,还可以突出显示至少在两组组间差异显著的变量。
Plot.pca.pvalues(pcx=1, pcy=2, scaling="pareto")
6 | (正交)偏最小二乘判别分析((O)PLS-DA)
前面PCA分析是非监督多元统计分析,但是PCA的一个缺点就是当组间差异远大于组内差异的时候才会得到比较理想的结果,如果没有目标导向性的实验设计,那么可能影响的因素就会特别多,此时可以采用
有监督多元统计分析模型
PLS-DA和OPLS-DA方法。muma包也嵌入了这两种模型分析函数
6.1 | PLS-DA
plsda(scaling="pareto") # 这里不需要设定其它参数
Plot.plsda(pcx=1, pcy=2, scaling="pareto")
6.2 | OPLS-DA
oplsda(scaling="pareto") # 这里不需要设定其它参数
Plot.oplsda(pcx=1, pcy=2, scaling="pareto")
结语
现在关于代谢组学数据分析的软件(包括在线的和本地安装的,不同编程语言的)层出不穷,但是万变不离其宗。还是要根据自己的实验目的来选择最契合的统计方法。
参考
[1] muma, An R Package for Metabolomics Univariate and Multivariate
Statistical Analysis