跟著Cell學(xué)作圖:R語言ggplot2作圖展示差異表達(dá)的基因

一組對照加處理這種實驗的差異表達(dá)分析結(jié)果通常是用火山圖來展示,如果是很多組實驗的話如何展示,這種情況我之前還沒有遇到過。公眾號后臺有讀者留言問到了如下的圖

image.png

這個圖來自于論文A Spatiotemporal Organ-Wide Gene Expression and Cell Atlas of the Developing Human Heart

本地pdf PIIS0092867419312826.pdf

他這個應(yīng)該是單細(xì)胞的數(shù)據(jù),具體展示的是什么意思我還沒看明白。我的理解是0-9,10組數(shù)據(jù)分別做了差異表達(dá)分析,把差異表達(dá)分析的結(jié)果全放在一張圖上展示可以采用這樣的形式。

下面試著模仿一下這個圖。

我沒有找到這么多差異表達(dá)分析的結(jié)果,我這里只用到了4組數(shù)據(jù)

首先是將差異表達(dá)分析的結(jié)果整理成如下格式

image.png
  • 第一列是基因名
  • 第二列是logfc
  • 第三列是adjusted p value
  • 第四列是給adjusted p value 一個分組
  • 第五列是表示數(shù)據(jù)來自于哪組實驗

首先是讀取數(shù)據(jù)

dat00<-read.csv("cellexamdat.csv",
                row.names = 1)
head(dat00)

接下來是構(gòu)造數(shù)據(jù)集用來添加中間部分的色塊

dat<-data.frame(x=c("A","B","C","D"),
                y=0,
                label=c(0,1,2,3))

構(gòu)造數(shù)據(jù)集用來添加背景的灰色柱子

datbar<-data.frame(x=c("A","B","C","D"),
                   y=c(20,10,20,10))

接下來是作圖代碼

library(ggplot2)
library(ggnewscale)
library(tidyverse)


ggplot()+
  geom_col(data=datbar,aes(x=x,y=y),fill="grey",alpha=0.5)+
  geom_col(data=datbar,aes(x=x,y=-y),fill="grey",alpha=0.5)+
  geom_jitter(data=dat00 %>% filter(newcol1 == 'adjusted P-val > 0.01'),
              aes(x=newcol2,y=log2FoldChange,
                  color=newcol1))+
  geom_jitter(data=dat00 %>% filter(newcol1 == 'adjusted P-val < 0.01'),
              aes(x=newcol2,y=log2FoldChange,
                  color=newcol1))+
  scale_color_manual(name=NULL,
                     values = c("red","darkgrey"))+
  ggnewscale::new_scale_fill()+
  theme_minimal()+
  theme(axis.line.y = element_line(),
        axis.ticks.y = element_line(),
        panel.grid = element_blank(),
        legend.position = "top",
        legend.justification = c(1,0),
        legend.direction = "vertical",
        axis.text.x = element_blank())+
  labs(x="Cluster",y="average logFC")+
  geom_tile(data=dat,
            aes(x=x,y=y,fill=x),
            height=3,color="black",
            alpha=0.9,
            show.legend = F)+
  scale_fill_manual(values = c("#44a9a9","#4177aa","#12783c","#a94698"))+
  geom_text(data=dat,aes(x=x,y=y,label=label))

結(jié)果如下

image.png

作圖的代碼具體意思就不詳細(xì)介紹了,爭取抽時間錄制視頻介紹,視頻可能會更直觀一點(diǎn)。

示例數(shù)據(jù)和代碼可以在公眾號獲取

歡迎大家關(guān)注我的公眾號

小明的數(shù)據(jù)分析筆記本

小明的數(shù)據(jù)分析筆記本 公眾號 主要分享:1、R語言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡單小例子;2、園藝植物相關(guān)轉(zhuǎn)錄組學(xué)、基因組學(xué)、群體遺傳學(xué)文獻(xiàn)閱讀筆記;3、生物信息學(xué)入門學(xué)習(xí)資料及自己的學(xué)習(xí)筆記!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容