Automatically label top significant genes in volcano plots using a force-directed repulsion algorithm to prevent label overlap.
72
66%
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./scientific-skills/Data analysis/volcano-plot-labeler/SKILL.mdAutomatically identify and label the top N most significant genes in volcano plots using a repulsion algorithm to prevent label overlap.
This skill accepts: DEG results tables (CSV/TSV) with log2 fold change, p-value, and gene identifier columns for automated volcano plot labeling.
If the request does not involve volcano plot labeling — for example, asking to perform DEG analysis, generate heatmaps, or create pathway enrichment plots — do not proceed. Instead respond:
"volcano-plot-labeler is designed to label top significant genes in volcano plots. Your request appears to be outside this scope. Please provide a DEG results table with log2FC and p-value columns, or use a more appropriate tool for your task."
python -m py_compile scripts/main.py
python scripts/main.py --helppython -m py_compile scripts/main.py
python scripts/main.py --help
# Test with inline CSV (requires a DESeq2-format CSV):
python scripts/main.py \
--input data/deseq2_results.csv \
--output test_volcano.png \
--top-n 5python scripts/main.py \
--input data/deseq2_results.csv \
--output volcano_labeled.png \
--log2fc-col log2FoldChange \
--pvalue-col padj \
--gene-col gene_name \
--top-n 10| Parameter | Required | Default | Description |
|---|---|---|---|
--input | Yes | — | DEG results CSV/TSV file |
--output | Yes | — | Output plot file path |
--log2fc-col | No | log2FoldChange | Column name for log2 fold change |
--pvalue-col | No | padj | Column name for p-value |
--gene-col | No | gene_name | Column name for gene identifiers |
--top-n | No | 10 | Number of top genes to label |
--pvalue-threshold | No | 0.05 | P-value cutoff for significance coloring |
--log2fc-threshold | No | 1.0 | Log2FC cutoff for significance coloring |
Expected CSV/TSV columns:
log2FoldChange: Log2 fold change valuespadj or pvalue: Adjusted or raw p-valuesgene_name: Gene identifiersscripts/main.py with available inputs, or use the documented reasoning path.If scripts/main.py cannot run (missing --output argument, malformed input), respond with:
FALLBACK REPORT
───────────────────────────────────────
Objective : <stated goal>
Blocked by : <exact missing input or error>
Partial result : <what can still be assessed manually>
Next step : Ensure --input and --output are both provided
───────────────────────────────────────Note:
--outputis required. Running without it will return exit code 2. Always provide both--inputand--output.
-log10(pvalue) for all genes|log2FC| × -log10(pvalue)Labeled volcano plot with:
Every response must make these explicit when relevant:
scripts/main.py fails, report the failure point, summarize what can still be completed safely, and provide the manual fallback above.--log2fc-col, --pvalue-col, --gene-col) contain only alphanumeric characters, underscores, and hyphens before passing to the script.Use this fixed structure for non-trivial requests:
For simple requests, compress the structure but keep assumptions and limits explicit when they affect correctness.
pip install -r requirements.txt
# Requires: pandas, matplotlib, numpy, scipyca9aaa4
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.