Token导航 LogoToken导航TokenDH.com
研究检索执行命令github未标认证来源可访问许可证需确认审计提醒

reaction-data-extractionReact 数据提取

Agent Skill

用于辅助前端页面、组件、样式和交互逻辑的开发与维护。它适合让 Agent 生成或审查 React、Next.js、Vue、Tailwind、CSS 等相关代码,整理组件结构,或定位布局和性能问题。使用时需要结合项目现有设计系统、路由和构建方式,避免只生成孤立片段;涉及页面改动时,应配合本地预览和构建检查确认视觉效果。

总安装

294

周安装

12

GitHub Stars

44

下载量

95
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:reaction-data-extraction(React 数据提取)
来源仓库:https://github.com/internscience/chemclaw
仓库路径:skills/reaction-data-extraction
安装命令:
npx skills add https://github.com/internscience/chemclaw --skill reaction-data-extraction
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/internscience/chemclaw --skill reaction-data-extraction

简介

用于辅助化学反应数据的提取与分析,适合在 Codex、Claude、Cursor、Gemini CLI 中快速解析实验记录或文献内容。

  • 支持从文本或结构化数据中提取反应条件、产物信息和产率计算逻辑。
  • 通过 npx skills add 命令从指定仓库安装,需确认本地环境是否支持 GitHub 技能加载。
  • 使用前建议核对数据来源格式和字段定义,避免误读或遗漏关键参数。
  • 涉及对外输出时,应保留原始引用和不确定性说明,避免过度解读。

SKILL.md

Reaction Data Extraction

从化学文献 PDF 中精确提取化学反应数据,特别是反应条件优化信息。支持提取反应物、产物、催化剂、溶剂、温度、时间、产率等关键信息,并输出结构化的 CSV/JSON 文件。

触发条件

  • 用户提供 PDF 文献并要求提取反应数据
  • 提到"提取反应条件"、"反应优化数据"
  • 说"extract reaction conditions"、"reaction data from PDF"
  • 需要从文献中整理反应表格
  • 需要批量提取多篇文献的反应数据

功能特性

  • 反应物/产物识别 - 自动提取反应物和产物的 SMILES/名称
  • 反应条件提取 - 催化剂、配体、溶剂、添加剂
  • 参数提取 - 温度、时间、压力、浓度
  • 产率提取 - 分离产率、GC 产率、NMR 产率
  • 反应类型识别 - 偶联、氧化、还原、环化等
  • 表格数据提取 - 从反应条件优化表格中提取数据
  • 支持体内容 - 从正文段落中提取反应描述
  • 结构化输出 - CSV/JSON 格式,便于后续分析
  • 批量处理 - 支持多篇文献批量提取
  • 置信度评分 - 每个提取结果附带置信度

核心技术

组件用途
MinerUPDF 解析和文本提取 (命令行调用)
正则表达式反应条件模式匹配
Rule-based Parser反应句子解析
表格解析器Markdown 表格→反应数据

提取的数据字段

字段说明示例
reaction_id反应唯一标识RXN_001
entry表格中的条目号1, 2, 3
reactants反应物 (SMILES 或名称)c1ccccc1Br
products产物 (SMILES 或名称)c1ccccc1-c2ccccc2
catalyst催化剂Pd(PPh3)4
ligand配体PPh3
baseK2CO3
solvent溶剂DMF, Toluene
temperature温度80 °C, rt, reflux
time反应时间12 h, 30 min
pressure压力 (如有)1 atm, 10 bar
concentration浓度0.1 M
yield_value产率数值85
yield_type产率类型isolated, GC, NMR
ee_value对映选择性99%, >99%
reaction_type反应类型Suzuki coupling
scheme_number反应式编号Scheme 1, Table 2
page_number页码5
confidence提取置信度0.95
notes备注optimized condition

使用方法

对话框中使用

