RNAseq下遊分析(一)--標準化及簡單可視化

2021-01-18 BioparaMeta
前言

做轉錄組一般拿到基因表達矩陣之後工作即可開始做差異分析,在此之前還有一步就是對矩陣做標準化,常見的幾種RPKM、FPKM、TMM等,雖然RPKM、FPKM方法被吐槽的尤為厲害,但是大多數測序公司給出的結果依然還是很多在使用這種方法,同樣網上對各種標準化的方法也各有見解,如何選擇建議大家多去google了解每種方法的優劣,適用於何種情形,根據自己的數據選擇最合適的標準化方法,比如TPM這種方法會對各個樣品的總基因表達量均一化處理使其一致,會更適合觀察哪個基因在哪個組織裡高表達這種類型的實驗~

RPKM和FPKM的公式一致為read counts / (mapped reads (Millions) * exon length(KB)),可以看到其實標準化就是倆點 ,length指的就是基因的長度,mapped reads指的是所有基因上計數後的reads總數,TPM的方法和這兩種方法的最大區別就是長度和reads總數彼標準化順序先後的問題,之前看到了一個帖子(參考連結1),解釋的很清晰可以,對基因長度和mapped reads這倆點的一些常見誤區做了介紹,大家可去原貼瀏覽,且文中推薦了一種新的方法計算這個基因長度

計算基因長度需要用到gtf文件,代碼如下:

# 根據gtf文件求基因長度,載入GTF文件,其實和feature結果一致
library(GenomicFeatures)
txdb <- makeTxDbFromGFF("hg38.gtf",format="gtf")
#通過exonsBy獲取每個gene上的所有外顯子的起始位點和終止位點,然後用reduce去除掉重疊冗餘的部分,最後計算長度
exons_gene <- exonsBy(txdb, by = "gene")
exons_gene_lens <- lapply(exons_gene,function(x){sum(width(reduce(x)))})
#獲得每個基因下所有外顯子的總長度後,就可以利用上述公式計算FPKM了。
exons_gene_lens <- as.matrix(exons_gene_lens)
write.table(exons_gene_lens, 'length.txt', sep = '\t', col.names = NA, quote = FALSE)
#通過exonsBy獲取每個gene上的所有外顯子的起始位點和終止位點,然後用reduce去除掉重疊冗餘的部分,最後計算長度

RPKM標準化
#導入基因長度文件
leng <- read.delim('length.txt',header = T,stringsAsFactors = FALSE,check.names = FALSE)
#導入counts矩陣
count <- read.table('RPKM.txt',header = T,row.names = 1,stringsAsFactors = FALSE,check.names = FALSE)
#將其順序一致
count <- count[match(leng$Geneid,rownames(count)),]
length <- leng[,2]#提取長度
total_count<- colSums(count)#計算各樣本總數
#RPKM標準化
rpkm <- t(do.call( rbind,
                   lapply(1:length(total_count),
                          function(i){
                            10^9*count[,i]/length/total_count[i]
                          }) ))
dim(na.omit(rpkm))
colnames(rpkm) <- colnames(count)
rownames(rpkm) <- leng$Geneid
rpkm <- as.data.frame(rpkm)

熱圖
#相關性熱圖  
library(RColorBrewer)
rpkm <- log2(rpkm+1) #log一下
cor_pearson <- cor(rpkm, method = 'pearson')
coul <- colorRampPalette(brewer.pal(8, "PiYG"))(25)
pheatmap::pheatmap(cor_pearson,display_numbers = T,color = coul)

圖片.png箱線圖
#做各個樣本箱線圖
tiff('boxplot.tiff', width = 1000, height = 600)
#設置分組信息 方便作圖
group_list <- c(rep('T',2),rep('N',2),rep('a',2),rep('b',2),rep('c',2),rep('d',2))
group_list <- factor(group_list,levels = c('T','N','a','b','c','d'),ordered=TRUE) #設置一下分組,因為我有12個樣品,6個組.
boxplot(rpkm,outline = FALSE,border  = group_list,las =2,varwidth = T,
        main = 'RPKM counts',ylab = 'log(RPKM+1)')
dev.off()

圖片.png線性回歸擬合

對兩兩樣品之間我們可以做線性回歸散點圖,之前都是一個個的去提取兩組畫圖,感覺頗為麻煩,然後看到了一個帖子get到了新方法,還是用函數去解決更為方便~

