疫苗临床试验随机盲法自动编盲软件的开发

2015-03-09 11:13:26东南大学公共卫生学院流行病与卫生统计学系210009王诗远李喜艳
中国卫生统计 2015年2期
关键词:盲法宏程序临床试验

东南大学公共卫生学院流行病与卫生统计学系(210009) 金 昊 王诗远 李喜艳 刘 沛

疫苗临床试验随机盲法自动编盲软件的开发

东南大学公共卫生学院流行病与卫生统计学系(210009) 金 昊 王诗远 李喜艳 刘 沛△

不设盲的疫苗/药物临床试验,可能会使研究者产生先入为主的观念,同时受试者也可能因知道自己所用的是对照或试验药,而影响与研究者的配合度。研究显示,不采用盲法的试验可能带来超过40%的药效夸大[1-2]。美国、欧洲和日本为推进不同国家或地区间已获批上市的药物的互通性而建立了名为ICH的组织,此组织发布了一系列关于药物临床试验的指导性文件为全世界大部分国家或地区所采用。其中规定临床试验须采用随机盲法[3]。我国《药品注册管理办法》规定,在II期和III期临床试验中须采用盲法评价药物的安全性和治疗效果[4]。采用盲法的疫苗/药物临床试验,需要由独立于申办方和研究方之外的统计方实施编盲,正确的编盲方法对保证试验质量至关重要。

疫苗临床试验与药物临床试验既有共同之处又有较大区别。两者虽常为盲法随机对照试验,但在试验设计上却有较大不同。如,对于研究对象来说,药物试验受试者多为病人;而疫苗试验主要是健康人。药物试验一般为多中心,评价研究药物有效性的指标可能是复合指标,如使用量表或加权得分评价病情缓解状况;而疫苗临床试验一般有多个试验现场,评价疫苗有效性的指标一般为实验室指标,如抗体浓度或滴度、阳转率、保护率等。就统计设计而言,两种试验最大的不同是对试验对象的盲法随机分配上的差异。药物试验由于受试者入组速度慢、时间长(尤其是肿瘤等罕见疾病),因而在随机区组长度上需要取相对小的值,使一段时间内进入的受试者能够均匀分布在处理组与对照组中,以减少入组时间不同带来的偏倚;疫苗临床试验由于选取的受试者为健康人,故入组速度快,上千人的三期临床试验多在几天内即可完成入组[5]。更重要的是随机化的现场明显不同,药物试验需要在有资质的医院(三甲)、研究所等进行,而疫苗临床试验现场则多在人群聚集的社区、乡村进行。这样使得两种临床试验在编盲程序设计、盲态分配、编盲实施、盲底交接保管等方面有着明显差异。目前药物临床试验的随机盲法研究在国内已有较多报道[6-10],但对疫苗临床试验的随机编盲方法却少有报道。在此背景下,开发自动化编盲软件对提高疫苗临床试验质量具有实际意义。

软件开发原理及程序结构

根据疫苗临床试验编盲要求,我们将软件开发流程分解为三部分:①编盲数据集生成、表格输出和加工、源程序交接单的输出和加工。编盲数据集主要通过SAS proc plan调用生成,使每次工作中需要更改的种子数、区组长度、区组数、盲底字母等参数通过宏变量转译进入宏程序,再对随机数变量和行信息加工产生编盲需要的盲底数据集[11]。②规范化盲底表格的输出。此步骤使用SAS ods和proc report可以完成大部分工作,对需要规范输出的Word表格,尚需要结合插入rtf格式设置代码方可完成,如使用SAS的infile语句对rtf代码读入,识别/info位置插入代码进行再加工。③盲底相关文件(如盲底交接单,应急信件等),每个文件内部都是由多个章节构成,需要替换的字段穿插在每个章节中,而目前使用SAS直接编辑doc文件仍有技术上的困难,于是在开发过程中,结合交接单的表格式结构,考虑可以直接使用SAS定义出存放文本的数据集,再用宏程序转译每个出现需要替换文字的单元格,如试验名称、试验单位名称等,并将这些单表输出rtf。再通过rtf代码再加工技术将各单表合并,生成符合编盲工作需要的交接单和信件。

