RNA-seq學習:No.12 EnhancedVolcano繪制美觀火山圖

EnhancedVolcano包可根據(jù)差異分析結(jié)果针史,基于ggplot2繪圖結(jié)構(gòu)斩披,方便地繪制美觀的火山圖,下面根據(jù)自己的理解小結(jié)下基本用法排作。

示例差異基因數(shù)據(jù)

library(airway)
library(magrittr)
data('airway')
airway$dex %<>% relevel('untrt')
ens <- rownames(airway)

library(org.Hs.eg.db)
symbols <- mapIds(org.Hs.eg.db, keys = ens,
                  column = c('SYMBOL'), keytype = 'ENSEMBL')
symbols <- symbols[!is.na(symbols)]
symbols <- symbols[match(rownames(airway), names(symbols))]
rownames(airway) <- symbols
keep <- !is.na(rownames(airway))
airway <- airway[keep,]

library('DESeq2')
dds <- DESeqDataSet(airway, design = ~ cell + dex)
dds <- DESeq(dds, betaPrior=FALSE)
res <- results(dds,
               contrast = c('dex','trt','untrt'))
res <- lfcShrink(dds,
                 contrast = c('dex','trt','untrt'), res=res, type = 'normal')
res <- as.data.frame(res)
head(res)
#             baseMean log2FoldChange      lfcSE       stat       pvalue         padj
# TSPAN6   710.0931707    -0.37807189 0.09851236 -3.8404448 0.0001228116 0.0009522932
# TNMD       0.0000000             NA         NA         NA           NA           NA
# DPM1     521.2572396     0.19826365 0.10931684  1.8155169 0.0694445184 0.1910397405
# SCYL3    237.6068046     0.03234467 0.13821470  0.2371917 0.8125081096 0.9118161375
# C1orf112  58.0358739    -0.08835419 0.25056704 -0.3194810 0.7493618190 0.8773885438
# FGR        0.3194343    -0.08459224 0.15186225 -0.3948862 0.6929268648           NA

如上乡革,只要包含包含基因名寇僧、差異倍數(shù)P值三部分信息的差異結(jié)果就可以用于繪制火山圖沸版。

  • 安裝嘁傀、加載包
# BiocManager::install('EnhancedVolcano')
library(EnhancedVolcano)

基本繪制

如下代碼,需要分別交代基因名视粮;x軸為差異倍數(shù)细办;y軸為P值

EnhancedVolcano(res,
    lab = rownames(res),
    x = 'log2FoldChange',
    y = 'pvalue')

如下圖結(jié)果,基本繪制了不錯的火山圖蕾殴。


EnhancedVolcano()也提供了很多調(diào)整的參數(shù)笑撞,可供優(yōu)化選擇

1、標題修改

  • title =主標題
  • subtitle = 副標題钓觉,默認為 "EnhancedVolcano"
  • caption = 圖注茴肥,默認為基因總數(shù)統(tǒng)計
EnhancedVolcano(res,
                lab = rownames(res),
                x = 'log2FoldChange',
                y = 'pvalue',
                title = 'Disease versus Normal',
                subtitle = NULL,
                caption = NULL)

2、閾值修改

  • 差異倍數(shù):pCutoff = 10e-32
  • p值:FCcutoff = 2
EnhancedVolcano(res,
                lab = rownames(res),
                x = 'log2FoldChange',
                y = 'pvalue',
                pCutoff = 10e-32,
                FCcutoff = 3)

3荡灾、點point的修改

  • 點的大腥亢:pointSize = 2
  • 點的不透明度(0~1):colAlpha = 1/2
  • 點的顏色col = c("grey30", "forestgreen", "royalblue", "red2")瞬铸,分別對應(yīng)NS,僅差異倍數(shù)础锐,僅P值嗓节,差異倍數(shù)與P值
EnhancedVolcano(res,
                lab = rownames(res),
                x = 'log2FoldChange',
                y = 'pvalue',
                pointSize = 1,
                colAlpha = 0.3,
                col = c("black","black","black","red"))

4、legend的修改

  • legendLabels=修改legend的標簽內(nèi)容
  • legendLabSize = 14 修改legend的標簽大小
  • legendPosition = "top"修改legend的位置
  • legendIconSize = 5 修改legend的圖標大小
EnhancedVolcano(res,
                lab = rownames(res),
                x = 'log2FoldChange',
                y = 'pvalue',
                legendLabels=c('Not sig.',
                               'Log (base 2) FC',
                               'p-value',
                               'p-value & Log (base 2) FC'),
                legendPosition = 'right',
                legendLabSize = 5,
                legendIconSize = 5.0)

可使用ggplot2的語法 + theme(legend.position="none") 設(shè)置取消legend

5郁稍、設(shè)置point label

  • 如上面的圖赦政,EnhancedVolcano()會顯示部分具有顯著意義的基因名胜宇。我們也可以自定義修改顯示哪些基因的標簽
p1 = EnhancedVolcano(res,
                lab = rownames(res),
                x = 'log2FoldChange',
                y = 'pvalue',
                selectLab = c('VCAM1','KCTD12','ADAM12',
                              'CXCL12','CACNB2','SPARCL1',
                              'DUSP1','SAMHD1','MAOA'),
                drawConnectors = TRUE)
p2 = EnhancedVolcano(res,
                     lab = rownames(res),
                     x = 'log2FoldChange',
                     y = 'pvalue',
                     col = c("black","black","black","red"),
                     selectLab = "") +
  theme(legend.position="none")
library(patchwork)
p1 | p2
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末耀怜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子桐愉,更是在濱河造成了極大的恐慌财破,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件从诲,死亡現(xiàn)場離奇詭異左痢,居然都是意外死亡,警方通過查閱死者的電腦和手機系洛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門俊性,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人描扯,你說我怎么就攤上這事定页。” “怎么了绽诚?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵典徊,是天一觀的道長。 經(jīng)常有香客問我恩够,道長卒落,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任蜂桶,我火速辦了婚禮儡毕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘扑媚。我一直安慰自己腰湾,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布钦购。 她就那樣靜靜地躺著檐盟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪押桃。 梳的紋絲不亂的頭發(fā)上葵萎,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天,我揣著相機與錄音,去河邊找鬼羡忘。 笑死谎痢,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的卷雕。 我是一名探鬼主播节猿,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼漫雕!你這毒婦竟也來了滨嘱?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤浸间,失蹤者是張志新(化名)和其女友劉穎太雨,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體魁蒜,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡囊扳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了兜看。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片锥咸。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖细移,靈堂內(nèi)的尸體忽然破棺而出搏予,到底是詐尸還是另有隱情,我是刑警寧澤葫哗,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布缔刹,位于F島的核電站,受9級特大地震影響劣针,放射性物質(zhì)發(fā)生泄漏校镐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一捺典、第九天 我趴在偏房一處隱蔽的房頂上張望鸟廓。 院中可真熱鬧,春花似錦襟己、人聲如沸引谜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽员咽。三九已至,卻和暖如春贮预,著一層夾襖步出監(jiān)牢的瞬間贝室,已是汗流浹背契讲。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留滑频,地道東北人捡偏。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像峡迷,于是被迫代替她去往敵國和親银伟。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容