一個(gè)數(shù)據(jù)里兩種分組信息怎么做差異分析

1.背景知識(shí)

眾所周知眉菱,limma可以做基因表達(dá)芯片和轉(zhuǎn)錄組數(shù)據(jù)的差異分析彻坛,可以方便的得處兩組之間有表達(dá)量差別的基因钞速。多分組差異分析其實(shí)也是兩兩差異分析的批量做法旁仿。

有的實(shí)驗(yàn)設(shè)計(jì)相對(duì)復(fù)雜一點(diǎn)藕夫,比如今天使用的例子:

image.png

實(shí)驗(yàn)設(shè)計(jì)包括了兩種分組,一個(gè)是siC和sip53枯冈,一個(gè)是NT與TNF毅贮。

那么常規(guī)的兩組之間的差異分析也就不能同時(shí)分析這兩種實(shí)驗(yàn)設(shè)計(jì)啦!

這時(shí)候我們就需要用到雙因素差異分析尘奏。

1.整理表達(dá)矩陣

rm(list = ls())
library(tinyarray)
library(tidyverse)
library(limma)
gse = "GSE53153"
a = geo_download(gse,destdir=tempdir(),colon_remove = T)
find_anno(a$gpl)
library(illuminaHumanv4.db);ids <- toTable(illuminaHumanv4SYMBOL)
eset = trans_array(log2(a$exp+1),ids)
eset[1:4,1:4]
##          GSM1283060 GSM1283061 GSM1283062 GSM1283063
## EEF1A1    16.125688  16.097172  16.035905  15.996306
## GAPDH     15.125034  15.114759  15.188604  15.102693
## SLC35E2A   7.980711   8.234099   7.651769   8.134426
## CLXN       7.634448   7.811856   7.692790   7.792465

2.整理實(shí)驗(yàn)設(shè)計(jì)

#雙因素分析
targets = data.frame(mutate = rep(c("siC","sip53"),each = 6),
                     induce = rep(c("untreat", "treat"), each = 3, times = 2))
targets
##    mutate  induce
## 1     siC untreat
## 2     siC untreat
## 3     siC untreat
## 4     siC   treat
## 5     siC   treat
## 6     siC   treat
## 7   sip53 untreat
## 8   sip53 untreat
## 9   sip53 untreat
## 10  sip53   treat
## 11  sip53   treat
## 12  sip53   treat

把這兩種分組合并到一起

TS <- paste(targets$mutate, targets$induce, sep=".")
TS <- factor(TS, levels=c("siC.untreat","siC.treat","sip53.untreat","sip53.treat"))
TS
##  [1] siC.untreat   siC.untreat   siC.untreat   siC.treat     siC.treat    
##  [6] siC.treat     sip53.untreat sip53.untreat sip53.untreat sip53.treat  
## [11] sip53.treat   sip53.treat  
## Levels: siC.untreat siC.treat sip53.untreat sip53.treat

3.做差異分析

這里同時(shí)做了三次差異分析:

哪些基因?qū)iC組的treat有反應(yīng),即siC組的treat-untreat

哪些基因?qū)ip53組的treat有反應(yīng),即sip53組的treat-untreat

與siC組相比汽烦,哪些基因在sip53組中的反應(yīng)不同泻轰,即上面兩組差異分析所得的logFC再比較!

前兩次差異分析其實(shí)相當(dāng)于取子集+二分組差異分析俗孝。第三次是雙因素差異分析咯酒甸。

design <- model.matrix(~0+TS)
colnames(design) <- levels(TS)
fit <- lmFit(eset, design)
cont.matrix <- makeContrasts(
  w = siC.treat-siC.untreat,
  m = sip53.treat-sip53.untreat,
  diff = (sip53.treat-sip53.untreat)-(siC.treat-siC.untreat),
  levels=design)
fit2 <- contrasts.fit(fit, cont.matrix)
fit2 <- eBayes(fit2)

