見出し画像

ggplot2: MA プロットの色を条件で塗り分け

今回は、MAプロットを例に、条件にしたがって異なる色で塗り分ける方法を紹介します。流れとしては、以前紹介したボルケーノプロットの場合と同様です。塗り分けたい条件を満たすデータセットに分けておき、 geom_point() を複数回実行して重ね合わせます。

条件を満たすデータセットを抽出

発現変動している遺伝子の条件を、 p-value < 0.05 とします。その上で、増加しているものについては赤、減少している遺伝子については青に塗り分けます。変動していないものについては、グレーとします。

  • 赤:p-value < 0.05 かつ logFC > 0

  • 青:p-value < 0.05 かつ logFC < 0

  • グレー:その他(p-value > 0.05)

データセットを抽出するコードは下記のようになります。

up_deg   <- de_result %>% filter(PValue < 0.05 & logFC > 0)
down_deg <- de_result %>% filter(PValue < 0.05 & logFC < 0)
non_deg  <- de_result %>% filter(PValue > 0.05)

geom_point() を続けてプロット

ggplot と aes の定義は、前回同様です。logCPM と logFC を指定します。

g <- ggplot(de_result, aes(logCPM, logFC))

続いて、データセットごとに geom_point() をコールします。重ねて表示されるため、背景となるようグレーを先にコールするのが、きれいにプロットするコツです。

g + geom_point(data = non_deg, color = "#969696") +
  geom_point(data  = up_deg,   color = "#FC9272") +
  geom_point(data  = down_deg, color = "#9ECAE1")

色づけされたMAプロットが表示されます。

MA plot
条件によってい塗り分けられた MA プロット

画像として保存するには、ggsave() を使います。

ggsave("simple_MAplot_with_color.png", width= 7, height = 7, unit = "in")


この記事が気に入ったらサポートをしてみませんか?