协惯量分析(CoIA)及其在R中的实现
CoIA概述
CoIA过程可概括如下。
分别在变量矩阵X和Y(X、Y数据集中的对象需一致)的多维空间中,分解总惯量获得一组正交轴(特征向量),它们各自代表了正交方向上的最大化惯量方向。总惯量是数据变异程度的整体度量,如果通过PCA执行特征向量的分解,则过程中的总惯量等于总方差。
协惯量则是对X和Y空间中对象共同结构的全局度量,当X和Y中的变量具有较高的某种相关程度时,协惯量高,当X和Y中的变量趋于独立时,协惯量低。CoIA的目的是确定X和Y空间中具有最大协惯量的两组特征向量,并通过它们计算获得一组协惯量轴,代表正交方向上最大化协惯量的方向,各轴承载的协惯量之和即总协惯量。
上述X和Y在特征分解过程中是各自独立的过程。如果将上述两步统一起来,则也可以这样理解:CoIA中计算了X和Y内变量交叉的协方差矩阵,协方差矩阵的平方和即为总协惯量,协惯量轴则代表了对协方差矩阵的特征分解。
最后将X和Y中的原始对象和变量投影至协惯量轴中,据此判断它们之间的关系。并可结合置换检验,确定CoIA在评估X和Y结构相似程度的有效性。
在分解X和Y总惯量的过程中,根据实际情况存在多种备选方法,例如PCA、CA等,并且允许使用不同的方法分别对各数据集分析。因此CoIA可对应多种融合类型,例如PCA-PCA融合的CoIA、CA-PCA融合的CoIA等。除常规的定量数据外,还可通过与多重对应分析(MCA)、模糊主成分分析(FPCA)等的结合,实现对定性数据、模糊数据等的分析,充分体现了CoIA的灵活性。
但是CoIA要求在分别对X和Y执行特征分解后,行的权重必须相等才可将两个分离的排序过程融合在一起,因此可能限制了基于加权回归的CA在CoIA中的应用。
常见的约束排序如冗余分析(RDA)、典范对应分析(CCA)涉及了多元回归过程,对于解释变量而言,如果不相关(即正交)变量很少,则多元回归步骤近似于单变量回归的扩展,此时RDA、CCA都是相对有效的方法。但若解释变量较多,它们通常之间会存在更多的相关性,此时RDA和CCA将变得不稳定。因此对于RDA、CCA,通常要求解释变量的数量一般不能很多,例如在物种-环境的约束排序分析中,尽可能减少环境变量(解释变量)的数量以提升约束模型精度。相比之下,CoIA与偏最小二乘回归相关联,在数据维数随变量数量迅速增加时通常表现较好,因此对于上述这类物种-环境关系的确立,CoIA无需考虑对环境变量数量的限制,是经典回归的可靠替代方法。尽管如此,CoIA由于其属于对称分析范畴,分析的两数据集之间无解释变量与响应变量之分,二者无解释与被解释关系。如果期望使用环境对物种建模(即变量间存在因果关系),RDA、CCA等仍是首选,并通过变量选择去除不重要且存在强相关的解释变量。
在另一常见的对称分析类型典范相关分析(CCorA)中,通常要求变量的数量少于对象的数量,且数据集需是服从多元正态分布的定量变量。与CCorA相比,CoIA不存在这些限制,故其适用范围更广。
总体来讲,CoIA广泛应用于多元分析。在生物学领域的多组学研究中,经常可以见到CoIA。
例如在微生物组研究中,除了上述提到的物种-环境的交互外(微生物群落),其它方面,例如使用CoIA确定两组环境变量的相关性或者物种间的共变(微生物群落),或者物种组成(如16S、18S、ITS测序)与功能(如宏基因组)的关系,以及群落功能的一致性(如宏基因组、宏转录组、代谢组)等。再例如转录组中,使用CoIA分析微阵列与RNA-seq的基因表达谱一致性等。
R语言执行CoIA
本篇简介R语言执行CoIA的方法。
在R中,可用于执行CoIA的方法有很多,例如ade4包的coinertia(),made4包的cia()等。
示例数据集概要
made4的内置数据集“NCI60”为60种人类肿瘤细胞系的基因表达谱,这些细胞系来源于白血病、黑色素瘤、肺癌、结肠癌、中枢神经癌、卵巢癌、肾癌、乳腺癌和前列腺癌等。“NCI60”是一个列表结构,包含了基因表达矩阵“Affy”和“Ross”,分别为使用Affymetrix和spotted cDNA微阵列技术对这60种细胞系进行表达谱分析的子集,两组微阵列涉及的样本(对象)相同,但基因(变量)不同,且两组数据集中的基因表达谱已经过标准化处理。
#bioconductor 安装 made4 包#BiocManager::install('made4')
#加载 made4 包,made4 以 ade4 为基础(调用 ade4 的函数),所以它也会自动加载 ade4 包
library(made4)
#数据集
#详情 http://www.bioinf.ucd.ie/people/aedin/R/pages/made4/html/NCI60.html
data(NCI60)
names(NCI60)
head(NCI60$Ross[1:6]) #spotted cDNA 微阵列
head(NCI60$Affy[1:6]) #Affymetrix 微阵列
head(NCI60$classes) #细胞系的癌细胞类型
然后期望评估两个微阵列中的基因表达特征是否相似。由于两个微阵列涉及的基因(变量)不同,故无法根据共有基因的表达水平直接去观测,此时CoIA是个较好的替代方案。
R包ade4的CoIA
抱歉,这里加载made4包,只是单纯地想使用它的数据集……至于为什么不继续使用made4中的方法执行CoIA,个人感觉它的处理效果不如ade4灵活;然后ade4中自带的数据集,也感觉不好使……
##ade4 执行 CoIA#这里对于两组基因表达谱,可执行 PCA-PCA 融合的 CoIA
#首先执行数据集1(spotted cDNA 微阵列矩阵)的 PCA,详情 ?dudi.pca
dudi1 <- dudi.pca(NCI60$Ross, scale = FALSE, scan = FALSE, nf = 4)
#其次执行数据集2(Affymetrix 微阵列矩阵)的 PCA
dudi2 <- dudi.pca(NCI60$Affy, scale = FALSE, scan = FALSE, nf = 4)
#查看两步 PCA 的总方差由各轴的承载比,评估前几轴的代表性
summary(dudi1)
summary(dudi2)
#查看两步排序的行权重是否一致,为 TRUE 时才可用于融合
all.equal(dudi1$lw, dudi2$lw)
首先对两组数据集分别执行独立的PCA分析(特征分解),dudi.pca()函数中的scale参数用于标准化数据,这里由于两组数据集已经是标准化后的基因表达谱矩阵,所以scale=FALSE;nf参数可用于截取结果中的排序轴数量以便后续观测和分析数据(不影响计算过程),这里保留前4轴。
以下是两个PCA的结果概要。
两个PCA的前几轴贡献度可观,且两个PCA结果的行权重一致,满足CoIA的前提,然后将两个PCA结果提交coinertia()执行CoIA,结果中同样保留前4轴(这里的轴数选择要小于等于两个PCA中的最小轴数,同样地,轴数选择仅为方便观测数据,不影响计算结果)。
#PCA-PCA 融合的 CoIA,详情 ?coinertiacoin1 <- coinertia(dudi1, dudi2, scan = FALSE, nf = 2)
coin1
summary(coin1)
以下是CoIA融合两个PCA后的结果概要。
通过CoIA轴的协惯量承载比,评估CoIA轴的代表性;通过比较投影后惯量与原始惯量的比例,评估CoIA轴表征先前两组PCA轴的效率;通过RV值,评估两数据集的关联程度;等等。
通过随机置换,计算每次置换数据后的RV值(RV*),RV*大于初始观测RV值的概率即为p值,越小表明CoIA评估两组数据集结构相似程度的结果越可信。
#置换检验确定 CoIA 轴的显著性,显示显著rand_test <- randtest(coin1, nrepet = 999)
rand_test
plot(rand_test)
以及对于一些结果的提取示例。
##提取主要结果,以融合后的结果为例summary_coin1 <- summary(coin1)
names(coin1)
names(summary_coin1)
#各轴特征值
coin1$eig
#各轴特征值贡献度
coin1$eig / sum(coin1$eig)
#dudi1 对象坐标
coin1$co
#dudi2 对象坐标
coin1$li
#CoIA 分析协惯量矩阵特征根的分解情况
summary_coin1$EigDec
综上可知,CoIA前2轴具有较好的代表性,表明两个数据集(两个微阵列的基因表达)的大部分共同结构都可以通过CoIA的前两轴呈现出来。并且两个数据集之间具有显著的相关性,尽管相关程度不是特别高。
最后通过排序图观测数据集之间的关系。
#排序图,ade4 打包好的作图样式plot(coin1)
通过左上两圈图,可知对于两组数据集,PCA的前两轴(Ax1、Ax2)与CoIA前两轴(背景圆圈的正交线)的重合性相对可观,表明CoIA能有效反映先前两个PCA中的结构。
通过左下的特征根柱形图,可知CoIA前两轴承载了绝大部分的协惯量,表明CoIA前两轴具有很好的代表性。
右上排序图展示了对象在CoIA前两轴中的排序位置,其中箭头起点代表了第1个数据集(本示例为spotted cDNA微阵列矩阵)对象的投影,箭头顶点代表了第2个数据集(本示例为Affymetrix微阵列矩阵)对象的投影,箭头越短表明两数据集的一致性越高。
右下方的图反映了两个数据集中的变量对排序空间的贡献,相关性搞的变量箭头方向趋于一致,箭头长度代表了变量对排序的贡献程度。
参考资料