如何从RNA-Seq(环化输入)创建基因 - 基因相互作用的邻接矩阵

问题描述 投票:0回答:1

我正在分析肿瘤微环境,我想展示我发现的亚群之间的相互作用。我有一个受体和配体列表,例如,我想表明,群体A表达配体1,群体C表达受体1,因此这两个群体之间可能通过配体 - 受体1的表达发生相互作用。

我一直在尝试使用circlize通过制作chordDiagram来可视化这些交互,但它需要一个邻接矩阵作为输入,我不明白如何创建矩阵。邻接矩阵应该显示我的矩阵中任何两个基因之间关系的强度。我有6个独特的细胞群,可以表达我感兴趣的任何485配体/受体,目的是通过配体和受体显示这些群体之间的相互作用。

我找到了一个在RStudio中使用的工具,称为BUS- gene.similarity:计算基因 - 基因相互作用的邻接矩阵。

也许我只是错误地使用BUS,但它说:对于具有M个基因​​和N个实验的基因表达数据,邻接矩阵的大小为MxM。 MxM大小的邻接矩阵,行和列都代表基因。行i和列j中的元素表示基因i和基因j之间的相似性。

所以,我制作了一个矩阵,每个列都是一个亚群,每一行都是一个配体/受体,我希望与之相互作用。单元格具有表达式值,如下所示:

> head(Test)
            A          B           C          D           E           F
Adam10 440.755990 669.875468 748.7313995 702.991422 1872.033343 2515.074366
Adam17 369.813134 292.625603 363.0301707 434.905968 1183.152694 1375.424034
Agt     12.676036  28.269671   9.2428034  19.920561  121.587010  168.116735
Angpt1  22.807415  42.350205  25.5464603  16.010813  194.620550   99.383567
Angpt2  92.492760 186.167844 819.3679836 852.666499  669.642441 1608.748788
Angpt4   3.327743   0.693985   0.8292746   1.112826    5.463647    5.826927

A-F是我的人口。然后我把这个矩阵传递给BUS:

res<-gene.similarity(Test,measure="corr",net.trim="none")

Warning message:
In cor(mat) : the standard deviation is zero

但是应该是我的邻接矩阵的输出文件充满了NA:

         Adam10 Adam17 
Adam10      1     NA
Adam17     NA     1       

我想也许我的基质太复杂了,所以我只比较了2个细胞群与我的配体/受体,但我得到了完全相同的输出。

我期待得到类似的东西:

         A:Adam10 A:Adam17 
C:Adam10     6       1 
E:Adam17     2      10 

但是,即使res对象给了我数字而不是NA,它在基因之间建立关系时不会保持人口的身份,因此它仍然不会产生我预期的输出。

我没有必要使用BUS来制作矩阵,所以我不一定需要帮助排除代码故障,我只需要一些方法来建立一个邻接矩阵。

我之前从未使用过circlize或Circos,所以如果我的问题很愚蠢,我会道歉。

r data-visualization adjacency-matrix chord-diagram circlize
1个回答
0
投票

好像你需要稍微改变矩阵。 你可以创建一个具有大小(nrow(Test)x ncol(Text))x(nrow(Test)x ncol(Text))的新矩阵,所以在你给出的例子中,新矩阵将是36x36,并且是colnames和rownames将是相同的A_Adam10,A_Adam17,...,A_Angpt4,B_Adam10,...,F_Angpt4。 在循环的帮助下,您可以将每对的相似度加载到新矩阵中,现在您可以绘制矩阵。它有点复杂,运行循环也需要一段时间,但它很直观。 我很欢迎你来检查我的github repo,因为我不久前有类似的问题,我在那里发布了详细的代码。我希望这能帮到您

© www.soinside.com 2019 - 2024. All rights reserved.