You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Not member of dev team but hopefully can be helpful. In my opinion DotPlot is probably not the best tool for visualization of module scores. There are two issues with plotting module scores via a DotPlot that are of particular note.
So in basic sense as described in manual AddModuleScore is doing the following: Calculate the average expression levels of each program (cluster) on single cell level, subtracted by the aggregated expression of control feature sets. All analyzed features are binned based on averaged expression, and the control features are randomly selected from each bin.
So each cell has a score (in very basic sense positive scores are enriched compared to the randomly selected control gene set and vice-versa for negative scores). Because the code that DotPlot uses to determine % expression has threshold of 0 it is counting the % expressed as those only with positive module scores. However, just having a positive module score doesn't necessarily mean the enrichment is statistically significant and thus % expressing is a bit deceiving.
Due to the nature of module scores I think in terms of visualization of them on using DotPlot also becomes problematic for average expression metric (which anyways is normally based on scaled expression data which is not the case for module score). The distribution of scores I think are often more relevant personally.
Overall in my opinion I think the more relevant plotting functions that you could do other than simply overlaying on tSNE/UMAP are VlnPlot and/or FeatureScatter. Here is example from my own data with a score using core signature of microglial genes with VlnPlot:
Or the same microglia score plotted against and artificial score using FeatureScatter (See Figure 1H)
You can also run stats independently on the module score (see #3719) to compare between different populations or experimental conditions. Can easily be done using wilcox.test function of base R.
Hello!
From #3521 I learned how to plot a list of genes onto one dot plot:
However, unlike the usual dotplot code, this dot plot does not have the average expression scale added in:
DotPlot(object = sobj, features = c("TFF1", "MB", "ANKRD30B", "LINC00173", "DSCAM-AS1", "IGHG1", "SERPINA5")) + RotatedAxis()
Is there a way to add the average expression scale onto the merged dot plot also?
Hopefully this makes sense, and thanks for reading!
The text was updated successfully, but these errors were encountered: