R 使い方 | volcano plot 描き方(ボルケーノプロット)

volcano plotは、発現解析の結果を表現でよく使われるグラフです。

横軸に発現比(logFC)、縦軸にpvalue(-log10した値)をとります。

Rを使って、volcano plot (ボルケーノ プロット)を作成します。

valcano plot 描き方

単純な volcano-plot

> plot(-log10(comp_pValue) ~ comp_logFC)

または

> plot(comp_logFC, -log10(comp_pValue))

データフレームから必要な列を抽出して描く場合は、tidyverseのtransmutateを使うと便利です。

library(tidyverse)

> de_result <- read_tsv("de_result.tsv")

> vdata <- de_result %>% transmute(GeneSymbol, x=comp_logFC, y=-log10(comp_pValue))
> plot(vdata$y ~ vdata$x)

volcano-plot に色を付ける

条件(p値 0.05以下、|logFC|>1)でボルケーノプロットに色をつけました。タイトル・軸ラベルも追加しました。

> plot(y ~ x, 
       main="volcano-plot",
       xlab="log2 fold change",
       ylab="-log10 p-value",
       col=ifelse(y>-log10(0.05), 
           ifelse(abs(x)>1, ifelse(x>0, "red", "blue"), 
           "black"), "black"),
       data=vdata
      )

領域を区切る補助線をひきたい場合は、ablineで追加します。

abline(v=1, lty=2)
abline(v=-1, lty=2)

ちなみに、画像で保存する場合は、png(“volocano-plot.png”) 〜 dev.off()で囲みます。

> png("volocano-plot.png")

> plot(y ~ x, 
       main="volcano-plot",
       xlab="log2 fold change",
       ylab="-log10 p-value",
       col=ifelse(y>-log10(0.05), 
           ifelse(abs(x)>1, ifelse(x>0, "red", "blue"), 
           "black"), "black"),
       data=vdata
      )

> abline(v=1, lty=2)
> abline(v=-1, lty=2)
> abline(h=-log10(0.05), lty=2)

> dev.off()

おすすめ

Rによるバイオインフォマティクスデータ解析 第2版 -Bioconductorを用いたゲノムスケールのデータマイニング