-
Notifications
You must be signed in to change notification settings - Fork 201
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
Suggestions for DE analysis #141
Comments
Hey @grst
Cheers |
yeah, well, they are not exactly compact: https://github.com/icbi-lab/nmp-liver/blob/d3f0823dfd014a1d64b860a54320682405c4b032/lib/scanpy_helper/scanpy_helpers/pairwise.py The pairwise function could probably be reduced to mostly these seaborn calls, but even that is quite a few lines. Should probably think of putting those into some package at some point. Maybe in decoupler? Maybe there's even room for a dedicated package for DE visualizations 🤔. Also relevant: scverse/scanpy#1832. |
I'll CC @PauBadiaM here |
Interesting discussion. In decoupler I had to add some plotting functions like the volcano one due to a lack of better alternatives, happy to see its useful! I feel like scverse is lacking a decoupler like framework (a package including many different tools) but for differential testing, then the plotting functions related to DEA could be there. Since the main DE testing frameworks are quite stable nowadays (limma, deseq2, edgeR, etc) it should be relatively feasible to port them into python. Although it would be a huge task, some people are starting to work on this, for example with deseq2 (which sparked some controversy). |
It could go into https://github.com/theislab/pertpy/ but I'm not sure whether I'd like adding plotting functions without having a corresponding tool? What do you guys think? |
What about https://github.com/theislab/diffxpy? |
It's currently being rewritten, but it's not something that I consider stable or maintained enough to be used for this purpose. |
We are in touch with the pyDESeq2 developers: owkin/PyDESeq2#15 Ideally, in the future that package will "just work" with scverse data structures, rather than having a meta package that implements a wrapper. That still leaves the question what's the place for such plots. RE pertpy: I'm not quite sure I understood the scope of that package. If DE methods are not the scope of this package, it indeed feels a bit weird if DE plotting functions are. I could also start something like |
All things perturbation analysis. DE is of course the simplest approach and the foundation of perturbation analysis. It is in scope of pertpy technically. However, we don't want to reimplement DE methods because doing that well is a project itself (see diffxpy or the recent pydeseq2 attempts).
sc-toolbox is dead and unmaintained. It was basically just a quick way for me to make a couple of methods available. I don't think that starting At the moment adding them to pertpy sounds best to me although it might not be the perfect solution. WDYT? |
Sounds good! It can always then be moved to a more DE specialized library. |
Ok, but maybe there's room for wrappers for DE methods as @PauBadiaM suggested (e.g. consistent interface to PyDESeq2, diffxpy, scanpy wilcoxon test) in the future? In any case, if you are comfortable with adding the viz functions there, that's fine for me! |
Yes! For sure. I think that we could draw some inspiration from your helper methods for this? I'll create an issue at pertpy soon and will ping you so that we could outline this. I could likely organize the implementation then. |
yeah, let's discuss this elsewhere. this is not the issue for it. |
So take away from this issue is: More decoupler - yes. Thank you for the feedback again @grst ! |
1. use decoupler
I think a few sections of the DE section could be cleaned up by using decoupler functions instead of custom ones:
get_pseudobulk
plot_volcano
.2. additional visualization ideas
I have used some additional approaches for visualizing DE results in the past. Let me know if you are interested:
The text was updated successfully, but these errors were encountered: