Diff visualizer
Skill BioTender-max/awesome-bio-agent-skills/skills/clawbio/diff-visualizer
Rich downstream visualisation and reporting for bulk RNA-seq differential expression and scRNA marker/contrast outputs.From its SKILL.md
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill diff-visualizerAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
What its file declares
Copied from the file, not written here
The file declares its own license as MIT. That is the authorβs claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.
SKILL.md
6.3 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
π 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-deandscrna-orchestratoroutputs, and preserves machine-readable outputs.
Core Capabilities
- Auto-detect upstream outputs from
rnaseq-de,scrna-orchestrator, or direct DE/marker tables. - Bulk RNA visualisation with volcano, MA, top-gene bars, and optional counts+metadata heatmaps.
- 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.
- Reporting with
report.md, self-containedreport.html,result.json, and reproducibility files.
Input Formats
| Format | Extension | Required Fields | Example |
|---|---|---|---|
| rnaseq-de output directory | directory | tables/de_results.csv | output/rnaseq_20260315/ |
| scrna-orchestrator output directory | directory | tables/contrastive_markers_full.csv, tables/within_cluster_contrastive_markers_full.csv, or tables/markers_top.csv | output/scrna_20260315/ |
| Bulk DE table | .csv, .tsv | gene, log2FoldChange, plus padj or pvalue | de_results.csv |
| scRNA contrast table | .csv, .tsv | names, scores | contrastive_markers_full.csv |
| scRNA within-cluster contrast table | .csv, .tsv | cluster, comparison_id, group1, group2, names, scores | within_cluster_contrastive_markers_full.csv |
| scRNA markers table | .csv, .tsv | cluster, names, scores | markers_top.csv |
| Optional bulk counts | .csv, .tsv | gene rows, sample columns, first column gene id | counts.csv |
| Optional bulk metadata | .csv, .tsv | sample_id | metadata.csv |
| Optional AnnData | .h5ad | expression matrix plus gene names in var_names | subset.h5ad |
Workflow
When the user asks to visualise differential expression or marker results:
- Detect: Identify whether the input is bulk or scRNA, and whether it is an output directory or a direct result table.
- Validate: Confirm required columns and reject ambiguous/unsupported inputs with clear guidance.
- 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.
- 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.mdreport.htmlresult.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/scanpycontext 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-deandscrna-orchestrator.
Citations
- Scanpy documentation: https://scanpy.readthedocs.io/
- Matplotlib documentation: https://matplotlib.org/
What ships with it: 7 files
100.8 KB alongside SKILL.md, 2 of them executable
examples/
tests/
- test_diff_visualizer.pyruns14.9 KB
- diff_visualizer.pyruns84.5 KB