Agent skill

Meta Analysis

by aipoch in aipoch/medical-research-skills

Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment.

MITAuto-check passedData & Analytics

Install Meta Analysis

skills CLI
$ npx skills add aipoch/medical-research-skills --skill meta-analysis -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install aipoch/medical-research-skills meta-analysis --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/aipoch/medical-research-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/'scientific-skills/Data Analysis/meta-analysis' .claude/skills/meta-analysis && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
meta-analysis
GitHub stars
2k
Token cost
~2.3k tokens
SKILL.md length
491 words
Files
3
Skills in repo
567
Repo updated
First seen
Licence
MIT

At a glance

Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment.

  • Works in 3 steps: Subgroup analysis: Split by study… → Meta-regression: Model effect size as… → Sensitivity analysis: Leave-one-out,…
  • : user asks to combine results from multiple studies
  • SKILL.md covers When to Use, When NOT to Use, Effect Size Types and Core Analysis with Python, plus 6 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Meta Analysis is an agent skill from aipoch/medical-research-skills. Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment. Use when: user asks to combine results from multiple studies, calculate pooled effect sizes, assess publication bias, or create forest/funnel plots. NOT f...

Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `POLISH_CHANGELOG.md` and `eval_report_meta-analysis_result.json`).

It sits in Data & Analytics. The repository describes itself as: Hundreds of agent skills for medical research, including protocol design, data analysis, evidence insights, and academic writing. The licence is MIT.

When your agent uses it

  • : user asks to combine results from multiple studies
  • Calculate pooled effect sizes
  • Assess publication bias
  • Create forest/funnel plots

Example prompts

  • “/meta-analysis”

Requirements

  • Python 3

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Subgroup analysis: Split by study design, population, intervention dose
  2. Meta-regression: Model effect size as function of study-level covariates
  3. Sensitivity analysis: Leave-one-out, exclude high risk-of-bias studies

What it can do on your machine

Read from SKILL.md and the folder at commit 686e09d. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Meta Analysis loads about 2.3k tokens when it runs. Until then it costs about 74 tokens; SKILL.md has 491 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~74
When it runs · the whole SKILL.md, loaded when a task matches
~2.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from aipoch/medical-research-skills at commit 686e09d, republished under its MIT licence (© aipoch). 491 words, ~2,273 tokens.

Download SKILL.mdSave it as .claude/skills/meta-analysis/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
meta-analysis
description
Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment. Use when: user asks to combine results from multiple studies, calculate pooled effect sizes, assess publication bias, or create forest/funnel plots. NOT f...
license
MIT
author
AIPOCH

Source: https://github.com/aipoch/medical-research-skills

Meta-Analysis

Quantitative synthesis of results from multiple studies. Calculates pooled effect sizes, assesses heterogeneity, detects publication bias, and generates forest and funnel plots.

When to Use

  • "Combine these study results into a meta-analysis"
  • "Calculate the pooled odds ratio from these trials"
  • "Create a forest plot of these effect sizes"
  • "Test for publication bias with a funnel plot"
  • "What's the heterogeneity (I²) across these studies?"
  • "Run a random-effects meta-analysis"

When NOT to Use

  • Designing a systematic review protocol (use systematic-review)
  • Searching for studies (use literature-search)
  • Single-study statistical analysis (use statsmodels-stats)
  • Narrative literature review (use paper-writing)

Effect Size Types

Outcome TypeEffect SizeFormulaUse When
ContinuousSMD (Cohen's d / Hedges' g)$(M_1 - M_2) / S_p$Comparing means across studies with different scales
ContinuousMean Difference (MD)$M_1 - M_2$Same outcome measure across all studies
BinaryOdds Ratio (OR)$(a \times d) / (b \times c)$Case-control studies, binary outcomes
BinaryRisk Ratio (RR)$(a/(a+b)) / (c/(c+d))$Cohort studies, clinical trials
BinaryRisk Difference (RD)$R_1 - R_2$Absolute risk reduction
Time-to-eventHazard Ratio (HR)From Cox modelSurvival analysis
CorrelationFisher's z$0.5 \ln((1+r)/(1-r))$Correlation studies

Core Analysis with Python

Random-Effects Meta-Analysis
python
import numpy as np
from scipy import stats

def meta_analysis_random_effects(effects, variances, study_names=None):
    """
    DerSimonian-Laird random-effects meta-analysis.

    Args:
        effects: array of effect sizes (log-OR, SMD, etc.)
        variances: array of within-study variances
        study_names: optional list of study labels

    Returns:
        dict with pooled estimate, CI, heterogeneity stats
    """
    effects = np.array(effects, dtype=float)
    variances = np.array(variances, dtype=float)
    k = len(effects)

    # Fixed-effect weights
    w_fe = 1.0 / variances
    pooled_fe = np.sum(w_fe * effects) / np.sum(w_fe)

    # Cochran's Q
    Q = np.sum(w_fe * (effects - pooled_fe) ** 2)
    df = k - 1
    p_heterogeneity = 1 - stats.chi2.cdf(Q, df)

    # tau-squared (DerSimonian-Laird)
    C = np.sum(w_fe) - np.sum(w_fe ** 2) / np.sum(w_fe)
    tau2 = max(0, (Q - df) / C)

    # I-squared
    I2 = max(0, (Q - df) / Q * 100) if Q > 0 else 0

    # Random-effects weights
    w_re = 1.0 / (variances + tau2)
    pooled_re = np.sum(w_re * effects) / np.sum(w_re)
    se_pooled = np.sqrt(1.0 / np.sum(w_re))

    ci_lower = pooled_re - 1.96 * se_pooled
    ci_upper = pooled_re + 1.96 * se_pooled
    z = pooled_re / se_pooled
    p_value = 2 * (1 - stats.norm.cdf(abs(z)))

    return {
        'pooled_effect': pooled_re,
        'se': se_pooled,
        'ci_lower': ci_lower,
        'ci_upper': ci_upper,
        'z': z,
        'p_value': p_value,
        'tau2': tau2,
        'I2': I2,
        'Q': Q,
        'Q_df': df,
        'Q_p': p_heterogeneity,
        'k': k,
        'model': 'DerSimonian-Laird random-effects'
    }
Forest Plot
python
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

def forest_plot(effects, ci_lower, ci_upper, study_names, pooled, pooled_ci,
                xlabel='Effect Size', title='Forest Plot', output_path='forest_plot.png'):
    """Generate a publication-quality forest plot."""
    k = len(effects)
    fig, ax = plt.subplots(figsize=(8, max(4, k * 0.4 + 2)))

    y_positions = list(range(k, 0, -1))

    # Individual studies
    for i, y in enumerate(y_positions):
        ax.plot(effects[i], y, 'ks', markersize=8)
        ax.plot([ci_lower[i], ci_upper[i]], [y, y], 'k-', linewidth=1.5)

    # Pooled estimate (diamond)
    diamond_y = 0
    diamond_half_h = 0.3
    diamond = plt.Polygon([
        [pooled_ci[0], diamond_y],
        [pooled, diamond_y + diamond_half_h],
        [pooled_ci[1], diamond_y],
        [pooled, diamond_y - diamond_half_h]
    ], closed=True, facecolor='steelblue', edgecolor='black')
    ax.add_patch(diamond)

    # Reference line at null effect
    ax.axvline(x=0, color='gray', linestyle='--', linewidth=0.8)

    # Labels
    yticks = y_positions + [diamond_y]
    ylabels = study_names + ['Pooled']
    ax.set_yticks(yticks)
    ax.set_yticklabels(ylabels)
    ax.set_xlabel(xlabel)
    ax.set_title(title)
    ax.set_ylim(-1, k + 1.5)

    fig.tight_layout()
    fig.savefig(output_path, dpi=300, bbox_inches='tight')
    print(f"Forest plot saved: {output_path}")
    return fig
Funnel Plot (Publication Bias)
python
def funnel_plot(effects, se_values, pooled_effect,
                xlabel='Effect Size', output_path='funnel_plot.png'):
    """Generate a funnel plot to assess publication bias."""
    fig, ax = plt.subplots(figsize=(6, 5))

    ax.scatter(effects, se_values, c='black', s=30, zorder=3)

    # Pseudo-confidence region
    se_range = np.linspace(0.001, max(se_values) * 1.1, 100)
    ci_low = pooled_effect - 1.96 * se_range
    ci_high = pooled_effect + 1.96 * se_range
    ax.fill_betweenx(se_range, ci_low, ci_high, alpha=0.1, color='gray')
    ax.axvline(pooled_effect, color='red', linestyle='--', linewidth=1)

    ax.set_xlabel(xlabel)
    ax.set_ylabel('Standard Error')
    ax.set_title('Funnel Plot')
    ax.invert_yaxis()  # Convention: smaller SE at top

    fig.tight_layout()
    fig.savefig(output_path, dpi=300, bbox_inches='tight')
    print(f"Funnel plot saved: {output_path}")
    return fig

Publication Bias Tests

