孟德爾隨機(jī)化步驟相對(duì)簡(jiǎn)單固定,一共就是3步,但是如果我們一個(gè)一個(gè)的對(duì)研究變量和結(jié)果數(shù)據(jù)進(jìn)行篩選,也是挺費(fèi)時(shí)間的,在上篇文章《自編R語(yǔ)言小程序助力孟德爾隨機(jī)化(Mendelian Randomization)數(shù)據(jù)挖掘》中,咱們自編了一個(gè)小程序幫助咱們進(jìn)行數(shù)據(jù)挖掘,反響還是不錯(cuò)的。但是這個(gè)函數(shù)也是有個(gè)明顯的缺點(diǎn),第一就是它是通過在線下載數(shù)據(jù),如果你的網(wǎng)絡(luò)不行,下載不到數(shù)據(jù),它就會(huì)報(bào)錯(cuò)。 我這幾天突然看到別的博主提供了一段while循環(huán)代碼,可以針對(duì)下載不到數(shù)據(jù)的,我一看剛好可以針對(duì)我這個(gè)函數(shù)的缺陷,咱們知道while循環(huán)可以設(shè)定一個(gè)目標(biāo),不達(dá)目的不罷休,這樣我們就可以給它添加一個(gè)設(shè)定,不下載到數(shù)據(jù)不停止,這樣大大提高了成功率和程序的穩(wěn)定性。 下面我來演示一下,做法基本和沒改良前一樣。 函數(shù)體為 Mendelian.help(exposure,outcome) Exposure就是我們的研究變量,outcome就是我們的結(jié)果變量。 我這次特地設(shè)置復(fù)雜點(diǎn),假設(shè)我們研究的想研究的原因變量有3個(gè)'ieu-a-22','prot-b-66','ukb-b-15590',想研究的結(jié)局變量有3個(gè)'finn-b-O15_MEMBR_PREMAT_RUPT','ukb-b-12621','finn-b-O15_PLAC_PREMAT_SEPAR'',如果我們一個(gè)一個(gè)的做也是要花費(fèi)一定時(shí)間的,如果變量更多就需要更多時(shí)間了。 我們先定義暴露變量和結(jié)果變量,你把全部變量一起上,就是說又是暴露又是結(jié)局也是可以的。
一句話然后生成結(jié)果,還是非常簡(jiǎn)單的。 dat<-Mendelian.help(exposure,outcome) 這樣就結(jié)果就生成啦,我們可以看到每個(gè)暴露變量和結(jié)果變量匹配的情況,看出有沒有意義,對(duì)于大規(guī)模變量的篩選我個(gè)人認(rèn)為還是有幫助的。P值的篩選是通過孟德爾隨機(jī)化P值中最要的方法Inverse variance weighted提取出的P值。 |
|