TCGA差異分析|2.DESeq2

DESeq2真狠,TCGA-PRAD數據差異分析用了半個小時,而且還是多線程。這速度也沒啥提升呀
rm(list = ls())
library(DESeq2)
library(tidyverse)
library(pheatmap)
library(vioplot)
library(BiocParallel)
rt <- data.table::fread("F:/TCGA-counts/HTSeq_Counts_PRAD.txt",data.table = F) %>% 
  column_to_rownames("Tags")
metadata <- data.frame(TCGA_id=colnames(rt),
                       sample=factor(ifelse(str_sub(colnames(rt),14,15)<10,"tumor","normal"),levels = c("normal","tumor")))  #分組信息 

################################################################################
#1.核心環節:構建dds對象
###必備條件:countData, colData(分組信息)。
### 不是配對:design = ~grouplist
### 第一列如果有基因名稱,tidy=TRUE
dds <- DESeqDataSetFromMatrix(countData = rt,
                              colData = metadata,
                              design = ~sample)
dds <- dds[rowSums(counts(dds))>1,] # 過濾原則:有原則是某基因在所有樣本中的read counts之和小于樣本總數(樣本均read counts<1)則去除。
nrow(dds)
vsd <- vst(dds,blind = F) #數據標準化,去除批次
exprSet_vst <- as.data.frame(assay(vsd)) #assay提取vst標準化后的數據,用于表達量作圖、熱圖等
plotPCA(vsd,"sample")
View(dds)
#2. 計算差異倍數及p值
dds <- DESeq(dds,parallel = T) 
#3.logFC矯正

contrast <- c("sample","tumor","normal")
dd1 <- results(dds,contrast,alpha = 0.05)
plotMA(dd1,ylim=c(-5,5))

dd2 <- lfcShrink(dds,contrast = contrast,res=dd1,type = "ashr")
plotMA(dd2,ylim=c(-5,5))

res <- dd2 %>% 
  as.data.frame() %>% 
  rownames_to_column("gene_id")

# 4.id轉換
anno <- data.table::fread("F:/TCGA-anno/gencode.v22.annotation.gene.probeMap",data.table = F) %>% 
  select(id,gene)
res1 <- anno %>% 
  inner_join(res,by=c("id"="gene_id"))
write.table(res1,file = "diff-tcga-prad.txt",sep  = "\t",row.names = F,col.names = T,quote = F)
save(exprSet_vst,file = "vst-tcga-prad.Rdata")
logFC矯正還是很有作用的嘛

果子洲更老師強烈推薦的lfcShrink

聲明:本文僅供學習交流用,禁止用于商業用途,如有侵權,請聯系刪除。
參考鏈接:
wx:喜大普奔,Deseq2重大升級,速度提升了60倍!(果子學生信)
wx:學好統計,我10分鐘就完成了別人服務器通宵才完成的分析。(果子學生信)

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容