replicate-study について
replicate-studyは、公開済み研究の手法を別のデータベースに適用する研究者向けのデータ分析スキルです。変数マッピング、再現可能な分析コード、対象データによる変更点の報告を組み合わせます。
主な機能
- 01研究方法の抽出
- 02データベース間の変数マッピング
- 03分析コードの生成と実行
- 04方法上の差異の記録
- 05重み付けと結果の検証
活用シーン
- 01KNHANESとNHANES間での研究再現
- 02対象データで欠損・再コードが必要な変数の特定
- 03原論文からの変更点の追跡
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill replicate-studyインストール後、Claude Code で/replicate-studyを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
skill.ymlreferences/harmonization_3country.csvharmonization_knhanes_nhanes.csvmethodology_extraction_template.mdtests/test_alcohol_harmonization.pytests/fixtures/main_alcohol_rows/harmonization_3country.csvharmonization_knhanes_nhanes.csv詳細
Replicate Study スキル
公開済み研究の方法論を別のデータベースに適用し、対象データベースの都合で変更が必要になった箇所をすべて報告します。
入力
- 原著論文:再現する論文の PDF、DOI、または Markdown
- 対象データベースのパス:使用する CSV/SAS データファイル
- 調和テーブル(任意):原著の変数から対象の変数への対応を示す CSV
- デフォルト:
${CLAUDE_SKILL_DIR}/references/harmonization_knhanes_nhanes.csv(KNHANES↔NHANES の場合)
- デフォルト:
参照ファイル
${CLAUDE_SKILL_DIR}/references/methodology_extraction_template.md— 研究デザインを抽出するためのチェックリスト${CLAUDE_SKILL_DIR}/references/harmonization_knhanes_nhanes.csv— KNHANES↔NHANES の変数対応(67 行)${CLAUDE_SKILL_DIR}/references/harmonization_3country.csv— KNHANES+NHANES+CHNS の 3 か国変数対応(46 行)- 上流テンプレート(必要に応じて参照):
${CLAUDE_SKILL_DIR}/../write-paper/references/paper_types/nhis_cohort.md${CLAUDE_SKILL_DIR}/../write-paper/references/paper_types/cross_national.md${CLAUDE_SKILL_DIR}/../analyze-stats/references/analysis_guides/survey_weighted.md${CLAUDE_SKILL_DIR}/../analyze-stats/references/analysis_guides/propensity_score.md
ワークフロー
フェーズ 1:原著論文の分析
- 原著論文を読みます(PDF の場合はテキストに変換するか、Markdown を読みます)。
methodology_extraction_template.mdに記入し、方法論を抽出します。研究デザイン、データベース(名称、国、年、N)、対象集団(組み入れ/除外基準、年齢範囲)、曝露とアウトカム(変数、定義、コーディング)、定義付き共変量、統計手法(回帰の種類、調整モデル、サブグループ解析)、調査デザイン(ウェイト、層、PSU)、およびすべての感度分析を含めます。- 古くなった原著の定義:原著で、現在は置き換えられている 2023 年以前の定義(例:NAFLD → MASLD 2023、CKD-EPI 2009 → 2021 年の人種を使用しない式)が使われている場合は、
/define-variablesを呼び出して、旧定義を踏襲する(忠実な再現)か、現行の定義に更新する(拡張)かを照合します。選択内容は差分レポートに記録します。 - 出力:ユーザーが確認するための構造化された抽出結果の概要。
フェーズ 2:変数のマッピング
- 調和テーブルを読み込みます(列:
domain、concept、concept_en、データベースごとの変数/ラベル列の組(例:knhanes_var/nhanes_var)、harmonization_notes)。 - 抽出した各変数(曝露、アウトカム、共変量)について、対応する行を探し、DIRECT_MATCH/RECODE_NEEDED/NOT_AVAILABLE/PROXY_AVAILABLE のいずれかを付与します。対応が不確かな場合は
[VERIFY: variable_name]と記載し、データ辞書を参照してユーザーに確認を求めます。変数名、列名、コーディングを決して推測しないでください。 - マッピングレポートを作成します:
- 緑:直接利用可能(再コーディング不要)
- 黄:利用可能だが再コーディングが必要(変換を記録)
- 赤:対象 DB では利用できない(代替指標または除外を提案)
- 出力:ユーザー承認用の変数マッピングテーブル(
variable_mapping.csv)。
フェーズ 3:コード生成
- 自己完結型で再現可能な分析コードを生成します(
pandasを使う Python と、調査ウェイトを用いた分析のためにsubprocess経由で実行する R)。 a. データの読み込みとクリーニング:対象データベースを読み込み、組み入れ/除外フラグを導出します(すべての行を保持してください)。 b. 変数の導出:対応表に従って変数を再コード化します。 c. 調査デザインの設定:ファイル全体に対して svydesign オブジェクト(層、PSU、ウェイト)を定義してから、subset(design, <inclusion flag>)で対象を絞り込みます。デザインを宣言する前に行を削除すると、標準誤差が正しく算出されません(/analyze-statssurvey_weighted.md、サブポピュレーション分析)。KNHANES/NHANES ではウェイト付き分析が必須です。ウェイトなしのモデルは決して実行しないでください。調査間でデータをプールしないでください。各国のデータは、その国固有の調査デザインを用いて分析してください。 d. 表 1:曝露群別の人口統計情報(ウェイト付き) e. 主解析:主要モデル(ロジスティック回帰/Cox 回帰/線形回帰)を再現します。 f. サブグループ分析:原著論文で指定されている場合 g. 感度分析:原著論文に記載されたものをすべて再現します。 - 利用可能な場合は、
/analyze-statsのテンプレート(survey_weighted、propensity_score)を使用します。 - 韓国のデータには、原著論文で WHO の基準(≥30)が使われていても、アジア人の BMI カットオフ(肥満は ≥25)を使用します。
- 対象データにコードを実行します。
results/とレポートに記載する数値は、すべてその実行結果に基づくものとします。
フェーズ 4:差異レポート
作業ディレクトリに replication_report.md を保存し、原著の方法論からの差異をすべて記録します。
| セクション | 内容 |
|---|---|
| 研究デザイン | 同一/変更あり(説明を記載) |
| データベース | ソース DB → 対象 DB(N、年、国) |
| 対象集団 | 組み入れ/除外基準の差異 |
| 変数の対応付け | 対応状況を含む完全な対応表 |
| 利用できない変数 | 欠落している項目と、その対処方法 |
| 方法論上の差異 | やむを得ず変更した点(例:BMI カットオフ、LDL の直接測定と Friedewald 式の違い) |
| 予想される差異 | 結果が異なる可能性の理由(集団、測定方法、文化的要因) |
KNHANES/NHANES は匿名化された公開データであり、IRB 審査は免除または免除扱いである点に留意してください。引用には /search-lit で確認済みの DOI/PMID のみを使用してください。確認できない場合は、引用に [UNVERIFIED - NEEDS MANUAL CHECK] と記載してください。
フェーズ 5:検証チェックリスト
完了を報告する前に、次の項目を確認してください。
- 原著論文の共変量をすべて考慮している(対応付け、代替指標の使用、または欠落の記録)
- 調査ウェイトを正しく適用している(原著でウェイトが使われている場合、ウェイトなしの分析は絶対に行わない)
- 肥満/BMI のカットオフが対象集団の基準(アジア人と WHO)に合致している
- 空腹時の要件(空腹時血糖値、脂質)が一致している
- 年齢制限が正しく適用されている
- 対象データでコードがエラーなく実行される
- 出力テーブルの構成が原著論文と一致している
出力ファイル
{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)
コメント
Markdown 対応