RNA_seq(1)植物轉錄組實戰(下)之DESeq2進行差異基因分析
四、DESeq2差異基因分析
獲得reads-counts之後,我們就可以開展差異基因分析了。我們以subread中的featureCounts工具得到的counts_id.txt為例,來進行後續的差異基因分析。
目前常見的差異基因分析工具有DESeq2、limma包等等,此處以DESeq2為工具來進行差異基因的篩選。
First step:獲取表達矩陣和分組資訊
進行差異基因分析之前,首先要獲取表達矩陣和分組資訊。我們的表達矩陣是剛才用featureCounts定量得到的counts_id.txt ,經過格式處理之後,是這樣(部分擷取):
第一列是基因ID,之後的列都是樣本ID
每一行代表不同的基因在不同樣本中的表達量.
我們選day0和day1做比較,
為了方便,分組矩陣的製作我在R裡面完成,輸入如下程式碼:
us_count<-read.csv("C:\\Users\\admin\\Desktop\\RNA_seq_Ara_counts_day1_day0.csv",head=T,row.names=1) #輸入表達矩陣資料路徑
us_count<-round(us_count,digits=0) #將輸入資料取整
#準備
us_count<-as.matrix(us_count) #將資料轉換為矩陣格式
condition<-factor(c("day0","day0","day0","day0","day1","day1","day1","day1")) ## 設定分組資訊,建立環境(8個樣本,2組處理)
coldata<-data.frame(row.names=colnames(us_count),condition)
coldata #展示coldata內容
condition #展示環境
上面的程式碼執行之後,我們的分組資訊就是這樣噠:
現在,就可以正式使用DESeq2做差異基因分析了,總共其實只有三步:
- 構建dds矩陣
- 對dds矩陣進行標準化
- 提取結果並繪製火山圖
程式碼如下:
library(DESeq2) #使用library函式載入DEseq2包
##構建dds矩陣
dds<-DESeqDataSetFromMatrix(us_count,coldata,design=~condition)
head(dds) #檢視構建好的矩陣
##進行差異分析
dds<-DESeq(dds) #對原始的dds進行標準化
resultsNames(dds) #檢視結果名稱
res<-results(dds) #用results函式提取結果,並賦值給res變數
summary(res) #檢視結果
plotMA(res,ylim=c(-2,2))
mcols(res,use.names=TRUE)
plot(res$log2FoldChange,res$pvalue) #繪製火山圖
#提取差異基因
res <- res[order(res$padj),]
resdata <-merge(as.data.frame(res),as.data.frame(counts(dds,normalize=TRUE)),by="row.names",sort=FALSE)
deseq_res<-data.frame(resdata)
up_diff_result<-subset(deseq_res,padj < 0.05 & (log2FoldChange > 1)) #提取上調差異表達基因
down_diff_result<-subset(deseq_res,padj < 0.05 & (log2FoldChange < -1)) #提取下調差異表達基因
write.csv(up_diff_result,"C:\\Users\\admin\\Desktop\\上調_day0_VS_day1_diff_results.csv") #輸出上調基因
write.csv(down_diff_result,"C:\\Users\\admin\\Desktop\\下調_day0_VS_day1_diff_results.csv") #輸出下調基因
至此,差異基因就成功提取了,看看火山圖(火山圖繪製是這句程式碼起效果:plot(res$log2FoldChange,res$pvalue) #其實就是對log2foldchange和pvalue作圖
):
五、 總結
自己之前處理線蟲資料主要是用的RSEM(加bowtie2)來做RNA-seq的序列比對和生物學定量
,但是沒有接觸過salmon和subread。這次使用這兩個工具完成了植物的RNA-seq實戰,對這些工具有了更深的理解,以後自己如果要開發相關軟體,也要多用用,比較工具之間的優劣。
相關文章
- 使用RSEM進行轉錄組測序的差異表達分析
- Index Full Scan和Index Fast Full Scan行為差異分析(下)IndexAST
- CSS進階09-定位體系差異分析CSS
- 深入分析Java使用+和StringBuilder進行字串拼接的差異JavaUI字串
- Linux下燒錄光碟實戰(轉)Linux
- 足球戰術->組合進攻之composite篇 (轉)
- pseudobulk--計算差異基因(未完成0408)
- edgeR:一個數字基因表達資料差異表達分析Bioconductor程式包
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(五)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(三)筆記SQLOracle函式
- 《卸甲筆記》-PostgreSQL和Oracle的SQL差異分析之五:函式的差異(一)筆記SQLOracle函式
- Flutter 混合開發實戰問題記錄(五)1.9.1-hotfix 打包aar差異Flutter
- 藥物基因組學_個體化實驗分析_實驗報告
- linux 下的差異和增量備份(轉)Linux
- BI之SSAS完整實戰教程4 -- 部署至SSAS進行簡單分析
- For Update操作分析——不同Oracle版本之間的差異研究Oracle
- ERP中標準成本的差異分析控制(轉)
- 系統之間差異
- 田誌喜:大豆泛基因組研究進展
- 使用Visual Studio進行檔案差異比較
- spring下應用@Resource, @Autowired 和 @Inject註解進行依賴注入的差異Spring依賴注入
- linux下定位異常消耗的執行緒實戰分析Linux執行緒
- 分析《植物大戰殭屍》的遊戲平衡性遊戲
- 反向代理與正向代理差異分析
- Turbine實戰(下) (轉)
- [AlwaysOn] AlwaysOn可用性組的可用性模式之間的差異模式
- 【行業知識】服裝供應鏈的差異化戰略行業
- Index Full Scan和Index Fast Full Scan行為差異分析(上)IndexAST
- 利用python進行資料分析之準備工作(1)Python
- 揭祕:華大基因如何用阿里雲進行基因測序阿里
- XML卷之實戰錦囊(1)動態排序(轉)XML排序
- Bioconductor 分析基因晶片資料(轉帖)晶片
- vcf2gwas:簡化全基因組關聯分析
- 單細胞分析實錄(9): 展示marker基因的4種圖形(二)
- GBTA:商旅酒店預訂差異分析
- 怎樣利用網際網路差異化進行網路推廣?
- Python 植物大戰殭屍程式碼實現(2):植物卡片選擇和種植Python
- 1、實戰SSH埠轉發