本软件的开发目标旨在两个方面实现自动化,一是一般意义上的编盲自动化,又分为常用的简单方法和较少见的复杂方法,开发思想是疫苗临床试验多为单层1:1设计,但是也有部分试验为多层m:n,但基本上不超过4层。于是软件在设计上将两种情况分开,使执行简单编盲时不需占用太多资源,同时在方便使用的情况下,尽可能扩大其应用范围;二是规范化编盲文本文件的标准化和自动化,其思想是在提高速度,缩短时间的前提下,提高编盲质量,使编盲文件规范统一,替换位置无疏漏。最后为方便实际工作者应用,本研究所涉及的宏程序参数配置均用SAS AF设计参数入口,界面友好,便于使用。

整个软件在设计结构上由2部分组成,即SASAF模块和后台宏程序。AF模块包括3个界面:主界面、单层1:1编盲和多层复杂编盲,如图1、2、3所示。其中主界面用于选择进入的编盲界面是单层还是多层。之所以要按单层1:1与多层为分组的依据是根据我们的编盲工作经验,疫苗临床试验设计大多是单年龄组,试验对照比为1:1,使用单层编盲页面可以节省运算资源;余下的一部分设计为单组但是比不是1:1,或多年龄组,其中又可能包括非1:1分组的试验。通常多年龄组的试验设计不超过4组,所以本软件预设的多层分组参数入口预设了四组。这两个编盲界面已经可以涵盖绝大多数疫苗临床试验的编盲要求。

图1 疫苗临床随机盲法对照试验自动编盲程序主界面

编盲参数入口包括:①区组信息:区组长度和区组个数。②随机信息:种子编码、代表字母、对照试验比。③文本信息:包括试验设计名称、试验疫苗对照疫苗名称、试验申办方、研究方、统计方名称等。

图2 单层1:1编盲参数配置界面

通过参数入口将录入的信息传递给后台宏程序,以执行一系列的编盲、表格及文本输出、格式控制等工作。宏程序按功能分为4部分:单层/多层编盲程序,excel/rtf盲底表格输出程序,源程序和交接单输出与加工程序,表格格式控制template程序。

图3 多层m:n编盲参数配置界面

单层/多层编盲

编盲程序核心是sas proc plan模块,需要利用它生成两个中间数据集以加工成为一次和二次盲底,伴随利用ods追踪随机数表轨迹进行输出,以备重复性核对之需,程序如下。

通过对proc plan产生的数据集_a和_b加工可以得到一次盲底和二次盲底。其中_b为二次盲底,变量为group,取值是1、2。同时使用SAS系统自动创建变量_n_表示行数。通过将_n_=1的对象赋值字母1,_n _=2的对象赋值字母2,同时将group=1的对象赋值为“对照组”,group=2的对象赋值为“试验组”,即可得到二次盲底中字母与分组的对应关系,同时没有破坏随机性。

再对_a处理得到一次盲底。_a共产生2个变量:block和length。length在这里的意义是规定随机区组中区组的长度,而block数表示区组的个数。a实际上需要使用的是length和_n_。例如:设计一个block=2,length=10的随机表,令seed=100,得到如图所示。

图4 proc plan;block=2,length=10,seed=100的随机表部分结果

令number=_n_,即试验对象编号,length按照奇数赋值为字母A,偶数赋值为字母B的规则,即可以得到符合一次盲底规则的试验对象编号与字母的对应表。可见从1开始每10个对象中含5个A和5个B。

另外在非1:1随机时,可以利用语句:

ifmod(length,&num1.+&num2.)<&num1.then group=“试验组”;

else group=“对照组”;

其中试验:对照=&num1:&num2。即可满足自定义比的编盲。例如2:3的情况下,则使编号除以5余数0和1的进入试验组,2、3、4进入对照组。

