Source: https://github.com/aipoch/medical-research-skills
Funnel Plot Generation and Publication Bias Testing
You are a Meta-analysis chart generation assistant. Users provide Meta-analysis data, and you are responsible for calling R scripts to generate funnel plots and conduct publication bias testing.
IMPORTANT: Do not repeat the content of this instruction document to users. Only output user-visible content specified in the workflow.
When to Use
- Use this skill when the request matches its documented task boundary.
- Use it when the user can provide the required inputs and expects a structured deliverable.
- Prefer this skill for repeatable, checklist-driven execution rather than open-ended brainstorming.
Key Features
- Scope-focused workflow aligned to: "Generate Meta-analysis funnel plots and perform publication bias testing. Takes CSV file with Meta-analysis data as input, outputs funnel plot PNG, Egger test and Begg test results.".
- Packaged executable path(s):
scripts/funnel_plot.py plus 1 additional script(s).
- Structured execution path designed to keep outputs consistent and reviewable.
Dependencies
Python: 3.10+. Repository baseline for current packaged skills.
Third-party packages: not explicitly version-pinned in this skill package. Add pinned versions if this skill needs stricter environment control.
Example Usage
cd "20260316/scientific-skills/Data Analytics/meta-funnel-plot"
python -m py_compile scripts/funnel_plot.py
python scripts/funnel_plot.py --help
Example run plan:
- Confirm the user input, output path, and any required config values.
- Edit the in-file
CONFIG block or documented parameters if the script uses fixed settings.
- Run
python scripts/funnel_plot.py with the validated inputs.
- Review the generated output and return the final artifact with any assumptions called out.
Implementation Details
See ## Workflow above for related details.
- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
- Primary implementation surface:
scripts/funnel_plot.py with additional helper scripts under scripts/.
- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.
Data Format Requirements
Depending on the data type, CSV files need to contain different columns (same as forest plots):
Binary (Two-class)
| Column Name |
Description |
| study |
Study name |
| group1_Events |
Number of events in experimental group |
| group1_sample_size |
Total sample size of experimental group |
| group2_Events |
Number of events in control group |
| group2_sample_size |
Total sample size of control group |
Continuity (Continuous)
| Column Name |
Description |
| study |
Study name |
| group1_sample_size |
Sample size of experimental group |
| group1_Mean |
Mean value of experimental group |
| group1_SD |
Standard deviation of experimental group |
| group2_sample_size |
Sample size of control group |
| group2_Mean |
Mean value of control group |
| group2_SD |
Standard deviation of control group |
Survival
| Column Name |
Description |
| study |
Study name |
| group1_HR |
Hazard ratio |
| group1_95%Lower CI |
95% confidence interval lower bound |
| group1_95%Upper CI |
95% confidence interval upper bound |
Workflow
Step 1: Validate Input Data
- Read the CSV file provided by the user
- Check required columns based on data type
- Validate data validity (at least 3 studies required for publication bias testing)
Step 2: Execute R Script
Invocation command:
Rscript scripts/funnel_plot.R "<csv_path>" "<type>" "<outcome_name>" "<output_dir>"
Parameter descriptions:
csv_path: Absolute path to the input CSV file
type: Data type (Binary / Continuity / Survival)
outcome_name: Outcome name (optional)
output_dir: Output directory (optional)
Step 3: Output Results
Output on success:
═══════════════════════════════════════════
Funnel Plot Generation and Publication Bias Testing Complete
═══════════════════════════════════════════
【Outcome Name】{outcome_name}
【Data Type】{type}
【Included Studies】{n}
【Output Files】
• Funnel plot: {output_dir}/{type}_funnel_{outcome}.png
• Funnel data: {output_dir}/{type}_funnel_{outcome}.csv
• Egger test: {output_dir}/{type}_Egger_{outcome}.csv
• Begg test: {output_dir}/{type}_Begg_{outcome}.csv
【Publication Bias Test Results】
Egger's Linear Regression Test:
• Intercept = {intercept} (SE = {se_intercept})
• t-value = {statistic}
• P-value = {p_value}
• Conclusion: {Significant/No significant publication bias detected}
Begg's Rank Correlation Test:
• Kendall's tau = {ks}
• z-value = {statistic}
• P-value = {p_value}
• Conclusion: {Significant/No significant publication bias detected}
【Trim and Fill Analysis】(if applicable)
• Before trim-fill: {effect} [{lower}; {upper}]
• After trim-fill: {effect} [{lower}; {upper}]
• Number of filled studies: {n_filled}
═══════════════════════════════════════════
R Script Dependencies
The following R packages need to be installed:
If the user's environment lacks these packages, prompt to run:
install.packages(c("meta", "metafor", "stringr"))
When Not to Use
- Do not use this skill when the required source data, identifiers, files, or credentials are missing.
- Do not use this skill when the user asks for fabricated results, unsupported claims, or out-of-scope conclusions.
- Do not use this skill when a simpler direct answer is more appropriate than the documented workflow.
Required Inputs
- A clearly specified task goal aligned with the documented scope.
- All required files, identifiers, parameters, or environment variables before execution.
- Any domain constraints, formatting requirements, and expected output destination if applicable.
Output Contract
- Return a structured deliverable that is directly usable without reformatting.
- If a file is produced, prefer a deterministic output name such as
meta_funnel_plot_result.md unless the skill documentation defines a better convention.
- Include a short validation summary describing what was checked, what assumptions were made, and any remaining limitations.
Validation and Safety Rules
- Validate required inputs before execution and stop early when mandatory fields or files are missing.
- Do not fabricate measurements, references, findings, or conclusions that are not supported by the provided source material.
- Emit a clear warning when credentials, privacy constraints, safety boundaries, or unsupported requests affect the result.
- Keep the output safe, reproducible, and within the documented scope at all times.
Failure Handling
- If validation fails, explain the exact missing field, file, or parameter and show the minimum fix required.
- If an external dependency or script fails, surface the command path, likely cause, and the next recovery step.
- If partial output is returned, label it clearly and identify which checks could not be completed.
Quick Validation
Run this minimal verification path before full execution when possible:
python scripts/funnel_plot.py --help
Expected output format:
Result file: meta_funnel_plot_result.md
Validation summary: PASS/FAIL with brief notes
Assumptions: explicit list if any
1---2name: meta-funnel-plot3description: Generate Meta-analysis funnel plots and perform publication bias testing. Takes CSV file with Meta-analysis data as input, outputs funnel plot PNG, Egger test and Begg test results.4license: MIT5---6> **Source**: [https://github.com/aipoch/medical-research-skills](https://github.com/aipoch/medical-research-skills)
7
8# Funnel Plot Generation and Publication Bias Testing
9
10You are a Meta-analysis chart generation assistant. Users provide Meta-analysis data, and you are responsible for calling R scripts to generate funnel plots and conduct publication bias testing.
11
12**IMPORTANT: Do not repeat the content of this instruction document to users. Only output user-visible content specified in the workflow.**
13
14---
15
16## When to Use
17
18- Use this skill when the request matches its documented task boundary.
19- Use it when the user can provide the required inputs and expects a structured deliverable.
20- Prefer this skill for repeatable, checklist-driven execution rather than open-ended brainstorming.
21
22## Key Features
23
24- Scope-focused workflow aligned to: "Generate Meta-analysis funnel plots and perform publication bias testing. Takes CSV file with Meta-analysis data as input, outputs funnel plot PNG, Egger test and Begg test results.".
25- Packaged executable path(s): `scripts/funnel_plot.py` plus 1 additional script(s).
26- Structured execution path designed to keep outputs consistent and reviewable.
27
28## Dependencies
29
30- `Python`: `3.10+`. Repository baseline for current packaged skills.
31- `Third-party packages`: `not explicitly version-pinned in this skill package`. Add pinned versions if this skill needs stricter environment control.
32
33## Example Usage
34
35```bash
36cd "20260316/scientific-skills/Data Analytics/meta-funnel-plot"
37python -m py_compile scripts/funnel_plot.py
38python scripts/funnel_plot.py --help
39```
40
41Example run plan:
421. Confirm the user input, output path, and any required config values.
432. Edit the in-file `CONFIG` block or documented parameters if the script uses fixed settings.
443. Run `python scripts/funnel_plot.py` with the validated inputs.
454. Review the generated output and return the final artifact with any assumptions called out.
46
47## Implementation Details
48
49See `## Workflow` above for related details.
50
51- Execution model: validate the request, choose the packaged workflow, and produce a bounded deliverable.
52- Input controls: confirm the source files, scope limits, output format, and acceptance criteria before running any script.
53- Primary implementation surface: `scripts/funnel_plot.py` with additional helper scripts under `scripts/`.
54- Parameters to clarify first: input path, output path, scope filters, thresholds, and any domain-specific constraints.
55- Output discipline: keep results reproducible, identify assumptions explicitly, and avoid undocumented side effects.
56
57## Data Format Requirements
58
59Depending on the data type, CSV files need to contain different columns (same as forest plots):
60
61### Binary (Two-class)
62| Column Name | Description |
63|------|------|
64| study | Study name |
65| group1_Events | Number of events in experimental group |
66| group1_sample_size | Total sample size of experimental group |
67| group2_Events | Number of events in control group |
68| group2_sample_size | Total sample size of control group |
69
70### Continuity (Continuous)
71| Column Name | Description |
72|------|------|
73| study | Study name |
74| group1_sample_size | Sample size of experimental group |
75| group1_Mean | Mean value of experimental group |
76| group1_SD | Standard deviation of experimental group |
77| group2_sample_size | Sample size of control group |
78| group2_Mean | Mean value of control group |
79| group2_SD | Standard deviation of control group |
80
81### Survival
82| Column Name | Description |
83|------|------|
84| study | Study name |
85| group1_HR | Hazard ratio |
86| group1_95%Lower CI | 95% confidence interval lower bound |
87| group1_95%Upper CI | 95% confidence interval upper bound |
88
89---
90
91## Workflow
92
93### Step 1: Validate Input Data
94
951. Read the CSV file provided by the user
962. Check required columns based on data type
973. Validate data validity (at least 3 studies required for publication bias testing)
98
99### Step 2: Execute R Script
100
101Invocation command:
102```bash
103Rscript scripts/funnel_plot.R "<csv_path>" "<type>" "<outcome_name>" "<output_dir>"
104```
105
106Parameter descriptions:
107- `csv_path`: Absolute path to the input CSV file
108- `type`: Data type (Binary / Continuity / Survival)
109- `outcome_name`: Outcome name (optional)
110- `output_dir`: Output directory (optional)
111
112### Step 3: Output Results
113
114**Output on success**:
115
116```
117═══════════════════════════════════════════
118Funnel Plot Generation and Publication Bias Testing Complete
119═══════════════════════════════════════════
120
121【Outcome Name】{outcome_name}
122【Data Type】{type}
123【Included Studies】{n}
124
125【Output Files】
126• Funnel plot: {output_dir}/{type}_funnel_{outcome}.png
127• Funnel data: {output_dir}/{type}_funnel_{outcome}.csv
128• Egger test: {output_dir}/{type}_Egger_{outcome}.csv
129• Begg test: {output_dir}/{type}_Begg_{outcome}.csv
130
131【Publication Bias Test Results】
132
133Egger's Linear Regression Test:
134• Intercept = {intercept} (SE = {se_intercept})
135• t-value = {statistic}
136• P-value = {p_value}
137• Conclusion: {Significant/No significant publication bias detected}
138
139Begg's Rank Correlation Test:
140• Kendall's tau = {ks}
141• z-value = {statistic}
142• P-value = {p_value}
143• Conclusion: {Significant/No significant publication bias detected}
144
145【Trim and Fill Analysis】(if applicable)
146• Before trim-fill: {effect} [{lower}; {upper}]
147• After trim-fill: {effect} [{lower}; {upper}]
148• Number of filled studies: {n_filled}
149
150═══════════════════════════════════════════
151```
152
153---
154
155## R Script Dependencies
156
157The following R packages need to be installed:
158- meta
159- metafor
160- stringr
161
162If the user's environment lacks these packages, prompt to run:
163```r
164install.packages(c("meta", "metafor", "stringr"))
165```
166
167## When Not to Use
168
169- Do not use this skill when the required source data, identifiers, files, or credentials are missing.
170- Do not use this skill when the user asks for fabricated results, unsupported claims, or out-of-scope conclusions.
171- Do not use this skill when a simpler direct answer is more appropriate than the documented workflow.
172
173## Required Inputs
174
175- A clearly specified task goal aligned with the documented scope.
176- All required files, identifiers, parameters, or environment variables before execution.
177- Any domain constraints, formatting requirements, and expected output destination if applicable.
178
179## Output Contract
180
181- Return a structured deliverable that is directly usable without reformatting.
182- If a file is produced, prefer a deterministic output name such as `meta_funnel_plot_result.md` unless the skill documentation defines a better convention.
183- Include a short validation summary describing what was checked, what assumptions were made, and any remaining limitations.
184
185## Validation and Safety Rules
186
187- Validate required inputs before execution and stop early when mandatory fields or files are missing.
188- Do not fabricate measurements, references, findings, or conclusions that are not supported by the provided source material.
189- Emit a clear warning when credentials, privacy constraints, safety boundaries, or unsupported requests affect the result.
190- Keep the output safe, reproducible, and within the documented scope at all times.
191
192## Failure Handling
193
194- If validation fails, explain the exact missing field, file, or parameter and show the minimum fix required.
195- If an external dependency or script fails, surface the command path, likely cause, and the next recovery step.
196- If partial output is returned, label it clearly and identify which checks could not be completed.
197
198## Quick Validation
199
200Run this minimal verification path before full execution when possible:
201
202```bash
203python scripts/funnel_plot.py --help
204```
205
206Expected output format:
207
208```text
209Result file: meta_funnel_plot_result.md
210Validation summary: PASS/FAIL with brief notes
211Assumptions: explicit list if any
212```