【R】mully

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次元的な表現ができるのが良いですね。

Add a Comment

メールアドレスが公開されることはありません。