Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Doublet filtering in Parse Biosciences data #90

Closed
kaanokay opened this issue Nov 16, 2023 · 6 comments
Closed

Doublet filtering in Parse Biosciences data #90

kaanokay opened this issue Nov 16, 2023 · 6 comments

Comments

@kaanokay
Copy link

kaanokay commented Nov 16, 2023

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

@plger
Copy link
Owner

plger commented Nov 17, 2023

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

@kaanokay
Copy link
Author

kaanokay commented Nov 17, 2023

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

@plger
Copy link
Owner

plger commented Nov 21, 2023

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!

@kaanokay
Copy link
Author

kaanokay commented Nov 23, 2023

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

@plger
Copy link
Owner

plger commented Nov 23, 2023

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.

@kaanokay
Copy link
Author

kaanokay commented Nov 23, 2023

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!

@plger plger closed this as completed Dec 7, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants