I am new to data science. I have a dataset of single-cell gene expression from multiple cell types in C. Elegans. The dataset is from the paper Comprehensive single-cell transcriptional profiling of a multicellular organism

My main question is, Which approaches should I use for filtering out bad cells in this case when we have multiple cell types in the dataset?

So far I tried to filter out genes that have too high mitochondrial genes content following the Bioconductor “simpleSingleCell” workflow.

However, the tutorial specifically says that the method of filtering out based on mitochondrial genes most probably will not work when the dataset has multiple cell types:

Analyzing all cell types together would unnecessarily inflate the MAD and compromise the removal of low-quality cells, at best; or lead to the entire loss of one cell type, at worst.

Any suggestions would be greatly appreciated.

  • $\begingroup$ By filtering out what do you mean: removing the sample from the analysis when there are too many mithocondrial genes or removing the mitochondrial genes ? (This seems important in scRNAseq and I haven't worked with it, so excuse me if it is a naïve question) $\endgroup$
    – llrs
    Commented Dec 18, 2017 at 10:27
  • $\begingroup$ removing the bad quality samples $\endgroup$ Commented Dec 20, 2017 at 17:02
  • 1
    $\begingroup$ Not a standard, but I found this course helpful hemberg-lab.github.io/scRNA.seq.course . I personally filter cells with too low or too high transcript counts, cells with low count of detected genes, and cells with high spike-in/endogenous RNA ratio. Prior to this pipeline I also filter out ribosomal RNA. Take it with a grain of salt because I'm still experimenting on it. Also, this answer may help bioinformatics.stackexchange.com/a/3171/1771 $\endgroup$
    – gc5
    Commented Jan 10, 2018 at 20:35

1 Answer 1


From what I known, there is no clear consensus in the field and it depends on the type of cells you are interrogating.

However, if mitoRNA/endogenousRNA ratio does not fit for your purposes, other option is to check at the total number of genes/transcripts detected in each cell. In this way, you can filter out cells that have considerable less genes/transcripts detected than the rest since this may be indicative of bad quality cells for any reason (apoptosis, RNA degradation, sequencing itself, etc). For instance, to put a threshold of >1000 genes/transcripts in a cell to be considered for further analysis.

Consider also to take a look at the number of mapped reads for each cell, as cells with low mapped reads respect to the rest could be potentially problematic.

  • $\begingroup$ What does it mean ‘mapped reads’? How is it different from the expression matrix itself? $\endgroup$ Commented Jan 11, 2018 at 7:06
  • $\begingroup$ If you are using UMIs, usually I filter out those that are supported by less than 3 reads and some that do not fulfill QC requirements. In this case UMIs and mapped reads does not correspond (although should be very similar). At the end is another way of perform QC of the data but at an earlier stage of the analysis (before counting molecules and assign them to genes). $\endgroup$
    – plat
    Commented Jan 11, 2018 at 11:30

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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