
書(shū)到用時(shí)方恨少,今天來(lái)學(xué)習(xí)一下英國(guó)生物數(shù)據(jù)庫(kù)中用于表型關(guān)聯(lián)分析的工具,以下主要內(nèi)容是對(duì)截圖所示文章的翻譯。
摘要
動(dòng)機(jī):流病隊(duì)列常常包含不同類(lèi)型的表型數(shù)據(jù),自動(dòng)化掃描表型組并不簡(jiǎn)單,需要非常異質(zhì)化(highly heterogeneous)的模型。因此,到目前為止,表型組掃描往往使用統(tǒng)一的方法,分析一部分同質(zhì)的表型。我們開(kāi)發(fā)了PHESANT(PHEnome Scan ANalysis Tool),用于整合掃描UK生物庫(kù)中的表型組。
一般特性:PHESANT檢驗(yàn)特定性狀,與UK生物庫(kù)或特定子集中,所有連續(xù)型、整型和分類(lèi)變量的關(guān)聯(lián)。PHESANT使用基于規(guī)則的新算法來(lái)確定如何恰當(dāng)?shù)貦z驗(yàn)每一個(gè)性狀,然后執(zhí)行分析,輸出圖和描述性表格。
實(shí)現(xiàn):PHESANT的表型組掃描部分是用R實(shí)現(xiàn)的,整體包括基于Javascript D3.js 的可視化,以及相應(yīng)的Java代碼(可將表型組掃描分析結(jié)果轉(zhuǎn)化為需要的JavaScript Object Notation (JSON) 格式)。
可用性:PHESANT已托管至GitHub[https://github.com/MRCIEU/PHESANT]。
導(dǎo)言
表型組掃描檢驗(yàn)?zāi)硞€(gè)性狀與一系列表型(即表型)的關(guān)聯(lián)。表型組掃描大致分為全表型組關(guān)聯(lián)研究(phenome-wide association studies,pheWAS),孟德?tīng)栯S機(jī)化pheWAS(Mendelian randomization-pheWAS,MR-pheWAS)和全環(huán)境關(guān)聯(lián)分析(environment-wide association studies,EnWAS)。PheWAS致力于研究某個(gè)遺傳變異與一系列表型化的性狀的關(guān)聯(lián)。最近,pheWAS的研究進(jìn)一步擴(kuò)大,MR-pheWAS,在pheWAS的框架下使用孟德?tīng)栯S機(jī)化搜索特定暴露因素的因果效應(yīng)。EnWAS致力于檢驗(yàn)?zāi)硞€(gè)性狀和其他表型的關(guān)聯(lián)。
? ? 流病隊(duì)列通常包含大量不同的表型,因此無(wú)法簡(jiǎn)單地自動(dòng)化檢驗(yàn)這些表型與另一個(gè)性狀的關(guān)聯(lián)。因此,研究者們?nèi)粝胱霰硇徒M分析,往往會(huì)指定一些同類(lèi)型的性狀,以便統(tǒng)一地自動(dòng)化分析這些性狀中的關(guān)聯(lián)。比如,pheWAS起初用統(tǒng)一的檢驗(yàn)方法,分析電子醫(yī)療檔案中的國(guó)際疾病分類(lèi)(international classification of disease,ICD)編號(hào),將每種疾病編碼視為二分類(lèi)變量。然而,僅研究一部分表型只能看到一部分與某個(gè)表型的關(guān)聯(lián),減少了發(fā)現(xiàn)新關(guān)聯(lián)的可能。
? ? 本文提供PHESANT(PHEnome Scan ANalysis Tool),一個(gè)可平行化地用于UK生物庫(kù)——來(lái)自英國(guó)約500,000名37至73歲的男性和女性的前瞻性隊(duì)列——表型組掃描的工具。該隊(duì)列包括遺傳數(shù)據(jù)和大量不同類(lèi)型的數(shù)據(jù),分別來(lái)自血液、尿和唾液的檢測(cè)、臨床評(píng)估,記錄鏈接(record linkage,整合不同的數(shù)據(jù)源中來(lái)自同一實(shí)體的數(shù)據(jù)集)以及健康和生活調(diào)查問(wèn)卷。利用豐富且大量的數(shù)據(jù),研究者通過(guò)表型組掃描,更有可能發(fā)現(xiàn)新的關(guān)聯(lián)。
實(shí)現(xiàn)
PHESANT是用R實(shí)現(xiàn)的,需要以下R包:optparse, MASS, lmtest,nnet,forestplot和 data.table。PHESANT的輸入是包含一組表型、需研究的性狀(依研究類(lèi)型而定,如pheWAS、MR-pheWAS或EnWAS,輸入分別是SNP、遺傳評(píng)分或表型化的性狀)以及混淆因素(需研究的性狀和混淆因素也可以分不同文件)。PHESANT還需利用兩個(gè)數(shù)據(jù)文件,收集了UK生物庫(kù)隊(duì)列中變量相關(guān)的信息:(i)數(shù)據(jù)編碼信息;和(ii)變量信息。接下來(lái)的例子中將提及這些文件,稍作修改即可用于特定的表型組掃描。更多相關(guān)數(shù)據(jù)和信息文件,可在GitHub中查看。最后,將介紹PHESANT中的變量處理流程(variable processing flow)。
確定變量編碼的自動(dòng)化處理流程
為了自動(dòng)化檢驗(yàn)特定性狀與一系列不同類(lèi)型的表型的關(guān)聯(lián),我們開(kāi)發(fā)了基于規(guī)則確定每個(gè)變量合適的編碼和相應(yīng)的關(guān)聯(lián)檢驗(yàn)的系統(tǒng)(見(jiàn)圖1)。決定規(guī)則從UK生物庫(kù)指定的變量字段類(lèi)型(variable field type,見(jiàn)http://biobank.ctsu.ox.ac.uk/showcase/list.cgi)開(kāi)始,要么連續(xù)型、整型、分類(lèi)型(單)或分類(lèi)型(多),再將這些變量分類(lèi)為以下四種數(shù)據(jù)類(lèi)型:連續(xù)型、有序分類(lèi)型、無(wú)序分類(lèi)型和二分類(lèi)型。分類(lèi)型(單)字段類(lèi)型指的是分類(lèi)字段(包括二分類(lèi)型),其中每個(gè)參與者只能有一個(gè)值。比如,問(wèn)卷中,參與者被問(wèn)到“如何描述你通常的步行速度?”,選項(xiàng)包含“慢”、“平均”和“快”(字段ID是924)。相比之下,分類(lèi)型(多)字段對(duì)每個(gè)參與者而言,有多個(gè)值。比如,問(wèn)卷中,參與者被問(wèn)到前一天早上吃什么面包(字段ID是20091),可能同時(shí)選白和全麥。當(dāng)某字段在多個(gè)時(shí)間點(diǎn)測(cè)量,僅保留首次出現(xiàn)的值。連續(xù)型和整型變量可能在第一個(gè)測(cè)量時(shí)間點(diǎn)有多個(gè)測(cè)量值(常常是為了提升測(cè)量的估計(jì)精確度)。比如,一段時(shí)間內(nèi),肺活量會(huì)測(cè)兩到三次,以字段3062[http://biobank.ctsu.ox.ac.uk/showcase/field.cgi?id=3062]為例。遇到這類(lèi)情形,取均值。

? ? 連續(xù)型字段類(lèi)型中的變量通常被歸為連續(xù)型數(shù)據(jù)類(lèi)型。在這種情況下,變量將通過(guò)inverse normal rank transformation轉(zhuǎn)換為正態(tài)分布。在少數(shù)情況下,連續(xù)型字段將被歸為有序分類(lèi)型數(shù)據(jù)類(lèi)型(如果僅含兩種不同的值,則轉(zhuǎn)為二分類(lèi)型)。比如,字段100022包含估計(jì)飲酒量,基于問(wèn)卷“回憶24小時(shí)內(nèi)的飲食”中的回復(fù)。大部分參與者在此字段是零值,因?yàn)樗麄儾伙嬀?。不能inverse normal rank transform此變量,因?yàn)榇蟛糠謪⑴c者具有相同的值,轉(zhuǎn)換中隨機(jī)排序,將給數(shù)據(jù)增加噪音。相反,我們將此變量轉(zhuǎn)換為三類(lèi),每類(lèi)的人數(shù)大致相同(在不同值之間設(shè)置分割點(diǎn)),然后當(dāng)作有序分類(lèi)變量(見(jiàn)附件S3中的算法)。整型字段類(lèi)型的變量通常和連續(xù)型變量一樣處理。在少數(shù)情況下,不同的取值少于或等于20個(gè),我們將此變量當(dāng)作有序分類(lèi)型(或二分類(lèi)型如果只有兩個(gè)不同取值)。
? ? 分類(lèi)型(單)變量可能被歸為二分類(lèi)、有序分類(lèi)或無(wú)序分類(lèi)數(shù)據(jù)類(lèi)型。UK生物庫(kù)將負(fù)數(shù)歸為表示缺失的類(lèi)別(比如“不想回答”和“不知道”),因此將負(fù)數(shù)重編碼為“NA”。UK生物庫(kù)定義了一個(gè)或多個(gè)字段歸類(lèi)后的“數(shù)據(jù)編碼”(defines 'data codes' to which one or more fields are assigned),并且為這些字段及其數(shù)值定義了一系列分類(lèi)值。PHESANT數(shù)據(jù)編碼信息文件確定了分類(lèi)型(單)字段的數(shù)據(jù)編碼,說(shuō)明它是一個(gè)有序或者無(wú)序的分類(lèi)結(jié)構(gòu),然后用此信息將每個(gè)非二分類(lèi)型(單)字段歸為有序型或無(wú)序型分類(lèi)數(shù)據(jù)類(lèi)型。
? ? 每個(gè)分類(lèi)型(多)變量被轉(zhuǎn)換為一系列二分類(lèi)變量,說(shuō)明該參與者是否具有此類(lèi)指定值。比如,對(duì)于描述昨天吃的面包變量(字段ID為20091),值為“白”、“混合”、“全麥”、“多籽”和“其它”,將產(chǎn)生五個(gè)二分類(lèi)變量:白={真,假},全麥={真,假}等。如果有人在此字段上沒(méi)有值,那么分類(lèi)型(多)字段將更復(fù)雜,這可能是因?yàn)椋?i)該字段值不全——未包含所有可能的值(如,某個(gè)參與者不吃面包不會(huì)選以上任何一個(gè)選項(xiàng));或(ii)由于數(shù)據(jù)缺失(比如,參與者沒(méi)答此題)。這將影響如何賦值,比如,當(dāng)白=假,要么是:(i)所有選擇除“白”以外選項(xiàng)的人;(ii)所有回復(fù)了問(wèn)卷,但未選“白”的人;或是(iii)未選擇“白”的人,且包括那些未回復(fù)問(wèn)卷的人(見(jiàn)補(bǔ)充圖3示意)。在這種情況下,第二個(gè)選項(xiàng)更好,比較那些吃白面包的人和回復(fù)了問(wèn)卷但是不吃白面包的人。因此需針對(duì)每個(gè)變量單獨(dú)分析,在PHESANT變量信息文件中可以指定。補(bǔ)充材料S1有更多細(xì)節(jié)。

