kallisto等alignment-free轉錄本定量軟體,會給出TPM
值的定量結果。基於這種類型的結果進行差異分析時,有兩種策略可以選擇。
第一種是採用tximport
R包,將結果導入到DESeq2
種進行分析;第二種是直接採用sleuth
R包進行差異分析。本章主要介紹sleuth
的使用。
這個包的原始碼存放在github上,連結如下
https://github.com/pachterlab/sleuth
github上的R包其安裝方式比較特殊, 具體過程如下
source("http://bioconductor.org/biocLite.R")biocLite("rhdf5")library(devtools)install_github("pachterlab/sleuth")
首先從Bioconductor上安裝依賴的rhdf5
包,因為kallisto的定量結果為HDF5格式,這個R包用來讀取數據,然後採用devtools
這個R包,自動從github的原始碼進行安裝。
所有差異分析需要的都是定量結果和樣本分組這兩個基本元素,只不過不同的R包要求的格式不同。在sleuth
中,將這兩種信息存儲在一個三列的數據框中,示例如下
> s2c samples group paths1 control-1 control kallisto/control-12 control-2 control kallisto/control-23 control-3 control kallisto/control-34 case-1 case kallisto/case-15 case-2 case kallisto/case-26 case-3 case kallisto/case-3
第一列為樣本名稱,第二列為樣本對應的分組信息,第三列為每個樣本kallisto定量結果的文件夾。通過這樣的一個數據框,就包含了差異分析所需的所有信息。
假定有6個樣本,分成control,case 兩組, 每組3個生物學重複,可以通過以下代碼構建上述的數據框
samples = c("control-1","control-2","control-3","case-1","case-2","case-3")s2c <- data.frame(samples = samples,group = rep(c("control", "case"), each = 3),paths = paste("kallisto", samples, sep = "/"))
上述代碼要求將所有樣本的定量結果放在同一個文件夾下,目錄結構如下
kallisto/├── control-1├── control-2├── control-3├── case-1├── case-2└── case-3
上述數據框準備好之後,就可以讀取數據進行差異分析了,完整的代碼如下
library(sleuth)so <- sleuth_prep(s2c, extra_bootstrap_summary = TRUE)so <- sleuth_fit(so, ~condition, 'full')so <- sleuth_fit(so, ~1, 'reduced')so <- sleuth_lrt(so, 'reduced', 'full')sleuth_table <- sleuth_results(so, 'reduced:full', 'lrt', show_all = FALSE)
以上用法只是進行兩組間的差異分析,更多的用法請參考官方文檔。
·end·