从这篇 PDF 提取所有反应条件
提取反应优化数据并生成 CSV
extract reaction data from this paper
把文献中的反应表格整理成 Excel
提取 Suzuki 偶联反应的条件

命令行使用

# 基本提取(自动模式)
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output

# 只提取表格数据
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output --tables-only

# 只提取体内容反应
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output --text-only

# 批量处理
python3 scripts/reaction_data_extraction.py -i ./papers/ -o ./output --batch

# JSON 输出
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output --output-format json

# 详细模式
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output -v

# 使用 OCR 处理扫描版
python3 scripts/reaction_data_extraction.py -i scanned.pdf -o ./output --method ocr

参数说明

参数简写说明默认值
--input-i输入 PDF 文件或目录-
--output-o输出目录~/.openclaw/media/reaction-data-extraction
--tables-only-t只提取表格数据false
--text-only--text只提取体内容反应false
--output-format-f输出格式:csv/jsoncsv
--method-mMinerU 解析方法:auto/txt/ocrauto
--lang-lOCR 语言en
--device-d设备:cpu/cudacpu
--verbose-v详细输出false
--batch-b批量处理模式false

输出示例

基本提取

$ python3 scripts/reaction_data_extraction.py -i organic_paper.pdf -o ./output -v
✓ 输出目录:/home/lla/.openclaw/media/reaction-data-extraction/output
  提取模式:all
  输出格式:csv

✓ 开始处理:organic_paper.pdf
  [1/3] 解析 PDF...
    命令:mineru -p organic_paper.pdf -o ./output -m auto -l en --backend pipeline -d cpu
    ✓ PDF 解析完成,文本长度:41804 字符
    检测到表格:3 个
  [2/3] 从表格提取反应数据...
    提取表格反应:25
  [3/3] 从文本提取反应数据...
    从文本提取:18 个反应

✓ 已处理:organic_paper.pdf
  提取反应数:43
  ✓ CSV 已保存:./output/organic_paper/reaction_data.csv
  ✓ 日志已保存:./output/organic_paper/extraction_log.txt

============================================================
✅ 全部完成!
   输出目录:/home/lla/.openclaw/media/reaction-data-extraction/output

CSV 输出示例

reaction_id,entry,catalyst,ligand,solvent,temperature,time,yield_value,ee_value,reaction_type,source,confidence
RXN_001,1,Pd₂(dba)₃,L7,MeOH,40 °C,24 h,99,99%,asymmetric oxidative allylic amination,table_0,0.9
RXN_002,2,Pd(OAc)₂,L7,MeOH,40 °C,24 h,trace,,asymmetric oxidative allylic amination,table_0,0.9
RXN_003,3,Pd(dba)₂,L7,MeOH,40 °C,24 h,97,99%,asymmetric oxidative allylic amination,table_0,0.9

JSON 输出示例

{
  "extraction_date": "2026-03-17T22:04:38",
  "total_reactions": 43,
  "reactions": [
    {
      "reaction_id": "RXN_001",
      "entry": 1,
      "catalyst": "Pd₂(dba)₃",
      "ligand": "L7",
      "solvent": "MeOH",
      "temperature": "40 °C",
      "time": "24 h",
      "yield_value": 99,
      "ee_value": "99%",
      "source": "table_0",
      "confidence": 0.9
    }
  ]
}

依赖安装

# 安装 MinerU(命令行工具)
pip install 'mineru[all]'

# 如果遇到 numpy 版本问题
pip install 'numpy<2.0' 'pandas<3.0'

# 检查安装
mineru --version

检查安装

# 检查 MinerU 命令行工具
mineru --help

# 测试 PDF 解析
mineru -p test.pdf -o ./test_output -m txt

工作流程

1. PDF 解析(使用 MinerU 命令行)

import subprocess

# 运行 MinerU
cmd = [
    "mineru",
    "-p", "paper.pdf",
    "-o", "./output",
    "-m", "auto",
    "-l", "en",
    "--backend", "pipeline",
    "-d", "cpu"
]