Egger's Regression Test
python
def egger_test(effects, se_values):
    """Egger's test for funnel plot asymmetry."""
    precision = 1.0 / np.array(se_values)
    standardized = np.array(effects) / np.array(se_values)
    slope, intercept, r, p, se = stats.linregress(precision, standardized)
    return {'intercept': intercept, 'se': se, 'p_value': p,
            'interpretation': 'Significant asymmetry' if p < 0.10 else 'No significant asymmetry'}
Begg's Rank Correlation Test
python
def begg_test(effects, variances):
    """Begg-Mazumdar rank correlation test."""
    standardized = effects / np.sqrt(variances)
    tau, p = stats.kendalltau(standardized, variances)
    return {'tau': tau, 'p_value': p}
Trim-and-Fill Method
  • Identifies and imputes missing studies from funnel plot asymmetry
  • Re-estimates the pooled effect including imputed studies
  • Use statsmodels or metafor (R) for implementation

Heterogeneity Interpretation

I² ValueInterpretation
0-25%Low heterogeneity
25-50%Moderate heterogeneity
50-75%Substantial heterogeneity
75-100%Considerable heterogeneity

When I² > 50%, investigate sources:

  1. Subgroup analysis: Split by study design, population, intervention dose
  2. Meta-regression: Model effect size as function of study-level covariates
  3. Sensitivity analysis: Leave-one-out, exclude high risk-of-bias studies
Show full SKILL.md (211 more words)Show less

Reporting Standards

Follow PRISMA 2020 for reporting meta-analyses. Include:

  1. Number of studies (k) and total participants (N)
  2. Pooled effect size with 95% CI
  3. Heterogeneity: Q statistic (df, p), I², tau²
  4. Model type: fixed-effect vs. random-effects with justification
  5. Publication bias assessment results
  6. Forest plot and funnel plot as figures

Best Practices

  1. Use random-effects model by default (studies rarely share a true common effect)
  2. Always report both Q and I² for heterogeneity
  3. Log-transform ORs and RRs before pooling; back-transform for reporting
  4. Use Hedges' g rather than Cohen's d for small-sample correction
  5. Minimum 5-10 studies for reliable funnel plot interpretation
  6. Never fabricate study data or effect sizes

Zero-Hallucination Rule

  • ALL study-level data must come from tool results or user-provided data
  • NEVER generate fictional study names, sample sizes, or effect sizes
  • If insufficient data for meta-analysis, say so explicitly

Input Validation

This skill accepts requests that match the documented purpose of meta-analysis and include enough context to complete the workflow safely.

Do not continue the workflow when the request is out of scope, missing a critical input, or would require unsupported assumptions. Instead respond:

meta-analysis only handles its documented workflow. Please provide the missing required inputs or switch to a more suitable skill.

© aipoch, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in scientific-skills/Data Analysis/meta-analysis of aipoch/medical-research-skills.

  • SKILL.md
  • POLISH_CHANGELOG.md
  • eval_report_meta-analysis_result.json

Open the folder on GitHubat commit 686e09d

Compare with similar skills

Meta Analysis next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Meta Analysis compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Meta Analysis this skillaipoch/medical-research-skills2k—~2.3kAutomated safety check: PassMIT
Exploratory Data Analysisspacering-net/codeg3.8k15 repos~3.6kAutomated safety check: PassMIT
Scientific Figure MakingChenLiu-1996/figures4papers8.2k—~557Automated safety check: PassCustom licence
Statistical Powerspacering-net/codeg3.8k2 repos~3.6kAutomated safety check: NotesMIT
Academic Figure SkillTingxiYu/academic-figure-skill4761 repos~7kAutomated safety check: PassApache-2.0
Dingo VerifyMigoXLab/dingo757—~741Automated safety check: NotesApache-2.0

Similar skills

  • Exploratory Data Analysis

    spacering-net/codeg

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    3.8k GitHub starsUsed in 15 repos~3.6k tokens
    Data & AnalyticsAuto-check passed
  • Scientific Figure Making

    ChenLiu-1996/figures4papers

    Covers publication-ready matplotlib figures for academic papers, slides, and reports—bars, trends, scatter, heatmaps, and multi-panel layouts—with this…

    8.2k GitHub stars~557 tokensUpdated 3 days ago
    Data & AnalyticsAuto-check passed
  • Statistical Power

    spacering-net/codeg

    Sample-size and statistical power calculations for planning studies.

    3.8k GitHub starsUsed in 2 repos~3.6k tokens
    Data & AnalyticsAuto-check: notes
  • Academic Figure Skill

    TingxiYu/academic-figure-skill

    Academic-grade scientific figure creation for Nature/Cell/Science journals.

    476 GitHub starsUsed in 1 repo~7k tokens
    Data & AnalyticsAuto-check passed
  • Dingo Verify

    MigoXLab/dingo

    A skill your agent uses when the user wants to fact-check an article or verify factual claims in a document.

    757 GitHub stars~741 tokensUpdated 10 days ago
    Data & AnalyticsAuto-check: notes
  • Mathodology Figure Presets

    sweetcornna/mathodology

    A skill your agent uses when selecting, designing, generating or reviewing scientific figures, complex modeling charts, paper illustrations or image2-assisted visuals.

    302 GitHub stars~1k tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed

More from aipoch/medical-research-skills

All 567 skills in this repo
  • Academic Poster Generator

    aipoch/medical-research-skills

    Complete workflow for generating academic research posters from PDF literature; use when you need to extract paper content from PDFs and produce a LaTeX-based poster…

    2k GitHub stars~2.2k tokensUpdated 21 days ago
    Auto-check passed
  • Diagnostic Study Quality Assessment Quadas

    aipoch/medical-research-skills

    Analyzes clinical diagnostic accuracy studies for bias using the QUADAS-2 tool.

    2k GitHub stars~1.4k tokensUpdated 21 days ago
    Auto-check passed
  • Exploratory Data Analysis

    aipoch/medical-research-skills

    Perform comprehensive exploratory data analysis on scientific data files across 200+ file formats.

    2k GitHub stars~3.7k tokensUpdated 21 days ago
    Auto-check passed
  • Iso Certification

    aipoch/medical-research-skills

    A toolkit for preparing ISO 13485:2016 certification documentation for medical device QMS.

    2k GitHub stars~1.8k tokensUpdated 21 days ago
    Auto-check passed
  • Journal Skills

    aipoch/medical-research-skills

    Recommends target journals for manuscript submission by analyzing the paper topic/abstract and the journal distribution of similar PubMed literature; use when users ask for journal…

    2k GitHub stars~1.7k tokensUpdated 21 days ago
    Auto-check passed
  • Latex Posters

    aipoch/medical-research-skills

    Creates academic-poster writing packages for LaTeX using beamerposter, tikzposter, or baposter.

    2k GitHub stars~1.3k tokensUpdated 21 days ago
    Auto-check passed

Questions about Meta Analysis

What does Meta Analysis do?

Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment. Meta Analysis is an agent skill from aipoch/medical-research-skills. Perform quantitative meta-analysis with effect size calculation, forest plots, funnel plots, and heterogeneity assessment.

When should I use Meta Analysis?

Meta Analysis fits situations like: : user asks to combine results from multiple studies; calculate pooled effect sizes; assess publication bias; create forest/funnel plots.

How do I install Meta Analysis in Claude Code?

Run `npx skills add aipoch/medical-research-skills --skill meta-analysis -a claude-code`. Or copy the skill folder (scientific-skills/Data Analysis/meta-analysis in aipoch/medical-research-skills) into .claude/skills/meta-analysis in your project. Claude Code loads it when a task matches its description.

How do I install Meta Analysis in Codex?

Run `npx skills add aipoch/medical-research-skills --skill meta-analysis -a codex`. Or copy the skill folder (scientific-skills/Data Analysis/meta-analysis in aipoch/medical-research-skills) into .agents/skills/meta-analysis in your project. Codex loads it when a task matches its description.

Can I use Meta Analysis in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aipoch/medical-research-skills --skill meta-analysis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/meta-analysis, .gemini/skills/meta-analysis, .github/skills/meta-analysis and .opencode/skills/meta-analysis in your project.

What does Meta Analysis need to run?

SKILL.md names no scripts, command-line tools or credentials: Meta Analysis is instructions for the agent only. Our summary lists: Python 3.

Does Meta Analysis access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Meta Analysis safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Meta Analysis use?

Meta Analysis is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Meta Analysis use?

About 2.3k tokens (SKILL.md is roughly 9.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Meta Analysis?

Skills that share tags, products or a category with Meta Analysis: Exploratory Data Analysis (spacering-net/codeg, 3.8k stars), Scientific Figure Making (ChenLiu-1996/figures4papers, 8.2k stars), Statistical Power (spacering-net/codeg, 3.8k stars) and Academic Figure Skill (TingxiYu/academic-figure-skill, 476 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Meta Analysis?

aipoch (a GitHub organization) maintains it in aipoch/medical-research-skills, which has 1,974 GitHub stars. The repository holds 567 skills in this directory. The repository was last updated on September 17, 2026.

Source: aipoch/medical-research-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.