美文网首页
ggraph做环形网络互作图---一个简单的例子

ggraph做环形网络互作图---一个简单的例子

作者: KS科研分享与服务 | 来源:发表于2023-07-24 09:46 被阅读0次

    这里我们以基因互作演示一个简单的网络图示意。这个图的特点是。第一:基因按照分组展示。第二:上下调基因也区分展示出来。其实,就是一个非常简单的网络图,很基础,主要是为了熟悉下网络的设置等等。首先准备网络数据,我这里是 STRING网络分析的结果。然后设置节点数据。最后构建ggraph作图数据。ggraph作图重要的是构建好作图数据。组图就很简单了。

    
    setwd("D:/KS项目/公众号文章/一个简单的网络图")
    
    library(ggraph)
    library(tidygraph)
    library(ggnewscale)
    df <- read.csv('net.csv', header = T)#这是一个基因互作关系网络文件
    #接下来,为了让我们的网络图更加丰富,我们人为对这些基因进行分组等等
    #事实上,如果是你有用的数据,可以提前整理好文件读入
    from = unique(df$from)
    to = unique(df$to)
    genes <- data.frame(unique(c(from, to)))
    colnames(genes) <- 'gene'
    genes$pathway <- c(rep("MAPK",6), rep("Wnt",5), rep("JAK",6),rep("Toll",5))#这里的分组是虚构的数据
    genes$regulation <- c(sample(c(rep("up",12), rep("down",10))))#随机分下上下调
    
    data <- tbl_graph(nodes = genes, edges = df)
    

    绘图。ggraph是ggplot2的拓展包,所以作图设置和ggplot类似。不同组的基因按照不同的颜色区别,上下调基因按照节点边框颜色区分。

    
    #绘图,ggraph是ggplot的拓展包,所以当你构建好ggraph作图数据后,剩下的和你在利用ggplot2作图没什么分别
    ggraph(data,layout='linear',circular = TRUE) +
      geom_node_point(aes(size=8,
                          fill = pathway),shape=21) +
      scale_fill_manual(values = c('#4CA85F','orange','#4A90BD','#C387B8'))+
      geom_node_point(aes(size=8,
                          color = regulation),shape=21,stroke=2)+
      scale_color_manual(values = c('black','#B11E23'))+
      scale_size_continuous(range = c(30, 1))+
      geom_node_text(aes(x = x*1.15, 
                         y=y*1.15,
                         label=gene,
                         angle=-((-node_angle(x, y) + 90) %% 180) + 90),
                     size=3,
                     hjust='outward')+
      coord_cartesian(xlim=c(-1.5,1.5),ylim = c(-1.5,1.5))+
      geom_edge_arc(aes(width=score),color="lightblue")+
      scale_edge_width_continuous(range = c(0.5,1))+
      theme_graph()
    
    image.png

    觉得分享有用的点个赞、分享下再走呗!

    相关文章

      网友评论

          本文标题:ggraph做环形网络互作图---一个简单的例子

          本文链接:https://www.haomeiwen.com/subject/ljiqpdtx.html