2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ネットワーク解析で推定された特定のモジュールを抽出して可視化する

Last updated at Posted at 2022-05-27

モジュールの可視化

今回はWGCNAとigraphでネットワークを行った際に現れた特定のモジュールのみを取り出して、ノードやエッジの色・大きさ等で詳細な情報を可視化します。ここまでの流れはこちらのコードを参照してください。

必要なパッケージとデータ

必要なパッケージとデータは以下の通りです。以前の記事を参照してください。

パッケージと用途
・igraph:ネットワークの計算
・visNetwork:グラフの可視化
・colorBlindness:カラーパレット

データ
・subnet:隣接行列をgraph.adjacency関数で変換したデータ
・m:fastgreedy.community関数でsubnetのモジュールを計算したデータ
m$membershipに各変数(ノード)の所属するモジュールの番号が格納

モジュールのネットワークデータの抽出

igraphのinduced_subgraph関数を使って、全体のネットワークからモジュールを構成するノードとエッジのみ取り出します。

module_no <- 1 #取り出したいモジュールの番号

n <- induced_subgraph(subnet, m$membership == mo.s$module.ID[module_no]) 

ノードの色の指定

ノードの色は、モジュールの色をベースに付けます。ここでは各ノードの強度に応じで5段階に分け、透過性のグラデーションをつけました。より多くのノードと強く結合したノードほど濃く表示されます。

makeGradation <- function(x) { #透過性のグラデーションを作る関数
  grad <- c()
  opacity <- c("2A", "4C", "7F", "99", "B2")
  for (i in 1:5) {
    grad[i] <- paste(x, opacity[i], sep="")
  }
  return(grad) #5段階のグラデーションを出力
}

graph_Color = makeGradation(safeColors[module_no])[as.numeric(cut(strength(n), breaks	=	5))]

V(n)$color <- graph_Color

ノードの大きさとエッジの幅の指定

toVisNetworkData関数を使ってvisNetworkに渡せるデータの形に変形しておきます。さらに、ノードの大きさをノードの強度、エッジの幅をエッジの重みで表現できるように指定しておきます。

netv <- toVisNetworkData(n)

nodes <- netv$nodes
nodes$value <- strength(n)

edges <- netv$edges
edges$value <- edges$weight

visNetworkによる可視化

最後にvisNetwork関数で可視化します。

visNetwork(nodes, edges) %>%
  visIgraphLayout(layout = "layout_with_kk") %>%
  visNodes(shadow = list(enabled = TRUE, size=20)) %>%
  visOptions(highlightNearest = list(enabled = T, hover = T),
             nodesIdSelection = T)

モジュール1のみを可視化すると、このようなグラフが出てきます。インタラクティブなグラフになっていて、ネットワークの拡大縮小、特定のノードに接続するノードのみのハイライトなどが可能です。

ダウンロード (5).png

このように特定のモジュールのみを可視化することで、たとえばハブノードっぽいもの同士が比較的強く相関していることなどが可視化できて、ネットワーク全体を眺めていた時に映えられなかったより詳細な考察が可能となります。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?