Differential expression analysis


I have integrated multiple sc datasets using scvi. Now I’m working on annotating the data. The first step of manual annotation is to conduct differential expression analysis between cluster. It seems that SCVI.differential_expression by default conducts differential expression analysis on the original expression matrix (X), though the clusters are assigned according to the latent space embedding. I wonder if this makes sense since the batch effect that lies in X hasn’t been removed. Should I instead force SCVI.differential_expression to conduct differential expression analysis on the corrected expression matrix (Expected
frequency fw(zn, sn) in the paper)?


1 Like

Hi, thank you for your question. SCVI uses the batch-corrected normalized expression values (denoted as \rho_n in the manuscript) for computing differentially expressed genes. You can see the relevant code portion here

1 Like

I had no idea scanpy had differential expression. That would be awesome if I never had to leave Python to get differential expression.

What method does it use for the algorithm?