RNA-seq學習:No.4下游分析之DEseq2包差異分析

基于上游分析獲得表達矩陣后弹澎,就可以進行差異分析了欢搜,最基礎(chǔ)的莫過于利用DEseq2包尋找差異基因恕曲。學習自b站視頻生信技能樹轉(zhuǎn)錄組視頻~

0、數(shù)據(jù)準備及前處理

  • 由于目前在家不方便獲得數(shù)據(jù)池户,因此參照教學視頻使用airway包的現(xiàn)成數(shù)據(jù)。
    如鏈接中官方介紹,airway包背景是使用地塞米松處理的四個人氣道(支氣管校焦?)平滑肌細胞(即共8個數(shù)據(jù))進行rna-seq實驗赊抖,分析得到的基因表達矩陣。
if (!requireNamespace("BiocManager", quietly = TRUE))
  install.packages("BiocManager")
BiocManager::install("airway")
library(airway)
data(airway)
airway
class(airway)
  • 如上返回結(jié)果寨典,airway為RangedSummarizedExperiment類型的對象氛雪,是將數(shù)據(jù)歸檔R包的一個好方法,使用時主要會涉及到兩個函數(shù)操作
    assay(data)表示取觀測為基因名凝赛,變量為樣本信息的表達矩陣注暗;
    colData(data) 則是取記錄詳細的樣本信息;
exp=assay(airway)   #取原始表達矩陣數(shù)據(jù)
tmp=colData(airway)
tmp=as.data.frame(airway)
#由于后續(xù)分析需要分組信息墓猎,因此這里我們?nèi)∠碌谌行畔?group=colData(airway)[,3]   
class(group)
exp--表達矩陣

tmp--樣本信息

值得注意的是colData(airway)得到的結(jié)果并非直接為真正的表格捆昏,還需要用as.data.frame()函數(shù)轉(zhuǎn)換下,后面分析還會遇到類似的問題毙沾。

index1=c(rowSums(exp)>0)
class(index1)
exp2=exp[index1,]
  • 此處操作的目的在于將沒有read比對上的基因行刪去骗卜,簡潔數(shù)據(jù)~

1、DEseq2包差異分析

(1)設(shè)置單列分組樣本信息表

group
sample=c(colnames(exp2))  #取樣本名信息
f=as.data.frame(group)
rownames(f)=c(sample)  #設(shè)置行名為樣本名信息
colnames(f)='condition' #列名
樣本分組信息表

(2)DESeq2分析

library("DESeq2")
dds=DESeqDataSetFromMatrix(countData = exp2,
                            colData = f,
                            design = ~ condition)
dep=DESeq(dds)
res=results(dep,contrast=c("condition","trt","untrt"))

這里要注意一下左胞,所謂差異分析寇仓,即比較實驗組與對照組相比,基因表達變化情況烤宙。通過contrast=參數(shù)分別設(shè)置樣本分組信息表的列名遍烦,實驗組名(numerator,分子)躺枕,對照組名(denominator服猪,分母);即研究分子/分母的結(jié)果

DEG1=as.data.frame(res)
write.csv(x=DEG1,file="res.csv") 
  • 返回的六列值中重點關(guān)注 log2FoldChange,pvalue,padj三列內(nèi)容拐云。

log2FoldChange中的FoldChange即倍數(shù)變化的意思罢猪。某一基因表達 實驗組/對照組,可分為兩種結(jié)果:大于1叉瘩,即上調(diào)膳帕;小于1,即下調(diào)薇缅。利用log函數(shù)將其分別轉(zhuǎn)化成正數(shù)危彩、負數(shù),更便于理解捅暴。(通常為了防止取log2時產(chǎn)生NA恬砂,我們會給表達值加1(或者一個極小的數(shù)),也就是log2(B+1) - log2(A+1))蓬痒;
pvalue是假設(shè)檢驗的p值泻骤,值越衅岣帷(一般標準0.05)即說明log2FoldChange數(shù)據(jù)的可靠性越強;padj為adjusted p-value值狱掂,也稱Q-value演痒、FDR(false discovery rate)為效驗過后的p-value值,更有信服力趋惨。

DEG1
resOrdered=res[order(res$pvalue),] #order函數(shù)是給出從小到大排序后的位置(默認升序)
sum(res$padj<0.1, na.rm=TRUE) # na.rm 為remove na值鸟顺,否則會影響統(tǒng)計量
sum(res$pvalue<0.05, na.rm=TRUE)  
sum(!is.na(res$pvalue))  
resSig=subset(resOrdered, padj<0.1)  
DEG2=as.data.frame(resSig)
write.csv(x=resSig, file = "results.csv") 
DEG2

2、繪制熱圖

  • 根據(jù)基因表達矩陣比對上的read數(shù)目繪制
  • 這里選取最有意義的50個基因比對read數(shù)目為例
library(pheatmap)
choose_gene=head(rownames(DEG2),50)    
#根據(jù)DEG2結(jié)果器虾,提取目標基因名
choose_matrix=exp2[choose_gene,]
choose_matrix=t(scale(t(choose_matrix)))

