romanhaa / Cerebro

Visualization of scRNA-seq data.
MIT License
93 stars 19 forks source link

Gene set expression with module score? #15

Open borshago opened 4 years ago

borshago commented 4 years ago

Hi and thanks for the very useful tool!

Currently gene set expression is calculated as an arithmetic mean, which has pitfalls like sensitivity to outliers. Could you add a feature where expression for gene sets is calculated like the module score in Seurat AddModuleScore? This would provide a sort of per-cell "enrichment" of a gene set, and would be more useful than just the mean.

Best regards, Daniel

romanhaa commented 4 years ago

HI Daniel,

Thank you for the suggestion. I agree that the mean is not an ideal measurement, here it just serves as a cheap (in terms of resources) approximation. Not only is it sensitive to outliers, one also has to keep the average number of transcripts per sample/cluster in mind as that affects the average expression of the genes of interest.

I already thought about alternatives, similar to the module score calculated by Seurat which is a very nice solution IMO. The biggest hurdle is of technical nature: the more calculation must be done, the longer it will take and the user has to wait making the interface feel sluggish. This is especially true for older machines.

One way this could be solved is letting the user choose how the gene expression should be calculated: mean, median, or something more sophisticated like a module score. I don't want to put Seurat on the list of dependencies to avoid unnecessarily inflating the size of the standalone version of Cerebro. Therefore, one would either have to copy the module score function and/or make something similar.

TL;DR: It's on the list of things to do :)

Best, Roman

borshago commented 4 years ago

Thanks for the info!

How about an option to store precomputed values of the module score for gene sets in the crb file? If this is doable, it would be interesting to have stored enrichment scores from AUCell as well:

https://bioconductor.org/packages/release/bioc/html/AUCell.html

Just my two cents. :)