来复现一幅基因互作网络图,这种图一般使用cytoscape可以完成。这里我们使用ggraph简单复现一下。
图片
(图片来源:https://sourceforge.net/projects/rarevator/)数据准备:需要两个文件,一个是互作结果,就是基因之间的关系。还有一个文件是基因的分组信息等等,两个文件合并构建ggraph结构文件。
setwd("D:/KS项目/公众号文章/互作网络图")
gene_info <- read.csv("gene_group.csv", header = T)
interaction <- read.csv("string_interactions.csv", header = T)
library(igraph)
library(ggraph)
library(tidyverse)
library(tidygraph)
graph <- as_tbl_graph(interaction) %>%
mutate(interaction = centrality_degree(mode='out'),
group=gene_info$group)
作图很简单,标记分组,并将节点大小用互作数目表示。
ggraph(graph, layout = 'kk') +
geom_edge_fan(color='grey60',
show.legend=T) +
geom_node_point(aes(size = interaction,
fill=factor(group)),
shape=21)+
geom_node_text(aes(filter= interaction>5,
label=name),
size=2.5,
repel = T)+
theme_graph()
图片
连线粗细也可以用互作强度来表示:
ggraph(graph, layout = 'kk') +
geom_edge_fan(color='grey60',
show.legend=T,
aes(edge_width=automated_textmining)) +
geom_node_point(aes(size = interaction,
fill=factor(group)),
shape=21)+
geom_node_text(aes(filter= interaction>5,
label=name),
size=2.5,
repel = T)+
scale_edge_width(range=c(0,1))
图片
这样就完成了,其他更多的分组及设置可参照上面添加,当然了,ggraph还有很多的布局展示,包括我们之前说过的circle,感兴趣可自行探索!
更多精彩请至我的公众号---KS科研分享与服务
网友评论