
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プロットが表示されます。

画像として保存するには、ggsave() を使います。
ggsave("simple_MAplot_with_color.png", width= 7, height = 7, unit = "in")