崔怡丹 魏 婷 孔偉名 俞章盛,△
【提 要】 目的 針對(duì)臨床數(shù)據(jù)變量類型多、數(shù)據(jù)結(jié)構(gòu)復(fù)雜的特征,基于R-shiny開發(fā)交互式分析臨床數(shù)據(jù)并展示結(jié)果的應(yīng)用。方法 基于R-shiny與R語(yǔ)言,搭建應(yīng)用的UI(用戶界面)和Server(后臺(tái)功能),將相應(yīng)代碼封裝并部署在網(wǎng)頁(yè)上。以UK Biobank乳腺癌數(shù)據(jù)為例,對(duì)其臨床及基因數(shù)據(jù)進(jìn)行分析,查看R-shiny應(yīng)用的分析效果。結(jié)果 構(gòu)建出能夠交互式分析臨床數(shù)據(jù)的R-shiny應(yīng)用,可供用戶上傳臨床數(shù)據(jù)、生存型數(shù)據(jù)及基因數(shù)據(jù)進(jìn)行分析。將UK Biobank數(shù)據(jù)作為示例進(jìn)行分析,得到了具有臨床與生物學(xué)意義的結(jié)果。結(jié)論 將R-shiny與臨床數(shù)據(jù)分析結(jié)合,為使用者提供了分析臨床數(shù)據(jù)的簡(jiǎn)便方式,并為UK Biobank數(shù)據(jù)提供新的交互式展示分析平臺(tái)。
R語(yǔ)言是免費(fèi)開源的編程語(yǔ)言[1],適用于各種計(jì)算機(jī)系統(tǒng),具有強(qiáng)大的統(tǒng)計(jì)分析和圖形繪制功能。R-shiny是RStudio公司基于R語(yǔ)言推出的Web開發(fā)工具[2],借助R語(yǔ)言強(qiáng)大的數(shù)據(jù)分析與圖形繪制功能,幫助熟悉R語(yǔ)言的編程者開發(fā)以瀏覽器為依托、具有交互功能的應(yīng)用。使用者無(wú)需學(xué)習(xí)R語(yǔ)言,僅通過(guò)鼠標(biāo)點(diǎn)擊的方式就可以輕松使用shiny應(yīng)用。常見(jiàn)的shiny應(yīng)用包含UI(用戶界面)和Server(后臺(tái)功能)兩部分,其中UI的功能對(duì)應(yīng)B/S架構(gòu)中的B(Browser瀏覽器)端[3],Server對(duì)應(yīng)S(Server應(yīng)用)端。UI包括sidebarPanel(側(cè)邊欄,顯示選項(xiàng))與mainPanel(主頁(yè)面,展示結(jié)果),負(fù)責(zé)展示用戶界面布局并輸出后臺(tái)運(yùn)算結(jié)果;Server負(fù)責(zé)抓取UI動(dòng)態(tài)并在后臺(tái)進(jìn)行相應(yīng)運(yùn)算。通過(guò)UI與Server配合,能夠?qū)崟r(shí)對(duì)用戶在UI頁(yè)面的指令進(jìn)行反饋。本應(yīng)用使用shiny的navbarPage框架作為UI的架構(gòu)基礎(chǔ),運(yùn)用HTML與Javascript對(duì)其外觀與功能進(jìn)行完善。臨床數(shù)據(jù)分析使用R語(yǔ)言實(shí)現(xiàn)后臺(tái)運(yùn)算,基因分析通過(guò)R調(diào)用plink[4]進(jìn)行分析并將結(jié)果展示在shiny應(yīng)用中。
UK Biobank是一項(xiàng)由英國(guó)國(guó)家衛(wèi)生局支持的前瞻性開放獲取隊(duì)列研究[5]。該項(xiàng)目招募了英國(guó)各地超過(guò)500000位參與者,采集參與者的表型與遺傳信息,包括生理指標(biāo)、生活方式、生物學(xué)測(cè)量、血液尿液、身體及大腦圖像、全基因組測(cè)序等數(shù)據(jù)[6]?;赨K Biobank數(shù)據(jù)的研究已較為廣泛,包括對(duì)腎病[7]、甲狀腺疾病[8]等的臨床與基因數(shù)據(jù)研究。世界衛(wèi)生組織發(fā)布的《2020世界癌癥報(bào)告》指出[9],乳腺癌是全球女性患病率最高的癌癥,同時(shí)也是全球女性癌癥死亡的主要原因。尋找乳腺癌易感及影響乳腺癌患者生存時(shí)長(zhǎng)的臨床與基因因素是亟待解決的問(wèn)題。因此,本研究選用UK Biobank乳腺癌數(shù)據(jù)作為shiny應(yīng)用示例,展示本研究開發(fā)的臨床數(shù)據(jù)分析應(yīng)用,同時(shí)探究影響乳腺癌患病及預(yù)后的風(fēng)險(xiǎn)因素。
針對(duì)臨床與基因數(shù)據(jù)特點(diǎn),以R語(yǔ)言與shiny為基礎(chǔ)開發(fā)臨床數(shù)據(jù)分析應(yīng)用,可交互式分析數(shù)據(jù)并展示結(jié)果,為不熟悉R語(yǔ)言與plink的使用者提供易上手的數(shù)據(jù)分析應(yīng)用,為UK Biobank數(shù)據(jù)提供展示平臺(tái),為臨床數(shù)據(jù)分析應(yīng)用的開發(fā)提供新思路。
本應(yīng)用包含四個(gè)功能:數(shù)據(jù)上傳與描述性統(tǒng)計(jì)、回歸分析、生存分析與基因分析。針對(duì)以下五個(gè)關(guān)鍵問(wèn)題,我們探索出了相應(yīng)解決方案。
1.如何架構(gòu)UI能夠兼顧功能多樣與界面簡(jiǎn)潔?
臨床與基因數(shù)據(jù)涉及多個(gè)分析方向,若顯示在同一頁(yè)面,難免會(huì)紛雜不清晰。比較多種shiny架構(gòu)后,我們?cè)趎avbarPage架構(gòu)的基礎(chǔ)上,用navbarMenu與tabPanel進(jìn)行擴(kuò)充。navbarPage是shiny中較為常用的架構(gòu)之一,點(diǎn)擊頁(yè)面頂部橫條的不同名稱顯示不同頁(yè)面。navbarMenu是navbarPage架構(gòu)中的可選功能,點(diǎn)擊頂部橫條的名稱顯示下拉式菜單,點(diǎn)擊菜單中的名稱顯示不同頁(yè)面。tabPanel是shiny中常用的基礎(chǔ)架構(gòu),點(diǎn)擊shiny應(yīng)用主頁(yè)面上方的不同標(biāo)簽名稱顯示不同頁(yè)面。子功能較多且相互獨(dú)立的模塊通過(guò)navbarMenu展示,子功能具有一定關(guān)聯(lián)性的模塊通過(guò)tabPanel展示。同時(shí),使用HTML與JavaScript語(yǔ)句對(duì)UI進(jìn)行完善,例如通過(guò)HTML調(diào)整字體大小及添加使用說(shuō)明,通過(guò)JavaScript控制輸出圖片的顯示與隱藏等功能。
2.如何處理臨床數(shù)據(jù)的變量類型?
R語(yǔ)言讀取csv、Excel、txt格式文件時(shí)會(huì)將變量讀取為連續(xù)型,或通過(guò)stringsAsFactors選項(xiàng)將所有變量讀取為分類型,這顯然不符合臨床數(shù)據(jù)特征。針對(duì)這一問(wèn)題,首先將數(shù)據(jù)讀取為連續(xù)型,利用reactive函數(shù)與observe函數(shù),在選擇框中顯示數(shù)據(jù)集變量名,使用者通過(guò)點(diǎn)擊選擇可將相應(yīng)變量修改為分類型。
3.回歸模型類型如何判斷?
根據(jù)結(jié)局變量的不同類型,常見(jiàn)的回歸模型包括線性回歸模型(結(jié)局變量為連續(xù)型)和logistic回歸模型(結(jié)局變量為分類型)。為簡(jiǎn)化操作,直接根據(jù)使用者選擇的結(jié)局變量類型判斷回歸模型類型。若結(jié)局變量為連續(xù)型,glm函數(shù)的family參數(shù)設(shè)置為Gaussian;若結(jié)局變量為分類型,family參數(shù)設(shè)置為Binomial。
4.連續(xù)型變量如何進(jìn)行l(wèi)og rank檢驗(yàn)?
生存分析模塊的log rank檢驗(yàn)可以比較不同亞組生存分布。分類型變量可以直接根據(jù)變量水平區(qū)分亞組,但對(duì)于連續(xù)型變量,需要先規(guī)定其分組依據(jù)。為方便使用者,我們選用滑動(dòng)條作為依托:當(dāng)檢驗(yàn)變量為連續(xù)型時(shí),應(yīng)用會(huì)顯示一條閾值與該變量取值范圍相等的滑動(dòng)條,使用者拖動(dòng)滑塊,以滑塊的取值對(duì)該連續(xù)型變量進(jìn)行分組,并對(duì)兩組的生存分布進(jìn)行l(wèi)og rank檢驗(yàn)。
5.數(shù)據(jù)量較大的基因數(shù)據(jù)如何分析?
一些臨床研究包含基因數(shù)據(jù),但基因數(shù)據(jù)量較大,如果在shiny中直接運(yùn)算,上傳數(shù)據(jù)會(huì)占用較長(zhǎng)時(shí)間。因此,考慮使用shiny調(diào)用plink軟件在本地運(yùn)算,在shiny中展示本地儲(chǔ)存的運(yùn)算結(jié)果與日志。首先在后臺(tái)通過(guò)bigsnpr::download_plink()語(yǔ)句在本地目標(biāo)路徑中安裝plink軟件,后臺(tái)通過(guò)system(“plink-xxxx”)等語(yǔ)句調(diào)用plink進(jìn)行文件格式轉(zhuǎn)換、主成分分析、GWAS等運(yùn)算操作。
本應(yīng)用包含五個(gè)模塊:應(yīng)用介紹、數(shù)據(jù)上傳及描述、回歸分析、生存分析與基因分析,涵蓋了臨床研究數(shù)據(jù)分析的主要步驟。
“數(shù)據(jù)上傳及描述”模塊使用tabPanel顯示可選功能,通過(guò)點(diǎn)擊主頁(yè)面上方的標(biāo)簽選擇數(shù)據(jù)上傳、圖像描述及描述性統(tǒng)計(jì)。在數(shù)據(jù)上傳頁(yè)面可以選擇內(nèi)置的UK Biobank數(shù)據(jù),也可上傳格式為csv、Excel、txt的文件并設(shè)置變量類型。可通過(guò)三種方式對(duì)數(shù)據(jù)進(jìn)行簡(jiǎn)要描述:前十行預(yù)覽、數(shù)據(jù)結(jié)構(gòu)、匯總描述(分別對(duì)應(yīng)R語(yǔ)言head、str、summary函數(shù))。還可以繪制變量的描述性圖像:連續(xù)型變量繪制條形圖,分類型變量繪制餅圖。描述性統(tǒng)計(jì)頁(yè)面展示tableone包輸出的描述性表格,可以描述總體數(shù)據(jù),也可分亞組進(jìn)行對(duì)比描述。數(shù)據(jù)上傳及描述頁(yè)面見(jiàn)圖1。
圖1 shiny應(yīng)用的數(shù)據(jù)上傳及描述頁(yè)面
“回歸分析”模塊根據(jù)選擇的結(jié)局變量類型擬合線性回歸或logistic回歸模型,可以選擇數(shù)據(jù)集中的任意變量作為模型自變量。若模型自變量較多,可通過(guò)添加懲罰項(xiàng)進(jìn)行變量選擇,可選的懲罰方式包括SCAD、MCP和Lasso三種?;貧w分析模塊頁(yè)面展示見(jiàn)圖2。
圖2 shiny應(yīng)用的回歸分析頁(yè)面
“生存分析”模塊包括Kaplan-Meier圖像、生存模型、log rank檢驗(yàn)三部分。Kaplan-Meier圖像通過(guò)ggplot2包繪制,需要依次選擇生存時(shí)間與狀態(tài)。生存模型包括Cox比例風(fēng)險(xiǎn)模型與可加風(fēng)險(xiǎn)模型兩種,都可進(jìn)行模型擬合與變量選擇,并在主頁(yè)面顯示模型的參數(shù)估計(jì)與統(tǒng)計(jì)量。圖3展示了navbarMenu與Cox比例風(fēng)險(xiǎn)模型頁(yè)面。log rank檢驗(yàn)可根據(jù)使用者選擇的變量進(jìn)行分組并比較亞組間的生存分布,連續(xù)型變量會(huì)根據(jù)滑動(dòng)條的取值進(jìn)行分組。圖4展示了log rank檢驗(yàn)變量為連續(xù)型時(shí)的頁(yè)面。
“基因分析”模塊相對(duì)獨(dú)立于其他三個(gè)模塊,主要功能包括數(shù)據(jù)類型轉(zhuǎn)換、主成分分析、單因素及多因素GWAS分析三個(gè)功能。數(shù)據(jù)轉(zhuǎn)化是將常見(jiàn)的ped/map或vcf格式文件轉(zhuǎn)化為運(yùn)算速度更快的二進(jìn)制bed文件。主成分分析的功能是通過(guò)plink計(jì)算基因數(shù)據(jù)的十個(gè)主成分,讀取計(jì)算結(jié)果繪制主成分圖并展示在主頁(yè)面。單因素GWAS分析直接計(jì)算表型與基因數(shù)據(jù)關(guān)聯(lián)程度的P值;多因素GWAS分析計(jì)算有臨床數(shù)據(jù)影響時(shí)表型與基因數(shù)據(jù)關(guān)聯(lián)程度的P值。若基因數(shù)據(jù)較多,可勾選“計(jì)算矯正相關(guān)系數(shù)”以避免多重檢驗(yàn)誤差。圖5展示基因GWAS分析頁(yè)面。
圖3 shiny應(yīng)用的生存分析頁(yè)面
圖4 shiny應(yīng)用的log rank檢驗(yàn)頁(yè)面
圖5 shiny應(yīng)用的GWAS分析頁(yè)面
1.生存分析:Cox比例風(fēng)險(xiǎn)模型
點(diǎn)擊頁(yè)面上方“生存分析”按鈕進(jìn)入Cox比例風(fēng)險(xiǎn)模型頁(yè)面。選擇生存時(shí)間和狀態(tài)后,將剩余變量選為模型自變量,勾選“變量選擇”選項(xiàng),選擇SCAD懲罰,得到分析擬合結(jié)果見(jiàn)表1。性別、吸煙、確診年齡等對(duì)乳腺癌患者生存的影響與臨床研究一致[10-12]。
表1 生存分析Cox比例風(fēng)險(xiǎn)模型分析結(jié)果
2.基因分析
(1)主成分分析
點(diǎn)擊基因分析按鈕進(jìn)入主成分分析頁(yè)面,粘貼基因數(shù)據(jù)所在文件路徑,計(jì)算主成分。之后根據(jù)計(jì)算結(jié)果繪制第一和第二主成分圖,如圖6,不同顏色代表不同人種??梢钥闯鱿嗤朔N之間存在一定相關(guān)性,不同人種之間差異較顯著。
圖6 第一主成分與第二主成分示意圖
(2)單因素GWAS分析
點(diǎn)擊進(jìn)入GWAS分析,選擇需要分析的文件名并勾選“計(jì)算矯正相關(guān)系數(shù)”選項(xiàng),選取Bonferroni矯正。得到39個(gè)顯著位點(diǎn),其中23個(gè)有研究支持,包括保護(hù)性和危害性SNP。例如rs3803662,一項(xiàng)關(guān)于乳腺癌患者的隊(duì)列研究表明其突變與乳腺癌易感風(fēng)險(xiǎn)增高顯著相關(guān)(OR=1.15)[13],這與我們的GWAS分析結(jié)果一致(OR=1.20)。具體結(jié)果見(jiàn)表2,其中A1為次等位基因,A2為參考基因。
表2 GWAS分析影響罹患乳腺癌的SNP位點(diǎn)
將臨床數(shù)據(jù)分析與R-shiny結(jié)合,通過(guò)鼠標(biāo)點(diǎn)擊的方式選擇感興趣的分析方法及模型,并交互式地展示相應(yīng)分析結(jié)果,方便不熟悉R語(yǔ)言的使用者輕松使用R語(yǔ)言的分析統(tǒng)計(jì)、圖形繪制功能。本研究開發(fā)的應(yīng)用能夠完成常見(jiàn)的分析方法,如描述性統(tǒng)計(jì)、回歸分析、生存分析、基因分析等;可以繪制常用的圖形,如餅圖、直方圖、Kaplan-Meier圖像等。在后續(xù)的研究中會(huì)對(duì)本應(yīng)用繼續(xù)改進(jìn),完善統(tǒng)計(jì)繪圖功能,增強(qiáng)應(yīng)用頁(yè)面使用的友好性、便捷性、交互性。期望本應(yīng)用能夠協(xié)助不熟悉R語(yǔ)言的醫(yī)療工作人員進(jìn)行數(shù)據(jù)分析,為臨床數(shù)據(jù)分析相關(guān)應(yīng)用的開發(fā)提供新思路,同時(shí)為UK Biobank數(shù)據(jù)提供新的可視化分析統(tǒng)計(jì)平臺(tái)。
中國(guó)衛(wèi)生統(tǒng)計(jì)2022年1期