MNN batch correction of pre-computed PCA
1
0
Entering edit mode
tahvdbrand ▴ 10
@tahvdbrand-23062
Last seen 19 months ago

Hi there,

I wonder whether it might be possible to perform MNN batch correction in PC space.

The reason I'd like to do this is because I'm working with single cell ATAC-seq instead of single cell RNA-seq and since the data is (effectively) binary, the processing steps are somehwat different. It doesn't make sense to calculate log expression matrices for example, which is the recommended input for batchelor::fastMNN().

Therefore, my idea was to compute a PCA on the combined datasets (using TF-IDF weighting followed by SVD) and subsequently use the MNN batch correction. I think it might be possible in theory since the documentation of bachelor::fastMNN() states: "It performs a multi-sample PCA via multiBatchPCA and subsequently performs all calculations in the PC space". A possibly relevant detail here is that I remove PC1 which captures cell sequencing depth almost perfectly, but is not biologically interesting.

My question is, (1) is this possible and how would I go about doing this and (2) does this approach makes sense? Any advice is appreciated!

Best wishes, Teun

single cell batchelor • 232 views
1
Entering edit mode

I totally overlooked the batchelor::reducedMNN function which exactly does what I want. Sorry for so hastily posting a question!

2
Entering edit mode
Aaron Lun ★ 27k
@alun
Last seen 8 hours ago
The city by the bay

Yep, you got it. Note that reducedMNN doesn't do the cosine normalization, but I don't think that's really necessary in general anyway. We had one dataset where it was clearly beneficial and I've been loathe to get rid of it since, despite my general and persistent ambition to simplify all of these algorithms.

0
Entering edit mode

It worked beautifully for the scATACseq datasets too, thanks Aaron and Laleh for this method