Agent Skills
forest-plot-styler

Forest Plot Styler

AIPOCH

Beautify meta-analysis forest plots with customizable odds ratio points and confidence intervals

24
0
FILES
forest-plot-styler/
skill.md
scripts
main.py

SKILL.md

Forest Plot Styler

ID: 157

Beautifies Meta-analysis or subgroup analysis forest plots, customizes Odds Ratio point sizes and confidence interval line styles.


Features

  • Reads Meta-analysis data (CSV/Excel format)
  • Draws high-quality forest plots
  • Customizes Odds Ratio point sizes, colors, and shapes
  • Customizes confidence interval line styles (color, thickness, endpoint style)
  • Supports subgroup analysis display
  • Automatically calculates and displays pooled effect values
  • Outputs to PNG, PDF, or SVG format

Usage

python scripts/main.py --input <data.csv> [options]

Parameters

ParameterTypeDefaultRequiredDescription
--input, -istring-YesInput data file (CSV or Excel)
--output, -ostringforest_plot.pngNoOutput file path
--format, -fstringpngNoOutput format (png/pdf/svg)
--point-sizeint8NoOR point size
--point-colorstring#2E86ABNoOR point color
--ci-colorstring#2E86ABNoConfidence interval line color
--ci-linewidthint2NoConfidence interval line thickness
--ci-capwidthint5NoConfidence interval endpoint width
--summary-colorstring#A23B72NoPooled effect point color
--summary-shapestringdiamondNoPooled effect point shape
--subgroupstring-NoSubgroup analysis column name
--title, -tstringForest PlotNoChart title
--xlabel, -xstringOdds Ratio (95% CI)NoX-axis label
--reference-linefloat1.0NoReference line position
--width, -Wint12NoImage width (inches)
--height, -HintautoNoImage height (inches)
--dpiint300NoImage resolution
--font-sizeint10NoFont size
--style, -sstringdefaultNoPreset style (default/minimal/dark)

Input Data Format

CSV/Excel files must contain the following columns:

Column NameDescriptionType
studyStudy nameText
orOdds Ratio valueNumeric
ci_lowerConfidence interval lower boundNumeric
ci_upperConfidence interval upper boundNumeric
weightWeight (optional, for point size)Numeric
subgroupSubgroup label (optional)Text

Sample Data

study,or,ci_lower,ci_upper,weight,subgroup
Study A,0.85,0.65,1.12,15.2,Drug A
Study B,0.72,0.55,0.94,18.5,Drug A
Study C,1.15,0.88,1.50,12.3,Drug B
Study D,0.95,0.75,1.20,14.8,Drug B

Examples

Basic Usage

python scripts/main.py -i meta_data.csv

Custom Style

python scripts/main.py -i meta_data.csv \
    --point-color="#E63946" \
    --ci-color="#457B9D" \
    --point-size=10 \
    --ci-linewidth=3 \
    -t "Meta-Analysis of Treatment Effects"

Subgroup Analysis

python scripts/main.py -i meta_data.csv \
    --subgroup subgroup_column \
    --summary-color="#F4A261" \
    -o subgroup_forest.png

Output PDF Vector Graphic

python scripts/main.py -i meta_data.csv \
    -f pdf \
    -o forest_plot.pdf

Preset Styles

default

  • Blue color scheme
  • Standard font size
  • White background

minimal

  • Clean lines
  • Grayscale color scheme
  • No grid lines

dark

  • Dark background
  • Bright data points
  • Suitable for dark theme presentations

Dependencies

  • Python >= 3.8
  • matplotlib >= 3.5.0
  • pandas >= 1.3.0
  • numpy >= 1.20.0
  • openpyxl >= 3.0.0 (for reading Excel)

Output Example

Generated forest plot contains:

  • Left side: Study name list
  • Middle: OR values and confidence intervals
  • Right side: Weight percentage (if available)
  • Bottom: Pooled effect value (diamond marker)
  • Reference line (OR=1)

Notes

  1. Ensure input file encoding is UTF-8
  2. OR values are automatically converted when log scale is suggested
  3. Studies with confidence intervals crossing 1 are not statistically significant
  4. Weight values are used to adjust point size, reflecting study contribution

Risk Assessment

Risk IndicatorAssessmentLevel
Code ExecutionPython/R scripts executed locallyMedium
Network AccessNo external API callsLow
File System AccessRead input files, write output filesMedium
Instruction TamperingStandard prompt guidelinesLow
Data ExposureOutput files saved to workspaceLow

Security Checklist

  • No hardcoded credentials or API keys
  • No unauthorized file system access (../)
  • Output does not expose sensitive information
  • Prompt injection protections in place
  • Input file paths validated (no ../ traversal)
  • Output directory restricted to workspace
  • Script execution in sandboxed environment
  • Error messages sanitized (no stack traces exposed)
  • Dependencies audited

Prerequisites

# Python dependencies
pip install -r requirements.txt

Evaluation Criteria

Success Metrics

  • Successfully executes main functionality
  • Output meets quality standards
  • Handles edge cases gracefully
  • Performance is acceptable

Test Cases

  1. Basic Functionality: Standard input → Expected output
  2. Edge Case: Invalid input → Graceful error handling
  3. Performance: Large dataset → Acceptable processing time

Lifecycle Status

  • Current Stage: Draft
  • Next Review Date: 2026-03-06
  • Known Issues: None
  • Planned Improvements:
    • Performance optimization
    • Additional feature support