之前分享了用tradeSeq分析沿轨迹变化的基因,可以找到谱系内和谱系间都显著表达的基因,找到这些基因之后,按照常规思路,需要看看这些基因分别是什么,有什么功能,富集到了哪些pathway。换个思路,能不能直接找出沿轨迹显著变化的pathway?其实很简单,把tradeSeq的输入文件换成pathway打分矩阵就可以。
1.用AUCell给pathway打分
在GSEA网站上下载自己需要的geneset.gmt文件,也可以自己制作,用AUCell打分。
#####=========AUCell打分=========#####
library(AUCell)
library(clusterProfiler)
cells_rankings <- AUCell_buildRankings(sc@assays$RNA@data)
Hallmarker <- read.gmt("/project/mh.all.v2023.1.Mm.symbols.gmt.txt")
geneSets <- lapply(unique(Hallmarker$term),
function(x){print(x);Hallmarker$gene[Hallmarker$term == x]})
names(geneSets) <- unique(Hallmarker$term)
cells_AUC <- AUCell_calcAUC(geneSets, cells_rankings,
aucMaxRank=nrow(cells_rankings)*0.1)
sc_AUC <- getAUC(cells_AUC)
2.tradeSeq常规分析(参考之前的分享tradeSeq | Slingshot下游 沿轨迹分析基因表达 - 简书 (jianshu.com))
注意:这里的counts是pathway打分矩阵,nGenes是pathway个数,k自定(后续分析参考之前的文章,出图类似)
icMat <- evaluateK(counts = sc_AUC,
sds = crv1,
nGenes = 50,
k = 3:10,
verbose = T,
plot = TRUE)
sce <- fitGAM(counts = sc_AUC,
pseudotime = pseudotime,
cellWeights = cellWeights,
nknots = 6, verbose = TRUE,
BPPARAM = MulticoreParam(20),parallel=T)
table(rowData(sce)$tradeSeq$converged)#查看收敛基因个数