推斷兩種表型之間 (如處理 vs 對(duì)照、腫瘤 vs 正常、應(yīng)答者 vs 非應(yīng)答者) 分泌蛋白活性的變化。輸入的表達(dá)值應(yīng)來自RNAseq或MicroArray數(shù)據(jù),需經(jīng)過log2(x+1)轉(zhuǎn)換,x可以是RNAseq數(shù)據(jù)中的FPKM、RPKM或TPM值。演示數(shù)據(jù)來自一個(gè)接受抗IFNG抗體AMG 811單劑治療的盤狀紅斑狼瘡患者臨床隊(duì)列。通過SecAct框架,預(yù)測(cè)治療組與對(duì)照組之間分泌蛋白活性的變化。
library(SecAct)
dataPath <- file.path(system.file(package="SecAct"), "extdata/")
expr <- read.csv(paste0(dataPath,"GSE100093.IFNG.expr.gz"), sep="\t")
meta <- read.csv(paste0(dataPath,"GSE100093.IFNG.meta"), sep="\t")
expr.treatment <- expr[, meta[,"Treatment"]=="Anti-IFNG"]
expr.control <- expr[, meta[,"Treatment"]=="Control"]
將expr.treatment和expr.control輸入到SecAct.activity.inference函數(shù)中,以推斷處理組與對(duì)照組之間分泌蛋白活性的變化。默認(rèn)參數(shù)下,SecAct計(jì)算的是兩種表型之間的整體活性變化 (is.singleSampleLevel = FALSE),可以通過設(shè)置 is.singleSampleLevel = TRUE來獲得每個(gè)處理組樣本的活性變化。注意,如果是配對(duì)樣本,將默認(rèn)設(shè)置is.paired = FALSE改為TRUE。
res <- SecAct.activity.inference(inputProfile = expr.treatment, inputProfile_control = expr.control, is.singleSampleLevel = F, is.paired = F)
act.change <- res$zscore
head(act.change)
Change
A1BG 11.004840
A2M 12.095746
A2ML1 -7.503564
ABHD15 -4.295565
ABI3BP 11.102537
ABO -6.030371
如果已經(jīng)有差異表達(dá)變化結(jié)果,而不是兩個(gè)表型的表達(dá)矩陣,也可以直接運(yùn)行 SecAct.activity.inference,并設(shè)置 is.differential = TRUE,也可以得到相同的結(jié)果。
expr.diff <- matrix(data = rowMeans(expr.treatment) - rowMeans(expr.control), ncol = 1, dimnames = list(row_names = rownames(expr.treatment), col_names = "Diff"))
res <- SecAct.activity.inference(inputProfile = expr.diff, is.differential = T)
act.change <- res$zscore
head(act.change)
Change
A1BG 11.004840
A2M 12.095746
A2ML1 -7.503564
ABHD15 -4.295565
ABI3BP 11.102537
ABO -6.030371
結(jié)果中正值表示分泌蛋白在處理組中活性更高,負(fù)值表示在對(duì)照組中活性更高。從下面結(jié)果的可以看到,IFNG的活性下降符合預(yù)期,這與治療組接受抗IFNG治療的結(jié)果一致。
act.change["IFNG","Change"]
[1] -44.19696
可視化活性變化
可以使用 SecAct.bar.plot 函數(shù)可視化感興趣的分泌蛋白。這里選取處理組與對(duì)照組之間活性變化最顯著的前10個(gè)分泌蛋白來展示。
up.SPs <- names(sort(act.change[,"Change"], decreasing = TRUE))[1:10]
down.SPs <- names(sort(act.change[,"Change"]))[1:10]
SPs <- c(up.SPs, down.SPs)
fg.vec <- act.change[SPs, "Change"]
SecAct.bar.plot(fg.vec, title="Activity Change (treatment vs control)")
