如何实现新的节点形状

问题描述

我正在 Cytoscape 中绘制一个网络,添加几个模仿 R 中 pch 形状的节点形状会很方便,以便我的网络与出版物的所有其他图形相匹配。

R 中的网络布局通常看起来很糟糕,但是我可以将节点格式化为与其他图中的节点非常相似。另一方面,Cytoscape 的布局要好得多,但节点形状和样式有限。

是否可以在 Cytoscape 中实现其他形状(例如通过插件),或者,我可以从 Cytoscape 导出网络布局并在 R 中使用它吗?谢谢!

解决方法

我自己解决了这个问题。答案是使用“RCy3”R 包。我在 Cytoscape 中对我的网络进行了布局,然后通过 RCy3 连接到 R 中的 Cytoscape。该包具有 getNodePosition 函数,该函数将返回 Cytoscape 中当前网络的节点位置。

以下代码将获得此布局(Cytoscape 必须正在运行并打开所需的网络):

cytoscapePing()
mygraph<-createIgraphFromNetwork()
mylayout<-getNodePosition()
mylayout$x_location<-as.numeric(as.character(mylayout$x_location))
mylayout$y_location<-as.numeric(as.character(mylayout$y_location))
colnames(mylayout)<-c("x","y")

然后可以使用 R 中的 ggraph 或其他网络绘图包绘制它,使用 R pch 符号作为节点形状。