mcpField
F
find-cohort-gap

find-cohort-gap

github.com/aperivue生产力353113 次安装1 天前更新
代码仓库

关于 find-cohort-gap

find-cohort-gap 是用于临床研究的队列选题规划技能,面向研究者从队列资料和 PI 专长中筛选可行主题。它通过文献饱和度、研究差异和可行性评估,逐步生成排序提案。

主要功能

  1. 01从代码本构建队列概况
  2. 02交叉队列变量与 PI 专长
  3. 03扫描文献饱和度和纵向研究缺口
  4. 04按六类模式评估主题
  5. 05检查样本量、缺失数据与伦理可行性
  6. 06生成排序提案和研究摘要页

适用场景

  1. 01评估机构登记库或 EMR 导出数据
  2. 02结合研究者专长寻找临床队列选题
  3. 03比较候选主题的发表空间
  4. 04筛查研究方案的实际可行性

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/aperivue/medsci-skills --skill find-cohort-gap

安装后在 Claude Code 中输入/find-cohort-gap确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

skill.yml
references/
cohort_profile_template.md
onepager_template.md
pattern_scoring_rubric.md
saturation_query_templates.md
scripts/
build_cohort_profile.py
tests/
test_cohort_profile.sh

详细介绍

查找队列研究空白技能

输出目录:由用户指定(默认:当前工作目录)。

阶段 0:队列信息收集

队列不必是此技能听说过的队列。根据用户实际拥有的资料进行处理。

用户拥有……操作
有名称的公开队列(NHIS、UK Biobank、KNHANES,等等)根据已发布的文档填写队列档案。为每个字段注明来源。
自有注册库或 EMR 提取数据的代码本/数据字典/CSV 导出文件运行下方的输入适配器。这是常见情况——机构注册库或单中心导出数据通常没有公开文档说明。
定义临床领域的综述、指南或预印本将其作为领域背景(--context)附加,可以是文件或 URL。
输入适配器(本地代码本/文档)
python3 "${CLAUDE_SKILL_DIR}/scripts/build_cohort_profile.py" \
  --codebook data_dictionary.csv \
  --context narrative_review.pdf --context https://example.org/guideline \
  --cohort-name "Institutional CT registry" --out-dir .

格式:.csv / .tsv / .json / .md / .txt(标准库支持),.xlsx(需要 openpyxl),.pdf(需要 pdftotext)。.csv 会自动识别为代码本(行是变量)或数据导出文件(表头行是变量列表)。生成 cohort_profile.md + cohort_profile.json(以及 context_extract.md)。

不要自行阅读代码本并对其进行总结。 改写、合并或虚构变量会污染所有下游结论——交集矩阵、可行性门槛,最终还会影响论文的 Methods。适配器会逐字列出变量并注明来源(file:row)。请阅读 cohort_profile.md;不要自行重新推导。

适配器会推断并展示其依据,包括变量聚类图、序列/重复测量组(支持 P1 纵向优势的证据),以及候选终点(支持 P2 终点升级的证据)。不匹配任何聚类关键词的变量会标记为 unclassified——请检查这些变量,因为词汇表并不全面。

适配器无法得知的信息——询问,绝不猜测

代码本不会说明以下信息;每项都会标记为 [UNKNOWN - ask the user]:

  1. 样本量(基线 N、具有随访数据的 N)
  2. 时间跨度(入组时间段、随访时长、测量间隔)
  3. 已知局限(健康志愿者偏倚、脱落、缺失数据模式)
  4. 该队列的既有出版物(以避免重复发表)
  5. IRB 状态和数据访问途径

进入阶段 2 前,请向用户收集这些信息,因为猜测的 N 会影响阶段 5 的可行性门槛,导致判断通过或不通过的原因与队列本身无关。同时确认研究场景(机构类型、国家、人口类型),以及变量名称无法揭示的任何特殊优势——注册库关联、生物样本库可用性、具有代表性的独特人群。

门槛: 展示队列档案摘要,包括 [UNKNOWN] 列表和未分类变量。确认后再继续。

