关于 find-cohort-gap
find-cohort-gap 是用于临床研究的队列选题规划技能,面向研究者从队列资料和 PI 专长中筛选可行主题。它通过文献饱和度、研究差异和可行性评估,逐步生成排序提案。
主要功能
- 01从代码本构建队列概况
- 02交叉队列变量与 PI 专长
- 03扫描文献饱和度和纵向研究缺口
- 04按六类模式评估主题
- 05检查样本量、缺失数据与伦理可行性
- 06生成排序提案和研究摘要页
适用场景
- 01评估机构登记库或 EMR 导出数据
- 02结合研究者专长寻找临床队列选题
- 03比较候选主题的发表空间
- 04筛查研究方案的实际可行性
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ aperivue/ medsci-skills --skill find-cohort-gap安装后在 Claude Code 中输入/find-cohort-gap确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
skill.ymlreferences/cohort_profile_template.mdonepager_template.mdpattern_scoring_rubric.mdsaturation_query_templates.mdscripts/build_cohort_profile.pytests/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]:
- 样本量(基线 N、具有随访数据的 N)
- 时间跨度(入组时间段、随访时长、测量间隔)
- 已知局限(健康志愿者偏倚、脱落、缺失数据模式)
- 该队列的既有出版物(以避免重复发表)
- IRB 状态和数据访问途径
进入阶段 2 前,请向用户收集这些信息,因为猜测的 N 会影响阶段 5 的可行性门槛,导致判断通过或不通过的原因与队列本身无关。同时确认研究场景(机构类型、国家、人口类型),以及变量名称无法揭示的任何特殊优势——注册库关联、生物样本库可用性、具有代表性的独特人群。
门槛: 展示队列档案摘要,包括 [UNKNOWN] 列表和未分类变量。确认后再继续。
阶段 1:PI/CA 画像分析
分析目标 PI 或通讯作者的资料,找出其主题专长的契合度。如果未指定 PI,则跳过此阶段,并在阶段 2 中仅使用变量聚类。
- 使用
/search-lit的 E-utilities 脚本,在 PubMed 中搜索 PI 近 5 年的出版物:bash "${CLAUDE_SKILL_DIR}/../search-lit/references/pubmed_eutils.sh" search "AuthorLastName AuthorFirstInitial[Author]" 30从标题和摘要中提取高频关键词聚类。 - 识别专业领域信号:学术协会职务(会长、理事、编辑)、亚专科重点方向、偏好的期刊层级。
- 构建 PI 关键词图谱:按出版物频次排序的 5-10 个关键词聚类。
输出: PI 画像卡片(姓名、隶属机构、主要关键词、学术协会职务、偏好期刊)。
阶段 2:交集矩阵
将队列变量聚类与 PI 专长交叉分析,生成候选主题。
方法
创建一个矩阵:行 = DB 变量簇,列 = PI 关键词簇。 对每个单元格评分,范围为 0-3:
- 3:PI 曾在这一精确交叉领域发表过论文(直接匹配)
- 2:PI 的亚专科涵盖这一领域(高度相关)
- 1:存在间接联系(有可能,但需要明确论述角度)
- 0:没有关联
候选主题生成
- 提取所有评分为 2-3 的单元格,作为主要候选项。
- 对评分为 1 的单元格,进行 A-B 替代测试:“是否有人在类似队列中发表过[这项分析],但使用[不同的暴露因素/结局]?”如果有,将 PI 的专科变量替换进去后,即可形成可行的候选主题。
- 以 PICO 格式生成 20-40 条候选主题陈述——P 为队列中的人群,E 为暴露因素/预测变量,C 为比较组,O 为结局(最好是硬终点)。
学科匹配筛选
在进行饱和度扫描前,确定预期第一作者的科室/专科。主要暴露变量必须属于该学科(例如,放射科第一作者 → 以影像变量作为主要暴露因素)。淘汰主要暴露因素不属于第一作者学科的候选项——仅与 PI 高度匹配还不够,第一作者必须能够对核心变量拥有主导权。
**关卡:**呈现交叉矩阵和排名前 20 的候选项(经学科筛选后)。用户选择 8-12 个候选项进行饱和度扫描。
第 3 阶段:文献饱和度扫描
对每个选定的候选项,判断相关文献的饱和程度。
搜索策略
对每个候选项:
- 构建 PubMed 查询:
(exposure terms) AND (outcome terms) AND (cohort OR longitudinal OR prospective) - 通过
/search-litE-utilities 执行搜索。 - 统计结果总数,然后提出关键筛选问题——“是否有人发表过包含连续/重复测量的相关研究?”——并检查是否存在荟萃分析。 评级:
| 论文数 | 纵向研究论文数 | 是否存在荟萃分析? | 评级 | 说明 |
|---|---|---|---|---|
| 0-2 | 0 | 否 | 蓝海 | 可能是首次报告。确认该主题是否受到关注。 |
| 3-10 | 0 | 否 | 绿地 | 最佳区域——已有研究兴趣,纵向研究缺口仍很大。 |
| 11-30 | 0 | 否 | 绿地(从黄色升级) | 同上。 |
| 1-30 | 1+ | 否 | 黄色 | 只有在角度非常具体时才可行(独特人群、新颖终点)。 |
| >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 阶段:可行性关卡
对每个评分入围方案,核实其实操可行性。
检查项
- 样本量是否充足:
- Cox 回归和逻辑回归:每个预测变量至少 10 个事件(EPV 规则)
- 对于大型队列(N>100K)且结局事件众多的情况:警示小效应也会达到统计学显著性(统计功效取决于事件数,而非 N——先检查事件数),因此应关注效应量阈值(例如,HR >1.2 或 <0.8 才具有临床相关性)
- 对于超大样本,考虑采用负对照策略(EPCV)
- 缺失数据:关键暴露变量缺失率 <20% 可接受;关键结局缺失率 <5%;若有序列数据,评估失访模式(MCAR/MAR/MNAR)
- 随访是否充足:结局必须在现有随访时长内具有合理的潜伏期——癌症结局至少 5 年,CVD 事件至少 3 年,死亡率至少 5 年
- 操作性定义:
- 能否根据现有变量定义暴露?
- 对于理赔数据:仅使用 ICD 编码的准确率为 40-60%。必须采用组合策略(诊断 + 处方 + 就诊频率 + 特殊编码)
- 将预期患病率与已知流行病学数据进行交叉核对
- 对于无法找到来源的临床定义、诊断标准或指南说法,标记为
[VERIFY]并询问用户。
- IRB/伦理:该数据是否已获 IRB 批准用于此类分析?数据关联是否需要额外审批?
- 疾病新颖性加分(仅供参考,不作为 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。