wiki:SOP/scRNA-seq/tradeSeq

Trajectory-based differential expression analysis for single-cell sequencing data

​tradeSeq publication

​tradeSeq GitHub page

​tradeSeq tradeSeq workflow using input from From slingShot

​Workflow using input from Monocle

Example code importing only counts pseudotime and cells weights on each trajectory

#! /usr/bin/Rscript

library(tradeSeq)
library(monocle)
library(RColorBrewer)
library(SingleCellExperiment)
library(slingshot)
palette(brewer.pal(8, "Dark2"))

packageDescription("tradeSeq")$Version
#load data

cellPSMatrix <- as.matrix(read.table("Subset.PsTime.txt", sep="\t"))
cellWeights <- as.matrix(read.table("Subset.CellsWeight.txt", sep="\t"))
counts <- as.matrix(read.table("RawCounts.txt", sep="\t"))

#this step is optional
#select the subset of cells that are present on the pseudotime and cells weight file
countsFiltered <- subset.matrix(counts, select=rownames(cellWeights))  

#Evaluate the knots that we'll use when fitting the General Additive Models
icMat <- evaluateK(counts = countsFiltered,  k = 3:10, 
                   nGenes = 200, verbose = T,  pseudotime = cellPSMatrix,
                   cellWeights = cellWeights)

library(BiocParallel)
library(magrittr)

# Register BiocParallel Serial Execution (no parallelization in that case)
BiocParallel::register(BiocParallel::SerialParam())
FitModels <- fitGAM(counts = countsFiltered,nknots = 8, pseudotime = cellPSMatrix, cellWeights = cellWeights )

patternRes <- patternTest(FitModels)
oPat <- order(patternRes$waldStat, decreasing = TRUE)
head(rownames(patternRes)[oPat])
save.image("Data_afterPatternTest.RData")

pdf( "plotSmoothers.pdf", w=11, h=8.5) 
plotSmoothers(FitModels, countsFiltered , gene = rownames(patternRes)[oPat][1])
plotSmoothers(FitModels, countsFiltered , gene = rownames(patternRes)[oPat][2])
plotSmoothers(FitModels, countsFiltered , gene = rownames(patternRes)[oPat][3])
plotSmoothers(FitModels, countsFiltered , gene = rownames(patternRes)[oPat][4])
plotSmoothers(FitModels, countsFiltered , gene = rownames(patternRes)[oPat][5])
dev.off()

write.table(patternRes, file="PatternTest8knots.txt", sep="\t", quote=F, row.names=T)

Example of input files:

Note: See TracWiki for help on using the wiki.