我想在 R 中执行三向主成分分析,尽管我找到了一些解释它如何工作以及如何解释结果的文章,但我在网上找不到任何有用的指南来说明如何在 R 中进行分析。
我的数据由 230 个样本、250,000 个变量和 50 个注释组成。通常人们只对以下类型的数据使用一个注释来做一个标准的 PCA:
标准数据:
var1 var2 var3 var4
Sample1 1/1 0/0 1/1 1/0
Sample2 1/0 1/1 1/1 1/0
Sample3 0/0 1/1 1/1 1/1
Sample4 0/0 0/0 1/1 0/0
Sample5 1/0 1/0 0/0 1/1
但是,我想将所有注释信息实现到分析中,以便我将所有 50 个矩阵组合用于分析。以这种方式,注释的组合可以比单个注释单独解释更多样本之间的方差,例如注释1和4一起解释比单独注释1更多的方差。
注释1:
var1 var2 var3 var4
Sample1 1/1 0/0 1/1 1/0
Sample2 1/0 1/1 1/1 1/0
Sample3 0/0 1/1 1/1 1/1
Sample4 0/0 0/0 1/1 0/0
Sample5 1/0 1/0 0/0 1/1
注释2:
var1 var2 var3 var4
Sample1 missense none STOP synonymous
Sample2 missense missense STOP synonymous
Sample3 none missense STOP synonymous
Sample4 none none STOP none
Sample5 missense missense none synonymous
注释3:
var1 var2 var3 var4
Sample1 0.30 0.00 0.01 0.04
Sample2 0.30 -0.24 0.01 0.04
Sample3 0.00 -0.24 0.01 0.04
Sample4 0.00 -0.24 0.01 0.00
Sample5 0.30 -0.24 0.00 0.04
注释4:
var1 var2 var3 var4
Sample1 CTCF NONE NONE MAX
Sample2 CTCF NONE NONE MAX
Sample3 NONE NONE NONE MAX
Sample4 NONE NONE NONE NONE
Sample5 CTCF NONE NONE MAX
根据我的发现,可以执行 Tucker 3-way PCA 的三个软件包:ThreeWay、PTAk 和 rTensor。我曾尝试运行 ThreeWay,但他们使用的数据结构似乎很难使用。也许我可以做到这一点,但 ThreeWay 文章中的示例也产生了错误,所以我更喜欢另一个包:
三路数据结构:
var1_anno1 var1_anno2 var1_anno3 var2_anno1 var2_anno2
Sample1 1/1 missense 0.30 0/0 missense
Sample2 1/0 missense 0.30 1/1 missense
Sample3 0/0 none 0.30 1/1 missense
Sample4 0/0 none 0.30 0/0 none
Sample5 1/0 missense 0.30 1/0 missense
PTAk 包需要:“一个 k 阶张量(作为一个数组),如果使用非身份度量 X 是一个列表,其中数据作为数组并满足一个度量列表”
我不清楚这意味着什么。我试图研究如何生成张量的张量包,但他们的示例非常复杂,因为他们对各种张量进行了大量的乘法运算,而不是解释如何从数据中创建张量的基础知识。
对于这种方法的弱点以及如何创建张量以及如何使用任何软件包分析它们,我将不胜感激。
谢谢