R數據分析:孟德爾隨機化分析文獻解析和實例操練

最近抽空研讀了一篇探討高血壓和腎功能關系的文獻,記錄下來分享給大家,主要也是想看看孟德爾隨機化的統計分析結果在論文中是如何呈現的,之后我會給大家寫寫孟德爾隨機化的統計分析在R語言中的做法,希望可以幫助到大家。

文章的題目是A bidirectional Mendelian randomization study supports causal effects of kidney function on blood pressure,這篇文章用到的統計技巧叫做Two-sample MR----兩樣本孟德爾隨機分析。我還查閱了別的孟德爾隨機化的文獻,這個Two-sample MR的分析其實是非常常用的。

Two-sample MR分析的一般步驟

第一步是找工具變量,我們要的是基因作為工具變量這些個基因都是從別人的研究中挑出來的,所有的基因研究有個專門的庫叫做genome wide association studies (GWAS)。我們需要做的就是從這個庫中挑出來我們自己需要的和我們暴露相關的基因變量SNPs。這是第一步。

第二步就是估計我們的工具變量對結局的作用,工具變量對結局的作用也是從所有的研究中估計出來的整體效應,這樣可以拒絕單個研究的偏倚。

第三步就是合并多個SNP的效應量,這個效應量是我們得到暴露和結局因果效應的前提。

第四步就是用合并后的數據進行孟德爾隨機化分析和相應的敏感性分析。

做分析的整個流程就在下面的圖中啦:

總體來看就是在孟德爾隨機化研究中我們的工具變量可以不需要你收集,工具變量的效應也不需要你計算,這些都只需要你在GWAS挖掘合并就行。就是說做孟德爾隨機化研究是不需要你有原始數據的。

我們把上面的步驟具體在剛剛提到的文獻中走一遍:

這篇文獻是要研究高血壓和腎功能的因果方向的,就是到底是高血壓導致腎功能下降,還是腎功能下降導致的高血壓,具體地就是研究eGFRcr和BP的因果方向。

首先作者從別人的基因研究中找自己研究變量的工具變量,別人的研究的情況如下表:注意下表是包含一個聯盟的很多個研究的(腎功能的工具變量是從CKDGen Consortium找來的,血壓的工具變量是UKB-ICBP中找來的),是需要進行meta整合的:

通過meta分析作者就篩選出了兩個變量可能的工具變量,因為每個變量的工具變量其實是比較多的,為了保證同一個變量工具變量間的獨立性,作者有做一個叫LD clumping的操作:

To ensure independence among genetic instruments, we applied LD clumping60 with a clumping window of 10 MB and an r2 cutoff of 0.001 (default of the ld_clumpfunction)

作者有把篩出來的變量的暴露和結局的工具變量展示在文獻中(但是放在補充材料中的,我并沒有能找到,欸)

然后就到第二步和第三步,估計工具變量對暴露和結局的作用,這個時候要考慮工具變量一定不能直接影響結局(叫做pleiotropy),所以作者會用好幾個算法來估計SNP的作用,并將多個SNP的效應合并,用到的是harmonise_data這個函數。

工具變量其實有很多的,所以就有上面提到的pleiotropic問題,作者是用不同的方法來估計參數(inverse variance weighted method, mendelian randomisation-Egger (MR-Egger) method, weighted median method, and weighted mode based estimation)來均衡pleiotropic問題的影響,最后得到一個總的合并后的效應,這個效應被認為是比較穩健的:

We applied four complementary methods of two sample mendelian randomisation (inverse variance weighted method, mendelian randomisation-Egger (MR-Egger) method, weighted median method, and weighted mode based estimation), which make different assumptions about horizontal pleiotropy. A consistent effect across the four methods is less likely to be a false positive.

有了合并后的工具變量對結局的效應,最后一步就是mr分析,估計暴露與結局的直接因果效應。

整個文獻就是這么回事,正文中呈現出來的圖表包括下面兩個,一個是腎功能對血壓的作用的森林圖和效應的置信區間和p值,另一個是血壓對腎功能的作用的森林圖和效應的置信區間和p值:

最終作者得到腎功能是影響血壓的原因,而非相反。整個文獻就完啦,這個就是一個完整的孟德爾隨機化研究的統計呈現過程。

Two-sample MR實操

接下來給大家寫如何做出文獻中的結果:

Two sample Mendelian randomisation (2SMR) is a method to estimate the causal effect of an exposure on an outcome using only summary statistics from genome wide association studies (GWAS).

具體地,作者使用的R包是‘TwoSampleMR’。

使用TwoSampleMR的基本流程包括4步:

選擇工具變量

從GWAS數據庫提取工具變量

合并效應量

做MR分析,敏感性分析,畫圖,出報告

在分析中我們要使用SNPs來作為工具變量:

Mendelian randomization is a method to assess the causal effect of an exposure on an outcome using an instrument, defined by one or more SNPs, as a proxy for the exposure.

這個工具變量怎么來呢,有人已經把所用的可能用到的SNPs總結好了放在了R包里,我們直接用就行,從GWAS中獲取,我們需要在GWAS中找到暴露相關的工具變量和結局相關的工具變量從而形成兩個樣本,相應的分析跑兩次,所以一般文獻中的分析方法就叫做two-sample Mendelian randomization

Methodological advances mean that Mendelian randomization can be implemented using summary statistics from GWAS, without individual level data. This requires SNP-exposure associations and SNP-outcome associations obtained from separate datasets and is known as two-sample Mendelian randomization

這里又有許多術語需要給大家做做鋪墊:

孟德爾隨機化:Mendelian randomization is a method to assess the causal effect of an exposure on an outcome using an instrument, defined by one or more single nucleotide polymorphisms, as a proxy for exposure.(SNP就是工具變量)

Genome-wide association study (GWAS):Genome-wide association studies identify the genetic variants that are associated with a given phenotype.和暴露(表型)相關的基因都是從GWAS中找的

Heterogeneity:Heterogeneity is defined as the variation in the causal estimate across SNPs.這個是不同SNP效應的異質性,所以多個SNP的效應是需要合并的

其實還有好多,感覺寫不完。。。直接上例子吧

實例解析

我現在想通過孟德爾隨機化研究血壓和冠心病的關系,首先我們得接入孟德爾隨機基礎庫MR-Base這個數據庫,找到相應的結局(即血壓和冠心病)的相關基因,代碼如下:

ao<- available_outcomes()exposure_dat<- extract_instruments(c('ukb-a-360'))outcome_dat<- extract_outcome_data(exposure_dat$SNP, c('7'), proxies=1, rsq = 0.8, align_alleles = 1, palindromes=1, maf_threshold = 0.3)

運行上面的代碼然后你去查看對象exposure_dat或者outcome_dat就會看到相關基因研究的基本特征,給大家截個圖吧:

然后計算基因對結局的合并效應量,代碼如下:

dat<-harmonise_data(exposure_dat,outcome_dat,action=2)

最后一步就是進行mr分析:

mr_results<- mr(dat)

運行所有的代碼后我們就可以得到不同算法模型下我們的結果如下圖兩圖:

文獻中的結果

我跑出來的結果

可以看到上面的圖是文獻中的,底下的圖是我自己復現出來的,一模一樣哦。可以看出來血壓是對冠心病有因果影響的,我們還可以得到相應系數的置信區間:

generate_odds_ratios(mr_results)

同時因為我們是選了很多個SNP進行的效應估計,我們可以出整個SNP效應的森林圖和漏斗圖,漏斗圖可以幫我們看SNP的異質性,我們還可以用Cochran’s Q and I2統計量檢驗不同SNP的異質性,然后選擇正確的方法對各個SNP的效應進行合并得到總效應

從森林圖就可以看到,整個血壓的工具變量對腎功能的作用也是顯著的,同時我們可以出散點圖直接看出來血壓對腎功能的系數,如下:

上圖就是不同參數估計方法下面估計出來的暴露(血壓)對結局(腎功能)的因果效應,這個圖的縱軸是工具變量對結局的影響效應,橫軸是工具變量對暴露的因果效應,兩個效應做比值就是暴露對結局的效應,也就是圖中線的斜率,也可以看出來這個線不同的算法估計出來是有些許差異的,但總體是斜向上的,就意味著暴露(血壓)對結局(冠心病)是有著正向的因果關系的。

然后再用同樣的方法做一遍冠心病對血壓的因果關系的分析(流程完全一樣就不重復了),做完之后發現冠心病對血壓其實是沒有因果作用的,這樣我們就知道了其實是血壓導致了冠心病而非冠心病導致了血壓升高,這樣一個完整的孟德爾隨機化研究就完成了。

可以看到一個孟德爾隨機化研究好像也不難哦。好啦,今天就到這兒吧,今天有粉絲在通話中鼓勵我繼續(趕緊)寫公眾號文章,有被感動到,所以特更一期,哈哈。

小結

今天從一篇文獻出發給大家寫了孟德爾隨機化的流程和做法,希望可以幫助到大家,感謝大家耐心看完,自己的文章都寫的很細,代碼都在原文中,希望大家都可以自己做一做,請關注后私信回復“數據鏈接”獲取所有數據和本人收集的學習資料。如果對您有用請先收藏,再點贊轉發。

也歡迎大家的意見和建議,大家想了解什么統計方法都可以在文章下留言,說不定我看見了就會給你寫教程哦,另歡迎私信。

本文參考文獻:

Wootton RE, Lawn RB, Millard LA, et al. : Evaluation of the causal effects between subjective wellbeing and cardiometabolic health: mendelian randomisation study.?BMJ.?2018;362:k3788. 10.1136/bmj.k3788

A bidirectional Mendelian randomization study supports causal effects of kidney function on blood pressureYu, Zhi et al.Kidney International, Volume 98, Issue 3, 708 - 716

Clinical effect of naturally random allocation to lower systolic blood pressure beginning before the development of hypertension.Ference BA, Julius S, Mahajan N, Levy PD, Williams KA Sr, Flack JMHypertension. 2014 Jun; 63(6):1182-8.

Bowden, Jack, George Davey Smith, and Stephen Burgess. 2015. “Mendelian randomization with invalid instruments: effect estimation and bias detection through Egger regression.”?International Journal of Epidemiology?In press.

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,119評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,382評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,038評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,853評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,616評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,112評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,192評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,355評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,869評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,727評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,928評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,467評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,165評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,570評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,813評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,585評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,892評論 2 372

推薦閱讀更多精彩內容