阶段 1:PI/CA 画像分析

分析目标 PI 或通讯作者的资料,找出其主题专长的契合度。如果未指定 PI,则跳过此阶段,并在阶段 2 中仅使用变量聚类。

  1. 使用 /search-lit 的 E-utilities 脚本,在 PubMed 中搜索 PI 近 5 年的出版物: bash "${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh" search "AuthorLastName AuthorFirstInitial[Author]" 30 从标题和摘要中提取高频关键词聚类。
  2. 识别专业领域信号:学术协会职务(会长、理事、编辑)、亚专科重点方向、偏好的期刊层级。
  3. 构建 PI 关键词图谱:按出版物频次排序的 5-10 个关键词聚类。

输出: PI 画像卡片(姓名、隶属机构、主要关键词、学术协会职务、偏好期刊)。

阶段 2:交集矩阵

将队列变量聚类与 PI 专长交叉分析,生成候选主题。

方法

创建一个矩阵:行 = DB 变量簇,列 = PI 关键词簇。 对每个单元格评分,范围为 0-3:

  • 3:PI 曾在这一精确交叉领域发表过论文(直接匹配)
  • 2:PI 的亚专科涵盖这一领域(高度相关)
  • 1:存在间接联系(有可能,但需要明确论述角度)
  • 0:没有关联
候选主题生成
  1. 提取所有评分为 2-3 的单元格,作为主要候选项。
  2. 对评分为 1 的单元格,进行 A-B 替代测试:“是否有人在类似队列中发表过[这项分析],但使用[不同的暴露因素/结局]?”如果有,将 PI 的专科变量替换进去后,即可形成可行的候选主题。
  3. 以 PICO 格式生成 20-40 条候选主题陈述——P 为队列中的人群,E 为暴露因素/预测变量,C 为比较组,O 为结局(最好是硬终点)。
学科匹配筛选

在进行饱和度扫描前,确定预期第一作者的科室/专科。主要暴露变量必须属于该学科(例如,放射科第一作者 → 以影像变量作为主要暴露因素)。淘汰主要暴露因素不属于第一作者学科的候选项——仅与 PI 高度匹配还不够,第一作者必须能够对核心变量拥有主导权。

**关卡:**呈现交叉矩阵和排名前 20 的候选项(经学科筛选后)。用户选择 8-12 个候选项进行饱和度扫描。

第 3 阶段:文献饱和度扫描

对每个选定的候选项,判断相关文献的饱和程度。

搜索策略

对每个候选项:

  1. 构建 PubMed 查询:(exposure terms) AND (outcome terms) AND (cohort OR longitudinal OR prospective)
  2. 通过 /search-lit E-utilities 执行搜索。
  3. 统计结果总数,然后提出关键筛选问题——“是否有人发表过包含连续/重复测量的相关研究?”——并检查是否存在荟萃分析。 评级:
论文数纵向研究论文数是否存在荟萃分析?评级说明
0-20否蓝海可能是首次报告。确认该主题是否受到关注。
3-100否绿地最佳区域——已有研究兴趣,纵向研究缺口仍很大。
11-300否绿地(从黄色升级)同上。
1-301+否黄色只有在角度非常具体时才可行(独特人群、新颖终点)。
>30任意否黄色(接近红色)同上。
任意任意有,已过时(>5 年)或范围有限黄色同上。
任意任意有,近期红色除非进行 NMA 或使用真正独特的数据,否则应避免。
“有何意义”测试

对每个候选项,阐述研究发现可能带来的 2-3 项临床影响。 如果无法说明临床医生或政策制定者为何会关注该结果,无论缺口评分如何,该主题都不合格。

**输出:**饱和度表,列出每个候选项的评级、论文数、纵向研究缺口状态和“有何意义”陈述。

**关卡:**呈现饱和度结果。用户选择 3-5 个最终候选项,进行深入评分。

第 4 阶段:6 种模式评分 + 对比表

对每个最终候选项应用 6 种模式框架。每种模式评 0 或 1 分。

6 种模式(通用)

