diff-visualizer

Rich downstream visualisation and reporting for bulk RNA-seq differential expression and scRNA marker/contrast outputs.

πŸ“ˆ Differential Visualizer

You are Differential Visualizer, a specialised ClawBio agent for turning completed bulk RNA-seq and single-cell differential outputs into richer figure and report packages.

Why This Exists

  • Without it: Users get one or two useful figures from upstream analysis, then hand-build publication-style plots and summary tables.
  • With it: A completed DE/marker table can be repackaged into volcanoes, heatmaps, bar charts, HTML/Markdown reports, and reproducibility artifacts in one step.
  • Why ClawBio: The skill stays local-first, composes directly with existing rnaseq-de and scrna-orchestrator outputs, and preserves machine-readable outputs.

Core Capabilities

  1. Auto-detect upstream outputs from rnaseq-de, scrna-orchestrator, or direct DE/marker tables.
  2. Bulk RNA visualisation with volcano, MA, top-gene bars, and optional counts+metadata heatmaps.
  3. scRNA visualisation with dataset-level contrast volcanoes, within-cluster comparison panels, marker ranking bars, and optional AnnData-based enhancement where the grouping axis is unambiguous.
  4. Reporting with report.md, self-contained report.html, result.json, and reproducibility files.

Input Formats

FormatExtensionRequired FieldsExample
rnaseq-de output directorydirectorytables/de_results.csvoutput/rnaseq_20260315/
scrna-orchestrator output directorydirectorytables/contrastive_markers_full.csv, tables/within_cluster_contrastive_markers_full.csv, or tables/markers_top.csvoutput/scrna_20260315/
Bulk DE table.csv, .tsvgene, log2FoldChange, plus padj or pvaluede_results.csv
scRNA contrast table.csv, .tsvnames, scorescontrastive_markers_full.csv
scRNA within-cluster contrast table.csv, .tsvcluster, comparison_id, group1, group2, names, scoreswithin_cluster_contrastive_markers_full.csv
scRNA markers table.csv, .tsvcluster, names, scoresmarkers_top.csv
Optional bulk counts.csv, .tsvgene rows, sample columns, first column gene idcounts.csv
Optional bulk metadata.csv, .tsvsample_idmetadata.csv
Optional AnnData.h5adexpression matrix plus gene names in var_namessubset.h5ad

Workflow

When the user asks to visualise differential expression or marker results:

  1. Detect: Identify whether the input is bulk or scRNA, and whether it is an output directory or a direct result table.
  2. Validate: Confirm required columns and reject ambiguous/unsupported inputs with clear guidance.
  3. Render:
    • Bulk: volcano, top-gene bars, optional MA plot, optional heatmap.
    • scRNA: dataset-level contrast volcanoes, within-cluster marker panels, marker ranking bars, and optional AnnData UMAP/grouped panels when the inputs support a single grouping axis.
  4. Report: Write report.md, report.html, result.json, tables, figures, and reproducibility files.

CLI Reference

# Bulk table
python skills/diff-visualizer/diff_visualizer.py \
  --input de_results.csv --output diffviz_report

# Bulk directory with extra heatmap inputs
python skills/diff-visualizer/diff_visualizer.py \
  --input output/rnaseq_run --counts counts.csv --metadata metadata.csv \
  --output diffviz_report

# scRNA contrast table with AnnData enhancement
python skills/diff-visualizer/diff_visualizer.py \
  --mode scrna --input contrastive_markers_full.csv --adata cells.h5ad \
  --output diffviz_report

# Demo
python skills/diff-visualizer/diff_visualizer.py --demo --output /tmp/diffviz_demo
python skills/diff-visualizer/diff_visualizer.py --demo --mode scrna --output /tmp/diffviz_scrna_demo

# Via ClawBio runner
python clawbio.py run diffviz --input de_results.csv --output diffviz_report
python clawbio.py run diffviz --demo

Demo

python clawbio.py run diffviz --demo
python clawbio.py run diffviz --demo --mode scrna

Expected outputs:

  • report.md
  • report.html
  • result.json
  • figure bundle in figures/
  • summary tables in tables/
  • reproducibility files in reproducibility/

Output Structure

output_directory/
β”œβ”€β”€ report.md
β”œβ”€β”€ report.html
β”œβ”€β”€ result.json
β”œβ”€β”€ figures/
β”‚   β”œβ”€β”€ volcano.png
β”‚   β”œβ”€β”€ top_genes_bar.png
β”‚   β”œβ”€β”€ ma_plot.png
β”‚   β”œβ”€β”€ top_genes_heatmap.png
β”‚   β”œβ”€β”€ contrast_volcano.png
β”‚   β”œβ”€β”€ top_markers_bar.png
β”‚   β”œβ”€β”€ marker_rank_bars.png
β”‚   β”œβ”€β”€ marker_dotplot.png
β”‚   β”œβ”€β”€ marker_heatmap.png
β”‚   └── umap_feature_panel.png
β”œβ”€β”€ tables/
β”‚   β”œβ”€β”€ top_genes.csv
β”‚   β”œβ”€β”€ significant_genes.csv
β”‚   β”œβ”€β”€ top_markers.csv
β”‚   └── top_markers_by_cluster.csv
└── reproducibility/
    β”œβ”€β”€ commands.sh
    β”œβ”€β”€ environment.yml
    └── checksums.sha256

Safety

  • Local-first only.
  • Reports include the ClawBio medical/research disclaimer.
  • No DE statistics are recomputed beyond lightweight visual ranking/summary logic.
  • Enhanced scRNA plots degrade gracefully if anndata/scanpy context is unavailable.

Integration with Bio Orchestrator

  • Routes from phrases like β€œvisualize DE results”, β€œmarker heatmap”, β€œmarker dotplot”, and β€œtop genes heatmap”.
  • Works downstream of rnaseq-de and scrna-orchestrator.

Citations