scaplot_r2 <- function(indata,inx,iny){
  nms <- names(indata)
  x <- nms[inx]
  y <- nms[iny]
  regression <- paste0(x,"~",y)
  dat.lm <- lm(as.formula(regression),data = indata)
  r2 <- sprintf("italic(r) == %.4f",sqrt(summary(dat.lm)$r.squared)) 
  labels <-  data.frame(r = r2,stringsAsFactors = FALSE)
  #注意此處需要加上 !!ensym 函數才可以
  p3 <- ggplot(indata, aes(x = !!ensym(x), y = !!ensym(y))) +
    geom_point(colour = "black", size = 1) +
    theme_light() +
    stat_smooth(method = lm, se = FALSE,colour = 'pink') +
    labs(x=paste0(x," (log2 intensity)"),y=paste0(y," (log2 intensity)"))+
    geom_text(data=labels,mapping=aes(x = 6,y=1,label=r2),parse = TRUE,inherit.aes = FALSE,size = 6)
  #  annotate("text", label = r2, x = 5.0, y = 1)
  ggsave(paste(x,'vs',y,'.tiff',sep = ''),p3, width = 6, height = 5)
}
scaplot_r2(rpkm,3,7)#指定兩組

除了!!ensym 函數這種形式,下方參考連結2中還介紹了另一種方法用到everything函數,大家可以去看原貼學習~~其實轉錄組還有很多方法直接用原始矩陣去做差異分析,Deseq2,edgeR等等都有自己的標準化方法,大家也可學習!!今天就先介紹到這吧~

參考連結

1.https://www.bioinfo-scrounger.com/archives/342/ 

2.https://www.jianshu.com/p/393e92aaca68

