前言
關(guān)于全基因組關(guān)聯(lián)分析(GWAS)原理的資料,網(wǎng)上有很多祟印。
這也是我寫了這么多GWAS的軟件教程讨彼,卻從來沒有寫過GWAS計(jì)算原理的原因乳愉。
恰巧之前微博上某位小可愛提問能否寫一下GWAS的計(jì)算原理逛球。我一順口就答應(yīng)了千元。
后面一直很懶,不愿意動(dòng)筆颤绕,但想著既然答應(yīng)了幸海,不寫說不過去祟身。
我寫這段話的意思是,如果你有任何關(guān)于GWAS分析問題或者疑問物独,希望我能寫一下的袜硫,可以跟我說。
如果我認(rèn)為有價(jià)值挡篓,寫出來對(duì)大家有幫助的話婉陷,會(huì)寫的。
GWAS所涉及的公式:最小二乘法
首先官研,我們來一個(gè)知識(shí)點(diǎn)的回顧:最小二乘法憨攒。
看下圖,熟不熟悉阀参!
這可是我們中學(xué)時(shí)解了很多遍的算術(shù)題。
圖片來源:http://kitsprout.blogspot.com/2015/11/algorithm-least-squares.html
公式可以寫為: y = ax + b
y:我們研究的表型
x:基因型數(shù)據(jù)瞻坝,這里指每一個(gè)SNP
a:SNP的系數(shù)
b:殘差蛛壳,可以是環(huán)境變量,或者除了SNP之外的影響表型的因素
來個(gè)例子給我們講講唄所刀,公式怎么套進(jìn)去
如圖所示衙荐,假定有一個(gè)SNP,叫 rs123: T>C
我們定義C為風(fēng)險(xiǎn)位點(diǎn),以加性模型為例浮创,一個(gè)C=1,T=0
那么CC=2,CT=1,TT=0
根據(jù)上面的公式:
SNP對(duì)應(yīng)的值x分別為:2,2,1,2,1,1,0,2
對(duì)應(yīng)的表型y分別為10,7,6,8,5,4,2,6
回顧我們前面提到的公式:y = ax + b
現(xiàn)在我們有:
10= 2a+b
7= 2a+b
6= 1a+b
8= 2a+b
5= 1a+b
4= 1a+b
2= 0+b
6= 2a+b
轉(zhuǎn)化一下忧吟,就是:
2a+b - 10 = 0
2a+b - 7 = 0
1a+b - 6 = 0
2a+b - 8 =0
1a+b - 5 = 0
1a+b - 4 = 0
0+b -2 = 0
2a+b -6 = 0
我們的任務(wù)就是,找到合適的a斩披,b使得
(2a+b - 10)^2 + (2a+b - 7)^2 + (1a+b - 6)^2 + (2a+b - 8)^2 + (1a+b - 5)^2 + (1a+b - 4)^2 + (0+b -2)^2 + (2a+b -6)^2 最小溜族。
a,b的求值涉及到最小二乘法的推導(dǎo)垦沉,感興趣的看這篇文章:https://zhuanlan.zhihu.com/p/53556591
用公式表示就是:
b = cor(y,x)*Sd(y)/Sd(x)
a = (10+7+6+8+5+4+2+6)/8 - ((2+2+1+2+1+1+0+2)/8)*b
cor(y,x)表示x和y的相關(guān)系數(shù)
Sd(y),Sd(x)分別表示y和x的標(biāo)準(zhǔn)差
可以自己手算一下煌抒,也可以借助R語言:
x=c(2,2,1,2,1,1,0,2)
y=c(10,7,6,8,5,4,2,6)
Ex=mean(x);Ex
Ey=mean(y);Ey
Sx=sd(x);Sx
Sy=sd(y);Sy
corn=cor(y,x) ; corn
b=corn*Sy/Sx ; b
a=Ey-b*Ex ; a
最后擬合的結(jié)果是:a的最優(yōu)化為 2.8387, b的最優(yōu)化為 2.0968 厕倍,公式 y = 2.8387* x + 2.0968
R語言的lm函數(shù)也可以計(jì)算a和b寡壮,完全不需要我們自己一個(gè)個(gè)手動(dòng)推導(dǎo)。lm函數(shù)結(jié)果的Intercept即為b值讹弯,x所在行對(duì)應(yīng)的Estimate值即為a值
回歸到我們的全基因組關(guān)聯(lián)分析况既,這里的a即為beta(OR)值
所以搞明白全基因組關(guān)聯(lián)分析的值是怎么來的了嗎,這個(gè)就是它的計(jì)算原理
其他變量呢
上面列出來的公式只是簡(jiǎn)單的計(jì)算基因型與表型之間的相關(guān)性组民。
實(shí)際上棒仍,我們?cè)谟?jì)算的時(shí)候,會(huì)加入其他的變量邪乍,比如性別降狠,年齡对竣,品系等。
這些因素也是影響表型的變量榜配。
因此否纬,當(dāng)考慮其他變量存在時(shí),計(jì)算公式會(huì)稍微改變一下:y = ax + zβ + b
y:我們研究的表型
x:基因型數(shù)據(jù)蛋褥,這里指每一個(gè)SNP
a:SNP的系數(shù)
z:年齡临燃,性別等因素
β:年齡,性別等因素的系數(shù)
b:殘差烙心,除了我們納入的SNP膜廊,性別年齡等因素外等其他可能影響表型的因素;
計(jì)算原理同上淫茵。