I have two RNA-seq datasets. One was sequenced at an average read count of 1.5 million per cell the other at 43K average reads per cell. For the first I also have the meta data from reads alligned and unaliagnable for each cell, but I may have to do some digging for the other dataset. I am looking for the presence of a few very informative genes being expressed at similar levels in the second dataset to confirmed examples of these cells in the first. The first dataset is much smaller.

My question is this: Are there normalization methods which I could use given the data I have to allow me to accurately say these cells are in the 90th or 80th percentile of a a particular gene being expressed?

  • 1
    $\begingroup$ More reads/UMIs will lead to more counts in the matrixes, so you can normalize for sequencing depth without using the fastq/bams directly. Indeed this is common with metrics like CPM. However, what are the single cell technologies used in this case? $\endgroup$ Feb 13 at 19:18

1 Answer 1


The default normalisation methods of DESeq2 have a quantile-like normalisation process (based on raw read counts), and this default process should be able to handle datasets with different read depths.

If that's not good enough, DESeq2 allows you to provide alternative information (e.g. cell counts) to bypass the usual normalisation process using the sizeFactors function:

The sizeFactors vector assigns to each column of the count matrix a value, the size factor, such that count values in the columns can be brought to a common scale by dividing by the corresponding size factor (as performed by counts(dds, normalized=TRUE)). See DESeq for a description of the use of size factors. If gene-specific normalization is desired for each sample, use normalizationFactors.

More details here:



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.