? ? 一些分類(lèi)型(多)字段包括負(fù)值,代表缺失(比如“不知道”)。因?yàn)闊o(wú)法確定他們是否與該二分類(lèi)變量的真值有關(guān),需從轉(zhuǎn)換出的二分類(lèi)變量為假的人群中排除該分類(lèi)型(多)字段存在缺失的參與者。以字段41228[http://biobank.ctsu.ox.ac.uk/showcase/field.cgi?id=41228]為例,描述的參與者接生醫(yī)生的類(lèi)型,比如某個(gè)參與者曾有兩次生育,在此項(xiàng)選擇“助產(chǎn)士”和“不知道”。在助產(chǎn)士的二分類(lèi)變量這一項(xiàng),符合助產(chǎn)士=真(midwife=true)的參與者集合包括該參與者,因?yàn)橹辽儆幸淮沃a(chǎn)士為其接生。然而,不能肯定某個(gè)住院醫(yī)生沒(méi)有為該參與者接生,因?yàn)椤安恢馈笨赡苤傅氖恰白≡横t(yī)生”。因此,在“住院醫(yī)生”的二分類(lèi)變量這一項(xiàng),符合住院醫(yī)生=假(hospital_doctor = false)的參與者集合就不包括該參與者, 因?yàn)榇隧?xiàng)未知。
檢驗(yàn)?zāi)硞€(gè)性狀的關(guān)聯(lián)
在恰當(dāng)?shù)貙⒚總€(gè)表型編碼并歸類(lèi)為四種數(shù)據(jù)類(lèi)型之一后(連續(xù)型、有序分類(lèi)型、無(wú)序分類(lèi)型和二分類(lèi)型)后,將檢驗(yàn)需研究性狀和所有表型的關(guān)聯(lián),具體如下。表型和該性狀分別為回歸的自變量和因變量。所有的回歸都校正招募時(shí)的年齡和性別(如果該性狀具有遺傳性,再加上基因型),或者如果指定了混淆文件(confounder file),則校正混淆文件中的所有變量。對(duì)轉(zhuǎn)換后的連續(xù)型數(shù)據(jù)類(lèi)型,用線性回歸(R函數(shù)lm)檢驗(yàn)關(guān)聯(lián)。對(duì)有序分類(lèi)型、無(wú)序分類(lèi)型和二分類(lèi)型變量,分別用有序邏輯斯蒂回歸(R函數(shù)polr)、多項(xiàng)式邏輯斯蒂回歸(R函數(shù)multinom)和二項(xiàng)式回歸(R函數(shù)glm,family參數(shù)設(shè)為binomial)。當(dāng)樣本量低于500時(shí),不檢驗(yàn)該變量,這種情況通常出現(xiàn)在對(duì)子人群進(jìn)一步提問(wèn)的少部分字段(比如,字段22148[http://biobank.ctsu.ox.ac.uk/showcase/field.cgi?id=22148])。當(dāng)分類(lèi)變量的類(lèi)別多于1000種(超過(guò)multinom函數(shù)的默認(rèn)最大值),也不檢驗(yàn),在下文使用說(shuō)明中有一個(gè)例子(字段132[http://biobank.ctsu.ox.ac.uk/showcase/field.cgi?id=132])。
用PHESANT做個(gè)性化表型組掃描分析
PHESANT允許研究者通過(guò)簡(jiǎn)單修改數(shù)據(jù)編碼和變量信息文件,實(shí)現(xiàn)個(gè)性化表型組掃描分析。具體如下:
?改變變量的數(shù)值型取值(比如將取值再編碼為缺失)或者有序分類(lèi)變量的取值順序;
?當(dāng)分類(lèi)型(單)變量存在表意不明的取值時(shí),賦予缺省值(見(jiàn)補(bǔ)充部分S1);
?將分類(lèi)型(單)字段改為分類(lèi)型(多)字段類(lèi)型,這對(duì)一部分字段可能比較合適;
?指定哪個(gè)變量在表型組掃描前應(yīng)該被剔除;
?指定表型組數(shù)據(jù)中哪些字段基本上與需研究的性狀一致[比如,體重、身高體重指數(shù)(BMI)],這樣在表型組掃描分析后,字段與性狀之間關(guān)聯(lián)的結(jié)果將僅用于驗(yàn)證,不在結(jié)果中,避免不必要的多重檢驗(yàn)。
? ? 以下兩種方式可以進(jìn)一步幫助實(shí)現(xiàn)個(gè)性化分析:
i.用戶(hù)可以在運(yùn)行之前調(diào)整數(shù)據(jù),比如,用中位數(shù)而不是均值整合連續(xù)型數(shù)值,或者整合某字段多個(gè)時(shí)間點(diǎn)的數(shù)據(jù)。
ii.用戶(hù)可以保存PHESANT處理好的表型,進(jìn)一步用這些變量做個(gè)性化分析。
結(jié)果輸出
PHESANT對(duì)結(jié)果中的p值排序,輸出結(jié)果文件、QQ圖,對(duì)連續(xù)型、有序分類(lèi)型和二分類(lèi)型中低于Bonferroni校正閾值的結(jié)果繪制森林圖[無(wú)法保證無(wú)序分類(lèi)型結(jié)果中的森林圖,因?yàn)椴](méi)有這些模型整體的預(yù)估(和置信區(qū)間),模型p值來(lái)源于似然比例檢驗(yàn)]。
其余部分是關(guān)于PHESANT-viz如何網(wǎng)頁(yè)可視化表型組掃描結(jié)果、案例展示和使用說(shuō)明和討論,暫時(shí)不譯,未完待續(xù)。