-
Notifications
You must be signed in to change notification settings - Fork 581
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
diffxpy integration #1955
Comments
Hi @pinin4fjords! I understand by integration, you mean access under the scanpy api. We try to advance the scanpy environment by modular extensions, which are packages with their own API, that also work on adata instances. This is currently what diffxpy is and there are no plans to collect all scanpy-related packages under |
@davidsebfischer ahh, maybe what I need is already there. Basically I'd like to be able to treat diffxpy as a drop-in replacement for rank_genes_groups(), such that the same slots (as far as makes sense) are populated in the anndata object, similar plots can be generated etc. My admittedly superficial skim of diffxpy suggested that anndata was accepted as an input format, but results are not stored in the anndata object- is that incorrect? |
Ok, you are raising a valid point which is centred around a unified output structure for differential expression. Currently, diffxpy yields custom objects that can do a number of things, but we could also populated adata with similar entries as rank_genes_groups does. @ivirshup do you know of a roadmap for the rank_genes_groups output signature or is that meant to stay as it is now? |
We have our CLI layer for Scanpy, and I could put this integration there, but it'd be a shame to silo code that might be useful to other Scanpy users, so happy to contribute to something in the external API if you guys are willing. |
@Koncopd has looked at refactoring the Maybe an easier path forward would be to be able to directly pass values into the various plotting functions? You can already generate mostly similar plots from |
What we're really after is the more general ability to execute different d/e tools without too much extra work, and have the results stored consistently in the annData for whatever downstream applications (plotting or otherwise), or just so that they're available for consumers of our annData objects. But maybe if it's something you guys aren't keen on we can just code it up in our own software layer. |
That sounds nice! I can't say I recommend the use of Some previous discussions that are relevant here: #562 (comment), #723 (comment), #1156 |
I find |
Sure, this all sounds good, and .varm sounds sensible. I may need some solution that preserves compatibility with the existing structures so I don't break plotting- our CLI tools are used for training etc where they do use those functions. We already do some dataframe conversions for exporting tables, so maybe we'll just repurpose that code. |
You may be interested in
I think this data fits in |
Thanks on that method @ivirshup - our version was written before I was maintainer, and maybe that function wasn't available. Happy to adopt whatever general approach you recommend. |
I think you and @davidsebfischer would be better able to figure this out, since you're going to be more familiar with the use cases that need to be accommodated. My main points would be:
|
Yep, reading #562 especially was enlightening, but it does seem like a bit of a can o' worms. For example I'm thoroughly out of my depth when we get into HDF5 and how the choice of data structure impacts on that. I may have to do something naive internally for our immediate purposes and help out with a more satisfying solution in the longer term. |
sc.tools
?sc.pl
?sc.external.*
?I'd really like a smarter d/e method to be accessible easily from Scanpy, one that allows proper treatment of covariates etc. MAST is obviously very popular, but fiddly to integrate from R. I see diffxpy mentioned about the place here, and see it's an in-house tool of yours. Is there a reason it's not been integrated already? If nobody's working on it, shall I take a crack at it?
The text was updated successfully, but these errors were encountered: