mcpField
E
Evaluating Paper Relevance

Evaluating Paper Relevance

github.com/kthorn生产力13162 次安装53 周前更新
代码仓库

关于 Evaluating Paper Relevance

Evaluating Paper Relevance 是一项面向跨研究领域的论文筛选技能,先快速评估摘要,再深入检查高分论文的全文、数据和方法。它强调针对具体研究需求判断相关性,并提供评分、追踪文件和进度汇报流程。

主要功能

  1. 01按关键词、数据类型和具体性评分
  2. 02分阶段筛选摘要与全文
  3. 03检查方法、结果、表格和补充材料
  4. 04记录每篇论文的评估结果
  5. 05按搜索规模规划筛选流程

适用场景

  1. 01从搜索结果中筛出含目标数据的论文
  2. 02查找研究中的实验方法或数据集
  3. 03批量评估不同领域的论文
  4. 04整理筛选结果并追踪处理进度

安装

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

$npx skills add https://github.com/kthorn/research-superpower --skill evaluating-paper-relevance

安装后在 Claude Code 中输入/evaluating-paper-relevance确认已加载。

详细介绍

评估论文相关性

概述

两阶段筛选流程:先快速评估摘要,再深入分析有前景的论文。

核心原则:重精度,轻广度。 找出真正包含用户所需特定数据或方法的论文,而不只是主题相关的论文。

适用场景

在以下情况下使用此技能:

  • 已有搜索得到的论文列表
  • 需要确定哪些论文包含相关数据
  • 用户要求提供特定信息(测量结果、协议、数据集等)
  • 逐篇筛选论文
  • 任何研究领域(药物化学、基因组学、生态学、计算方法等)

选择处理方式

小规模搜索(<50 篇论文):

  • 手动筛选并汇报进度
  • 仅使用 papers-reviewed.json 和 SUMMARY.md
  • 无需辅助脚本
  • 每筛选一篇论文都向用户汇报进度

大规模搜索(50-150 篇论文):

  • 考虑使用辅助脚本(screen_papers.py + deep_dive_papers.py)
  • 使用渐进增强模式(参见“辅助脚本”部分)
  • 创建 README.md,说明方法
  • 可考虑创建 TOP_PRIORITY_PAPERS.md 以便快速查阅
  • 使用更丰富的 JSON 结构(按相关性分类的 evaluated-papers.json)
  • 考虑使用 subagent-driven-review 技能并行筛选

超大规模搜索(>150 篇论文):

  • 务必使用辅助脚本和渐进增强模式
  • 创建完整的辅助文档套件(README.md、TOP_PRIORITY_PAPERS.md)
  • 考虑进行引文网络分析
  • 规划数周的时间安排
  • 强烈建议使用 subagent-driven-review 技能进行并行处理
  • 可能需要多个汇总检查点

两阶段流程

第 1 阶段:摘要筛选(快速)

目标: 快速找出有前景的论文

按以下标准评分,总分 0-10 分:

  • 关键词匹配(0-3 分):摘要是否提及与查询相关的关键术语?
  • 数据类型匹配(0-4 分):是否提及用户所需的特定信息?
    • 示例:测量结果(IC50、表达水平、种群数量)、协议、数据集、结构、序列、代码
  • 针对性(0-3 分):内容是否针对用户的问题,还是仅提供一般背景或综述?

判断规则:

  • 分数 < 5:跳过(不相关)
  • 分数 5-6:在摘要中标记为“可能相关”,暂时跳过
  • 分数 ≥ 7:进入第 2 阶段(深入分析)

重要:每篇论文都必须向用户汇报:

📄 [N/Total] Screening: "Paper Title"
   Abstract score: 8 → Fetching full text...

或

📄 [N/Total] Screening: "Paper Title"
   Abstract score: 4 → Skipping (insufficient relevance)

绝不要静默筛选——用户需要看到筛选正在进行

第 2 阶段:深入分析(全面)

目标: 从有前景的论文中提取特定数据或方法

1. 检查 ChEMBL(针对药物化学论文)

如果论文介绍药物化学或 SAR 数据:

使用 skills/research/checking-chembl 检查论文是否收录在 ChEMBL 数据库中:

curl -s "https://www.ebi.ac.uk/chembl/api/data/document.json?doi=$doi"

如果在 ChEMBL 中找到:

  • 在 SUMMARY.md 中记录 ChEMBL ID 和活性数据数量
  • 向用户报告:“✓ ChEMBL:CHEMBL3870308(45 个数据点)”
  • 无需解析 PDF 即可获取结构化 SAR 数据

继续获取全文,以了解背景、方法和讨论。

2. 获取全文

按以下顺序尝试:

A. PubMed Central(免费全文):

# Check if available in PMC
curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pmc&term=PMID[PMID]&retmode=json"

# If found, fetch full text XML via API
curl "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?db=pmc&id=PMCID&rettype=full&retmode=xml"

# Or fetch HTML directly (note: use pmc.ncbi.nlm.nih.gov, not www.ncbi.nlm.nih.gov/pmc)
curl "https://pmc.ncbi.nlm.nih.gov/articles/PMCID/"

B. DOI 解析:

# Try publisher link
curl -L "https://doi.org/10.1234/example.2023"
# May hit paywall - check response

C. Unpaywall(付费墙情况下必须尝试): 关键:如果步骤 B 遇到付费墙,必须立即尝试 Unpaywall,之后才能放弃。

使用 skills/research/finding-open-access-papers 查找免费的 OA 版本:

curl "https://api.unpaywall.org/v2/DOI?email=USER_EMAIL"
# Often finds versions in repositories, preprint servers, author copies
# IMPORTANT: Ask user for their email if not already provided - do NOT use [email protected]

向用户报告:

⚠️  Paper behind paywall, checking Unpaywall...
✓ Found open access version at [repository/preprint server]

或

⚠️  Paper behind paywall, checking Unpaywall...
✗ No open access version available - continuing with abstract only

D. 预印本(直接获取):

  • 检查 bioRxiv:https://www.biorxiv.org/content/10.1101/{doi}
  • 检查 arXiv(针对计算类论文)

尝试 Unpaywall 后仍无法获取全文时:

  • 在 SUMMARY.md 中注明:“⚠️ 全文受付费墙限制——未通过 Unpaywall 找到 OA 版本”
  • 继续仅根据摘要进行评估(信息有限)

关键:不要跳过 Unpaywall 检查。许多受付费墙限制的论文都在资料库中提供了免费版本。

2. 扫描相关内容

重点关注以下部分:

  • 方法:实验流程、方案
  • 结果:数据表、图表、测量结果
  • 表格/图表:通常包含用户所需的具体数据
  • 补充信息:其他数据、扩展方法

查找内容(根据研究领域调整):

  • 用户要求的具体数据
    • 药物化学:IC50 值、化合物结构、SAR 数据
    • 基因组学:基因表达水平、序列、变异数据
    • 生态学:种群测量结果、物种数量、环境参数
    • 计算领域:算法、代码可用性、性能基准
    • 临床领域:患者结局、治疗方案、样本量
  • 详细描述的方法/方案
  • 统计分析和显著性
  • 数据可用性声明
  • 提及的数据和代码仓库

使用 grep/文本搜索(根据情况调整搜索词):

# Examples for different domains
grep -i "IC50\|Ki\|MIC" paper.xml                    # Medicinal chemistry
grep -i "expression\|FPKM\|RNA-seq" paper.xml        # Genomics
grep -i "abundance\|population\|sampling" paper.xml  # Ecology
grep -i "algorithm\|github\|code" paper.xml          # Computational
3. 提取研究结果

创建结构化提取内容(根据研究领域调整):

示例 1:药物化学

{
  "doi": "10.1234/medchem.2023",
  "title": "Novel kinase inhibitors...",
  "relevance_score": 9,
  "findings": {
    "data_found": [
      "IC50 values for compounds 1-12 (Table 2)",
      "Selectivity data (Figure 3)",
      "Synthesis route (Scheme 1)"
    ],
    "key_results": [
      "Compound 7: IC50 = 12 nM",
      "10-step synthesis, 34% yield"
    ]
  }
}

示例 2:基因组学

{
  "doi": "10.1234/genomics.2023",
  "title": "Gene expression in disease...",
  "relevance_score": 8,
  "findings": {
    "data_found": [
      "RNA-seq data for 50 samples (GEO: GSE12345)",
      "Differential expression results (Table 1)",
      "Gene set enrichment analysis (Figure 4)"
    ],
    "key_results": [
      "123 genes upregulated (FDR < 0.05)",
      "Pathway enrichment: immune response"
    ]
  }
}

示例 3:计算方法

{
  "doi": "10.1234/compbio.2023",
  "title": "Novel alignment algorithm...",
  "relevance_score": 9,
  "findings": {
    "data_found": [
      "Algorithm pseudocode (Methods)",
      "Code repository (github.com/user/tool)",
      "Benchmark results (Table 2)"
    ],
    "key_results": [
      "10x faster than BLAST",
      "98% accuracy on test dataset"
    ]
  }
}
4. 下载材料

PDF:

# If PDF available
curl -L -o "papers/$(echo $doi | tr '/' '_').pdf" "https://doi.org/$doi"

补充数据:

# Download SI files if URLs found
curl -o "papers/${doi}_supp.zip" "https://publisher.com/supp/file.zip"
5. 更新跟踪文件

重要:只能使用 papers-reviewed.json 和 SUMMARY.md。不要创建自定义跟踪文件。

重要:无论评分如何,都要将每篇论文添加到 papers-reviewed.json。这可以避免重复审阅论文,并跟踪完整的搜索历史。

添加到 papers-reviewed.json:

对于相关论文(评分 ≥7):

{
  "10.1234/example.2023": {
    "pmid": "12345678",
    "status": "relevant",
    "score": 9,
    "source": "pubmed_search",
    "timestamp": "2025-10-11T10:30:00Z",
    "found_data": ["IC50 values", "synthesis methods"],
    "has_full_text": true,
    "chembl_id": "CHEMBL1234567"
  }
}

对于不相关论文(评分 <7):

{
  "10.1234/another.2023": {
    "pmid": "12345679",
    "status": "not_relevant",
    "score": 4,
    "source": "pubmed_search",
    "timestamp": "2025-10-11T10:31:00Z",
    "reason": "no activity data, review paper"
  }
}

即使跳过论文,也始终要添加——这样可以避免重复处理,并记录已检查的内容。

添加到 SUMMARY.md(不同领域的示例):

药物化学示例:

### [Novel kinase inhibitors with improved selectivity](https://doi.org/10.1234/medchem.2023) (Score: 9)