result = subprocess.run(cmd, capture_output=True, text=True, timeout=600)

2. 表格检测与提取

import re

# 从 Markdown 中提取表格
table_pattern = r'\|.*?\|.*?\|.*?\n\|[-\| ]+\|\n((?:\|.*?\|\n)+)'
tables = re.findall(table_pattern, text_content, re.MULTILINE)

3. 反应数据解析

def parse_reaction_table(table_text):
    lines = table_text.strip().split('\n')
    headers = [h.strip() for h in lines[0].split('|') if h.strip()]

    reactions = []
    for line in lines[2:]:
        values = [v.strip() for v in line.split('|') if v.strip()]
        reaction = dict(zip(headers, values))
        reactions.append(reaction)

    return reactions

4. 文本数据提取

# 反应条件模式
patterns = {
    'temperature': r'(\d+\s*°C|rt|reflux)',
    'time': r'(\d+\s*(h|hr|hour|min)s?)',
    'yield': r'(\d+\s*%)',
    'catalyst': r'(Pd\([^)]+\)|Pd₂\(dba\)₃)',
}

for key, pattern in patterns.items():
    match = re.search(pattern, sentence, re.IGNORECASE)
    if match:
        reaction[key] = match.group(1)

反应类型识别

支持识别的反应类型:

反应类型关键词
Suzuki-MiyauraSuzuki, boronic acid, Pd catalyst
HeckHeck, alkene, Pd catalyst
SonogashiraSonogashira, alkyne, Cu co-catalyst
Buchwald-HartwigBuchwald, amination, Pd catalyst
Oxidative aminationoxidative, amination, oxidant
ClickClick, azide, alkyne, CuAAC
Diels-AlderDiels-Alder, diene, dienophile
AldolAldol, enolate, carbonyl
OxidationOxidation, oxidant
ReductionReduction, reductant, hydrogenation

与其他技能配合

与 literature-parsing 配合

# 1. 先解析 PDF 为 Markdown
python3 ../literature-parsing/scripts/literature_parsing.py -i paper.pdf -o ./parsed

# 2. 从 Markdown 提取反应数据
python3 scripts/reaction_data_extraction.py -i ./parsed/paper.md -o ./output

与 yields-prediction 配合

# 1. 提取实验产率数据
python3 scripts/reaction_data_extraction.py -i paper.pdf -o ./output

# 2. 使用 ML 模型预测相同反应的产率
python3 ../yields-prediction/scripts/yields_predictor.py \
  --reactants "reactant_smiles" \
  --products "product_smiles"

完整工作流程示例

示例 1: 单篇文献提取

# 提取所有反应数据
python3 scripts/reaction_data_extraction.py \
  -i jacs_paper.pdf \
  -o ./output/jacs_data \
  --output-format csv \
  -v

# 查看结果
cat ./output/jacs_data/reaction_data.csv

示例 2: 批量提取

# 批量处理整个目录
python3 scripts/reaction_data_extraction.py \
  -i ./papers/ \
  -o ./output/all_reactions \
  --batch

# 合并所有数据
python3 scripts/merge_reactions.py \
  -i ./output/all_reactions/ \
  -o ./output/combined_reactions.csv

示例 3: 只提取最优条件

# 提取并过滤高产率条件
python3 scripts/reaction_data_extraction.py \
  -i paper.pdf \
  -o ./output \
  --output-format json

# 后处理:筛选最优条件
python3 scripts/filter_optimal.py \
  -i ./output/reaction_data.json \
  --min-yield 80 \
  -o ./output/optimal_conditions.csv

