東南大學(xué)公共衛(wèi)生學(xué)院流行病與衛(wèi)生統(tǒng)計學(xué)系(210009) 金 昊 王詩遠 李喜艷 劉 沛
疫苗臨床試驗隨機盲法自動編盲軟件的開發(fā)
東南大學(xué)公共衛(wèi)生學(xué)院流行病與衛(wèi)生統(tǒng)計學(xué)系(210009) 金 昊 王詩遠 李喜艷 劉 沛△
不設(shè)盲的疫苗/藥物臨床試驗,可能會使研究者產(chǎn)生先入為主的觀念,同時受試者也可能因知道自己所用的是對照或試驗藥,而影響與研究者的配合度。研究顯示,不采用盲法的試驗可能帶來超過40%的藥效夸大[1-2]。美國、歐洲和日本為推進不同國家或地區(qū)間已獲批上市的藥物的互通性而建立了名為ICH的組織,此組織發(fā)布了一系列關(guān)于藥物臨床試驗的指導(dǎo)性文件為全世界大部分國家或地區(qū)所采用。其中規(guī)定臨床試驗須采用隨機盲法[3]。我國《藥品注冊管理辦法》規(guī)定,在II期和III期臨床試驗中須采用盲法評價藥物的安全性和治療效果[4]。采用盲法的疫苗/藥物臨床試驗,需要由獨立于申辦方和研究方之外的統(tǒng)計方實施編盲,正確的編盲方法對保證試驗質(zhì)量至關(guān)重要。
疫苗臨床試驗與藥物臨床試驗既有共同之處又有較大區(qū)別。兩者雖常為盲法隨機對照試驗,但在試驗設(shè)計上卻有較大不同。如,對于研究對象來說,藥物試驗受試者多為病人;而疫苗試驗主要是健康人。藥物試驗一般為多中心,評價研究藥物有效性的指標可能是復(fù)合指標,如使用量表或加權(quán)得分評價病情緩解狀況;而疫苗臨床試驗一般有多個試驗現(xiàn)場,評價疫苗有效性的指標一般為實驗室指標,如抗體濃度或滴度、陽轉(zhuǎn)率、保護率等。就統(tǒng)計設(shè)計而言,兩種試驗最大的不同是對試驗對象的盲法隨機分配上的差異。藥物試驗由于受試者入組速度慢、時間長(尤其是腫瘤等罕見疾病),因而在隨機區(qū)組長度上需要取相對小的值,使一段時間內(nèi)進入的受試者能夠均勻分布在處理組與對照組中,以減少入組時間不同帶來的偏倚;疫苗臨床試驗由于選取的受試者為健康人,故入組速度快,上千人的三期臨床試驗多在幾天內(nèi)即可完成入組[5]。更重要的是隨機化的現(xiàn)場明顯不同,藥物試驗需要在有資質(zhì)的醫(yī)院(三甲)、研究所等進行,而疫苗臨床試驗現(xiàn)場則多在人群聚集的社區(qū)、鄉(xiāng)村進行。這樣使得兩種臨床試驗在編盲程序設(shè)計、盲態(tài)分配、編盲實施、盲底交接保管等方面有著明顯差異。目前藥物臨床試驗的隨機盲法研究在國內(nèi)已有較多報道[6-10],但對疫苗臨床試驗的隨機編盲方法卻少有報道。在此背景下,開發(fā)自動化編盲軟件對提高疫苗臨床試驗質(zhì)量具有實際意義。
根據(jù)疫苗臨床試驗編盲要求,我們將軟件開發(fā)流程分解為三部分:①編盲數(shù)據(jù)集生成、表格輸出和加工、源程序交接單的輸出和加工。編盲數(shù)據(jù)集主要通過SAS proc plan調(diào)用生成,使每次工作中需要更改的種子數(shù)、區(qū)組長度、區(qū)組數(shù)、盲底字母等參數(shù)通過宏變量轉(zhuǎn)譯進入宏程序,再對隨機數(shù)變量和行信息加工產(chǎn)生編盲需要的盲底數(shù)據(jù)集[11]。②規(guī)范化盲底表格的輸出。此步驟使用SAS ods和proc report可以完成大部分工作,對需要規(guī)范輸出的Word表格,尚需要結(jié)合插入rtf格式設(shè)置代碼方可完成,如使用SAS的infile語句對rtf代碼讀入,識別/info位置插入代碼進行再加工。③盲底相關(guān)文件(如盲底交接單,應(yīng)急信件等),每個文件內(nèi)部都是由多個章節(jié)構(gòu)成,需要替換的字段穿插在每個章節(jié)中,而目前使用SAS直接編輯doc文件仍有技術(shù)上的困難,于是在開發(fā)過程中,結(jié)合交接單的表格式結(jié)構(gòu),考慮可以直接使用SAS定義出存放文本的數(shù)據(jù)集,再用宏程序轉(zhuǎn)譯每個出現(xiàn)需要替換文字的單元格,如試驗名稱、試驗單位名稱等,并將這些單表輸出rtf。再通過rtf代碼再加工技術(shù)將各單表合并,生成符合編盲工作需要的交接單和信件。
本軟件的開發(fā)目標旨在兩個方面實現(xiàn)自動化,一是一般意義上的編盲自動化,又分為常用的簡單方法和較少見的復(fù)雜方法,開發(fā)思想是疫苗臨床試驗多為單層1:1設(shè)計,但是也有部分試驗為多層m:n,但基本上不超過4層。于是軟件在設(shè)計上將兩種情況分開,使執(zhí)行簡單編盲時不需占用太多資源,同時在方便使用的情況下,盡可能擴大其應(yīng)用范圍;二是規(guī)范化編盲文本文件的標準化和自動化,其思想是在提高速度,縮短時間的前提下,提高編盲質(zhì)量,使編盲文件規(guī)范統(tǒng)一,替換位置無疏漏。最后為方便實際工作者應(yīng)用,本研究所涉及的宏程序參數(shù)配置均用SAS AF設(shè)計參數(shù)入口,界面友好,便于使用。
整個軟件在設(shè)計結(jié)構(gòu)上由2部分組成,即SASAF模塊和后臺宏程序。AF模塊包括3個界面:主界面、單層1:1編盲和多層復(fù)雜編盲,如圖1、2、3所示。其中主界面用于選擇進入的編盲界面是單層還是多層。之所以要按單層1:1與多層為分組的依據(jù)是根據(jù)我們的編盲工作經(jīng)驗,疫苗臨床試驗設(shè)計大多是單年齡組,試驗對照比為1:1,使用單層編盲頁面可以節(jié)省運算資源;余下的一部分設(shè)計為單組但是比不是1:1,或多年齡組,其中又可能包括非1:1分組的試驗。通常多年齡組的試驗設(shè)計不超過4組,所以本軟件預(yù)設(shè)的多層分組參數(shù)入口預(yù)設(shè)了四組。這兩個編盲界面已經(jīng)可以涵蓋絕大多數(shù)疫苗臨床試驗的編盲要求。
圖1 疫苗臨床隨機盲法對照試驗自動編盲程序主界面
編盲參數(shù)入口包括:①區(qū)組信息:區(qū)組長度和區(qū)組個數(shù)。②隨機信息:種子編碼、代表字母、對照試驗比。③文本信息:包括試驗設(shè)計名稱、試驗疫苗對照疫苗名稱、試驗申辦方、研究方、統(tǒng)計方名稱等。
圖2 單層1:1編盲參數(shù)配置界面
通過參數(shù)入口將錄入的信息傳遞給后臺宏程序,以執(zhí)行一系列的編盲、表格及文本輸出、格式控制等工作。宏程序按功能分為4部分:單層/多層編盲程序,excel/rtf盲底表格輸出程序,源程序和交接單輸出與加工程序,表格格式控制template程序。
圖3 多層m:n編盲參數(shù)配置界面
單層/多層編盲
編盲程序核心是sas proc plan模塊,需要利用它生成兩個中間數(shù)據(jù)集以加工成為一次和二次盲底,伴隨利用ods追蹤隨機數(shù)表軌跡進行輸出,以備重復(fù)性核對之需,程序如下。
通過對proc plan產(chǎn)生的數(shù)據(jù)集_a和_b加工可以得到一次盲底和二次盲底。其中_b為二次盲底,變量為group,取值是1、2。同時使用SAS系統(tǒng)自動創(chuàng)建變量_n_表示行數(shù)。通過將_n_=1的對象賦值字母1,_n _=2的對象賦值字母2,同時將group=1的對象賦值為“對照組”,group=2的對象賦值為“試驗組”,即可得到二次盲底中字母與分組的對應(yīng)關(guān)系,同時沒有破壞隨機性。
再對_a處理得到一次盲底。_a共產(chǎn)生2個變量:block和length。length在這里的意義是規(guī)定隨機區(qū)組中區(qū)組的長度,而block數(shù)表示區(qū)組的個數(shù)。a實際上需要使用的是length和_n_。例如:設(shè)計一個block=2,length=10的隨機表,令seed=100,得到如圖所示。
圖4 proc plan;block=2,length=10,seed=100的隨機表部分結(jié)果
令number=_n_,即試驗對象編號,length按照奇數(shù)賦值為字母A,偶數(shù)賦值為字母B的規(guī)則,即可以得到符合一次盲底規(guī)則的試驗對象編號與字母的對應(yīng)表??梢姀?開始每10個對象中含5個A和5個B。
另外在非1:1隨機時,可以利用語句:
ifmod(length,&num1.+&num2.)<&num1.then group=“試驗組”;
else group=“對照組”;
其中試驗:對照=&num1:&num2。即可滿足自定義比的編盲。例如2:3的情況下,則使編號除以5余數(shù)0和1的進入試驗組,2、3、4進入對照組。
此外,編盲程序還追加了一個將number轉(zhuǎn)化為字符型并添補0的步驟,例如2000人的設(shè)計,則1號需補齊為0001號,便完成了編盲部分。
圖5 經(jīng)加工處理得到符合盲底設(shè)計的隨機表
根據(jù)編盲結(jié)果得到的加工數(shù)據(jù)集,一次盲底和二次盲底,再進行加工得到所有配套盲底。其中備用疫苗應(yīng)急信件盲底與一次盲底一致;應(yīng)急信件盲底需要將分組字母替換為分組文字信息;分藥盲底在應(yīng)急信件盲底的基礎(chǔ)上,將試驗組和對照組分開排列而成。五個盲底數(shù)據(jù)集將輸出至一個excel文件并分別輸出至五個rtf文件中。
表格輸出和加工
使用proc report輸出的原始盲底rtf需要進行加工。因為盲底的格式特殊,表格列數(shù)很少,僅2~3列,而行數(shù)很多,所以直接輸出的盲底占用頁數(shù)很大,也不美觀。故需要將頁面分三欄,即一頁輸出三欄表格。然而SAS中proc report的輸出控制不包含分欄的選項,所以實現(xiàn)分欄功能需要另辟蹊徑。本軟件采用了rtf文件固定位置直接插入代碼的形式進行分欄。rtf文件分欄的代碼為/colsn,n為欄數(shù)[12]。插入的部位可以在\header或\info等位置,都可以使body的表格分欄。將輸出的原始rtf代碼在SAS中使用infile語句讀入。篩選定位出\info中特殊字段“\sectd\”所在行,在該行末尾合并入“\cols3”代碼,于是\info行就被寫入了分欄信息。程序如下:
編盲源程序和交接單輸出與加工、字體控制源程序輸出的宏程序采用file“&path.\程序.txt”;put“……”;的方式,將之前所使用的編盲宏程序逐句put入所建立的txt。同時,宏變量也會在此步驟轉(zhuǎn)譯為入口傳輸?shù)木唧w數(shù)值。例如:
put“if mod(length,2)=1 then group=‘&letter1.’;”;
此時&letter1.會被轉(zhuǎn)化為具體字母輸入至txt。
輸出交接單本質(zhì)上是表格的輸出。一項試驗的交接單一般包含8個表單,包括對申辦方提交的2張表單,對研究方提交的4張表單,以及2張流程單。宏程序?qū)⑥D(zhuǎn)化參數(shù)入口傳遞過來的參數(shù),使研究參與單位的名稱以及編盲中需要被記錄下來的參數(shù)出現(xiàn)在交接單中需要的位置。通過template中的語句控制,達到格式上與通常所使用的word版交接單統(tǒng)一。例如:
font_size=13.5pt/*字體大小*/
font_weight=bold;/*字體加粗*/
將8個子表按rtf格式輸出,利用infile讀入并刪除代碼的方式,將子表合并。具體方法是,定位第一個子表的結(jié)尾代碼,將結(jié)尾全部刪除;第二至第七個子表的代碼只保留body部分;第八個子表保留body和結(jié)尾;在第一至第七個子表結(jié)尾增加一個分頁代碼“\pagebb”[12]。再將八個子表rtf代碼合并保存,便得到了合并為一個rtf且每一頁上有一張表的交接單,以供后續(xù)打印交接。
除此之外還有兩個信件,不良反應(yīng)應(yīng)急信件與備用疫苗應(yīng)急信件,也需要通過子表合并的方式完成。使用3個子表分別輸出標題和疫苗編號信息、信件部分、參與單位和制作時間。利用與前面類似的方式進行合并,得到一張信息完整的信件,用于與應(yīng)急盲底打印成冊。
全套文件生成完畢后,目標文件夾內(nèi)除了需要的10個文件之外,還存有合并過程中產(chǎn)生的子表rtf需要清理。宏程序的最后階段,會利用與輸出源程序txt類似的方式,輸出一個清理子表rtf的批處理程序clean.bat,并利用SAS的X命令自動執(zhí)行。于是整個文件夾最終只剩下5個盲底rtf文件,一個盲底excel文件,一份源程序txt文件,兩個信件,一份交接單。
在本次研究中,我們將整個編盲過程分解成三步:編盲數(shù)據(jù)集生成、表格輸出和加工、源程序交接單輸出和加工。將編盲程序中的參數(shù)通過SAS/AF界面配置,宏變量以生成數(shù)據(jù)集和文本單表,再通過rtf代碼讀入SAS臨時數(shù)據(jù)集進行格式改寫,得到所需要的規(guī)范化盲底和合并的交接單文本。使用者只需在AF參數(shù)配置界面輸入?yún)^(qū)組數(shù)字、盲底字母及試驗信息,后臺即自動執(zhí)行全部程序,從而實現(xiàn)了編盲工作的自動化,得到疫苗臨床試驗中編盲工作所需的全套文件。
目前在國內(nèi)疫苗臨床試驗的統(tǒng)計編盲工作中,尚未見自動化軟件的報道[13]。編程輸出的隨機化盲底也僅限于一次和二次盲底表格,后續(xù)仍有數(shù)十個文檔需要人工編寫。即使日常盲底工作已總結(jié)了固定文本模板,但對待每個試驗的不同參數(shù)和字段,需要替換的位置也很多,花費時間長,也容易出現(xiàn)疏漏和錯誤。另外各單位制作的盲底格式不統(tǒng)一,也影響了編盲工作的規(guī)范化。本研究開發(fā)的自動化編盲軟件為提高疫苗臨床試驗的編盲質(zhì)量提供了技術(shù)平臺。
1.吳泰相,劉關(guān)鍵.隱蔽分組(分配隱藏)和盲法的概念、實施與報告.中國循證醫(yī)學(xué)雜志,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.國家食品藥品監(jiān)督管理總局.疫苗臨床試驗技術(shù)指導(dǎo)原則.2004.http://www.sda.gov.cn/WS01/CL0055/10307.htm l.(Accessed on 2014.9.26).
5.韋鵬翀,黃林雄,黃海波.《藥物臨床試驗質(zhì)量管理規(guī)范》在疫苗臨床試驗中的應(yīng)用.應(yīng)用預(yù)防醫(yī)學(xué),2010,16(5):311-313.
6.李雪峰,吳艷喬.藥物臨床試驗中的隨機化與盲法.西南軍醫(yī),2011,13(2):326-327.
7.吳春芳,許金芳,陸建,等.臨床試驗中動態(tài)均衡隨機化方法的均衡性和隨機性評價.中國新藥雜志,2011,20(7):590-593.
8.閆世艷,何麗云,文天才,等.雙盲臨床試驗中動態(tài)藥物編盲方法.中醫(yī)雜志,2013,54(12):1004-1006.
9.王國芳,謝琪,王曉菲.雙盲雙模擬臨床試驗的藥物準備及編盲.中藥新藥與臨床藥理,2005,16(4):308-310.
10.王柏松,蘇炳華,何清波.盲法臨床試驗盲底的制作.中國衛(wèi)生統(tǒng)計,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.國家食品藥品監(jiān)督管理總局.藥品注冊管理辦法.2007.http://www.sda. gov.cn/WS01/CL0053/24529.html.(Accessed on 2014.9.26).
(責(zé)任編輯:郭海強)
△通信作者:劉沛