Algorithms used by Cellxgene

October 18, 2021 ยท View on GitHub

Differential expression

We're actively working on how to improve differential expression. The current implementation assumes normally distributed values on a linear scale.

Cellxgene's differential expression uses a Welch's t-test, which assumes that the two populations are normally distributed, but may have unequal variance. We use a two-sided t-test against the null hypothesis that the two populations have equal means. P-values are adjusted with the Bonferroni corrrection.

To help avoid spurious results, we only return genes with log fold change greater than 0.01:

|log2( mean(set1) / mean(set2) )| > 0.01

The log fold change threshold can be configured on cellxgene Desktop with the --diffexp-lfc-cutoff command. We then sort genes by their associated |t value| and return the top 15 genes.