# Why does my SplitDotPlotGG plot show differential expression of a gene but Seurat::FindMarkers() function does not return it?

I have analysed and clustered my single cell rna seq data with methods in the Seurat package. After clustering, I obtained two main clusters: 0 and 1. I used the Seurat SplitDotPlotGG function to visualise the differential expression of a gene of interest X.

SplitDotPlotGG(object,
grouping.var = "clusterID",
genes.plot = c("geneX"),
cols.use = c("blue", "red"), plot.legend = T)


The plot shows clearly that there could be a significant differential expression of geneX between the conditions represented in clusters 0 and 1. However, I cannot see geneX in the list of differentially expressed genes returned when I run:

FindMarkers(object, ident.1 = 0, ident.2 = 1, genes.use = "geneX")


Is there be any explanation for this? Thanks in advance.

You're showing groups 1 and 2 in the plot but comparing groups 0 and 1 in the differential expression test, so you need to instead set ident.1 = 1, ident.2 = 2 in FindMarkers.
The FindMarkers function by default only returns genes with >0.25 log fold-change expression, with >3 cells in each group. It's possible that these criteria are not being met for gene X. You can try changing these defaults, setting logfc.threshold = 0 to return all genes.