README.md

August 23, 2025 ยท View on GitHub

Volcano Plot (Streamlit + plotnine/ggplot-style)

A minimal, publication-style Volcano Plot web app built with Streamlit and plotnine (the ggplot2 grammar in Python). Great for RNA-seq differential expression visualization in portfolios and quick demos.

๐Ÿš€ Live (deploy on Streamlit Cloud)

  1. Fork/clone this repo.
  2. Push to your GitHub.
  3. On https://streamlit.io/cloud create a new app pointing to app.py.
  4. The app will build from requirements.txt and run automatically. Live Demo; https://volcano-plot-app-plotnine-n.streamlit.app/ ๐Ÿ“ฆ Local Run
pip install -r requirements.txt
streamlit run app.py

๐Ÿงพ Data Format

Upload a CSV with three columns:

  • gene
  • log2FoldChange
  • pvalue

A sample file is provided at data/demo_volcano.csv.

Features

  • ggplot-style volcano plot via plotnine
  • Adjustable thresholds for p-value and |log2FC|
  • Labels for top N most significant genes
  • Download PNG of the plot and CSV of significant genes

๐Ÿ“ Repo Structure

โ”œโ”€โ”€ app.py โ”œโ”€โ”€ requirements.txt โ”œโ”€โ”€ data โ”‚ โ””โ”€โ”€ demo_volcano.csv โ””โ”€โ”€ .streamlit โ””โ”€โ”€ config.toml


๐Ÿ›  Notes

- If your CSV has different column names like `log2FC` or `p_value`, the app will auto-detect and rename where possible.
- Colors: up-regulated (red), down-regulated (blue), non-significant (gray).