学做NAR图表:ggraph做网络图

最近在NAR上看到一篇文章:

image.png

原文网络图如下:

image.png

我们借此机会,通过ggraph作图解析相关参数。详细注释代码和参数已上传QQ群文件!我做的图如下,有一点问题,但不影响我们对这个函数的解析。

image.png

加载R包和节点数据,可以是STRING分析得到的网络文件,也可以是miRNA对应靶基因文件,再或者可以是转录因子对应的调控文件等!

setwd("D:/KS项目/公众号文章/网络节点图")
df <- read.csv("network.csv", header = T)
colnames(df) <- c("ID", "path", "gene", "Pval")
library(ggraph)
library(tidygraph)

设置节点和边缘。

paths <- c("Node1", "Node2", "Node3")
nodelist <- list()
for (i in 1:length(paths)){
  node <- subset(df, path == paths[i])
  
  nodes <- data.frame(name = unique(union(node$path, node$gene)))
  nodes$values <- c(sum(node$Pval), node$Pval)
  
  nodelist[[i]] <- nodes
}



nodes <- rbind(nodelist[[1]],nodelist[[2]],nodelist[[3]])
nodes$cluster <- c(rep("Node1",1),rep("gene",12),
                   rep("Node2",1),rep("gene",11),
                   rep("Node3",1),rep("gene",10))



edges <- df[c("path","gene","Pval")]
edges$class <- edges$path

构建作图文件。

layout_cir <- tbl_graph(nodes = nodes, edges = edges)

出图:

ggraph(layout_cir,layout='linear',circular = TRUE) +
  geom_node_point(aes(size=values,colour = cluster))+
  geom_node_text(aes(x = 1.03 * x,
                     y = 1.03 * y,
                     label=name,
                     color=cluster,
                     angle = -((-node_angle(x, y) + 90) %% 180) + 90),
                 hjust='outward') +
  geom_edge_arc(aes(colour=class))+
  theme_void()+
  theme(legend.position = "none")+
  scale_colour_manual(values =c('#407972',
                                '#961E28',
                                '#D46724',
                                '#0f8096'))+
  scale_edge_colour_manual(values = c('#961E28',
                                      '#D46724',
                                      '#0f8096'))+
  scale_size_continuous(range = c(2,8))+
  coord_cartesian(xlim=c(-1.5,1.5),ylim = c(-1.5,1.5))

image.png

这样就完成了,也是美美的。如果觉得我的分享对你有用、有帮助的话,点个赞、分享一下再走呗!!!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值