Clinical Data Cleaner

用于临床试验数据清洗与SDTM标准标准化,支持FDA/EMA合规提交。

已扫描
适合谁
医药研发数据分析师、临床研究项目负责人
不适合谁
非临床领域研究人员、无编程基础的普通用户
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
新手友好(★☆☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @aipoch-ai/clinical-data-cleaner-1

Skill 说明

命令、参数、文件名以原文为准

临床数据清洗工具

清洗、验证并标准化临床试验数据,以符合 CDISC SDTM 标准,用于向 FDA 或 EMA 提交监管文件。

使用场景

  • 在需要清洗临床试验数据、准备 FDA/EMA 提交材料、标准化 SDTM 数据集、处理临床研究中的缺失值、检测实验室结果异常值,或将原始 CRF 数据转换为 CDISC 格式时使用。
  • 当任务要求明确假设、限定范围,并生成可复现的输出格式时使用。
  • 当需要为缺失输入、执行错误或部分证据提供可追溯的备用路径时使用。

核心功能

  • 专注于任务范围的工作流程,适用于:清洗临床试验数据、准备 FDA/EMA 提交材料、标准化 SDTM 数据集、处理临床研究中的缺失值、检测实验室结果异常值,或转换原始 CRF 数据为 CDISC 格式。确保数据清洗与标准化满足监管合规要求,并保留审计追踪记录。
  • 可执行脚本路径:scripts/main.py
  • 任务特定指导文档位于 references/ 目录中。
  • 结构化执行路径设计,确保输出一致且便于审查。

依赖项

  • Python: 3.10+。当前打包技能的基准版本。
  • numpy: unspecified。在 requirements.txt 中声明。
  • pandas: unspecified。在 requirements.txt 中声明。
  • scipy: unspecified。在 requirements.txt 中声明。

示例用法

cd "20260318/scientific-skills/Data Analytics/clinical-data-cleaner"
python -m py_compile scripts/main.py
python scripts/main.py --help

示例运行计划:

  1. 确认用户输入、输出路径及任何必需的配置值。
  2. 若脚本使用固定设置,编辑文件内的 CONFIG 块或文档中说明的参数。
  3. 使用验证后的输入运行 python scripts/main.py
  4. 审查生成的输出,并返回最终成果,同时明确标注所有假设。

实现细节

详见上方“工作流程”部分。

  • 执行模型:验证请求,选择预打包工作流,生成有边界的交付成果。
  • 输入控制:在运行任何脚本前,确认源文件、范围限制、输出格式和验收标准。
  • 主要实现入口:scripts/main.py
  • 参考指引:references/ 包含支持性规则、提示或检查清单。
  • 需优先澄清的参数:输入路径、输出路径、范围过滤条件、阈值以及任何领域特定约束。
  • 输出规范:确保结果可复现,明确标识假设,避免未记录的副作用。

快速检查

在深入执行前,使用以下命令验证打包脚本入口点是否可解析。

python -m py_compile scripts/main.py

审计就绪命令

使用以下具体命令进行验证。这些命令自包含,不使用占位符路径。

python -m py_compile scripts/main.py
python scripts/main.py --help
python scripts/main.py --input "审计验证样本,包含明确症状、病史、评估内容及下一步计划。"

工作流程

  1. 在开展详细工作前,确认用户目标、所需输入及不可妥协的约束条件。
  2. 验证请求是否符合文档定义的范围,若任务需超出支持的假设则立即停止。
  3. 使用预打包脚本路径或仅基于实际可用输入的已文档化推理路径。
  4. 返回结构化结果,明确区分假设、交付成果、风险和未解决事项。
  5. 若执行失败或输入不完整,切换至备用路径,并准确说明导致完整完成受阻的原因。

快速入门

from scripts.main import ClinicalDataCleaner

# 初始化用于人口统计学域(Demographics)
cleaner = ClinicalDataCleaner(domain='DM')

# 使用默认设置清洗数据
cleaned = cleaner.clean(raw_data)

# 保存带审计追踪的报告
cleaner.save_report('output.csv')

核心能力

1. SDTM 域验证

cleaner = ClinicalDataCleaner(domain='DM')  # 或 'LB', 'VS'
is_valid, missing = cleaner.validate_domain(data)

必填字段:

  • DM: STUDYID, USUBJID, SUBJID, RFSTDTC, RFENDTC, SITEID, AGE, SEX, RACE
  • LB: STUDYID, USUBJID, LBTESTCD, LBCAT, LBORRES, LBORRESU, LBSTRESC, LBDTC
  • VS: STUDYID, USUBJID, VSTESTCD, VSORRES, VSORRESU, VSSTRESC, VSDTC

2. 缺失值处理

cleaner = ClinicalDataCleaner(
    domain='DM',
    missing_strategy='median'  # 可选: mean, median, mode, forward, drop
)
cleaned = cleaner.handle_missing_values(data)

3. 异常值检测

cleaner = ClinicalDataCleaner(
    domain='LB',
    outlier_method='domain'  # 可选: iqr, zscore, domain
    outlier_action='flag'    # 可选: flag, remove, cap
)
flagged = cleaner.detect_outliers(data)

临床阈值参考:

参数范围单位
血糖50–500mg/dL
血红蛋白5–20g/dL
收缩压70–220mmHg

4. 日期标准化

standardized = cleaner.standardize_dates(data)

# 转换为 ISO 8601 格式:2023-01-15T09:30:00

5. 完整处理流水线

cleaner = ClinicalDataCleaner(
    domain='DM',
    missing_strategy='median',
    outlier_method='iqr',
    outlier_action='flag'
)
cleaned_data = cleaner.clean(data)
cleaner.save_report('output.csv')

输出文件:

  • output.csv —— 清洗后的 SDTM 数据
  • output.report.json —— 用于监管提交的审计追踪记录

CLI 使用方式

清理人口统计学数据

python scripts/main.py \

--input dm_raw.csv \

--domain DM \

--output dm_clean.csv \

--missing-strategy median \

--outlier-method iqr \

--outlier-action flag

清理实验室数据并应用临床阈值

python scripts/main.py \

--input lb_raw.csv \

--domain LB \

--output lb_clean.csv \

--outlier-method domain

常见使用模式

详见 [references/common-patterns.md](references/common-patterns.md) 中的详细示例:

  • 监管申报准备
  • 中期分析数据准备
  • 数据库迁移清理
  • 外部实验室数据整合

故障排查

详见 [references/troubleshooting.md](references/troubleshooting.md) 中的解决方案:

  • 验证失败
  • 日期解析错误
  • 大数据集导致的内存错误
  • 异常值检测问题

质量检查清单

清洗前:

  • [ ] 已获取 IACUC 批准(动物研究)
  • [ ] 样本量具备足够的统计功效
  • [ ] 随机化方法已记录

清洗后:

  • [ ] 对照 CDISC SDTM IG 进行验证
  • [ ] 审查审计日志中所有清洗操作
  • [ ] 在分析软件中测试导入

参考资料

  • references/sdtm_ig_guide.md - CDISC SDTM 实施指南
  • references/domain_specs.json - 各领域特定字段要求
  • references/outlier_thresholds.json - 临床异常值阈值
  • references/common-patterns.md - 详细使用模式说明
  • references/troubleshooting.md - 问题解决指南

技能 ID: 189 | 版本: 2.0 | 许可证: MIT

输出要求

每次最终响应应明确包含以下内容(如适用):

  • 目标或请求交付物
  • 使用的输入及引入的假设
  • 工作流程或决策路径
  • 核心结果、建议或产出物
  • 约束条件、风险、注意事项或验证需求
  • 未解决事项及下一步检查项

错误处理

  • 若必需输入缺失,应明确指出具体缺少的字段,并仅请求最少必要的补充信息。
  • 若任务超出文档范围,应停止执行,不得猜测或隐性扩大任务范围。
  • scripts/main.py 执行失败,应报告失败位置,总结仍可安全完成的部分,并提供手动替代方案。
  • 不得虚构文件、引用、数据、搜索结果或执行结果。

输入验证

本技能仅接受符合 clinical-data-cleaner 文档目的且具备足够上下文以安全完成工作流的请求。

若请求超出范围、缺少关键输入或需依赖不支持的假设,不应继续执行,而应返回:

clinical-data-cleaner 仅处理其文档中定义的工作流。请提供缺失的必要输入,或切换至更合适的技能。

响应模板

对于非简单请求,请使用以下固定结构:

  1. 目标
  2. 接收的输入
  3. 假设
  4. 工作流程
  5. 交付物
  6. 风险与限制
  7. 下一步检查

若请求较为简单,可压缩结构,但必须在影响正确性时明确说明假设和限制。

AA
@aipoch-ai

已收录 4 个 Skill

相关推荐