如何解决igraph对象可以具有有向边和无向边吗?
我正在尝试使用igraph / ggraph绘制网络,其中某些边是定向的,而其他边则不是。
我的边缘列表中的一个小例子。在这里,我想将蛋白质位点的边缘表示为无向,而将磷酸化的边缘表示为有向。
df <- data.frame(
stringsAsFactors = FALSE,from = c("RPS6KA3","RPS6KA3","RPS6KA3"),to = c("RPS6KA3_Y529-p","RPS6KA3_S227-p","RPS6KA3_S369-p","RPS6KA3_T577-p","ATF4"),action = c("protein-site","protein-site","phosphorylation")
)
我尝试将无方向的边缘设置为子集并指定它们,但这种方法无效:
library(igraph)
nw <- graph_from_data_frame(df)
E(nw)[E(nw)$action == "protein-site"] <- as.undirected(subgraph.edges(nw,E(nw)[E(nw)$action == "protein-site"] ))
还有其他建议吗? 正如我所说的,我真的只想绘制该图形(使用ggraph)。
谢谢!
解决方法
如果您愿意使用igraph
进行绘制,则可以按照指示导入边列表,然后使用edge.arrow.mode
。
nw <- graph_from_data_frame(df,directed = T)
plot(nw)
plot(nw,edge.arrow.mode = ifelse(E(nw)$action=="protein-site","-",">"))
我不确定ggraph
是否支持类似的内容。我认为可能可以更改箭头的大小,并为无方向的边缘将其设置为0。这无效,因为箭头继承了边缘其余部分的样式。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。