deg1 = topTable(fit2,number = Inf,coef = 1)
deg2 = topTable(fit2,number = Inf,coef = 2)
deg3 = topTable(fit2,number = Inf,coef = 3)
head(deg3)
##            logFC   AveExpr          t      P.Value    adj.P.Val         B
## MMP9   -1.889600  8.014973 -17.520398 8.191150e-12 1.712278e-07 13.259648
## CXCL10 -1.598374  9.294062 -12.550379 1.166271e-09 1.218986e-05 10.453810
## PI3     1.458585  8.562082  10.029716 2.812942e-08 1.960058e-04  8.248613
## EBI3   -1.382219  8.596838  -9.797690 3.885369e-08 2.030494e-04  8.008927
## LTB    -1.412194  8.331969  -8.950493 1.327325e-07 5.549282e-04  7.072795
## TNIP1  -1.048539 12.778876  -8.828485 1.594793e-07 5.556259e-04  6.929717

4.差異基因

get_diff_gene = function(deg,logFC_t = 1,p_t = 0.05){
  k1 = (deg$P.Value < p_t)&(deg$logFC < -logFC_t)
  k2 = (deg$P.Value < p_t)&(deg$logFC > logFC_t)
  library(dplyr)
  deg = mutate(deg,change = ifelse(k1,"down",ifelse(k2,"up","stable")))
  table(deg$change)
  return(rownames(deg)[deg$change!="stable"])
}

cg1 = get_diff_gene(deg1);length(cg1)
## [1] 121
cg2 = get_diff_gene(deg2);length(cg2)
## [1] 109
cg3 = get_diff_gene(deg3);length(cg3)
## [1] 14
dat = list(siC = cg1,
           sip53 = cg2,
           diff = cg3)
draw_venn(dat,"")
ggsave("v.png")
image.png
dat = data.frame(t(eset[cg3,]),
                 targets,
                 TS,check.names = F)
library(ggplot2)
ps = lapply(cg3, function(g){
  ggplot(dat,aes_string(x = "TS",
                      y =  paste0("`",g,"`"),
                      fill = "induce"))+
  geom_boxplot()+
  theme_bw()+
  theme(legend.position = "top")
})
library(patchwork)
wrap_plots(ps[1:4],ncol = 2)
image.png

5.logFC 是如何計(jì)算的

TS
##  [1] siC.untreat   siC.untreat   siC.untreat   siC.treat     siC.treat    
##  [6] siC.treat     sip53.untreat sip53.untreat sip53.untreat sip53.treat  
## [11] sip53.treat   sip53.treat  
## Levels: siC.untreat siC.treat sip53.untreat sip53.treat
x = eset["MMP9",]
(mean(x[10:12])-mean(x[7:9]))-(mean(x[4:6])-mean(x[1:3]))
## [1] -1.8896
deg3$logFC[1]
## [1] -1.8896

所以也就是計(jì)算出了兩組之間的logFC之差。

代碼參考自limma幫助文檔第九章赋铝。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末插勤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子革骨,更是在濱河造成了極大的恐慌农尖,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件良哲,死亡現(xiàn)場(chǎng)離奇詭異盛卡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)筑凫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門窟扑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人漏健,你說我怎么就攤上這事嚎货。” “怎么了蔫浆?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵殖属,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我瓦盛,道長(zhǎng)洗显,這世上最難降的妖魔是什么外潜? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮挠唆,結(jié)果婚禮上处窥,老公的妹妹穿的比我還像新娘。我一直安慰自己玄组,他們只是感情好滔驾,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俄讹,像睡著了一般哆致。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上患膛,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天摊阀,我揣著相機(jī)與錄音,去河邊找鬼踪蹬。 笑死胞此,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的跃捣。 我是一名探鬼主播豌鹤,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼枝缔!你這毒婦竟也來了布疙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤愿卸,失蹤者是張志新(化名)和其女友劉穎灵临,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趴荸,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡儒溉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了发钝。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顿涣。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酝豪,靈堂內(nèi)的尸體忽然破棺而出涛碑,到底是詐尸還是另有隱情,我是刑警寧澤孵淘,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布蒲障,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏揉阎。R本人自食惡果不足惜庄撮,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望毙籽。 院中可真熱鬧洞斯,春花似錦、人聲如沸坑赡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垮衷。三九已至厅翔,卻和暖如春乖坠,著一層夾襖步出監(jiān)牢的瞬間搀突,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國(guó)打工熊泵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留仰迁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓顽分,卻偏偏與公主長(zhǎng)得像徐许,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子卒蘸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

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