plger/scDblFinder

Doublet filtering in Parse Biosciences data

Closed this issue · 6 comments

Hi,

I have single-cell Parse Biosciences data. I want to detect doublets in the data but I'm unsure what cutoff should be set up in scDblFinder() function. In Parse paper, authors claimed that doublet rates less than 3% even for 100,000 cells.

Screenshot from 2023-11-16 14-13-59

I'm wondering what dbr and dbr.sd arguments in scDblFinder() function should be set up for Parse data or something else that you would suggest for this.

Best regards.
~Kaan

Hi,

Is Parse the combinatorial indexing method (i.e. what used to be called split-seq before it was commercial)?

If they did some assays with different amounts of loading you can perhaps use that to estimate an expected rate, but if not it's not a big deal, in a typical context the importance of the expected doublet rate. You can leave dbr to the default and set dbr.sd=1 (i.e. very high uncertainty of the dbr), and basically those parameters won't have an impact, and the threshold will be set based on the misclassification rate.

You can also have a look at the histogram of the doublet score, unless you have a very complex dataset one typically observes a very strong bimodal distribution, so that it doesn't matter much where exactly one sets the threshold in between.

Hope this helps,
Pierre-Luc

Hi,

Yes. It is four-step barcoding to label cells in different wells.

I left dbr default and this ended up with ~2600 doublet but once I set up dbr = 0.03, it ended up with ~900 doublet because I thought that Parse has much lower doublet rate 10x has and I should set up smaller dbr.

I'll draw a histogram to see distribution of doublet rate, thank you for the suggestion.

Best.
~Kaan

Right, you probably do have a lot more cells than in a single 10x capture, right?
Try with a high dbr.sd, and let me know about your histogram of doublet scores!

The number of cells is 12k in data for now but data with ~ 1 million cells will be produced soon, so yes, number of cell will be way higher in Parse data compare to 10x.

Once dbr.sd = 1 set in scDblFinder() function, 2906 out of 12k cells detected as doublet which is much closer to what I expected.

Here, density of doublet score across cells:

Screenshot from 2023-11-22 22-15-41

It seems that doublet score is fairly discriminative between singlets and doublets by regarding histogram plot of doublet score. However, when I put score threshold of 0.598 manually, this ended up with almost the same number of doublets (2908) as what I found automatically with dbr.sd = 1. Is that threshold of 0.598 feasible in doublet detection?

Best.
~Kaan

I don't understand your question: the dbr and dbr.sd (along with the misclassification rate) are used to establish the threshold. Of course if you manually use the threshold one expects to find the same thing (I assume the difference is due to rounding)...

You've got very clear singlets and very clear doublets, and some ambiguous cells in the middle, which will be influenced by the thresholding. Where exactly you should place the threshold also depends on how bad missing doublets or singlets would be given your aims, but if you don't have strong opinion it's reasonable to leave it where the thresholding procedure set it.

My expectation was higher threshold in detection of doublets, e.g., around 0.9 but I'm surprised that it was ~0.6. I agree on difference in threshold due to rounding.

I see, I do not have strong opinion so I'll use dbr.sd = 1 and whatever threshold set up will be considered in doublet detection.

Thank you!