**DOI:** [10.1234/medchem.2023](https://doi.org/10.1234/medchem.2023)
**PMID:** [12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/)
**ChEMBL:** [CHEMBL1234567](https://www.ebi.ac.uk/chembl/document_report_card/CHEMBL1234567/)

**Key Findings:**
- IC50 values for 12 inhibitors (Table 2)
- Compound 7: IC50 = 12 nM, >80-fold selectivity
- Synthesis route (Scheme 1, page 4)

**Files:** PDF, supplementary data

基因组学示例:

### [Transcriptomic analysis of disease progression](https://doi.org/10.1234/genomics.2023) (Score: 8)

**DOI:** [10.1234/genomics.2023](https://doi.org/10.1234/genomics.2023)
**PMID:** [23456789](https://pubmed.ncbi.nlm.nih.gov/23456789/)
**Data:** [GEO: GSE12345](https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE12345)

**Key Findings:**
- RNA-seq data: 50 samples, 3 conditions
- 123 differentially expressed genes (FDR < 0.05)
- Immune pathway enrichment (Figure 3)

**Files:** PDF, supplementary tables with gene lists

计算方法示例:

### [Fast sequence alignment with novel algorithm](https://doi.org/10.1234/compbio.2023) (Score: 9)

**DOI:** [10.1234/compbio.2023](https://doi.org/10.1234/compbio.2023)
**Code:** [github.com/user/tool](https://github.com/user/tool)

**Key Findings:**
- New alignment algorithm (pseudocode in Methods)
- 10x faster than BLAST, 98% accuracy
- Benchmark datasets available

**Files:** PDF, code repository linked

重要:始终将 DOI 和 PMID 设置为可点击链接:

  • DOI 格式:[10.1234/example.2023](https://doi.org/10.1234/example.2023)
  • PMID 格式:[12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/)
  • 方便直接从 SUMMARY.md 访问论文

进度报告

重要:工作过程中要向用户报告进度,切勿默默工作!

每篇论文都要报告:

  1. 开始筛选: 📄 [N/Total] Screening: "Title..."
  2. 摘要评分: Abstract score: X/10
  3. 决定: 说明接下来要做什么(获取全文/跳过等)

对于相关论文,立即报告研究结果(根据领域调整):

药物化学示例:

📄 [15/127] Screening: "Selective BTK inhibitors..."
   Abstract score: 8 → Fetching full text...
   ✓ Found IC50 data for 8 compounds (Table 2)
   ✓ Selectivity data vs 50 kinases (Figure 3)
   → Added to SUMMARY.md

基因组学示例:

📄 [23/89] Screening: "Gene expression in liver disease..."
   Abstract score: 9 → Fetching full text...
   ✓ RNA-seq data available (GEO: GSE12345)
   ✓ 123 DEGs identified (Table 1, FDR < 0.05)
   → Added to SUMMARY.md

计算方法示例:

📄 [7/45] Screening: "Novel phylogenetic algorithm..."
   Abstract score: 8 → Fetching full text...
   ✓ Code available (github.com/user/tool)
   ✓ Benchmark results (10x faster, Table 2)
   → Added to SUMMARY.md

每处理 5-10 篇论文后,向用户更新总结:

📊 Progress: Reviewed 30/127 papers
   - Highly relevant: 3
   - Relevant: 5
   - Currently screening paper 31...

重要原因: 用户需要看到工作正在进行,并能尽早提供反馈或纠正意见。

与其他技能集成

对于药物化学论文:

  • 使用 skills/research/checking-chembl 查找经过整理的 SAR 数据
  • 在尝试解析 PDF 中的活性表格之前,先进行检查
  • 约 30-40% 的药物化学论文包含 ChEMBL 数据

获取全文期间:

  • 如果论文有付费墙:必须使用 skills/research/finding-open-access-papers(Unpaywall)
  • 不要跳过此步骤——Unpaywall 可免费找到约 50% 的付费论文

找到相关论文后:

  1. 检查 ChEMBL(如果是药物化学论文)
  2. 将研究结果提取到 SUMMARY.md
  3. 将文件下载到 papers/ 文件夹
  4. 调用 traversing-citations 技能查找相关论文
  5. 更新 papers-reviewed.json,避免重复处理

评分标准

评分含义操作
0-4不相关跳过,在总结中简要记录
5-6可能相关留待后续处理,暂时跳过深入分析
7-8相关深入分析、提取数据并添加到总结
9-10高度相关深入分析、提取数据、追踪引用,并在总结中重点标注

辅助脚本(可选)

筛查大量论文(>20)时,可考虑创建辅助脚本:

优点:

  • 批量处理并限制速率
  • 评分逻辑一致
  • 保存中间结果
  • 中断后可继续

在研究会话文件夹中创建:

# research-sessions/YYYY-MM-DD-query/screen_papers.py

主要组件:

  1. 获取摘要 - 使用 PubMed efetch 并处理错误
  2. 为摘要评分 - 实现评分标准(0-10)
  3. 限制速率 - API 调用之间延迟 500ms(如果并行运行子 Agent,则延迟更长)
  4. 保存结果 - 将已评分的论文按相关性分类并保存为 JSON
  5. 报告进度 - 运行时打印状态
渐进式增强模式(推荐用于 50 篇以上的论文)

大规模筛查时,使用双脚本模式:

脚本 1:摘要筛查(screen_papers.py)

  • 批量获取摘要
  • 使用评分标准评分(0-10)
  • 按相关性分类
  • 输出:包含基本元数据的 evaluated-papers.json

脚本 2:深入分析(deep_dive_papers.py)

  • 读取脚本 1 的输出
  • 获取高度相关论文的全文(评分 ≥8)
  • 提取特定领域的数据(测量结果、协议、数据集等)
  • 使用增强后的元数据更新同一个 JSON 文件

优点:

  • 可独立运行各个步骤 - 摘要只需评分一次,深入分析可多次重新运行
  • 中断后可继续 - 如果深入分析失败,无需重新获取摘要
  • 重新运行深入分析而不重新评估摘要 - 调整提取逻辑并保留评分
  • 一致且可复现 - 对所有论文应用相同的评分逻辑
  • 节省 API 调用 - 摘要只筛查一次,深入分析仅针对相关论文

脚本设计:

  • 针对特定查询,将关键词和数据类型设为参数
  • 渐进式增强 - 向同一个 JSON 文件中添加详细信息
  • 加入速率限制(单脚本运行时,每次 API 调用间隔 500ms;并行运行时延迟更长)
  • 将脚本与研究会话一同保存,以确保可复现

不应创建辅助脚本的情况:

  • 论文数量较少(<20)
  • 一次性的快速搜索
  • 手动筛查更快

常见错误

**未追踪所有论文:**只将相关论文添加到 papers-reviewed.json → 无论评分如何,都添加每一篇论文,以避免重复审查 **跳过 Unpaywall:**遇到付费墙就放弃 → 务必先检查 Unpaywall,许多论文都有免费版本 **小规模搜索却创建不必要的文件:**对于 <50 篇论文,只使用 papers-reviewed.json 和 SUMMARY.md。对于大规模搜索(>100 篇论文),结构化的 evaluated-papers.json 和辅助文件(README.md、TOP_PRIORITY_PAPERS.md)价值显著,应当使用。 **标准过严:**跳过间接提及数据的论文 → 仔细重新阅读摘要 **标准过宽:**深入分析关联性较弱的论文 → 聚焦用户需要的特定数据 **遗漏补充数据:**许多论文将关键数据放在 SI 中 → 务必检查补充文件 **静默筛查:**用户看不到进度 → 筛查时逐篇报告每一篇论文 **没有定期总结:**用户会失去整体认知 → 每处理 5-10 篇论文更新一次 **DOI/PMID 不可点击:**标识符为纯文本 → 务必使用 Markdown 链接 **重复审查论文:**浪费时间 → 务必先检查 papers-reviewed.json **未使用辅助脚本:**手动筛查 100 篇以上的论文 → 考虑使用批处理脚本

快速参考

任务操作
检查是否已审查在 papers-reviewed.json 中查找 DOI
为摘要评分关键词(0-3)+ 数据类型(0-4)+ 具体程度(0-3)
获取全文依次尝试 PMC → DOI → Unpaywall → 预印本
查找数据使用 grep 搜索术语,重点查看 Methods/Results/Tables
下载 PDFcurl -L -o papers/FILE.pdf URL
更新追踪记录添加到 papers-reviewed.json + SUMMARY.md

后续步骤

评估论文后:

  • 如果评分 ≥ 7:调用 skills/research/traversing-citations
  • 继续处理搜索结果中的下一篇论文
  • 检查是否已达到 50 篇论文或 5 分钟 → 询问用户是继续还是停止

辅助文件(用于大规模搜索,>100 篇论文)

README.md 模板

100 篇以上论文的研究项目请使用此结构:

  1. 项目概述

    • 查询说明
    • 目标分子/主题
    • 完成日期
  2. 快速入门指南

    • 从哪里开始阅读
    • 优先级列表
  3. 文件清单

    • 每个文件的说明
    • 每个文件的用途
  4. 关键发现摘要

    • 统计数据
    • 主要发现
    • 各类别的覆盖情况
  5. 方法

    • 评分标准
    • 决策规则
    • 数据来源
  6. 后续步骤

    • 建议采取的行动
    • 优先顺序
TOP_PRIORITY_PAPERS.md 模板

对于包含 50 篇以上相关论文的数据集,请创建精选优先级列表:

  • 按层级整理(第 1 层:必读;第 2 层:高价值等)
  • 包含评分、DOI 和关键发现摘要
  • 注明全文是否可获取
  • 建议阅读顺序

结构示例:

# Top Priority Papers

## Tier 1: Must-Read (Score 10)

### [Paper Title](https://doi.org/10.xxxx/yyyy) (Score: 10)

**DOI:** [10.xxxx/yyyy](https://doi.org/10.xxxx/yyyy)
**PMID:** [12345678](https://pubmed.ncbi.nlm.nih.gov/12345678/)
**Full text:** ✓ PMC12345678

**Key Findings:**
- Finding 1
- Finding 2

---

## Tier 2: High-Value (Score 8-9)

[Additional papers organized by priority...]

评论

支持 Markdown