此外,编盲程序还追加了一个将number转化为字符型并添补0的步骤,例如2000人的设计,则1号需补齐为0001号,便完成了编盲部分。

图5 经加工处理得到符合盲底设计的随机表

根据编盲结果得到的加工数据集,一次盲底和二次盲底,再进行加工得到所有配套盲底。其中备用疫苗应急信件盲底与一次盲底一致;应急信件盲底需要将分组字母替换为分组文字信息;分药盲底在应急信件盲底的基础上,将试验组和对照组分开排列而成。五个盲底数据集将输出至一个excel文件并分别输出至五个rtf文件中。

表格输出和加工

使用proc report输出的原始盲底rtf需要进行加工。因为盲底的格式特殊,表格列数很少,仅2~3列,而行数很多,所以直接输出的盲底占用页数很大,也不美观。故需要将页面分三栏,即一页输出三栏表格。然而SAS中proc report的输出控制不包含分栏的选项,所以实现分栏功能需要另辟蹊径。本软件采用了rtf文件固定位置直接插入代码的形式进行分栏。rtf文件分栏的代码为/colsn,n为栏数[12]。插入的部位可以在\header或\info等位置,都可以使body的表格分栏。将输出的原始rtf代码在SAS中使用infile语句读入。筛选定位出\info中特殊字段“\sectd\”所在行,在该行末尾合并入“\cols3”代码,于是\info行就被写入了分栏信息。程序如下:

编盲源程序和交接单输出与加工、字体控制源程序输出的宏程序采用file“&path.\程序.txt”;put“……”;的方式,将之前所使用的编盲宏程序逐句put入所建立的txt。同时,宏变量也会在此步骤转译为入口传输的具体数值。例如:

put“if mod(length,2)=1 then group=‘&letter1.’;”;

此时&letter1.会被转化为具体字母输入至txt。

输出交接单本质上是表格的输出。一项试验的交接单一般包含8个表单,包括对申办方提交的2张表单,对研究方提交的4张表单,以及2张流程单。宏程序将转化参数入口传递过来的参数,使研究参与单位的名称以及编盲中需要被记录下来的参数出现在交接单中需要的位置。通过template中的语句控制,达到格式上与通常所使用的word版交接单统一。例如:

font_size=13.5pt/*字体大小*/

font_weight=bold;/*字体加粗*/

将8个子表按rtf格式输出,利用infile读入并删除代码的方式,将子表合并。具体方法是,定位第一个子表的结尾代码,将结尾全部删除;第二至第七个子表的代码只保留body部分;第八个子表保留body和结尾;在第一至第七个子表结尾增加一个分页代码“\pagebb”[12]。再将八个子表rtf代码合并保存,便得到了合并为一个rtf且每一页上有一张表的交接单,以供后续打印交接。

除此之外还有两个信件,不良反应应急信件与备用疫苗应急信件,也需要通过子表合并的方式完成。使用3个子表分别输出标题和疫苗编号信息、信件部分、参与单位和制作时间。利用与前面类似的方式进行合并,得到一张信息完整的信件,用于与应急盲底打印成册。

全套文件生成完毕后,目标文件夹内除了需要的10个文件之外,还存有合并过程中产生的子表rtf需要清理。宏程序的最后阶段,会利用与输出源程序txt类似的方式,输出一个清理子表rtf的批处理程序clean.bat,并利用SAS的X命令自动执行。于是整个文件夹最终只剩下5个盲底rtf文件,一个盲底excel文件,一份源程序txt文件,两个信件,一份交接单。

讨 论

在本次研究中,我们将整个编盲过程分解成三步:编盲数据集生成、表格输出和加工、源程序交接单输出和加工。将编盲程序中的参数通过SAS/AF界面配置,宏变量以生成数据集和文本单表,再通过rtf代码读入SAS临时数据集进行格式改写,得到所需要的规范化盲底和合并的交接单文本。使用者只需在AF参数配置界面输入区组数字、盲底字母及试验信息,后台即自动执行全部程序,从而实现了编盲工作的自动化,得到疫苗临床试验中编盲工作所需的全套文件。

