Skills forest-plot-styler
Beautify meta-analysis forest plots with customizable odds ratio points
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/aipoch-ai/forest-plot-styler" ~/.claude/skills/clawdbot-skills-forest-plot-styler && rm -rf "$T"
manifest:
skills/aipoch-ai/forest-plot-styler/SKILL.mdsource content
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
| Parameter | Type | Default | Required | Description |
|---|---|---|---|---|
, | string | - | Yes | Input data file (CSV or Excel) |
, | string | forest_plot.png | No | Output file path |
, | string | png | No | Output format (png/pdf/svg) |
| int | 8 | No | OR point size |
| string | #2E86AB | No | OR point color |
| string | #2E86AB | No | Confidence interval line color |
| int | 2 | No | Confidence interval line thickness |
| int | 5 | No | Confidence interval endpoint width |
| string | #A23B72 | No | Pooled effect point color |
| string | diamond | No | Pooled effect point shape |
| string | - | No | Subgroup analysis column name |
, | string | Forest Plot | No | Chart title |
, | string | Odds Ratio (95% CI) | No | X-axis label |
| float | 1.0 | No | Reference line position |
, | int | 12 | No | Image width (inches) |
, | int | auto | No | Image height (inches) |
| int | 300 | No | Image resolution |
| int | 10 | No | Font size |
, | string | default | No | Preset style (default/minimal/dark) |
Input Data Format
CSV/Excel files must contain the following columns:
| Column Name | Description | Type |
|---|---|---|
| Study name | Text |
| Odds Ratio value | Numeric |
| Confidence interval lower bound | Numeric |
| Confidence interval upper bound | Numeric |
| Weight (optional, for point size) | Numeric |
| Subgroup 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
- Ensure input file encoding is UTF-8
- OR values are automatically converted when log scale is suggested
- Studies with confidence intervals crossing 1 are not statistically significant
- Weight values are used to adjust point size, reflecting study contribution
Risk Assessment
| Risk Indicator | Assessment | Level |
|---|---|---|
| Code Execution | Python/R scripts executed locally | Medium |
| Network Access | No external API calls | Low |
| File System Access | Read input files, write output files | Medium |
| Instruction Tampering | Standard prompt guidelines | Low |
| Data Exposure | Output files saved to workspace | Low |
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
- Basic Functionality: Standard input → Expected output
- Edge Case: Invalid input → Graceful error handling
- 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