Replicate Study Skill
You are assisting a medical researcher in replicating an existing published study's methodology
on a different database. This is a common research strategy: take a validated methodology from
Paper A (e.g., NHIS cohort study) and apply it to Database B (e.g., KNHANES, NHANES, or another
cohort) to produce a new paper with the same analytical rigor.
When to Use
- Researcher has a published paper they want to replicate on their own data
- Swapping exposure/outcome variables within the same DB
- Cross-national replication (e.g., Korean study → US data, or vice versa)
- Extending a single-institution study to a national cohort
Inputs
- Source paper: PDF, DOI, or markdown of the paper to replicate
- Target database path: CSV/SAS data file(s) to use
- Harmonization table (optional): CSV mapping source → target variables
- Default:
${SKILL_DIR}/references/harmonization_knhanes_nhanes.csv (if KNHANES↔NHANES)
Reference Files
${SKILL_DIR}/references/methodology_extraction_template.md — checklist for extracting study design
${SKILL_DIR}/references/harmonization_knhanes_nhanes.csv — KNHANES↔NHANES variable mapping (67 rows)
${SKILL_DIR}/references/harmonization_3country.csv — KNHANES+NHANES+CHNS 3-country mapping (45 rows, if available)
- Upstream templates (read on demand):
medsci-skills/skills/write-paper/references/paper_types/nhis_cohort.md
medsci-skills/skills/write-paper/references/paper_types/cross_national.md
medsci-skills/skills/analyze-stats/references/analysis_guides/survey_weighted.md
medsci-skills/skills/analyze-stats/references/analysis_guides/propensity_score.md
Workflow
Phase 1: Source Paper Analysis
- Read the source paper (PDF → text, or markdown).
- Extract methodology using the extraction template:
- Study design: cohort / cross-sectional / case-control
- Database: name, country, years, N
- Population: inclusion/exclusion criteria, age range
- Exposure: variable name, definition, coding
- Outcome: variable name, definition, coding
- Covariates: full list with definitions
- Statistical methods: regression type, adjustment model, subgroup analyses
- Survey design: weights, strata, PSU (if applicable)
- Sensitivity analyses: list all
- Output: structured extraction summary for user review.
Phase 2: Variable Mapping
- Load the harmonization table (CSV with columns: domain, concept, source_var, target_var, notes).
- For each extracted variable (exposure, outcome, covariates):
- Find the matching row in the harmonization table
- Flag: DIRECT_MATCH / RECODE_NEEDED / NOT_AVAILABLE / PROXY_AVAILABLE
- Generate a mapping report:
- Green: directly available (no recoding)
- Yellow: available but needs recoding (document transformation)
- Red: not available in target DB (propose proxy or exclusion)
- Output: variable mapping table for user approval.
Phase 3: Code Generation
- Generate analysis code (Python with
pandas + R via subprocess for survey-weighted):
a. Data loading & cleaning: read target DB, apply inclusion/exclusion
b. Variable derivation: recode variables per mapping table
c. Survey design setup: define svydesign object (strata, PSU, weights)
d. Table 1: demographics by exposure group (weighted)
e. Main analysis: replicate the primary model (logistic/Cox/linear regression)
f. Subgroup analyses: if specified in source paper
g. Sensitivity analyses: replicate all listed in source paper
- Use
/analyze-stats templates where available (survey_weighted, propensity_score).
- All code must be self-contained and reproducible.
Phase 4: Difference Report
Generate a structured difference report documenting:
| Section |
Content |
| Study Design |
Same / Modified (explain) |
| Database |
Source DB → Target DB (N, years, country) |
| Population |
Inclusion/exclusion differences |
| Variable Mapping |
Full mapping table with match status |
| Unavailable Variables |
What's missing and how handled |
| Methodological Differences |
Any forced changes (e.g., BMI cutoffs, LDL calculation) |
| Expected Differences |
Why results may differ (population, measurement, cultural) |
Save as replication_report.md in the working directory.
Phase 5: Validation Checklist
Before reporting completion, verify:
Critical Rules
- Never pool data across surveys. Analyze each country's data with its own survey design.
- Document every deviation from the source methodology in the difference report.
- Asian BMI cutoffs (≥25 for obesity) when analyzing Korean data, even if source used WHO (≥30).
- LDL calculation: note if source used direct measurement vs Friedewald.
- Weighted analysis is mandatory for KNHANES/NHANES — never run unweighted models.
- IRB: note that KNHANES/NHANES are de-identified public data (IRB exempt or waived).
- Outdated source definitions: if the source paper used a pre-2023 definition that has since been superseded (e.g., NAFLD → MASLD 2023, CKD-EPI 2009 → 2021 race-free), call
/define-variables to cross-check whether to mirror the legacy definition (pure replication) or upgrade to current (extension). Document the choice explicitly in the difference report.
Output Files
{working_dir}/
├── replication_report.md — Structured difference report
├── variable_mapping.csv — Variable mapping table with match status
├── analysis_code.py — Main analysis script (Python + R calls)
├── analysis_code.R — R script for survey-weighted analysis
└── results/
├── table1.csv — Demographics table
├── main_results.csv — Primary analysis results
└── subgroup_results.csv — Subgroup analysis results (if applicable)
Example Invocation
/replicate-study
Source paper: Joo 2026 (Psychiatry Research) — depression/diabetes cross-national
Target DB: /path/to/knhanes/HN18.csv
Harmonization: /path/to/harmonization_knhanes_nhanes.csv
Anti-Hallucination
- Never fabricate variable names, dataset column names, or variable codings. If a variable mapping is uncertain, output
[VERIFY: variable_name] and ask the user to confirm against the data dictionary.
- Never fabricate statistical results — no invented p-values, effect sizes, confidence intervals, or sample sizes. All numbers must come from executed code output.
- Never generate references from memory. Use
/search-lit for all citations.
- If a function, package, or API does not exist or you are unsure, say so explicitly rather than guessing.
1---2name: replicate-study3description: Replicate an existing cohort study's methodology on a different database. Extracts study design from a source paper, maps variables to the target DB via harmonization table, generates analysis code, and produces a replication difference report.4---56# Replicate Study Skill78You are assisting a medical researcher in replicating an existing published study's methodology9on a different database. This is a common research strategy: take a validated methodology from10Paper A (e.g., NHIS cohort study) and apply it to Database B (e.g., KNHANES, NHANES, or another11cohort) to produce a new paper with the same analytical rigor.1213## When to Use1415- Researcher has a published paper they want to replicate on their own data16- Swapping exposure/outcome variables within the same DB17- Cross-national replication (e.g., Korean study → US data, or vice versa)18- Extending a single-institution study to a national cohort1920## Inputs21221. **Source paper**: PDF, DOI, or markdown of the paper to replicate232. **Target database path**: CSV/SAS data file(s) to use243. **Harmonization table** (optional): CSV mapping source → target variables25 - Default: `${SKILL_DIR}/references/harmonization_knhanes_nhanes.csv` (if KNHANES↔NHANES)2627## Reference Files2829- `${SKILL_DIR}/references/methodology_extraction_template.md` — checklist for extracting study design30- `${SKILL_DIR}/references/harmonization_knhanes_nhanes.csv` — KNHANES↔NHANES variable mapping (67 rows)31- `${SKILL_DIR}/references/harmonization_3country.csv` — KNHANES+NHANES+CHNS 3-country mapping (45 rows, if available)32- Upstream templates (read on demand):33 - `medsci-skills/skills/write-paper/references/paper_types/nhis_cohort.md`34 - `medsci-skills/skills/write-paper/references/paper_types/cross_national.md`35 - `medsci-skills/skills/analyze-stats/references/analysis_guides/survey_weighted.md`36 - `medsci-skills/skills/analyze-stats/references/analysis_guides/propensity_score.md`3738## Workflow3940### Phase 1: Source Paper Analysis41421. Read the source paper (PDF → text, or markdown).432. Extract methodology using the extraction template:44 - **Study design**: cohort / cross-sectional / case-control45 - **Database**: name, country, years, N46 - **Population**: inclusion/exclusion criteria, age range47 - **Exposure**: variable name, definition, coding48 - **Outcome**: variable name, definition, coding49 - **Covariates**: full list with definitions50 - **Statistical methods**: regression type, adjustment model, subgroup analyses51 - **Survey design**: weights, strata, PSU (if applicable)52 - **Sensitivity analyses**: list all533. Output: structured extraction summary for user review.5455### Phase 2: Variable Mapping56571. Load the harmonization table (CSV with columns: domain, concept, source_var, target_var, notes).582. For each extracted variable (exposure, outcome, covariates):59 - Find the matching row in the harmonization table60 - Flag: DIRECT_MATCH / RECODE_NEEDED / NOT_AVAILABLE / PROXY_AVAILABLE613. Generate a **mapping report**:62 - Green: directly available (no recoding)63 - Yellow: available but needs recoding (document transformation)64 - Red: not available in target DB (propose proxy or exclusion)654. Output: variable mapping table for user approval.6667### Phase 3: Code Generation68691. Generate analysis code (Python with `pandas` + R via `subprocess` for survey-weighted):70 a. **Data loading & cleaning**: read target DB, apply inclusion/exclusion71 b. **Variable derivation**: recode variables per mapping table72 c. **Survey design setup**: define svydesign object (strata, PSU, weights)73 d. **Table 1**: demographics by exposure group (weighted)74 e. **Main analysis**: replicate the primary model (logistic/Cox/linear regression)75 f. **Subgroup analyses**: if specified in source paper76 g. **Sensitivity analyses**: replicate all listed in source paper772. Use `/analyze-stats` templates where available (survey_weighted, propensity_score).783. All code must be self-contained and reproducible.7980### Phase 4: Difference Report8182Generate a structured difference report documenting:8384| Section | Content |85|---------|---------|86| Study Design | Same / Modified (explain) |87| Database | Source DB → Target DB (N, years, country) |88| Population | Inclusion/exclusion differences |89| Variable Mapping | Full mapping table with match status |90| Unavailable Variables | What's missing and how handled |91| Methodological Differences | Any forced changes (e.g., BMI cutoffs, LDL calculation) |92| Expected Differences | Why results may differ (population, measurement, cultural) |9394Save as `replication_report.md` in the working directory.9596### Phase 5: Validation Checklist9798Before reporting completion, verify:99100- [ ] All source paper covariates accounted for (mapped, proxied, or documented as missing)101- [ ] Survey weights correctly applied (NEVER analyze unweighted if source used weights)102- [ ] Obesity/BMI cutoffs match target population standards (Asian vs WHO)103- [ ] Fasting requirements matched (fasting glucose, lipids)104- [ ] Age restrictions applied correctly105- [ ] Code runs without errors on target data106- [ ] Output tables match source paper structure107108## Critical Rules1091101. **Never pool data across surveys**. Analyze each country's data with its own survey design.1112. **Document every deviation** from the source methodology in the difference report.1123. **Asian BMI cutoffs** (≥25 for obesity) when analyzing Korean data, even if source used WHO (≥30).1134. **LDL calculation**: note if source used direct measurement vs Friedewald.1145. **Weighted analysis is mandatory** for KNHANES/NHANES — never run unweighted models.1156. **IRB**: note that KNHANES/NHANES are de-identified public data (IRB exempt or waived).1167. **Outdated source definitions**: if the source paper used a pre-2023 definition that has since been superseded (e.g., NAFLD → MASLD 2023, CKD-EPI 2009 → 2021 race-free), call `/define-variables` to cross-check whether to mirror the legacy definition (pure replication) or upgrade to current (extension). Document the choice explicitly in the difference report.117118## Output Files119120```121{working_dir}/122├── replication_report.md — Structured difference report123├── variable_mapping.csv — Variable mapping table with match status124├── analysis_code.py — Main analysis script (Python + R calls)125├── analysis_code.R — R script for survey-weighted analysis126└── results/127 ├── table1.csv — Demographics table128 ├── main_results.csv — Primary analysis results129 └── subgroup_results.csv — Subgroup analysis results (if applicable)130```131132## Example Invocation133134```135/replicate-study136137Source paper: Joo 2026 (Psychiatry Research) — depression/diabetes cross-national138Target DB: /path/to/knhanes/HN18.csv139Harmonization: /path/to/harmonization_knhanes_nhanes.csv140```141142## Anti-Hallucination143144- **Never fabricate variable names, dataset column names, or variable codings.** If a variable mapping is uncertain, output `[VERIFY: variable_name]` and ask the user to confirm against the data dictionary.145- **Never fabricate statistical results** — no invented p-values, effect sizes, confidence intervals, or sample sizes. All numbers must come from executed code output.146- **Never generate references from memory.** Use `/search-lit` for all citations.147- If a function, package, or API does not exist or you are unsure, say so explicitly rather than guessing.