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

Usage between swappedDrops and chimericDrops ... #86

Open
drkoryjohns opened this issue Apr 15, 2022 · 3 comments
Open

Usage between swappedDrops and chimericDrops ... #86

drkoryjohns opened this issue Apr 15, 2022 · 3 comments

Comments

@drkoryjohns
Copy link

drkoryjohns commented Apr 15, 2022

Hello,

Thank you for making available the DropletUtils tool suite. Question please. I am interested in employing your tools as part of pre-processing in the following order: swappedDrops -> chimericDrops -> emptyDrops -> maximumAmbience -> downsampleReads. However, swappedDrops and chimericDrops both require the mol.info as input then output a cleaned count matrix. How can I correct for swapped drops then chimeric drops when both tools require the same starting input? This seems to be the case for removeAmbience. While, emptyDrops requires the ambient estimate to identify and remove empty drops, hence why I am looking at using maximumAmbience after emptyDrops. But, need clarity and guidance on usage between swappedDrops and chimericDrops. How can I employ both in order that is correct that ensures pre-processing corrects for these events that you describe as important to correct for.

Thanks in advance for your time and feedback.

Best,

Kory Johnson

@drkoryjohns
Copy link
Author

I saw this reply in prior dated issue:

For barcode swapping: the swappedDrops just loads the data from the molinfo file and then calls removeSwappedDrops. The latter function doesn't care where the data comes from, so you can just call it directly with your data. The same idea applies with chimericDrops, which just calls removeChimericDrops.

I will explore doing this.

@LTLA
Copy link
Collaborator

LTLA commented Apr 18, 2022

I don't think it's possible to run both of them. I don't use chimericDrops other than for testing, so it was never a consideration.

If you really, really, need to do this, I suppose you could call the internal DropletUtils:::find_swapped or DropletUtils:::find_chimeric functions. The first output should be a vector specifying the molecules that are not swapped/chimeric; you can use that to filter the molecule information vectors for input into the next function.

If that is useful, I may consider adding an option to return these logical vectors. Otherwise the :::'d functions should be considered internal and subject to change so use at your own risk.

@drkoryjohns
Copy link
Author

drkoryjohns commented Apr 18, 2022

Thanks for getting back to me so quickly. I will proceed with: swappedDrops -> emptyDrops -> remove ambient RNA using soupX using the post swappedDrops matrix as "raw" and the post emptyDrops as "filtered" -> downsampleMatrix -> Seurat SCT reference integration workflow -> perform cluster over range of resolution -> clustree to pick subjective best resolution -> perform doublet cluster and doublet curation -> repeat clustering using MultiK over range for non-subjective resolution selection and final clustering, marker selection, characterization. Want to use DropletUtils upfront of course to prevent garbage in garbage out. I saw and understand the reply to another post you provided regarding downsample vs scaling. Will see to what extent downsampling impacts vs scaling. Any additional comments are most welcome. Thanks again. Best, Kory

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