Create publication-ready volcano plots from your differential expression analysis results.
| Item | Location |
|---|---|
| Canonical module | OMIX Volcano Plot |
| Interface contract | schemas/interface.yml |
| Development contract | OMIX module contract |
| Released source reference | OMIX_MODULE_SOURCE.md |
The canonical module owns scientific behavior, portable CLI operation, tests, and the reusable input/output contract. This repository is its Code Ocean deployment adapter.
- The Code Ocean App Panel and capsule entry point.
- Uploaded and attached DEG-table discovery under
/data. - Capsule outputs under
/resultsand the pinned runtime configuration.
This tool visualizes differential gene expression data as volcano plots, helping you identify significantly up-regulated and down-regulated genes at a glance. Upload your DEG file or attach a data asset and get beautiful, customizable plots in seconds.
- Click Run without attaching any data asset
- The tool will generate example volcano plots automatically
- View your results in the
/resultsfolder
Option 1: Upload a File
- Click DEG Table File (Optional) in the App Panel
- Select your CSV, TSV, or RDS file
- Adjust thresholds and colors as needed
- Click Run
Option 2: Attach a Data Asset
- Prepare a data asset containing your differential expression results (RDS or CSV format)
- Attach it using the DEG Table dataset parameter (without uploading a file)
- Adjust thresholds and colors as needed
- Click Run
Note: If you upload a file, it takes priority over the attached data asset.
The Gene ID Column accepts the column containing the symbols to print and
label. Leave it blank for automatic detection: Volcano prefers GeneName
(the OMIX workflow contract), then Gene Symbols, then common generic
identifier names. For another table, enter its exact column name in the App
Panel; Code Ocean does not provide a dynamic column dropdown for uploaded data.
When this capsule follows an upstream OMIX workflow, leave DEG Table File
blank. It recursively searches /data for exactly one CSV whose filename
contains DEG—normally DEG_Analysis.csv—and uses it as the input. The
workflow table must contain a gene identifier plus matching *_pval and
*_logFC columns. Nominal *_pval columns are the default; select
adjusted in the App Panel to use matching adjusted p-value columns.
If multiple matching CSV files are attached, the capsule stops and lists them so the upstream connection can be made unambiguous.
Your data file (RDS or CSV) should include these three types of columns:
Expected names: Gene, Feature_ID, FeatureID, gene, gene_id, or any text column
Example: STAT1, IRF7, ENSG00000012345
For nominal p-values, column names should contain: pval, p_value, or pvalue
Examples: Treatment_vs_Control_pval, GroupA-GroupB_pval
For adjusted p-values, column names should contain: adjpval, adj, or fdr
Examples: Treatment_vs_Control_adjpval, GroupA-GroupB_fdr
Expected patterns: logfc, log2fc, or log2_fold_change
Examples: Treatment_vs_Control_logFC, GroupA-GroupB_log2FC
- RDS files - R data frames (automatically extracts data frames from lists)
- CSV files - Comma-separated values
- TSV/TXT files - Tab-separated values
- Use consistent comparison names across p-value and fold change columns
- The tool automatically detects columns based on these patterns (case-insensitive)
- If you have multiple comparisons (e.g., A-B, A-C, B-C), include the comparison name in each column
- Example full column names:
GeneSymbol,TreatmentA_vs_Control_pval,TreatmentA_vs_Control_adjpval,TreatmentA_vs_Control_logFC - You can also manually specify column names in the App Panel if auto-detection doesn't work
✨ P-value Type Selection - Choose between nominal or adjusted (FDR) p-values
📂 Flexible Data Input - Upload files OR attach data assets for maximum convenience
📄 Multiple Format Support - Reads RDS, CSV, and TSV files
🔍 Auto Column Detection - Automatically finds gene IDs, p-values, and fold changes
📊 Auto Axis Capping - Reduces outlier impact for better visualization
🎨 Custom Colors - Enter any R-compatible color for each plot category
🏷️ Smart Gene Labeling - Automatically labels top significant genes
📐 Flexible Layout - Adjust fonts, sizes, and dimensions
🔧 Advanced Controls - Fine-tune thresholds, axis limits, and label spacing
- Non-significant points: gray
- Fold change only: orange
- Significant only: green4
- Significant + fold change: red3
- Volcano plot images (PNG format, publication-ready at 300 DPI)
- One plot per comparison in your data
- Automatically named files indicating the comparison and p-value type used
volcano_plot_data.csv, containing the input table plus calculated signed significance ranks
Outputs are written under Code Ocean's managed /results mount. The portable
CLI control is --output_dir; it is intentionally hidden from the App Panel
because the platform owns this path.
- P-value type: nominal
- P-value threshold: 0.05
- Absolute log2 fold-change threshold: 1
- Maximum label overlaps: unlimited (
Inf) - Resolution: 300 DPI through the public
resolution_dpicontrol
The historical CLI spelling --resolution_dpi_ remains a deprecated hidden
compatibility alias. New runs and App Panel configurations must use
resolution_dpi.
This adapter uses the canonical r-visualization runtime profile. The exact
canonical commit and per-file SHA-256 are recorded in
OMIX_MODULE_SOURCE.md. Code Ocean run 865194 in
capsule 7447171 validated the default named-parameter workflow against exact
adapter commit eb57569a276df25f4364ff27fa4e114497066937. The capsule also
reported one uncommitted environment.json newline-only difference, which
does not alter the selected runtime but must be reconciled before release. The
run loaded the attached 10,514-row DEG table, generated the augmented CSV, and
rendered one plot for each of the three detected comparisons. The imported
Code Ocean environment digest, platform release, and adapter tag remain
pending and must not be inferred from that successful run.
- Example data included - Just click Run to see how it works
- App Panel tooltips - Hover over any parameter for guidance
- Column selection - Leave column parameters blank for automatic detection
- Support - Contact your Code Ocean administrator
If you use this tool in your research, please cite the OMIX Volcano Plot capsule and Code Ocean platform.
Read AGENTS.md and OMIX_MODULE_SOURCE.md
before editing. Reusable scientific changes belong in the canonical OMIX
module and are exported here only after validation. Adapter-only input
discovery belongs in code/adapter/, never in the managed
code/functions/ export.