相關焦點

  • RNA-seq的標準化方法的不完全整理
    在RNA-seq標準化這個領域也是如此,目前用的最多也就是, RPKM/FPKM, TPM,但是注意,有些時候一個方法出現的多,單純是因為公司沒有修改他們的分析流程。為了方便理解,假設目前你在一次測序中(即剔除批次效應)檢測了一個物種的3個樣本,A,B,C,這個物種有三個基因G1,G2,G3, 基因長度分別為100, 500, 1000.
  • RNA-seq的3的差異分析R包你選擇哪個
    很多課題組導師都認為做一個RNA-seq項目就能發CNS啦,就跟這兩年大家以為做一個單細胞轉錄組項目就可以發CNS的堅信程度是一模一樣的!直到現在(2020),基於高通量測序技術的RNA-Seq方法仍然是轉錄組學研究中必不可少的工具。截止到(2016)已經普遍接受的是,標準化預處理步驟可以顯著提高分析質量,特別是對於差異基因表達分析而言。
  • 3*差異分析方法和可視化方法匯總
    這次我們推出的課程更加側重於分析技能和技巧的講解,相信客戶能夠更好的進行復現和重複。2、所涉及的代碼操作,參數全部外置,客戶可以不用讀懂代碼也可以操作。4、所有的課程都提供demo數據測試,並經過了內部審核。Limma、RankRrod、Deseq2、edgeR、t-test。
  • C-Myc 與RNA-seq分析
    Okay,扯的有點遠,大家看題目,我除了寫了RNA-seq,還寫了C-Myc,這可是一個非常有名的基因,做癌症生物學的人知道它與增殖信號相關,做幹細胞的人知道這是yamanaka在製作小鼠iPS所選用的四個轉錄因子之一,這個基因被研究的也很早,目前依舊火熱中。
  • 研究探討RNA-seq數據分析方法
    然而,測序之後的數據分析才是真正的挑戰。在RNA-seq之後,還需要一些強大的計算工具,才能繪製出完整的轉錄組圖譜。在這一期的《自然—方法學》(Nature Methods)上,來自MIT和哈佛Broad研究院的研究人員發表了一篇綜述,介紹了轉錄組注釋和定量的計算方法。
  • 超能餅乾|SnapATAC分析單細胞ATAC-seq數據(三)
    簡介在本教程中,我們將對PBMC的兩個scATAC-seq數據集(5K和10K)和一個scRNA-seq數據集進行整合分析。這三個數據集均來自10X genomics測序平臺產生的數據,可以直接在10x官網下載使用。
  • Nature重磅綜述 |關於RNA-seq,你想知道的都在這
    而當這些基本假設不成立時,就需要仔細考慮是否以及如何執行標準化了。例如,如果一組特定的基因在一個樣品組中高表達,而相同的基因加上另一組基因在另一個樣品組中表達,那麼簡單地標準化測序深度是不合適的,因為在第二個樣本組中相同數目的reads會分給更多數目的基因。標準化方法如edgeR所使用的的M-值的加權截尾均值 (trimmed mean of M-values , TMM)可以處理這一情況。
  • 從數據分析到結論產生,談談scATAC-seq
    然而,由於scATAC-seq數據固有的高噪聲和稀疏性,使得生物信號的準確提取和生物假設的有效制定變得困難。為了克服ScATAC-seq數據分析中的這些限制,在過去幾年中開發了新的方法和軟體工具。然而,關於scATAC-seq數據分析的最佳實踐還沒有達成共識。
  • ChIP-Seq數據挖掘系列-3: Motif 分析(3) - 利用ChIP-Seq結果在基因組區域中尋找富集的Motifs
    例如,如果將某種實驗的peak與另一種實驗peak相比較,可以再創建一個peak/BED文件(參數:"-bg <peak/BED file>"),將會對背景進行移除GC-bias操作和自動標準化。
  • ...學院張強鋒課題組利用深度學習人工智慧算法分析單細胞ATAC-seq...
    生命學院張強鋒課題組利用深度學習人工智慧算法分析單細胞ATAC-seq數據清華新聞網10月12日電 10月8日,清華大學生命學院的張強鋒課題組在《自然·通訊》(Nature Communications)上發表題為「SCALE方法基於隱特徵提取進行單細胞ATAC-seq數據分析」(SCALE method for
  • RNA-seq尋找生物標誌物將更簡單
    ,讓通過全血RNA-seq進行生物標誌物的發現和分析,將會變得更為簡單。根據研究人員介紹,這項研究首次介紹了一種詳細方法——GlobinLockTM——能夠克服紅細胞引起的血樣分析的局限性,紅細胞使得從血液中識別或跟蹤下遊的任何生物標誌物,都變得複雜化。已公布的和正在申請專利的試驗,最大限度地減少了對試劑和樣品材料的需求,從而使得它成為一種有效和強大的工具。
  • QB期刊 |RNA-seq數據計算方法大匯總
    為了回答各種生物問題,十年來不同領域的研究者已為第二代RNA-seq數據分析提出了超過2000種計算與分析方法。該綜述文章從四個層面(樣本,基因,轉錄本,和外顯子)對RNA-seq數據的分析方法進行了總結,旨在歸納看似不同的方法背後共通的統計假設和模型。
  • 解讀單細胞RNA-seq技術
    從技術的角度來看,仔細分析這些細胞如何單獨起作用,製造一個器官,為研究人員帶來了巨大的挑戰。但是,隨著科學家們不斷設計出的巧妙新技術,梳理每個細胞在許多複雜過程中所起的作用,這些挑戰都會逐漸消失。一系列事件當進入一個生日聚會時,大多數人所做的第一件事情就是,簡單的觀察,跟來賓交談。他們是誰?他們做什麼?他們來自哪裡?他們認識壽星多久了?
  • RNA-seq 檢測變異之 GATK 最佳實踐流程
    RNA-seq 序列比對對 RNA-seq 產出的數據進行變異檢測分析,與常規重測序的主要區別就在序列比對這一步,因為 RNA-seq 的數據是來自轉錄本的
  • The Scientist:從晶片到RNA-seq的轉型之路
    在這一技術最輝煌的時期,準備研究基因表達模式的人都會想到使用晶片。不過隨著測序成本的直線下降,RNA測序(RNA-seq)成為了越來越受歡迎的轉錄組分析方法。DNA晶片上排列著大量的核酸探針,可以代表生物的整個基因組或部分基因組,比如外顯子、miRNA、單核苷酸多態性SNP等等。用晶片分析基因表達需要抽提RNA,將其反轉錄為cDNA,然後進行螢光標記。
  • 一個超簡單的轉錄組項目全過程--iMac+RNA-Seq(四)featureCounts
    前期文章一個超簡單的轉錄組項目全過程--iMac+RNA-Seq(一)一個超簡單的轉錄組項目全過程-
  • 如何做GO和KEGG富集分析(GSEA)?
    我們做完RNA-seq差異基因表達分析後,一個頭疼的問題就是如何完成GO和KEGG的富集分析。
  • 很簡單哦!3步教你構建RNAseq文庫
    RNAseq文庫,也稱全轉錄組散彈槍測序文庫,提供細胞進程的快照,使研究人員能夠獲得有關轉錄組在環境變化、疾病期間或藥物應用後的變化的信息。RNAseq文庫還允許檢測mRNA剪接變體和SNPs。RNAseq文庫幾乎取代了微陣列,因為微陣列需要一個已知的模板。
  • Cell:新研究揭示人體體液中存在6種胞外RNA貨物類型
    2019年4月24日訊/生物谷BIOON/---在一項新的研究中,為了開發由胞外RNA(extracellular RNA, exRNA)介導的細胞-細胞通訊圖譜,美國國家衛生研究院(NIH)胞外RNA通訊聯盟(NIH Extracellular RNA Communication Consortium)創建了exRNA圖譜資源(https://exrna-atlas.org
  • 用數據說話,R語言有哪七種可視化應用?
    今天,隨著數據量的不斷增加,數據可視化成為將數字變成可用的信息的一個重要方式。R語言提供了一系列的已有函數和可調用的庫,通過建立可視化的方式進行數據的呈現。在使用技術的方式實現可視化之前,我們可以先和雷鋒網一起看看如何選擇正確的圖表類型。作者 Dikesh Jariwala是一個軟體工程師,並且在Tatvic平臺上編寫了一些很酷很有趣的程序。