bioinformaticsIMP researchR plot

照葫芦画图之网络/层级图

2022-02-26  本文已影响0人  生信宝库

说在前面

相信大家在日常科研中需要同时分析多个候选基因,从而进一步揭示这些基因(蛋白)之间的联系时,都会用到各种网络图,其中最著名的就是PPI(蛋白互作);同时,对于不同分类标准下,这些单独的个体,又可能会被分到不同组下,这就需要更复杂的网络图来呈现,如河流图;那么,Immugent今天就来分享一些高分文献中常用的,网络图/层级图的唯美画法。

各位看官,请跟往下看...


网络图代码实现

首先我们先来换一个简单又不失唯美的网络图。

library(tidyverse)
library("navdata")
data("phone.call2")
library(networkD3)

head(phone.call2)
nodes <- phone.call2$nodes
edges <- phone.call2$edges

nodes_d3 <- mutate(nodes, id = id - 1)
edges_d3 <- mutate(edges, from = from - 1, to = to - 1)


forceNetwork(
  Links = edges_d3, Nodes = nodes_d3,  
  Source = "from", Target = "to",      # so the network is directed.
  NodeID = "label", Group = "id", Value = "weight", 
  opacity = 1, fontSize = 16, zoom = TRUE
)

图片

当然现在还看不出感觉,是因为这个数据太简单;如果数据量大一点,那么里面会有不一样的感觉。。。。

# Load data
data(MisLinks)
data(MisNodes)

# Plot
forceNetwork(Links = MisLinks, Nodes = MisNodes,
            Source = "source", Target = "target",
            Value = "value", NodeID = "name",
            Group = "group", opacity = 0.8)
图片

有时,我们除了要展示各个基因之间的调控关系,还需要进一步揭示它们之间调控和被调控的关系,这就需要有方向的调控网络,那么下面我们就来绘制一个有调控箭头的网络图。。。

library("visNetwork")

visNetwork(nodes, edges) %>%
  visLayout(randomSeed = 12) 


edges <- mutate(edges, width = 1 + weight/5)
visNetwork(nodes, edges) %>% 
  visIgraphLayout(layout = "layout_with_fr") %>% 
  visEdges(arrows = "middle") %>%
  visLayout(randomSeed = 1234)
图片 图片

层级图代码实现

当我们的数据有不同的分级时,简单的网络图就不够用了,那就需要层级图了。体现不同层级关系的这类图其实有很多种,考虑到每个人的审美不同,小编就分别做一种作为代表供大家自行挑选。

sankeyNetwork(
  Links = edges_d3, Nodes = nodes_d3, 
  Source = "from", Target = "to", 
  NodeID = "label", Value = "weight", 
  fontSize = 16, unit = "Letter(s)")

set.seed(123)
hc <- USArrests %>% sample_n(15) %>%
  scale() %>% dist() %>%
  hclust(method = "complete")

dendroNetwork(hc, fontSize = 15)

radialNetwork(
  as.radialNetwork(hc), fontSize = 15
)

diagonalNetwork(
  as.radialNetwork(hc), fontSize = 15
)

图片 图片 图片 图片

小结

一图胜千言,特别是绘制出一个好的网络图,可以很清晰的展示我们数据各元素之间的关系,而层级图又可以进一步揭露各个分级下数据之间的关联性,希望本次分享能对大家有用。

大家好啦,本次的推文到此就结束啦,欢迎大家继续关注“生信宝库”的照葫芦画图系列推文,我们后续还会分享很多发表的文章中高颜值图表的画法,敬请期待!


上一篇下一篇

猜你喜欢

热点阅读