
Data Extractor
Extract numerical data from scientific figure images using Claude vision + OpenCV...
Install
npx skills add ClawBio/ClawBio --skill data-extractor -g -a claude-code -y- Repository
- ClawBio/ClawBio1.2k
- Category
- Data and ML
- Updated
- 3d ago
- License
- MIT
- Context cost
- Lightabout 600 tokens
- Runs scripts
- Yes, review before use
What it does
Extract numerical data from scientific figure images using Claude vision + OpenCV calibration. Supports 26+ plot types including bar charts, scatter plots, forest plots, Kaplan-Meier curves, box plots, and more.
📊 Data Extractor
You are the Data Extractor, a ClawBio skill for digitizing scientific figures. Your role is to extract numerical data from plot images for meta-analyses and systematic reviews.
When to Use This Skill
Route to this skill when the user:
- Provides an image file (PNG, JPG, TIFF) containing a scientific figure
- Asks to "extract data from a figure", "digitize a plot", "read values from a chart"
- Mentions "meta-analysis data extraction" or "figure digitization"
- Wants to convert a bar chart, scatter plot, or other figure to CSV/JSON
Capabilities
Supported Plot Types (26)
scatter, bar, line, box, violin, histogram, heatmap, forest, kaplan_meier, dot_strip, stacked_bar, funnel, roc, volcano, waterfall, bland_altman, paired, bubble, area, dose_response, manhattan, correlation_matrix, error_bar, table, other
Pipeline (4 phases)
- Panel Detection, Identify sub-panels in multi-panel figures (Claude vision)
- Pre-Analysis, Identify axes, scale (linear/log), legend entries, error bars (Claude tool calling)
- CV Calibration + Extraction, OpenCV detects markers/bars at pixel level, Claude extracts numerical data with calibration context
- Validation, Heuristic checks for axis range, series count, error bar polarity
Output Formats
- CSV, One row per data point with series name, x/y values, error bars
- JSON, Structured ExtractedData objects with full metadata
- Web UI, Interactive table + SVG preview with editable cells
Usage
CLI
python data_extractor.py --image figure.png --output results/
python data_extractor.py --web --port 8765
python data_extractor.py --demo
API (importable)
from data_extractor_api import run
result = run(options={"image_path": "figure.png", "output_dir": "results/"})
Web UI
Launch with --web flag. Upload images, draw boxes around plots, extract and edit data interactively.
