Skip to content

ENH volcano plots#317

Open
BorisMuzellec wants to merge 6 commits intomainfrom
feat/volcano_plot
Open

ENH volcano plots#317
BorisMuzellec wants to merge 6 commits intomainfrom
feat/volcano_plot

Conversation

@BorisMuzellec
Copy link
Collaborator

What does your PR implement? Be specific.

This PR implements a method in DeseqStats to make volcano plots.

Example:

counts = load_example_data()
metadata = load_example_data('metadata')

dds = DeseqDataSet(counts=counts, metadata=metadata)
dds.deseq2()

ds = DeseqStats(dds)
ds.summary()

ds.plot_volcano(LFC_threshold = .25, pval_threshold = 0.05)

volcano_plot_example

Copy link
Collaborator

@umarteauowkin umarteauowkin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I approve as it is a good first draft ! In an ideal world, all the fixed kwargs should be modifiable, but in that case I think people would just recopy the code !

@mschilli87
Copy link

Any reason this never got merged? I'd be happy to have something like this available.

@grst
Copy link
Collaborator

grst commented Mar 16, 2026

I'm not sure if including plotting dependencies in pydeseq2 is the way to go (tbf, they could be optional).

The scverse ecosystem offers plotting functions for differential expression via pertpy: https://pertpy.readthedocs.io/en/stable/tutorials/notebooks/differential_gene_expression.html

Our vision would be to have a separate, method-agnostic package for plotting differential expression results, but this never made it past prototype stage: https://github.com/scverse/deres

@mschilli87
Copy link

@grst: Fair points. However, as of now, I get MA plots from PyDESeq2 but no Volcano plots, with both of them coomonly used in the field and there is a pull-request that would add this feature in a simpel way while we all wait for the better solution. Who know, accepting this over a year ago, or at least providing this kind of feedback to the (external?) contributor that provided the PR might have motivated them to contribute more to the ecosystem and potentially even implementing this in in the context of deres.
Pertpy is a very heavy dependency (both in transient dependency load and speed of development) for something as simple as a volcano plot, but thank you for the pointers.

I just want to make clear that I am not complaining or trying to be pushy here. I think you all are doing a great job with scverse and I know very well how easy these kinds of things can end up low enough on everyone's priority lists to eventually never materialize.

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

Successfully merging this pull request may close these issues.

4 participants