网络图绘制方法有很多,biocGraph也是基于igraph构建的一个更加易用的网络图R包,可以直接用各种统计图表来代替各个网络节点,呈现更多的信息给读者,也为生物学的可视化展示的复杂性带来便捷。
关于igraph的介绍,本文不再赘述,可以参考《利用igraph绘制网络图》学习。
下面将简单介绍biocGraph的用法和示例:
# 安装
if (!requireNamespace("BiocManager", quietly = TRUE))
install.packages("BiocManager")
BiocManager::install("biocGraph")
一个示例:
library(biocGraph)
# 设置随机数,便于重复
set.seed(123)
# 定义网络,可以参考igraph
V <- letters[1:10]
M <- 1:4
g1 <- randomGraph(V, M, 0.2)
counts = matrix(rexp(numNodes(g1) * 4), ncol = 4)
g1layout <- agopen(g1, name = "foo")
# 定义点的呈现方式,此处采用官方文档介绍的饼图展示
makeNodeDrawFunction <- function(x) {
force(x)
function(node, ur, attrs, radConv) {
nc <- getNodeCenter(node)
# 饼图属性设置
pieGlyph(
x,
xpos = getX(nc),
ypos = getY(nc),
labels = NA,
radius = getNodeRW(node),
col = rainbow(4)
)
# 饼图文本内容
text(
getX(nc),
getY(nc),
paste(signif(sum(x), 2)),
cex = 0.5,
col = "white",
font = 1
)
}
}
# 绘制网络图
drawFuns <- apply(counts, 1, makeNodeDrawFunction)
plot(g1layout, drawNode = drawFuns, main = "Example Pie Chart Plot")
参考资料:
1.http://bioconductor.org/packages/release/bioc/html/biocGraph.html