・お題:タンパク質間相互作用解析をやると、いろいろなことが分かるらしい。RだとSTRINGdbなどのパッケージを使うとできるらしい。やってみたい。
・例のごとく、チュートリアルをなぞる。今回のチュートリアルは以下。
・STRINGdbのインストールは割愛。
・GSE9008のデータを使う。どこにDEGのデータがあるのかよく分からなかったので、GEO2Rで自分で算出して、GSE9008.top.table.tsvとしてカレントディレクトリに保存した。
・データを読み込む。今回はヒトの肺がん細胞に試験物質を作用させた際のDEGデータ。
> data <- read.delim("GSE9008.top.table.tsv")
> data <- dplyr::rename(data, gene = Gene.symbol)
> data %>% head()
・タンパク質間相互作用ネットワークをダウンロードする。今回はヒトのネットワークをとって来る。
> library(STRINGdb)
> string_db <- STRINGdb$new(version = "11.5",
+ species = 9606,
+ score_threshold = 200,
+ input_directory="")
> class(string_db)
[1] "STRINGdb"
attr(,"package")
[1] "STRINGdb"
・DEGの遺伝子情報とSTRINGのタンパク質情報をくっつける。
> example1_mapped <- string_db$map(data,
+ "gene",
+ removeUnmappedRows = TRUE )
Warning: we couldn't map to STRING 13% of your identifiers
> example1_mapped %>% head()
> example1_mapped %>% dim()
[1] 47613 9
・P.Valueで昇順になっているので、ここから200個の遺伝子を取り出してネットワークを描いてみる。
> hits <- example1_mapped$STRING_id[1:200]
> string_db$plot_network(hits)
・ちっちゃすぎて良く分からない。可視化には他のパッケージを使う方が良いかも…。。次に、特に変化が大きそうな遺伝子を強調するために、P.Valueが0.01以下またはlogFCの絶対値が0.5以上のものをとって来て色情報を与える。
> example1_mapped_sig <- string_db$add_diff_exp_color(subset(example1_mapped, log10(P.Value) >= -log10(0.01) | abs(logFC) >= 0.5),
+ logFcColStr="logFC" )
> example1_mapped_sig$color
・図示する。post_payloadが何をしているのかよく分からない。。
> payload_id <- string_db$post_payload( example1_mapped_sig$STRING_id,
+ colors=example1_mapped_sig$color )
rdrr.io> string_db$plot_network(hits, payload_id=payload_id)
・特に変化が大きかったものは色のついたhaloで強調してある。
・次に、クラスタリングしてみる。string_db$get_clustersはSTRINGのIDを与えるとクラスタリングしてくれる関数らしい。
> clustersList <- string_db$get_clusters(example1_mapped$STRING_id[1:600])
> clustersList
・最初の4つのクラスターを図示してみる。
> par(mfrow=c(2,2))
> for(i in seq(1:4)){
+ string_db$plot_network(clustersListi)
+ }
・GO解析もできるっぽい。KEGGの方は利用の方法によっては有償なので、いったん控える。string_db$get_enrichment関数でエンリッチメント解析できる。本当はcategory = "Process"とかしたかったが、何も引っ掛からなかったので、デフォルトで投げた。
> enrichmentGO <- string_db$get_enrichment( hits )
いったんおわり。