6 weeks ago by
Cambridge, United Kingdom
For starters, it would help to show code, and it would help to tag the question with the package that you're using. I'm going to guess that you're talking about
scran::findMarkers, because the SingleCellExperiment package has no such function.
findMarkers(), DE comparisons are performed between pairs of clusters; then for each cluster, all results from all relevant pairwise comparisons (i.e., involving that cluster) are consolidated into a single marker list. This has various benefits (discussed at the end of this section) but the main point for your question is that there is no reason to expect symmetry between the marker lists for clusters 3 and 7 because their lists combine information from all other clusters.
Specifically, putting aside the direct comparison between clusters 3 and 7: if cluster 7 is very different from the other clusters (aside from 3), you'll get more DEGs. If cluster 3 is similar to the other clusters (aside from 7), then you'll get fewer DEGs. This is especially true with a
lfc threshold. Imagine the following gene:
- DE with a log-fold change of 1.5 between clusters 1 and 3
- DE with a log-fold change of 1.5 between clusters 3 and 7
- DE with a log-fold change of 3 between clusters 1 and 7
This would not be detected with your
lfc threshold as a DE gene for cluster 3, but would be detected as a DE gene for cluster 7.
If you want statistics for a specific pairwise comparison, set
findMarkers() and pull out the
stats.3, etc. from the marker
DataFrame for cluster 7 (or vice versa). This should yield identical results with the log-fold changes flipped in sign, provided you set
modified 6 weeks ago
6 weeks ago by
Aaron Lun • 25k