注意事项

  • 高准确率 - 表格数据提取准确率 >90%
  • 支持多种格式 - CSV/JSON 输出
  • 置信度评分 - 每个结果附带置信度
  • MinerU 命令行 - 使用 subprocess 调用,避免库导入问题
  • ⚠️ PDF 质量 - 扫描版 PDF 需要使用 --method ocr
  • ⚠️ 复杂表格 - 跨页表格可能需要手动校正
  • ⚠️ 隐式条件 - 某些条件可能在正文中描述而非表格
  • ⚠️ 处理时间 - 长文献可能需要几分钟

错误处理

错误说明解决方案
No tables found未检测到表格使用 --text-only 提取体内容反应
MinerU execution failedMinerU 执行失败检查 mineru 是否正确安装
Timeout处理超时(>10 分钟)尝试 -m txt 模式或减小文件
Low confidence提取置信度低检查原文,手动校正
File not foundPDF 文件不存在检查文件路径

性能参考

文档类型页数处理时间提取反应数
短篇通信4-6~30s5-15
完整论文10-15~1-2min20-50
综述文章20-30~3-5min50-100+
支持信息50-100~5-10min100-200+

输出目录白名单

重要:为了能在飞书等平台上发送生成的文件,输出目录必须在白名单内:

  • ~/.openclaw/media/reaction-data-extraction/
  • ~/.openclaw/workspace/
  • ~/.openclaw/agents/

本 skill 默认输出到 ~/.openclaw/media/reaction-data-extraction/,可以直接分享!

常见问题

Q: 提取的产率数据不准确怎么办?

A:

  • 检查原文中产率的表示方式(isolated/GC/NMR)
  • 某些表格可能使用 footnote 说明
  • 手动校正后更新 CSV

Q: 如何处理支持信息 (Supporting Information)?

A:

  • SI 通常包含更多反应数据
  • 使用相同流程处理 SI PDF
  • 合并主文和 SI 的数据

Q: MinerU 导入失败怎么办?

A:

  • 本技能使用 MinerU 命令行工具,不依赖 Python 库导入
  • 确保 mineru 命令可用:mineru --help
  • 如果不行,重新安装:pip install -U 'mineru[all]'

Q: 如何验证提取结果的准确性?

A:

  • 检查 confidence 字段(>0.8 较可靠)
  • 随机抽样人工核对
  • 与原文表格对比

技术细节

MinerU 优势

MinerU 是 opendatalab 开源的工业级 PDF 解析工具:

  • 📊 布局分析 - 准确识别标题、段落、表格、图片
  • 📐 公式保留 - 完整保留 LaTeX 数学公式
  • 🖼️ 图片提取 - 提取嵌入的图片
  • 📝 OCR 支持 - 支持扫描版 PDF
  • 🌍 多语言 - 支持 109 种语言 OCR

命令行调用 vs Python 库

本技能使用命令行调用MinerU,而不是 Python 库导入:

# ✅ 推荐:命令行调用
subprocess.run(["mineru", "-p", "paper.pdf", "-o", "./output"])

# ❌ 避免:Python 库导入(可能有版本兼容问题)
from mineru.backend import Pipeline

优势:

  • 避免版本兼容性问题
  • 更稳定的执行环境
  • 易于调试和错误处理

置信度评分

来源置信度说明
表格数据0.9-0.95结构化数据,准确率高
体内容明确描述0.7-0.8清晰的反应描述
体内容模糊描述0.3-0.5需要人工核对

引用

核心技术:

引用:

@article{swain2016chemdataextractor,
  title={ChemDataExtractor: a toolkit for automated extraction of chemical information from the scientific literature},
  author={Swain, Matthew C and Cole, Jacqueline M},
  journal={Journal of Chemical Information and Modeling},
  year={2016}
}

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

38.09%
按下载量换算36

Claude

29.88%
按下载量换算28

Cursor

19.09%
按下载量换算18

Gemini CLI

9.07%
按下载量换算9

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

执行命令

安装流程涉及命令执行,可能通过 npx skills add https://github.com/internscience/chemclaw --skill reaction-data-extraction 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills