[关闭]
@agpwhy 2022-02-07T08:36:56.000000Z 字数 1855 阅读 246

用R做网络图:王胖的生信笔记第36期

其实最常见的网络图做法,是用cytoscape。这里大家可以自己找可靠的教程,b站上也有,直接搜就可以。我觉得讲的蛮清楚的,使用也相对傻瓜。

但有时候我们做的数据就是在R里面的,不想搞这么一套来回的折腾,直接在R里面做行不行呢?

答案当然是可以的。而且还能够直接生成网页自己玩儿。

2

【动图不多放了,大家知道这是动态的就好】

使用Visnetwork

https://datastorm-open.github.io/visNetwork/

这是个巴黎理工大学一个团队做的,https://www.datastorm.fr/,我觉得还是R里一个很酷的工具。

其实和cytoscape一样,你需要node(节点)和edge(连接节点的线)。

  1. library(visNetwork)
  2. nodes <- data.frame(id = 1:3)
  3. edges <- data.frame(from = c(1,2), to = c(1,3))
  4. visNetwork(nodes, edges, width = "100%")

这就是刚刚一个最简单的例子。

其实这个工具很强大。我这里就不露怯了,大家可以自行探索。

结合自己的数据-比如转录调控网络

比如大家拿一堆基因算出来的调控因子和motif,是有怎样的网络关系呢?

这里就有个例子:https://bioconductor.riken.jp/packages/3.9/bioc/vignettes/RcisTarget/inst/doc/RcisTarget.html#building_a_network

拿的是一些缺氧相关的基因最后算出来的motif和相关转录因子。(具体怎么算,可以之后写一期)

前面算得有问题可以私信发我邮箱,我发你们练习数据。

image-20220207154341353当你手上有这样motif和转录因子的对应关系,然后就可以一样做图了。

  1. library(visNetwork)
  2. motifs <- unique(as.character(edges[,1]))
  3. genes <- unique(as.character(edges[,2]))
  4. nodes <- data.frame(id=c(motifs, genes),
  5. label=c(motifs, genes),
  6. title=c(motifs, genes),
  7. shape=c(rep("diamond", length(motifs)), rep("elypse", length(genes))),
  8. color=c(rep("purple", length(motifs)), rep("skyblue", length(genes))))

这里的id是不能相同的,label是标签,title就是展示在图上的。后面可以按照自己需求制定形状还有颜色。其实还能加上别的。

  1. nodesnew <- data.frame(id=c(motifsnew, genesnew),
  2. label=c(motifsnew, genesnew),
  3. title=c(motifsnew, genesnew), # tooltip
  4. font.size=c(rep(60,8), rep(15, 365)),
  5. group=c(rep("TF", 8), rep("gene", 365)),
  6. shape=c(rep("diamond", length(motifsnew)), rep("elypse", length(genesnew))),
  7. color=c(rep("purple", length(motifsnew)), rep("skyblue", length(genesnew))))
  8. visNetwork(nodesnew, edgesnew,height = "1000px", width = "100px") %>%
  9. visOptions(highlightNearest = TRUE,nodesIdSelection = TRUE,manipulation = T) %>%
  10. visGroups(groupname = "gene", color = "skyblue") %>%
  11. visGroups(groupname = "TF", color = "purple",font.size=50,size = 50)

最后就能输出网页了。4

其实单细胞测序的分析,拿SCENIC做出来的东西,也一样能做成网络图。有兴趣的也可以讲。比如《Toward Minimal Residual Disease-Directed Therapy in Melanoma》这篇文章的Figur 6D的部分,就可以一样做。有需要的在写一期。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注