cellxgene
cellxgene copied to clipboard
Volcano plot, possibly as gene selection interface
- We know that users want more of a sense of the overall structure of the genes in the dataset
- We know that users want to see more than 15 results for diffexp
- We frequently only surface markers for one of the diffexp populations rather than both
- Users are used to using volcano plots
- Heatmaps are gigantic and unwieldy
Fig. 1 via: https://galaxyproject.github.io/training-material/topics/transcriptomics/tutorials/rna-seq-viz-with-volcanoplot/tutorial.html
Fig. 2 via: https://www.researchgate.net/figure/Volcano-plot-of-RNA-Seq-data-A-volcano-plot-is-a-scatter-plot-that-is-often-used-when_fig4_307915443
Rough proposal: cellxgene shows a volcano plot on diffexp, perhaps immediately and as a result of selecting diffexp on 2 categorical metadata labels! This then serves as an intermediary step to selecting the genes to return, which are then populated in a gene list in the right hand side bar.
Fig 1 would seem to show selection cutting off small y axis values, while Fig 2 does the same but also allows the user to remove symmetrically from the center.
We could also add a voronoi overlay to hover and show point labels https://bl.ocks.org/mbostock/8033015
Big open question: how do users want to accomplish the selection?
- Could be multiple boxes
- Could be a lasso
- Could be 2 or 3 continuous sliders:
min value y axis
,distance from centerline negative
,distance from centerline positive
cc @sidneymbell @ambrosejcarr
A big thank you to Dana Pe'er's lab at Memorial Sloan Kettering for pointing out this plot and process.
@ambrosejcarr points out that the click volcano diffexp button
--> volcano plot as gene selection interface
--> gene list
could also be an interface --> to various heatmaps — gene * gene
(both heart * lung
& heart * heart
and cell * gene
, see https://github.com/chanzuckerberg/cellxgene/issues/632
@ambrosejcarr adds that users might toggle between volcano and dispersion
I'm a little trolling here sorry, but are there currently any plans to develop a plugin infrastructure into cellxgene? Currently we are missing things like volcano plots, violin plots, gene set enrichments, ... to really cover a lot of ground in initial analysis. If there would be a data model/plugin infrastructure other people could also start contributing to cellxgene and be able to exchange plugins. This of course is not trivial but setting out a path would be nice so people can start to contribute.
Hi @ddemaeyer — thanks for your question — there are no plans to support plugins.
We'll keep this thread to volcano to stay on topic, but if you want to discuss plugins further than your above comment or desire further justification, or want to offer a concrete proposal for how you think you'd like to see this supported, please do feel free to open a new issue and tag me and I'll try to respond more in depth.
To take these features in order:
- Volcano plots are possibly to be added as a way to visualize differential expression results in 2021 — active discussion.
- Re: violin plots, it is already possible to color by a gene or other continuous field and see their distribution:
Users can also create arbitrary subsets and see a distribution of continuous data. Ie.,: add a gene, lasso, subset, see distribution of subset on gene histogram.
- Gene sets are in development and will land in 2021, and #96 proposes adding a tooltip.
Thanks @colinmegill for pointing me to this backlogged issue. Love the idea, and it’s pretty straightforward to implement in excellxgene. The specific implementation details might be dependent on how I’ve rearranged the backend (mainly, how the various data types and metadata are saved on the server, read by requests, etc), so looping in this feature to cellxgene will probably require updating the backend as well.
Managed to turn this around quickly. Released in excellxgene
v2.5.3!
https://user-images.githubusercontent.com/16548075/159178339-95171207-3133-4f76-80db-98c5789aa09b.mp4