如何实现新的节点形状

How to implement new node shapes

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

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

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

我自己解决了这个问题。答案是使用“RCy3”R 包。我在 Cytoscape 中对我的网络进行了布局,然后通过 RCy3 连接到 R 中的 Cytoscape。这个包有函数 getNodePosition,它将 return 当前网络在 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")

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