143:ADaM SPEC的撰写---ADSL(一)
最近正好在写一个一期的项目,做到ADaM,开始写SPEC了,比较简单,所以顺便分享一下如何撰写ADaM SPEC。
对于从aCRF-SDTM-ADaM-TFL的过程化,希望新手别想的太过复杂,就是下面这么一个流程。

从CRF data(也就是临床试验收集的数据)到最终展现的TFL, SDTM,ADaMJ就像一座桥梁,连接这两个部分;或者说是一座加工厂,将原始粗糙的,杂乱的数据经过处理,美化后输出到人们面前。
写SPEC也是SAS程序员工作的一部分,而写ADaM SPEC,参照的主要就是SAP和shell,这都是统计师提前写好的。如果SDTM写完了,但是SAP和shell还没完稿,那么你想写ADaM,也比较困难,因为你不知道要创建什么变量(除了一些标识符变量,如STUDYID,USUBJID一定是需要的),其余变量你可能就需要具体根据shell上列出的分析需求再创建新变量了。
但是工作久了,你会发现大多数项目的shell就那几大类:
1:受试者人口学/特征信息(如受试者试验状态汇总,是筛选失败还是试验结束还是提前退出);一些基线信息,如对年龄,身高体重信息进行汇总分析,一般也就是求个平均值标准差,最大值最小值等等;还有既往用药/既往病史的汇总等等:
2:安全性分析,shell的一大部分篇幅就是对安全性进行分析,这也是几乎所有临床试验的重点。分析数据集一般来自ADAE,ADLB,ADVS,ADPE,ADQS等,也就是对不良事件、血生化、血常规、生命体征等进行分析和总结。
3:药代动力学分析,一般是一二期项目,了解药物在人体内的分布和代谢等等。
4:有的还会有疗效分析那些东西,尤其是肿瘤项目。
ADSL也像DM那样,一个人只有一条记录,记录的是受试者的人口学信息以及一些基线信息,也就是说如果你觉得某些数据对于这个受试者来说只会出现一次,然后又找不到合适的分析数据集存放的话,就可以放到ADSL里面。
下面我就截图一些大多数项目都会用到的变量
1:标 识符变量,这些看DM收集了那些,直接把DM的拿过来就好了。

2:人群标志变量,这些可以说是ADSL的关键变量,要是你分析人群算错了,后面table的百分比那些都有可能算错了,这是一件非常严重的事情!而数据集里面包含多少分析人群标帜,第一是看SAP里面把人群划分为哪几类,第二是看table中还需要哪些标帜,有时候table中还需要计算筛选失败或者其他一些人群的百分比,这时候也可以创建一下标帜变量,注意这时候标帜变量的值就不一定是YN了,只能是Y或者空。要不然P21会报issue。

3:治疗组变量,这也是每一个项目都会存在的变量。一般都是TRT01P,TRT01A,很少有TRT02P,TRT02A,这个主要是看试验设计。

4:治疗组时间变量:这个也需要

5:


这些变量一般项目都需要,其余的就看你项目的具体shell还需要创建哪些变量,这时候如果找不到IG上的变量,就可以自己创建变量,有时候可以直接把SUPP数据集的QNAM当作ADSL的变量。
然后有时候还需要创建一些数值型的变量,对应字符变量,比如有时候table中要总结筛选失败的原因,你就可以对各个筛选失败原因按照CRF上的顺序赋值1,2,3,4,5....这样写table的时候就能直接拿这个数值型变量来计算了。
能想到的就这些了,主要是今天是星期五,已经8点多了,我要去打游戏。