CtrlK
BlogDocsLog inGet started
Tessl Logo

volcano-plot-script

Generate publication-ready R or Python volcano plot scripts from DEG analysis results with customizable thresholds, gene labeling, and color schemes.

77

Quality

72%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Passed

No known issues

Optimize this skill with Tessl

npx tessl skill review --optimize ./scientific-skills/Data analysis/volcano-plot-script/SKILL.md
SKILL.md
Quality
Evals
Security

Volcano Plot Script Generator

Generate publication-ready volcano plots from differential gene expression (DEG) analysis results. Produces customizable R or Python scripts for high-quality figures.

Quick Check

python -m py_compile scripts/main.py
python scripts/main.py --help

When to Use

  • Visualizing RNA-seq DEG results (DESeq2, edgeR, limma output)
  • Identifying significantly up/downregulated genes by threshold
  • Highlighting specific genes of interest with labels
  • Generating publication-quality figures for manuscripts

Usage

python scripts/main.py \
  --input deg_results.csv \
  --output volcano_plot.png \
  --log2fc-thresh 1.0 \
  --pvalue-thresh 0.05 \
  --top-n 10

Parameters

ParameterRequiredDefaultDescription
--inputYesDEG results CSV/TSV file path
--outputNovolcano_plot.pngOutput plot file path
--log2fc-colNolog2FoldChangeColumn name for log2 fold change
--pvalue-colNopadjColumn name for p-value
--gene-colNogeneColumn name for gene IDs
--log2fc-threshNo1.0Log2 FC threshold for significance
--pvalue-threshNo0.05P-value threshold
--label-genesNoNoneFile with specific genes to label
--top-nNo10Label top N significant genes
--color-upNo#E74C3CColor for upregulated genes
--color-downNo#3498DBColor for downregulated genes
--color-nsNo#95A5A6Color for non-significant genes

Input Format

Required CSV/TSV columns:

  • Gene identifier (gene symbol or ENSEMBL ID)
  • Log2 fold change values
  • Adjusted or raw p-values

Workflow

  1. Confirm objective, required inputs, and constraints before proceeding.
  2. Validate request matches documented scope; stop early if unsupported assumptions are needed.
  3. Run scripts/main.py with available inputs, or use the documented reasoning path.
  4. Return structured result separating assumptions, deliverables, risks, and unresolved items.
  5. On execution failure or incomplete inputs, switch to fallback path and state exactly what blocked completion.

Fallback Template

If scripts/main.py cannot run (missing --input, malformed file), 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 points to a valid CSV with log2FC and p-value columns
───────────────────────────────────────

Note: --input is required. Passing a non-CSV string will cause exit code 1. Always validate the input file path before running.

Output

  • Publication-ready volcano plot (PNG/PDF/SVG)
  • Customizable Python script
  • Optional: labeled significant gene list
  • R Script Generation: Use --language r to generate a ggplot2/ggrepel R script instead of Python. The R output uses geom_point() for the scatter plot and ggrepel::geom_text_repel() for gene labels.

Output Requirements

Every response must make these explicit when relevant:

  • Objective or requested deliverable
  • Inputs used and assumptions introduced (including all non-default column names and any gene list file used)
  • Workflow or decision path
  • Core result, recommendation, or artifact
  • Constraints, risks, caveats, or validation needs
  • Unresolved items and next-step checks

Error Handling

  • If required inputs are missing, state exactly which fields are missing and request only the minimum additional information.
  • If the task goes outside documented scope, stop instead of guessing or silently widening the assignment.
  • If scripts/main.py fails, report the failure point, summarize what can still be completed safely, and provide the manual fallback above.
  • NaN p-values: If NaN values are detected in the p-value column, emit a warning: "Warning: [N] genes have NaN p-values and will be plotted as non-significant."
  • Do not fabricate files, citations, data, search results, or execution outcomes.

Input Validation

This skill accepts: DEG results tables (CSV/TSV) with log2 fold change and p-value columns for generating volcano plot scripts and figures.

If the request does not involve volcano plot generation — for example, asking to perform DEG analysis, run pathway enrichment, or generate heatmaps — do not proceed. Instead respond:

"volcano-plot-script is designed to generate volcano plot scripts from DEG results. Your request appears to be outside this scope. Please provide a DEG results CSV with log2FC and p-value columns, or use a more appropriate tool for your task."

Response Template

Use this fixed structure for non-trivial requests:

  1. Objective
  2. Inputs Received
  3. Assumptions
  4. Workflow
  5. Deliverable
  6. Risks and Limits
  7. Next Checks

For simple requests, compress the structure but keep assumptions and limits explicit when they affect correctness.

References

  • Example datasets and templates

Prerequisites

pip install -r requirements.txt
# Python: pandas, matplotlib, seaborn, numpy
# R (optional): ggplot2, dplyr, ggrepel
Repository
aipoch/medical-research-skills
Last updated
Created

Is this your skill?

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.