1. はじめに
mully
は多層のネットワークグラフを描けるパッケージです。
2. インストール
CRANからインストールできます。
install.packages("mully")
3. つかってみる
まず、グラフを作っていきます。
レイヤー、ノード、エッジを作ります。
library(mully) g <- mully("MyFirstGraph",direct = F) g <- addLayer(g, c("Gene", "Drug", "Drug", "Disease")) g <- addNode(g,"d1","disease",attributes=list(type="t1")) g <- addNode(g,"d2","disease",attributes=list(type="t1")) g <- addNode(g,"d3","disease",attributes=list(type="t1")) g <- addNode(g,"dr1","drug",attributes=list(effect="strong")) g <- addNode(g,"dr2","drug",attributes=list(effect="strong")) g <- addNode(g,"dr3","drug",attributes=list(effect="moderate")) g <- addNode(g,"g1","gene",attributes=list(desc="AF")) g <- addNode(g,"g2","gene",attributes=list(desc="BE")) g <- addEdge(g,"dr1","d2",list(name="treats")) g <- addEdge(g,"dr1","d2",list(name="extraEdge")) g <- addEdge(g,"d2","g1",list(name="targets")) g <- addEdge(g,"g2","dr3",list(name="mutates and causes")) g <- addEdge(g,"dr3","d3",list(name="treats")) removeEdge(g,"d2","dr1",multi=T)
もう一つグラフを作ります。
g1 <- mully() g1 <- addLayer(g1,c("protein","drug","gene")) g1 <- addNode(g1,"dr4","drug",attributes=list(effect="strong")) g1 <- addNode(g1,"dr5","drug",attributes=list(effect="strong")) g1 <- addNode(g1,"dr6","drug",attributes=list(effect="moderate")) g1 <- addNode(g1,"p1","protein") g1 <- addNode(g1,"p2","protein") g1 <- addNode(g1,"p3","protein") g1 <- addNode(g1,"g3","gene") g1 <- addNode(g1,"g4","gene") g1 <- addEdge(g1,nodeStart = "p2",nodeDest = "p3",attributes = list(name="interacts")) g1 <- addEdge(g1,nodeStart = "dr6",nodeDest = "g4",attributes = list(name="targets"))
この2つをマージします。
g12 <- merge(g,g1)
プロットします。
plot(g12,layout = "scaled")
このように、3次元のプロットもできます。
plot3d(g12)
4. さいごに
このパッケージは、igraphパッケージの拡張らしいのですが、3次元的な表現ができるのが良いですね。