一般繪制熱圖讯嫂,都需要對數(shù)據(jù)進行歸一化處理。這里用到了t()轉(zhuǎn)置函數(shù)的原因是因為基因表達矩陣表中觀測為基因兆沙,變量為樣本欧芽。而scale()歸一化函數(shù)是針對每一列單獨處理的。因為每一個基因的本身情況各不相同葛圃,而且我們的目的是基于實驗組與對照組的比較來研究基因表達變化千扔,所以需要轉(zhuǎn)置下表達矩陣(觀測為樣本,變量為基因)库正,然后再進行對每一列的歸一化處理曲楚;最后再進行一次轉(zhuǎn)置,即得到下圖結(jié)果褥符。

choose_matrix
pheatmap(choose_matrix,filename = 'DEG_top50_heatmap.png')
DEG_top50_heatmap.png

3龙誊、繪制火山圖

  • 本質(zhì)上就是根據(jù)DEG數(shù)據(jù)里基因的log2FoldChange與pvalue繪制點圖
  • 把點分成三類:上調(diào)基因、下調(diào)基因與無顯著改變基因喷楣。
DEG1=na.omit(DEG1)

(1) 設(shè)定分類判斷閾值并增加分類列

logFC_cutoff=with(DEG1,mean(abs(log2FoldChange))+2*sd(abs(log2FoldChange)))
logFC_cutoff
2^logFC_cutoff   
# 返回結(jié)果為 3.67
DEG1$change=as.factor(ifelse(DEG1$pvalue<0.05 &  abs(DEG1$log2FoldChange)>logFC_cutoff,
                             ifelse(DEG1$log2FoldChange>logFC_cutoff,'UP','DOWN'),'NOT'))

(2)編寫圖中的注釋信息

this_tile=paste('Cutoff for logFC is ',round(logFC_cutoff,3),
                '\nThe number of up gene is ',nrow(DEG1[DEG1$change=='UP',]),
                '\nThe number of down gene is ',nrow(DEG1[DEG1$change=='DOWN',]))
  • 其中 \n表示換行符

(3)利用ggplot2繪制火山圖

library(ggplot2)
g=ggplot(data=DEG1,
         aes(x=log2FoldChange,y=-log10(pvalue),   #這里將pvalue取負對數(shù)
             color=change)) +
  geom_point(alpha=0.4,size=1.75) +     #繪制點圖
  theme_set(theme_set(theme_bw(base_size=20))) +
  xlab("log2 fold change")+ylab("-log10 pvalue") +    #軸標簽
  ggtitle(this_tile)+theme(plot.title=element_text(size=15,hjust=0.5)) +
  scale_color_manual(values=c('blue','black','red'))   #設(shè)定顏色
ggsave(g,filename='volcano.png')
# 如下圖载迄,一般會重點關(guān)注兩邊的,偏上方的基因點
volcano.png

以上是基于基因表達矩陣進行差異分析以及繪制熱圖抡蛙、火山圖的大致流程。這應(yīng)該下有分析簡單的開始魂迄,后期還有富集分析等粗截,再慢慢學習吧~

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市捣炬,隨后出現(xiàn)的幾起案子熊昌,更是在濱河造成了極大的恐慌,老刑警劉巖湿酸,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婿屹,死亡現(xiàn)場離奇詭異,居然都是意外死亡推溃,警方通過查閱死者的電腦和手機昂利,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人蜂奸,你說我怎么就攤上這事犁苏。” “怎么了扩所?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我剔应,道長效斑,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任袁勺,我火速辦了婚禮雹食,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘魁兼。我一直安慰自己婉徘,他們只是感情好,可當我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布咐汞。 她就那樣靜靜地躺著盖呼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪化撕。 梳的紋絲不亂的頭發(fā)上几晤,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天,我揣著相機與錄音植阴,去河邊找鬼蟹瘾。 笑死,一個胖子當著我的面吹牛掠手,可吹牛的內(nèi)容都是我干的憾朴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼喷鸽,長吁一口氣:“原來是場噩夢啊……” “哼众雷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起做祝,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤砾省,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后混槐,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體编兄,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年声登,在試婚紗的時候發(fā)現(xiàn)自己被綠了狠鸳。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片揣苏。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖碰煌,靈堂內(nèi)的尸體忽然破棺而出舒岸,到底是詐尸還是另有隱情,我是刑警寧澤芦圾,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布蛾派,位于F島的核電站,受9級特大地震影響个少,放射性物質(zhì)發(fā)生泄漏洪乍。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一夜焦、第九天 我趴在偏房一處隱蔽的房頂上張望壳澳。 院中可真熱鬧,春花似錦茫经、人聲如沸巷波。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽抹镊。三九已至,卻和暖如春荤傲,著一層夾襖步出監(jiān)牢的瞬間垮耳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工遂黍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留终佛,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓雾家,卻偏偏與公主長得像铃彰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子芯咧,可洞房花燭夜當晚...
    茶點故事閱讀 44,577評論 2 353

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