这个项目能做什么
AssaySentinel.jl 是一个 Julia 包,面向从事测量质量而非患者诊断的科学家、检测方法开发者、临床实验室研究人员、生物统计学家和医生。它提出的问题是:测量过程是否发生了变化、何时变化、朝哪个方向变化、不确定性如何,以及该结论日后能否被重建。
范围与入口
- 漂移与变点:detect_drift、detect_changes,带有 :auto 模式,可报告为何选择某种方法。提到的检测器包括 CUSUM、PELT、贝叶斯乘积划分变点、Westgard 风格 QC、校准事件以及批号/仪器比较。
- QC:monitor、westgard_rules、@qcrule 宏,以及 Levey-Jennings 控制图数据。
- 校准:calibrate 和 compare_calibrations。
- 批次:detect_batch_effects 以及可选的 correct_batch_effects。
- 比较:compare_methods、compare_instruments、compare_lots、compare_sites。
- 参考限:reference_interval、assess_partitions、reference_curve。
- 多中心研究:hierarchical_sites、analyze(study, streams)、StudySentinel,带有共享标签(:global、:site_specific、:mixed、:stable)以及描述各中心统计一致性的 I-squared。
- 多分析物面板:AssayPanel 和 analyze(panel) 返回 PanelReport;单位不会跨分析物合并。
- 流式处理:Sentinel、update!、onalert。
- 模拟与评估:simulate_assay、evaluate_detector、showcase_dataset。
- 溯源与输出:explain、save、report。
用法
README 展示了一个简短工作流:加载包,调用 showcase_dataset(),对数据流运行 analyze,打印结果,调用 explain,并写出 HTML 报告。可以通过传入 Assay 定义以及 value、time、lot 和 instrument 的列映射来分析 Tables.jl 数据源。多中心历史数据使用 analyze(study, Dict(...)),并生成带有各中心图表的森林图。面板通过将数据流推入 AssayPanel 并对其进行分析来构建。
bin/assaysentinel 下提供了 CLI,包含 analyze、study、panel 和 version 子命令,以及 --json 输出选项。
可复现性与溯源
README 将每次 analyze 调用描述为可复现(rng 种子和输入指纹随结论一同保存)、感知不确定性(合并 SD、RMS(u)、加权均值、幅度标准误)、可绘图(控制图、重建时间线、批号/仪器条带、溯源),以及溯源完整(ingest、outliers、change-point、drift、reconstruct,每项都标记为 observed、statistical、algorithmic 或 annotation)。
列出的设计原则包括:测量是系统而非裸数字;优先选择可解释的统计量而非黑箱评分;检测与校正是分开的;离群值应被标注而非静默删除;缺失值和 NaN 绝不强制转换为零;不兼容单位在未明确转换前绝不比较;时间关联不等于因果关系;每个结论都应可复现。
安装与依赖
需要 Julia 1.10 或更新版本。在 General registry 注册完成之前,通过 Pkg.add(url=...) 安装。核心包被描述为仅依赖 stdlib,Makie、Unitful、Measurements、OnlineStats 和 Turing 作为可选扩展,分析、解释或报告时绝不强制要求。
安全边界与许可
README 声明该软件用于研究、分析质量评估、方法开发和科学决策支持,不是诊断医疗器械,不得独立确定患者诊断或治疗。严重程度标签和 Sentinel Score 描述的是分析过程,而非临床风险。
许可被描述为源码可用的专有许可,评估依据 LICENSE 进行,商业或生产使用需要商业许可或收购;相关文档包括 COMMERCIAL.md、ACQUISITION.md、LICENSE_TRANSITION_NOTICE.md 和 NOTICE。文档、统计方法、验证说明和变更日志均可从仓库链接获取。
评论
0 人表达喜爱 · 满10人后显示 Deer Point
登录后参与讨论。