目前在国内疫苗临床试验的统计编盲工作中,尚未见自动化软件的报道[13]。编程输出的随机化盲底也仅限于一次和二次盲底表格,后续仍有数十个文档需要人工编写。即使日常盲底工作已总结了固定文本模板,但对待每个试验的不同参数和字段,需要替换的位置也很多,花费时间长,也容易出现疏漏和错误。另外各单位制作的盲底格式不统一,也影响了编盲工作的规范化。本研究开发的自动化编盲软件为提高疫苗临床试验的编盲质量提供了技术平台。

1.吴泰相,刘关键.隐蔽分组(分配隐藏)和盲法的概念、实施与报告.中国循证医学杂志,2007,7(3):222-224.

2.Chalmers TC,Celano P,Sacks HS,et al.Bias in treatment assignment in controlled clinical trials.N Engl J Med,1983,309:1359-1361.

3.ICH Harmonised Tripartite Guideline.Statistical principles for clinical trials.International Conference on Harmonisation E9 Expert Working Group.Statistics in medicine 1999,18(15),1905-42.

4.国家食品药品监督管理总局.疫苗临床试验技术指导原则.2004.http://www.sda.gov.cn/WS01/CL0055/10307.htm l.(Accessed on 2014.9.26).

5.韦鹏翀,黄林雄,黄海波.《药物临床试验质量管理规范》在疫苗临床试验中的应用.应用预防医学,2010,16(5):311-313.

6.李雪峰,吴艳乔.药物临床试验中的随机化与盲法.西南军医,2011,13(2):326-327.

7.吴春芳,许金芳,陆建,等.临床试验中动态均衡随机化方法的均衡性和随机性评价.中国新药杂志,2011,20(7):590-593.

8.闫世艳,何丽云,文天才,等.双盲临床试验中动态药物编盲方法.中医杂志,2013,54(12):1004-1006.

9.王国芳,谢琪,王晓菲.双盲双模拟临床试验的药物准备及编盲.中药新药与临床药理,2005,16(4):308-310.

10.王柏松,苏炳华,何清波.盲法临床试验盲底的制作.中国卫生统计,2003,20(4):228-229.

11.SAS Institute Inc.Getting Started withSAS/AF?and Frames.2006.http://support.sas.com/documentation/onlinedoc/91pdf/sasdoc_913/af _gsframes_9346.pdf(Accessed on,2014.9.26).

12.MicrosoftCorporation.Rich Text Format(RTF)SpecificationV1.6. 1999.http://msdn.microsoft.com/en-us/library/aa140277(office. 10).aspx(Accessed on,2014.9.26).

13.国家食品药品监督管理总局.药品注册管理办法.2007.http://www.sda. gov.cn/WS01/CL0053/24529.html.(Accessed on 2014.9.26).

(责任编辑:郭海强)

△通信作者:刘沛

猜你喜欢
盲法宏程序临床试验
盲法在临床研究过程中的主要作用
盲法的实现在论文中如何阐述
椭球槽宏程序编制及其Vericut仿真
智能制造(2021年4期)2021-11-04 08:54:44
抗疫中第一个获批临床试验的中药——说说化湿败毒方
基层中医药(2020年5期)2020-09-11 06:32:04
注射用血塞通治疗脑梗死恢复期瘀血阻滞证的随机对照研究
世界中医药(2019年2期)2019-09-10 07:22:44
患者盲法在疼痛相关随机对照试验中重要性的meta分析
基于Vericut的四轴数控加工宏程序仿真研究
G代码B类宏程序在数控切割参数化图形库中的应用
焊接(2015年9期)2015-07-18 11:03:53
宏程序编程的几种应用
肿瘤治疗药物Tosedostat的Ⅱ期临床试验结束