SeqBench

Volcano Plot — Differential Expression Visualization

Plot log2 fold-change vs. significance from a DESeq2/edgeR/limma table, with draggable thresholds.

🌐 Runs on the SeqBench API — also callable via REST & MCP, and in bulk from the batch tools

Paste a differential-expression results table — from DESeq2, edgeR, limma or any tool that outputs a gene, a log2 fold-change and a p-value — and see it as a volcano plot instantly. Column names are auto-detected (including common aliases like log2FoldChange/logFC and pvalue/padj/FDR), preferring the adjusted p-value/FDR column over the raw one when both are present, since that's the statistically correct choice for multiple comparisons. Drag the threshold lines directly on the plot, or use the sliders, to reclassify genes as up/down/not-significant without re-uploading anything, and hover any point for its gene, fold-change and p-value.

0 row(s) parsed

Paste a differential-expression table (or load the example) to plot.

|log2FC| ≥ 1 and p ≤ 0.05 are conventional starting-point thresholds, not universal cutoffs — adjust them for your experiment. When both a raw p-value and an adjusted/FDR column are detected, the adjusted column is used by default (the statistically correct choice for multiple comparisons); switch to raw p-value if you prefer.

How to use the Volcano Plot tool

  1. 1Paste a tab- or comma-delimited DE table (gene, log2FC, p-value/FDR columns) — or load the example.
  2. 2If columns can't be auto-detected, map gene / log2FC / p-value columns explicitly.
  3. 3Drag the threshold lines (or use the sliders) to set your significance cutoffs, hover points for details, then export the figure as SVG/PNG.

Frequently asked questions

Which column formats are auto-detected?

Gene name/id columns named gene, gene_id, symbol or id; log2 fold-change columns named log2FC, log2FoldChange or logFC; and p-value columns named pvalue/pval (raw) or padj/p.adj/qvalue/FDR/adj.P.Val (adjusted) — all matched case-insensitively regardless of punctuation, so DESeq2, edgeR and limma exports all work out of the box. If detection is ambiguous, you're asked to map the columns explicitly rather than have them guessed wrong.

Should I threshold on the raw p-value or the adjusted (FDR) value?

The adjusted/FDR column, which is why it's used by default when both are detected — thresholding on raw p-values across thousands of genes inflates your false-positive rate. A toggle lets you switch to the raw p-value if you specifically need it.

Can I change the significance thresholds?

Yes — |log2FC| ≥ 1 and p ≤ 0.05 are shown as conventional starting points, not fixed rules. Drag the dashed threshold lines directly on the plot, or use the sliders, and the up/down/non-significant counts and point colors update immediately.

Is my data stored?

Your pasted table is sent to the SeqBench API to validate rows and compute -log10(p); it is not stored. The plot itself, including the drag/hover interaction, runs in your browser, and you can export it as a vector SVG or PNG.

Related tools