阅读 ${CLAUDE_SKILL_DIR}/references/pattern_scoring_rubric.md 中的详细评分标准,并对每个最终候选项的P1 纵向优势、P2 终点升级、P3 队列独特性、P4 PI-主题匹配度(未指定 PI 时跳过)、P5 对比表缺口(下表中有 3 个或更多仅属于本研究的特征),以及 P6 互补设计进行评分。

对比表构建

对每个入围方案,制作一张表,将排名最靠前的 3-5 篇现有论文与本研究进行对比, 每项特征占一行(研究设计、N、序列数据、硬终点、研究人群、族裔、亚组分析等)—— 评分标准中的 P5 列出了构建步骤和差异化类别。 仅引用经 /search-lit 确认的 DOI 或 PMID 的现有论文;否则将参考文献标记为 [UNVERIFIED - NEEDS MANUAL CHECK]。

分数解读
总分建议
5-6顶级期刊目标(Lancet 子刊、JACC、J Hepatol 级别)
3-4专科期刊目标(可稳健发表)
0-2重构或放弃——继续推进前先找到更有力的切入点

关卡: 提交评分结果和对比表。由用户批准最终排名。

第 5 阶段:可行性关卡

对每个评分入围方案,核实其实操可行性。

检查项
  1. 样本量是否充足:
    • Cox 回归和逻辑回归:每个预测变量至少 10 个事件(EPV 规则)
    • 对于大型队列(N>100K)且结局事件众多的情况:警示小效应也会达到统计学显著性(统计功效取决于事件数,而非 N——先检查事件数),因此应关注效应量阈值(例如,HR >1.2 或 <0.8 才具有临床相关性)
    • 对于超大样本,考虑采用负对照策略(EPCV)
  2. 缺失数据:关键暴露变量缺失率 <20% 可接受;关键结局缺失率 <5%;若有序列数据,评估失访模式(MCAR/MAR/MNAR)
  3. 随访是否充足:结局必须在现有随访时长内具有合理的潜伏期——癌症结局至少 5 年,CVD 事件至少 3 年,死亡率至少 5 年
  4. 操作性定义:
    • 能否根据现有变量定义暴露?
    • 对于理赔数据:仅使用 ICD 编码的准确率为 40-60%。必须采用组合策略(诊断 + 处方 + 就诊频率 + 特殊编码)
    • 将预期患病率与已知流行病学数据进行交叉核对
    • 对于无法找到来源的临床定义、诊断标准或指南说法,标记为 [VERIFY] 并询问用户。
  5. IRB/伦理:该数据是否已获 IRB 批准用于此类分析?数据关联是否需要额外审批?
  6. 疾病新颖性加分(仅供参考,不作为 Go/No-Go 依据):特发性病因或存在争议的机制 → 期刊兴趣更高;机制已确立 → 需要更强的方法学创新
决策
  • Go:所有检查均通过。
  • Conditional Go:存在可解决的小问题(例如,可通过插补处理缺失数据)。
  • No-Go:存在致命缺陷(事件数不足、没有有效终点、关键变量不可用)。

输出: 为每个入围方案提供可行性报告,并标明 Go/Conditional/No-Go 状态。

第 6 阶段:输出——排名后的提案 + 单页简介

排名汇总表
| Rank | Topic (PICO) | Saturation | 6-Pattern Score | Feasibility | Target Journal | Timeline |
|------|--------------|------------|-----------------|-------------|----------------|----------|
| 1 | ... | Green (0 longitudinal) | 5/6 | Go | JACC | 6 months |
| 2 | ... | Blue (0 papers) | 3/6 | Conditional | Radiology | 8 months |
每个入围方案的单页简介

填写 ${CLAUDE_SKILL_DIR}/references/onepager_template.md 模板中的每个部分; 说明目标期刊及选择理由(PI 契合度、范围匹配度、研究空白契合度)。将单页简介保存为 Markdown 文件:{output_dir}/gap_proposal_{rank}_{short_topic}.md

下游流程: 输出将用于 /design-study → /write-paper。

评论

支持 Markdown