From experience, SCTransform does not perform well unless the majority of the cells are of the same type. It will force true unique populations together with a heavy hand, whereas MNN is much more orthogonal in its changes. Seurat even has a wrapper around fastMNN.
Haven't tried the other options though, so can't speak to them.
The results seem to be very experiment-specific. For example, in today's SCRIBE pre-print, all the methods (except the one introduced) perform poorly:
One thing to notice is that they all fail in different ways, so the problems don't seem to be due to some artifact in the data itself. For example, MNN mixes NF and TH, but Seurat splits PEP.
We tested 14 state-of-the-art batch correction algorithms designed to
handle single-cell transcriptomic data. We found that each
batch-effect removal method has its advantages and limitations, with
no clearly superior method. Based on our results, we found LIGER,
Harmony, and Seurat 3 to be the top batch mixing methods.
So far, MNN is the best (but still very limit) algorithm for general batch effect correction method. But based on the recent paper (https://www.nature.com/articles/s41587-019-0113-3 ), in some situations, it just exhibits minor improvement than doing nothing. It's all depends on how good your data are.
It also depends on what you do and how you want to analyze your data. If you have data with conditions, e.g. a pertubation versus wildtype, then your data can be as good as they come, you will (if the pertubation has a strong effect) see clustering almost completely driven by presence or absence of the pertubation. If you want to get a unified clustering landscape, assuming that the celltypes are actually very similar on both cases, you will need to use batch correction to enforce clustering by celltype- rather than condition. What I want to say is that it is not only the quality of the data. Batches can also be treatment conditions, or individual donors (like patients). I (worked well for my data using pertubations) recommend to check fastMNN from the batchelor package (bioconductor).
thank you all for your suggestions ! if I may ask for another suggestion please regarding scRNA-seq analysis:
shall we have 2 scRNA-seq samples that do not align too well by using either CCA (in Seurat 2) or Seurat 3 methods (with batch correction in Harmony, Liger, Conos, etc, as we have discussed above), the functions that compute the CONSERVED MARKERS (FindConservedMarkers) or DIFFERENTIAL MARKERS (FindMarkers) likely fail on the cell clusters that DO NOT ALIGN.
how could I still compute the CONSERVED or DIFFERENTIAL MARKERS on the cell clusters that DO align (in some extent) ? If anyone has the experience and would like to share it please. Many thanks for your suggestions; be safe, stay healthy,
-- bogdan
ps : 've posted a similar question on Seurat github web page, and i have not heard from Seurat's authors about it for a while.
I think most of the batch correct algo are over-processing/ over-normalizing the data. They are implicitly assume some situations, such as scRNASeq data are neighboring graph, etc, while many real life data may not satisfied. And people should accept the fact that not all samples could be merged.
we have 2 scRNA-seq samples that do not align too well
How do you determine if they align well?
functions that compute the CONSERVED MARKERS (FindConservedMarkers) or DIFFERENTIAL MARKERS (FindMarkers) likely fail on the cell clusters that DO NOT ALIGN
Why are they likely to fail? Why not try to see if they actually fail?
Hi Igor, thank you for your note. Very helpful, as they have pointed into the correct direction, many thanks !
Regarding the alignment of cells, we evaluate it mainly by the visual examination of TSNE or UMAP plots, and by the number of cells from different samples in each cluster (ie. the ratio).
Regarding your second question, you were right, it has been an oversight on my side, i had tried to print more differential genes than available in a list :
Yeah, it'd be great if someone did a nice comparison of methods given how many there are. Like the dynverse did for trajectory analysis.
There is finally a fairly comprehensive comparison, both in terms of the number of methods as well as the number of datasets: A benchmark of batch-effect correction methods for single-cell RNA sequencing data:
I hope I am wrong, but I am not sure anything like dynverse will every happen again.
I doubt it too, but it's an incredible resource and the people behind it deserve a hell of a lot of credit.