前面文章分享了BOR确认的过程,BOR确认一般在ADaM ADRS中处理。这篇文章介绍,基于RECIST1.1标准,当BOR需要确认时,ADRS的构建。
文章共4部分,重点内容是第4部分的Flag标记,会详细介绍最佳总体疗效标记与首次客观缓解标记。同时,我也准备了练习文档,本文中的所有示例,均可以在练习文档的Examples页查看。
欢迎关注,SAS茶谈,后台回复:ADRS,获取Flag标记的配套练习文档。如果练习过程中发现任何问题或有任何疑惑,欢迎留言、私信反馈。
1. 肿瘤分析的分类数据
在肿瘤临床实验中,分析数据通常有两类,生存数据与分类数据。
生存数据一般保存到ADTTE中,而分类数据一般保存到ADRS中。分类数据包括BOR分类,以及根据BOR分类进一步衍生的其他分类数据,例如:
- BOR的取值:CR、PR、SD、PD、NE
- 是否达到客观缓解 (OR-CR、PR):Y、N
- 是否疾病控制 (DC-CR、PR、SD):Y、N
不同类别的数据对应不同的分析方法,相关分析方法后续再写文章介绍。
不同公司、不同项目可能有自己的ADaM处理方式。就分类数据而言,参数BOR是基础,这个内容一定会在数据集中进行衍生。但对于进一步衍生的参数,是否需要在ADRS中处理,看各家要求。
2. ADRS的主要内容
ADRS主要有两部分内容,第一部分是,BOR的生成,关于这个过程前面文章有详细介绍(临床试验-肿瘤:从RECIST 1.1出发梳理肿瘤BOR的确认);第二部分是,特定肿瘤评估结果的筛选/标记(这部分也可以直接在后续衍生数据集中处理)。
ADRS的核心参数 (Parameter)有两个,时点疗效 (Timepoint/Overall Response)和最佳总体疗效 (Best Overall Response)。
根据时点疗效和最佳总体疗效的结果,我们会对相关记录进行筛选、标记,方便后续分析以及参数的衍生。
文章 临床试验-肿瘤:研究终点以及生存数据的介绍 中谈到,常用的肿瘤临床试验研究终点有2类:
- Overall Survival(OS,总生存期)
- Endpoints Based on Tumor Assessments(基于肿瘤评估的终点)
OS是生存数据,其结局事件是死亡;而基于肿瘤评估的终点可能是分类数据,也可能是生存数据,都与肿瘤评估结果有关。
如果试验中肿瘤评估疗效需要确认,那么第二类研究终点是需要基于确认后的疗效。
对于与这些终点相关的肿瘤评估结果,如果在ADRS中进行标记好,后续参数引用就会非常方便。
3. ADRS的结构
不同的公司可能有自己的ADaM处理方式,例如,肿瘤分析,可能还会构建其他中间数据集用以辅助输出。
ADRS中关于时点疗效的处理方式,各家公司应该大都相同,其结构为Per Subject Per Evaluator Per Time Point,受试者每一个时点都有一个时点疗效。
但BOR参数的处理,通常有两种结构:一种是Per Subject Per Evaluator,一个受试者只有一个最佳总体疗效;另一种是Per Subject Per Evaluator Per Time Point,一个受试者每个时间点上有一个最佳总体疗效,即到当前时间点为止的最佳疗效。
虽然ADRS的结构可能不同,但对于参数衍生过程来讲,重点不在于数据集的结构形式,而在于具体参数含义的理解。以BOR确认举例,首先要理解确认的算法逻辑,再考虑程序实现,最后考虑输出数据集的结构形式。
4. 相关Flag的标记
我以目前公司BOR参数的Per Subject Per Evaluator Per Time Point结构为例,介绍下特定肿瘤评估结果的标记筛选。
通常,纳入分析的肿瘤评估不能在疾病进展 (PD)、采用新疗法以及End of Study之后,除非另外说明,以下举例都默认满足这一条件。不同公司用于标记的变量名称 (ANLxxFL) 不一定相同,所以演示中我以名称缩写作为相关标记的变量名。
从编程角度来看,ADRS有2个Flag变量处理起来会复杂一些,一个是最佳总体疗效标记 (BORFL),另一个是首次客观缓解标记 (FORFL)。
复杂的原因也好理解,这两个Flag的衍生都涉及CR和PR的确认,这个过程涉及到跨行处理。
4.1 BORFL - Best Overall Response / 最佳总体疗效标记
BORFL,标记最佳总体疗效取值的来源记录,在不考虑Evaluator的情况下,如果受试者有基线后时点疗效,那么一定会有一条BORFL = "Y"
的记录,即总会有一个最佳总体疗效。
就分类数据的分析而言,我们只会关注具体的分类值,而不关注相关时间信息。但是从溯源角度来讲,我们需要标记BOR值对应的最初的取值来源,即需要标记对应的取值与对应的时点。
在Per Subject Per Evaluator Per Time Point结构下,最佳总体疗效的标记需要分类讨论。分类的条件是,最佳总体疗效的取值是否一定会与时点疗效值相同。
当最佳总体疗效取值为CR、PR、PD时,在时点疗效中一定有对应的相同值(参考前文BOR确认);但是,当BOR取值为SD、NE时,在时点疗效中不一定是相同值。
下面进行分类介绍。
4.1.1 BOR取值为CR、PR、PD时,BORFL的标记
取值为CR时:
先介绍BOR取值为CR时,其来源记录的标记。假设以下受试者基线后的3个时点评估都满足SD的最小时限、相邻时点都满足确认的最小间隔:
TPR: PR-CR-CR
BOR: SD-PR-CR
举例整理成BDS结构:
在Per Subject Per Evaluator Per Time Point结构下,BOR是一个“不减”序列,后一个时点的BOR只会比前一个更好或相同。基于此,在受试者满足相关条件的记录中,最晚的一条记录的BOR值,即是该受试者的最佳总体疗效值。
显而易见,受试者001的最佳总体疗效值为BOR第3时点的值——CR,并且,这个值来源于TPR第2时点的值——CR。以这个例子来讲,只要这个受试者纳入分析的BOR值为CR就好。
在这个例子中,BOR的来源就是PARAMCD="OVRLRESP"
的第2个时点。如果标记为PARAMCD="BESTRESP"
的第3个时点,那么BOR的取值可以对应上,但是BOR发生的时点就会有偏差。所以需要从PARAMCD="OVRLRESP"
记录中进行标记。
取值为PR、PD时:
BOR值为PR的情况与CR类似,也是PARAMCD="OVRLRESP"
记录中进行标记,不再举例描述。
在RECIST1.1标准中,疗效PD是不需要确认的,在这种情况下,不管是标记OVRLRESP
还是BESTRESP
的记录,都能对应到BOR的取值与时点。
但一些研究可能基于自身考量,疗效PD也要求确认(基于Modified RECIST 1.1),这时为避免所标记的记录时点的偏误,BORFL的标记只能从PARAMCD="OVRLRESP"
记录中筛选。
所以,一般地,疗效PD统一在PARAMCD="OVRLRESP"
记录中进行标记。
4.1.2 BOR取值为SD、NE时,BORFL的标记
当BOR取值为SD、NE时,在时点疗效中不一定是相同值。如果BOR的来源直接标记时点疗效,可能会出现BOR取值无法对应的情况,所以对于BOR取值为SD、NE的情况,最佳总体疗效在PARAMCD="BESTRESP"
记录中进行标记。
先看最佳总体疗效为SD的两个例子:
TPR: PR-NE-PD
BOR: SD-SD-SD
受试者002,第1时点疗效PR满足SD的最小时限,第1时点的参数BOR为SD。同时,这个PR没有得到后续时点疗效的确认,最终每个时点的BOR都为SD。
TPR: SD-NE-PD
BOR: SD-SD-SD
受试者003,第1时点疗效SD满足SD的最小时限,第1时点的参数BOR为SD,最终每个时点的BOR都为SD。
当BOR不一定与时点疗效值相同时,为了标记最终BOR对应的取值与对应的时点,我们只能从PARAMCD = "BESTRESP"
中进行标记,如上图标记。
如果最后BOR取值为NE,与SD类似,BORFL也是在PARAMCD = "BESTRESP"
记录中进行标记。但是考虑到NE是“最差”的疗效,BORFL的标记取最晚的NE记录。
举例如下:
TPR: PR-NE-NE (假设PR不满足SD的最小时限)
BOR: NE-NE-NE
4.1.3 两种BOR结构的联系
以上就是BOR参数Per Subject Per Evaluator Per Time Point结构下,BORFL的标记。在后续分析或进一步衍生BOR分类数据取值时,直接筛选BORFL="Y"
就可以获取想要的分析取值。
在筛选BORFL="Y"
之后,参数BOR的结构就转变为Per Subject Per Evaluator。从这一点看,两种结构只是呈现形式不同,本质逻辑是相同的。
4.1.4 BORFL的应用
BORFL的作用是筛选受试者的最佳总体疗效,基于此可能会进一步衍生相关二分类数据。
BOR取值的多分类数据,将会用于频数汇总表的输出:
二分类数据一般会涉及率以及率的可信区间的输出,例如,ORR:
相关编程处理,读者可以参考之前的文章:
4.2 FORFL - First Objective Response / 首次客观缓解标记
FORFL,标记首次被确认的CR或PR记录,未发生确认的CR或PR时,该Flag为空。
FORFL标记客观缓解记录,方便后续参数的衍生。如果各家ADRS标准并没有要求衍生这个Flag,也可以在后续其他数据集中直接进行对应记录筛选。但考虑到疗效确认在ADRS中处理,FORFL也在ADRS中处理会比较方便。
FORFL与BORFL这两个Flag的含义完全不同,但由于两者常会标记同一条记录,不少人容易将这两者搞混。
对于一个受试者来讲,如果其基线后至少有一次肿瘤评估,那么他一定会有一条BORFL标记的记录,即该受试者一定会有最佳总体疗效(哪怕是NE);但受试者未必会有FORFL标记的记录,因为并非每个受试者都能达到客观缓解(CR或PR)。
4.2.1 FORFL生成举例
关于FORFL,我举两个例子:
TPR: PR-CR-CR
BOR: SD-PR-CR
对于受试者005,在其肿瘤评估中,既有被确认的PR,也有被确认的CR。最早的确认结果是第1时点的TPR的PR,所以对于该条记录,FORFL标记为Y。可以看到,BORFL与FORFL标记的记录不同。
TPR: PR-NE-PD
BOR: SD-SD-SD
对于受试者006,其肿瘤评估中,既没有被确认的PR,也没有被确认的CR,所以对于所有记录FORFL都为空值。
4.2.2 FORFL的应用
FORFL的作用是,筛选受试者首次被确认的CR或PR记录,常用于衍生相关的生存数据,例如:
- Time to response = Date of first response - First dose date + 1
- Duration of response = Date of first progressive disease or death or date of censoring - Date of the first response + 1
关于这一块内容,后续会在ADTTE数据集中进行介绍。
4.3 期中分析中的BORFL和FORFL
一些研究的期中分析中,在Cut off Date之前,由于缺乏足够的随访时间进行疗效确认,一些客观缓解暂时无法得到确认,但是在未来的评估中有潜力得到确认 (Subjects had an initial CR or PR and still have potential for future confirmative scans)。
这种情况下,期中分析也可能将这些未确认的客观缓解纳入统计分析。不过,只在期中分析中输出相关Output,后续PA、FA都不会有对应的Output输出。
如何理解这里的“有潜力”呢?抛开复杂的分类说明,我这里提供一个简单的方法——假设受试者当前最后一次评估记录后面,有一次疗效为CR的记录,并且满足相邻疗效确认的时间间隔。这种情况下得出的BORFL和FORFL,就是期中分析想要的对应标记。
4.3.1 期中分析中BORFL和FORFL生成举例
下面用3个例子进行说明。
受试者007
TPR: PR-PR-CR
BOR: SD-PR-PR
对于受试者007来讲,根据paramcd = "BESTRESP"
最后一条记录判断,最佳总体疗效为PR,其来源为TPR的第1时点记录。同时,首次客观缓解的记录也是第一条记录。
对于TPR的第3时点评估的CR,其有潜力在接下来的随访中被Confirm。所以期中分析的最佳总体疗效为CR,其来源于第3时点的CR。由于第1时点的PR已经被Confirm,期中分析的首次客观疗效还是第1时点的PR。
受试者008
TPR: PR-NE-SD
BOR: SD-SD-SD
受试者008的最佳总体疗效为SD,其来源为BOR的首条记录。由于第1时点的PR没有得到确认,所以受试者002是没有客观缓解记录的。
在期中分析中,时点疗效PR有潜力被Confirm(这里参考BOR确认文章中的说明)。这时,期中分析的最佳总体疗效为PR,客观缓解也存在,均为首条记录PR。
受试者009
TPR: CR-PD-SD
BOR: SD-SD-SD
受试者009的最佳总体疗效为SD,其来源为BOR的首条记录。由于第1时点的CR无法得到确认,所以受试者003是没有客观缓解记录。
在期中分析中,时点疗效CR没有潜力被Confirm,这时,期中分析的最佳总体疗效依旧为SD,也不存在被Confirm的客观缓解。
4.3.2 期中分析中BORFL的应用
期中分析的BORFL用于计算期中分析的ORR:
也会用于衍生期中分析感兴趣的内容:
简单介绍下后两块的内容,可能其他公司并不会输出这些。这些内容一般只在期中分析呈现,研究人员会基于此做出一些期中分析的判断。
第一部分指的是,当前数据的最佳总体疗效为SD或NE,但是有潜力达到CR或PR,只是当前无法进行下一次疗效评估,没有被Confirm;第二部分指的是,当前数据中时点疗效有CR或PR,但即便考虑到下一次疗效评估,最佳总体疗效也没机会被Confirm为CR或PR,只能是SD或NE。
这两块的具体衍生逻辑就不介绍了。
总结
这篇文章介绍了肿瘤试验中,ADRS的构建,涉及内容有肿瘤分析分类数据的介绍、ADRS的主要内容与结构,以及相关Flag的标记。
ADRS的主要内容是,BOR的生成和相关记录的标记,读者可以先从具体概念含义入手,在理清逻辑思路后,再进行SAS编程实现。
感谢阅读, 欢迎关注:SAS茶谈!
若有疑问,欢迎评论交流!
欢迎点赞、转发!
梳理不易,转载请注明出处 (by Jihai / SAS茶谈)