南京醫(yī)科大學公共衛(wèi)生學院生物統(tǒng)計學系(211166) 黃家俊 仲子航 楊 旻 周佳薇 倪森淼 于全驥 耿 正 蔡麗馨 賀志強 柏建嶺 于 浩
【提 要】 目的 探討腫瘤臨床試驗中有效性統(tǒng)計分析的可視化。方法 該研究基于SAS圖形模板語言(GTL)構建后端宏程序,利用SAS/AF模塊構建前端用戶界面并調(diào)用基于GTL的SAS宏程序,實現(xiàn)了腫瘤臨床試驗中常見有效性統(tǒng)計分析的可視化以及自動化輸出。因為SAS是臨床試驗的推薦程序,因此SAS軟件的可視化對于臨床試驗研究有較好的應用價值。結果 應用可視化系統(tǒng)自動輸出腫瘤臨床試驗中常見的有效性分析的圖形包括生存曲線、瀑布圖、泳道圖、森林圖等。結論 結合SAS/AF模塊以及基于GTL語言的SAS宏程序,可以構建低門檻、操作簡便的定制化繪圖程序,實現(xiàn)腫瘤臨床試驗中常見的有效性統(tǒng)計分析的可視化以及自動化輸出,提高統(tǒng)計繪圖工作的效率。
在腫瘤臨床試驗的統(tǒng)計分析報告中,單純的統(tǒng)計表格往往難以直觀地展現(xiàn)整個試驗的流程以及每個受試者在試驗過程中的具體情況。統(tǒng)計圖形則可以彌補這一不足,突出臨床試驗中的重要信息,并豐富統(tǒng)計分析報告的內(nèi)容[1]。
盡管目前存在著種類豐富的統(tǒng)計軟件,例如R、Excel、SPSS等,但在臨床試驗中,無論是我國的國家藥品監(jiān)督管理局還是美國的FDA都推薦使用SAS軟件進行統(tǒng)計分析。因此在可視化軟件的選擇上,SAS存在著一定的優(yōu)勢。此外,使用SAS繪圖不需要將分析數(shù)據(jù)集導出或調(diào)用不同的軟件接口進行數(shù)據(jù)傳輸,其可以在統(tǒng)計分析的同時對數(shù)據(jù)集進行繪圖操作。這不僅降低了出錯的可能性,還可以使整個分析報告的圖形格式趨于統(tǒng)一。同時,SAS軟件的功能完備,結合SAS宏、AF模塊、GTL語言等各項功能及模塊,可以實現(xiàn)自動化較高的統(tǒng)計繪圖,這極大地降低了統(tǒng)計分析人員的工作量、提高了統(tǒng)計分析效率。本文主要針對腫瘤臨床試驗有效性分析中的常見圖形,包括生存曲線、瀑布圖、泳道圖、森林圖,應用SAS/AF模塊、圖形模板語言和宏程序,構建應用程序,從而實現(xiàn)可視化與自動化輸出。
1.SAS/AF模塊
SAS/AF(applications facility)軟件模塊是一種構建企業(yè)級應用程序的工具,其擁有交互式的開發(fā)環(huán)境、豐富的面向?qū)ο蟮念惣?,可以快速開發(fā)并部署可利用其他SAS軟件產(chǎn)品的可移植GUI應用程序。AF模塊主要包括兩個主要的組成部分:框架(frames)和SAS組件語言(SAS component language,SCL)[2]。其中,框架是一個包含不同元素(例如字段、按鈕和表)的應用程序窗口[3]。SCL是控制SAS/AF應用程序的編程語言,可以較好地豐富和擴展AF組件的功能。
(1)SAS/AF開發(fā)環(huán)境的構建及主要窗口
SAS提供了多種方法創(chuàng)建框架,包括程序命令方式和窗口操作方式。程序命令方式一般使用PROC BUILD過程或SAS的命令創(chuàng)建框架。例如運行PROC BUILD C=AFDEV.PLOTS.KMPLOT.FRAME;RUN;即可在AFDEV邏輯庫下的PLOTS目錄新建KMPLOT框架[4]。窗口操作方式一般在SAS資源管理器界面進入邏輯庫,右擊空白處選擇新建目錄,隨即進入該目錄新建所需框架。
SAS/AF開發(fā)環(huán)境包括4個主要的窗口:框架、組件窗口、屬性窗口以及SCL源代碼窗口[5]??蚣苁菓贸绦虻挠脩艚缑妫M件窗口列出了可以添加到框架中的組件,屬性窗口可以查看和編輯框架上已有組件的屬性。SCL源代碼窗口是一個可編輯程序代碼的文本編輯器,SCL代碼可以賦予框架更多靈活的功能,增加應用程序的實用性[6]。
圖1 SAS/AF開發(fā)環(huán)境及主要窗口
(2)AF應用程序開發(fā)的基本流程
AF程序的構建需要熟悉開發(fā)環(huán)境的主要窗口及其功能,其通常包括以下步驟:
①創(chuàng)建框架并向其中添加組件。
創(chuàng)建AF框架并在框架左側(cè)的組件窗口選擇需要的組件(控件或者模型)??丶秋@示在界面上的程序組件,如:按鈕、復選框、輸入框等。模型是作用于控件后臺的功能,選擇模型直接拖動到特定控件上建立連接以實現(xiàn)其特定的功能[7]。
②修改組件的屬性。
右鍵指定的組件打開屬性窗口以修改屬性。常用的屬性包括組件的外觀特點、默認值以及功能方式。通過修改組件的屬性,可以改善界面設計、提供預設值并增加特定功能。
③添加SCL編程代碼。
右擊框架中的組件選擇框架SCL以添加SCL編程代碼。SCL窗口類似于SAS編輯器,但其通過SCL語言進行編程[8]。SCL代碼使得AF程序可以在后臺調(diào)用其他SAS程序,實現(xiàn)復雜功能。
④保存框架并編譯,然后測試框架。
AF程序在運行前需要進行編譯以及測試,如果編譯不通過,SAS會在日志窗口顯示錯誤提示,用戶可以查看并根據(jù)提示修改框架組件或SCL代碼。
⑤重復步驟②到④,直到應用程序正常運行并達到設計要求。
程序編譯通過以后,我們可以根據(jù)設計目標進行改進或完善,使其達到設計要求并可以投入實際使用。
2.腫瘤有效性分析的可視化
在腫瘤臨床試驗的有效性指標的統(tǒng)計分析中,通常會根據(jù)不同療效指標應用不同的統(tǒng)計圖形,其中四種常見的圖形為生存曲線、泳道圖、瀑布圖、森林圖。
(1)在腫瘤臨床試驗的有效性分析中,如果主要療效指標為生存時間(overall survival,OS)或疾病進展時間(progress free survival,PFS),一般應用生存曲線展示結果。生存曲線是描述一組或多組受試者生存結局(或終點事件)發(fā)生情況的統(tǒng)計圖表。圖中橫軸表示時間,縱軸表示生存概率(PFS為終點指標時為疾病未進展的概率),“+”一般表示刪失。生存曲線通常還包含各個時間點不同組別的受試者數(shù)、發(fā)生終點事件數(shù)、中位生存時間及95%的可信區(qū)間、風險比以及l(fā)og-rank檢驗的結果。
(2)如果研究者希望了解每一位受試者在整個治療期間疾病進展情況,通常使用泳道圖。泳道圖顯示了每個受試者的腫瘤響應隨時間的變化情況,圖中的每個水平條代表一例受試者接受藥物治療的時間,并在圖中標出受試者部分響應、完全響應或者死亡的時間節(jié)點。在圖中使用不同的顏色區(qū)分研究分組或直接將每一例受試者的分組信息標注在縱坐標軸上。
(3)瀑布圖一般用于顯示治療前后腫瘤大小的變化情況。瀑布圖中,每一個縱向的條表示一例受試者,縱坐標表示治療后病灶大小相較于治療前變化的百分比,以不同的顏色表示不同的治療組,并在柱狀圖的頂端標注受試者當前的腫瘤響應情況。
(4)森林圖顯示了不同的亞組受試者的人數(shù)、RR值及其可信區(qū)間,其可以更直觀地展示不同亞組間的差異。同時,森林圖也用于展示meta分析的統(tǒng)計分析結果,是meta分析中最為常見的結果展現(xiàn)形式。
我們基于SAS/AF模塊搭建了腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)。其利用AF框架構建前端用戶程序界面,并可以在后端調(diào)用SAS程序?qū)崿F(xiàn)不同的功能。
1.可視化程序的主界面
腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)的主菜單包含6個功能鍵,不同的功能按鈕可以為用戶提供數(shù)據(jù)導入與查看、數(shù)據(jù)處理、SAS程序編輯、腫瘤療效指標常見有效性圖形的繪制與輸出等功能,見圖2。
圖2 腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)主界面
2.數(shù)據(jù)導入與查看功能
通過腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)主界面的“導入數(shù)據(jù)”功能選項,可以進入外部數(shù)據(jù)導入系統(tǒng)。導入系統(tǒng)目前支持XLS、XLSX、CSV數(shù)據(jù)格式的導入。通過文件路徑輸入框一側(cè)的文件夾按鈕打開資源管理器瀏覽文件系統(tǒng),并選擇需要導入的數(shù)據(jù)文件所在的目錄。文件目錄選定以后,可以導入系統(tǒng)的數(shù)據(jù)文件會自動顯示在下方的文件列表里,選擇一個或者多個文件并單擊導入所選文件進行文件導入操作。如果數(shù)據(jù)文件較多,導入系統(tǒng)還提供了批量導入功能。點擊“導入全部文件”按鈕,系統(tǒng)會自動將文件列表中的數(shù)據(jù)文件全部導入為SAS數(shù)據(jù)集。右側(cè)的下拉菜單提供了導入邏輯庫選擇按鈕,可以將不同分類的數(shù)據(jù)文件導入各自相應的邏輯庫,見圖3。
圖3 外部數(shù)據(jù)導入系統(tǒng)主界面
數(shù)據(jù)查看器則是腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)中一個方便實用的工具。通過選擇邏輯庫、數(shù)據(jù)集以及變量,可以快速地訪問并查看當前系統(tǒng)內(nèi)的SAS數(shù)據(jù)集。
3.程序編輯與系統(tǒng)退出
雖然腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)內(nèi)置了豐富的功能,但是在實際操作中,考慮到數(shù)據(jù)集和圖形的不同,往往SAS編程也是不可或缺的部分。通過點擊“程序編輯器”功能按鈕,可以輕松訪問并編輯SAS程序,提高系統(tǒng)的可用度。
“退出系統(tǒng)”按鈕則提供了快速退出當前腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)的功能,并在關閉前再次提醒用戶是否確認退出。用戶如果無需退出系統(tǒng),只要點擊“否”則可回到原界面,這可以讓用戶獲得更為人性化的操作體驗,避免誤操作。
4.數(shù)據(jù)處理功能
腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)開發(fā)了一個方便易用的數(shù)據(jù)處理工具,其提供常見的數(shù)據(jù)集處理功能。在左側(cè)菜單欄選擇邏輯庫和數(shù)據(jù)集名稱,右側(cè)即可快速預覽對應數(shù)據(jù)集,在條件語句文本框內(nèi)輸入SAS條件語句,可以實現(xiàn)數(shù)據(jù)集內(nèi)變量的增加、修改、刪除,數(shù)據(jù)集之間合并、刪除等常見的SAS數(shù)據(jù)過程步,同時右側(cè)預覽框?qū)崟r刷新并展示數(shù)據(jù)集所進行的修改。最后,修改后的數(shù)據(jù)集可以根據(jù)用戶需求寫入新命名的數(shù)據(jù)集,見圖4。
圖4 數(shù)據(jù)處理工具主界面
5.統(tǒng)計圖形繪制功能
腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)目前主要提供了四種常見的有效性圖形的繪制:泳道圖、生存曲線、瀑布圖、森林圖。
泳道圖、生存曲線、瀑布圖的繪制均基于個體級別(subject-level)的數(shù)據(jù)集,即每一位受試者在數(shù)據(jù)集中存在一條數(shù)據(jù)。繪制泳道圖需要數(shù)據(jù)集中包含組別、治療時間、疾病進展和死亡的時間節(jié)點變量;生存曲線需要的變量包括組別、終點時間發(fā)生時間以及刪失標志;瀑布圖則需要組別、腫瘤變化率以及進展狀態(tài)的變量。森林圖通常要求數(shù)據(jù)中的每一條觀測與圖形中的每一行結果一一對應。
統(tǒng)計圖形的繪制主要通過編寫圖形模板并調(diào)用SAS宏程序?qū)崿F(xiàn)。SAS圖形模板語言(GTL)具有結構化的語法,其使用TEMPLATE過程定義圖形模板,SGRENDER過程指定進行繪圖的數(shù)據(jù)集和預設的圖形模板,最后輸出較為復雜的統(tǒng)計圖形[9-10]。有效性圖形的主要圖形模板以及宏程序如表1所示。
表1 有效性統(tǒng)計圖形相應的圖形模板以及宏程序
繪圖程序主界面一般包括五個參數(shù)模塊,以泳道圖(swimmer plot)程序為例,參數(shù)模塊包括:邏輯庫和數(shù)據(jù)集參數(shù)(library and dataset)、變量參數(shù)(variables)、圖形繪制參數(shù)(picture options)、輸出參數(shù)(output options)以及主要功能按鈕,見圖5。
圖5 泳道圖繪制程序主界面
邏輯庫和數(shù)據(jù)集參數(shù)主要用于指定圖形繪制所需的數(shù)據(jù)集以及所在的邏輯庫,為下一步的繪圖變量選擇提供選項。變量參數(shù)是圖形中產(chǎn)生不同的圖形元素所需的變量,在泳道圖中,Group變量代表受試者的組別,Time變量表示受試者接受試驗藥物的時長,CRTime、PRTime、PDTime、DeathTime變量分別表示受試者完全緩解、部分緩解、疾病進展和死亡的時間節(jié)點,ContinueFlag變量體現(xiàn)了受試者是否仍在試驗中。選擇正確的變量參數(shù)是繪制圖形的關鍵,如果選錯變量,一般無法獲得理想的結果。圖形參數(shù)一般用于調(diào)整圖片的標題、坐標軸、分組顯示格式、圖形中標志大小情況以及指定所需的繪圖模板樣式,通過指定一系列的圖形參數(shù),可以調(diào)整圖片的格式與布局,使得圖片更為美觀。輸出參數(shù)主要用于圖形產(chǎn)生后的輸出和存儲,其包括圖片名稱、圖片輸出路徑、DPI大小。功能按鈕主要用于實現(xiàn)重置、返回、提交繪圖任務等功能。
以腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)繪制泳道圖(swimmer plot)為例,導入外部數(shù)據(jù)繪制并輸出圖形的步驟如下:
(1)打開腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)并在主界面選擇導入數(shù)據(jù)功能,在外部數(shù)據(jù)導入系統(tǒng)中選擇需要導入的文件路徑并指定數(shù)據(jù)文件,選擇需要導出的邏輯庫,并點擊導入按鈕(如圖3所示)。
(2)數(shù)據(jù)導入成功后,可以在系統(tǒng)主界面選擇查看數(shù)據(jù)功能打開數(shù)據(jù)查看器,查看導入的數(shù)據(jù)文件是否正確。如果需要對數(shù)據(jù)集進行修改操作,在主界面選擇數(shù)據(jù)處理功能即可打開數(shù)據(jù)處理工具對數(shù)據(jù)集進行一定的修改,以滿足繪圖程序的需求。
圖6 數(shù)據(jù)查看器查看導入的數(shù)據(jù)集
(3)數(shù)據(jù)導入和修改完成后,在系統(tǒng)主界面選擇統(tǒng)計圖形按鈕并選擇泳道圖,即可進入泳道圖繪制程序(如圖5所示),在繪制程序中選擇合適的數(shù)據(jù)集參數(shù)、變量參數(shù)、填入圖形屬性并指定輸出圖片的名稱和路徑并提交,系統(tǒng)會根據(jù)指定的參數(shù)產(chǎn)生統(tǒng)計圖形。
圖7 泳道圖繪制程序輸出結果
腫瘤臨床試驗數(shù)據(jù)可視化系統(tǒng)是一款基于SAS/AF模塊開發(fā)的可視化應用程序,其充分結合了AF模塊所提供的構建前端窗口同時在后端調(diào)用并執(zhí)行SAS程序的功能[4]。本系統(tǒng)具有交互式的用戶界面,同時提供了數(shù)據(jù)導入與查看、數(shù)據(jù)處理、程序編輯、統(tǒng)計圖形繪制等一系列功能,讓用戶在一定程度上省去復雜的SAS編程以及宏程序調(diào)用的過程。用戶只需在系統(tǒng)主界面進行簡單的選擇或輸入,即可完成對數(shù)據(jù)的導入、查看、整理操作,并利用已經(jīng)開發(fā)好的宏程序輸出統(tǒng)計圖形結果。這極大地降低了用戶使用SAS進行統(tǒng)計繪圖的門檻,且可以較為便捷地輸出復雜的統(tǒng)計圖形,使得非專業(yè)的SAS使用者也可以輕松獲得所需的圖形結果[11]。
同時,SAS/AF開發(fā)的應用程序具有較好的可移植性[3]。本可視化系統(tǒng)程序以SAS目錄(catalog)的形式保存為文件,且文件體積十分小巧,可以輕松拷貝或傳輸?shù)饺我庖慌_安裝有同版本SAS的計算機上直接運行,無需進行其他安裝部署或調(diào)試。
本系統(tǒng)的局限在于,它是一款基于SAS內(nèi)置的AF模塊程序,完全依賴SAS運行,不能跳過SAS軟件直接訪問,也無法在沒有安裝SAS的計算機上打開。這在一定程度上限制了本系統(tǒng)的應用范圍。此外,系統(tǒng)的功能目前還稍顯簡單,只能提供一些較為常見的數(shù)據(jù)操作,繪制并輸出的統(tǒng)計圖形目前只包括腫瘤臨床試驗中較為常見的四種統(tǒng)計圖形,即生存曲線、泳道圖、瀑布圖、森林圖。一些復雜的數(shù)據(jù)操作功能和更多種類的統(tǒng)計圖形的繪制功能還有待進一步的開發(fā)。
但是,SAS/AF應用的開發(fā)、統(tǒng)計圖形模板的創(chuàng)建分別需要使用SCL語言和圖形模板語言,其語法相對于普通的SAS過程步較為繁冗且選項眾多[12]。開發(fā)一款功能強大的可視化系統(tǒng)需要學習并熟練運用兩種新的語言,這無疑給進一步開發(fā)系統(tǒng)功能的工作帶來了挑戰(zhàn)。