随机化和 AE 是临床试验的骨肉,那 SDTM 大概就是血管——把散落各处的数据串成标准格式,送到监管机构面前。
SDTM 的全称是 Study Data Tabulation Model,“研究数据列表模型"这个译名念起来有点硌嘴。翻译成人话就是:数据提交的标准化格式。
FDA 要求所有新药申请(NDA)必须以 SDTM 格式交数据。不是建议。
章节和小节
我啃 SDTM 的时候,第一个绊住我的地方就是 Epoch 和 Element。
简单说:
Element(元素) 是试验里最小的连续时间段。有明确的起止条件。比如 Screening(筛选期)——从签知情同意到随机化之前;Drug A Treatment——从第一次给药到最后一次给药;Follow-up(随访期)——从末次给药到出组。每个 Element 有一个代码(ETCD)和全称。
Epoch(时期) 是更高一层的划分,用来组织不同的 Element。一个 Epoch 可以装一个或多个 Element。
比如治疗期这个 Epoch 底下可能塞着 Placebo Treatment 和 Drug A Treatment 两个 Element。筛选期就一个 Screening Element。随访期就一个 Follow-up Element。
(我的记忆方式:Epoch 是大标题,Element 是小标题。一章里可以有多个小节。)
为什么非得分两层
因为在 SDTM 的数据集里,它们是分开的。
SE(Subject Elements)数据集记录每个受试者经历了哪些 Element,起止时间是什么。这是连续性的、细颗粒的。
DS(Disposition,受试者处置)数据集只记关键里程碑。它是摘要性质的。
一个受试者可能老老实实走完了 Screening → Treatment A → Follow-up 三个 Element——SE 里三个记录。但在 DS 里可能只抓两个节点:Randomized(随机化),Completed Study(完成试验)。DS 不关心你在治疗期待了多久,SE 会告诉你。
面试的时候如果能把 SE 和 DS 的区别讲清楚,大概率能证明你不是只背了名词。
从 CRF 到 SDTM 的那张说明书
aCRF(Annotated CRF,标注版病例报告表)是另一个必须搞清楚的东西。
原始 CRF 是研究者用来收数据的表格——受试者信息、实验室检查、不良事件,一张一张填。
aCRF 干的事:在原始 CRF 的每个字段旁边标注它对应 SDTM 里的哪个变量。Subject ID → USUBJID,Date of Birth → BRTHDTC,Sex → SEX。
监管机构审阅数据的时候需要知道"你这些原始记录是怎么变成标准格式的”。aCRF 就是那本说明书。通常由数据管理团队和 SDTM 程序员合起来做——程序员拿着 CDISC SDTM 实施指南(SDTM IG),把每个 CRF 字段映射到对应的 SDTM 变量。
数据字典
有了 aCRF,监管机构知道"哪个字段对应哪个变量"。
他们还需要知道"这个变量是什么类型、有哪些取值、从哪来的"。这就是 Define.xml。
Define.xml 按 CDISC Define-XML 标准写成,是一份元数据文件。记录每个数据集的结构,每个变量的标签、数据类型、来源,以及值级元数据(Value Level Metadata)——同一个变量在不同场景下有不同的取值规则,需要额外展开。
Pinnacle 21 之类的验证工具会跑一遍 Define.xml,检查格式合规性。
一条流水线
整条数据流转的路径大概是:
- 受试者数据通过 CRF 或 EDC 系统录入
- 数据管理员做清理、质疑、确认
- SDTM 程序员对照 aCRF,把原始数据转成 SDTM 格式
- 统计程序员基于 SDTM 生成 ADaM(Analysis Data Model),供分析用
- SDTM 数据集、Define.xml、aCRF 打包提交监管机构
SAS 程序员在这条流水线里一般蹲在第 3 步和第 4 步之间。
(说真的,我一开始以为 SAS 程序员的日常就是写 proc means 和 proc ttest。后来才发现,真正吃掉时间的不是统计分析本身——是数据清洗和标准化。那些被认为"不值一提"的步骤,才是底盘。)
写在最后
SDTM 是硬规则,但理解设计逻辑比背诵规则有用得多。为什么非得分 Epoch 和 Element?因为试验是分了段的,不同阶段有不同的干预和观察重点。为什么要标准化?因为只有一种格式摆到监管机构眼前,他们才能高效审阅。把"为什么"嚼碎了,“怎么做"自然就顺了。