我一直在使用igraph all_simple_paths命令来输入输入,例如df:
To From
A B
B C
C D
A F
F E
E D
并将其转换为输出,例如df2:
Protein1 Protein2 Protein3 Protein4
Pathway1 A B C D
Pathway2 A E F D
这适用于较小的数据帧,但我需要分析的实际数据帧在Excel中长达4,000行。每当我尝试运行此问题底部的代码时,我的计算机都会崩溃,或者需要很长时间。
我认为这是因为all_simple_paths找到从一个点到另一个点的所有路径(其中一些路径长度超过20步)。我需要的所有分析都是4个步骤。 igraph的all_shortest_paths函数,对于我的数据,只包括三个步骤。
那么,有没有人知道如何限制all_simple_paths中可能的步骤数量?我能找到的唯一答案来自github(https://github.com/igraph/igraph/issues/774),但我不知道如何“明确地创建邻域”。
我用于此的代码(需要xlsx和igraph)是:
- 我下载包含“链接”的文件
links<-read.csv("/users/Desktop/Sortilin.csv", header=TRUE, as.is=T)
Links<-as.data.frame(links)
- 我从“链接”文件
创建节点的数据帧nodes<-as.character(unique(unlist(Links)))
Nodes<-as.data.frame(nodes)
-I制作一个igraph对象,显示从Sortilin到PIMT的步骤。
net<- graph_from_data_frame(d=Links, vertices=Nodes, directed=T)
- 这是撞坏我的电脑的一步!
PathsE<-all_shortest_paths(net, from="Sortilin", to="PIMT")
- 然后我将输出操作到数据帧等
我对R很新(并且编码一般!)所以任何帮助都会受到赞赏!!