上下調(diào)基因分別富集,也能一起畫圖

雙向富集分析圖

1.需求

上下調(diào)基因分別富集分析褪储,把結(jié)果放在一張圖上:


2.示例數(shù)據(jù)和r包準(zhǔn)備

library(ggplot2)
library(dplyr)
set.seed(2012)
data <- data.frame(
  id = paste0("ca",1:20), 
  p = runif(20,0,0.05),
  change = sample(c("up","down"),20,replace = T)
)
head(data)
##    id          p change
## 1 ca1 0.01091543     up
## 2 ca2 0.03720259   down
## 3 ca3 0.01408370   down
## 4 ca4 0.04675872     up
## 5 ca5 0.03732084   down
## 6 ca6 0.04373917     up

模擬的是kegg的富集結(jié)果,編了一個數(shù)據(jù)慧域。p是p值鲤竹。畫圖的時候用-log10(p)。

因為我們需要上下調(diào)分兩個方向昔榴,所以先把下調(diào)的整成負(fù)值log10(p)辛藻。

為了讓通路按照上下調(diào)和p值大小順序排列起來,還需要用有序因子控制一下橫坐標(biāo)的順序互订。

3.實現(xiàn)雙向畫圖

data <- data %>% 
  mutate(p2 = ifelse(change == "up", -log10(p), log10(p))) %>% 
  arrange(change,p2) 
data$id = factor(data$id,levels = unique(data$id),ordered = T)
head(data)
##     id           p change        p2
## 1 ca16 0.002428496   down -2.614663
## 2 ca19 0.005513276   down -2.258590
## 3 ca18 0.007077920   down -2.150094
## 4  ca3 0.014083697   down -1.851283
## 5 ca20 0.027069219   down -1.567524
## 6 ca15 0.032271096   down -1.491186

這里有一點繞:剛才把down對應(yīng)的那些通路-log10(p)值設(shè)置為負(fù)了吱肌,需要在圖上改回去,直接改坐標(biāo)即可仰禽。

以前都是手動修改breaks和labels參數(shù)氮墨,今天我突然想到,ggplot2的默認(rèn)的breaks是怎么生成的呢吐葵?一番搜索找到了答案规揪,茅塞頓開:https://stackoverflow.com/questions/38486102/how-does-ggplot-calculate-its-default-breaks

tmp = with(data, labeling::extended(range(p2)[1], range(p2)[2], m = 5));tmp
## [1] -3 -2 -1  0  1  2
lm = tmp[c(1,length(tmp))];lm
## [1] -3  2

這里的tmp就是默認(rèn)的breaks。lm是坐標(biāo)范圍温峭,也可作為參數(shù)設(shè)置進(jìn)去粒褒。

有兩種辦法可以畫出來雙向的直方圖

方法1 :geom_segment

ggplot(data, aes(x=id, y=p2)) +
  geom_segment( aes(x=id, xend=id, y=0, yend=p2, color=change), size=5, alpha=0.9) +
  theme_light() +
  theme(
    panel.border = element_blank()
  ) +
  xlab("") +
  ylab("-log10(pvalue)")+
  ylim(lm)+
  scale_y_continuous(breaks = tmp,
                     labels = abs(tmp))+
  coord_flip()

方法2 :geom_bar

ggplot(data, aes(x=id, y=p2)) + 
  geom_bar(stat='identity', aes(fill=change), width=.7)+
  coord_flip()+
  theme_light() +
  ylim(lm)+
  scale_y_continuous(breaks = tmp,
                     labels = abs(tmp))+
  theme(
    legend.position = "none",
    panel.border = element_blank()
  ) 

4.搞定kegg和go雙向富集圖的函數(shù)

氛圍到了,寫著寫著就安排上了唄诚镰。拿去用1.4.0以上版本的tinyarray可用奕坟,今天(2020.10.16)剛更新上去的。輸出格式是ggplot2清笨,所以ggplot2細(xì)節(jié)調(diào)整月杉,都可以添加到這張圖上去

load("step4output.Rdata")
library(tinyarray)
pt = double_enrich(deg,n = 5)
pt
## $kp
## 
## $gp
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市抠艾,隨后出現(xiàn)的幾起案子苛萎,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腌歉,死亡現(xiàn)場離奇詭異蛙酪,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)翘盖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評論 2 382
  • 文/潘曉璐 我一進(jìn)店門桂塞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人馍驯,你說我怎么就攤上這事阁危。” “怎么了汰瘫?”我有些...
    開封第一講書人閱讀 152,370評論 0 342
  • 文/不壞的土叔 我叫張陵狂打,是天一觀的道長。 經(jīng)常有香客問我混弥,道長趴乡,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評論 1 278
  • 正文 為了忘掉前任蝗拿,我火速辦了婚禮晾捏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘蛹磺。我一直安慰自己,他們只是感情好同仆,可當(dāng)我...
    茶點故事閱讀 64,153評論 5 371
  • 文/花漫 我一把揭開白布萤捆。 她就那樣靜靜地躺著,像睡著了一般俗批。 火紅的嫁衣襯著肌膚如雪俗或。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,954評論 1 283
  • 那天岁忘,我揣著相機(jī)與錄音辛慰,去河邊找鬼。 笑死干像,一個胖子當(dāng)著我的面吹牛帅腌,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播麻汰,決...
    沈念sama閱讀 38,271評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼速客,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了五鲫?” 一聲冷哼從身側(cè)響起溺职,我...
    開封第一講書人閱讀 36,916評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后浪耘,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體乱灵,經(jīng)...
    沈念sama閱讀 43,382評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,877評論 2 323
  • 正文 我和宋清朗相戀三年七冲,在試婚紗的時候發(fā)現(xiàn)自己被綠了痛倚。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 37,989評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡癞埠,死狀恐怖状原,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苗踪,我是刑警寧澤颠区,帶...
    沈念sama閱讀 33,624評論 4 322
  • 正文 年R本政府宣布,位于F島的核電站通铲,受9級特大地震影響毕莱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜颅夺,卻給世界環(huán)境...
    茶點故事閱讀 39,209評論 3 307
  • 文/蒙蒙 一朋截、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧吧黄,春花似錦部服、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赵抢,卻和暖如春剧蹂,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背烦却。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評論 1 260
  • 我被黑心中介騙來泰國打工宠叼, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人其爵。 一個月前我還...
    沈念sama閱讀 45,401評論 2 352
  • 正文 我出身青樓冒冬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摩渺。 傳聞我的和親對象是個殘疾皇子窄驹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,700評論 2 345