筆記 | GWAS 操作流程4:LM模型assoc

1. GWAS筆記操作計劃

之前的教程中,我們使用的是別人模擬的數據,數據類型是二分類數據,這裏我們模擬一個數量性狀的連續性狀,做GWAS更有代表性。

我們先從沒有協變量的一般線性模型(LM)模型開始,然後加入數據類型的協變量,然後加入因子類型的協變量(這裏需要進行虛擬變量的轉化),然後將數值協變量和因子變量放在一起作爲協變量,然後將PCA的值作爲協變量加進去,這樣一般線性模型分析完成。

最後我們使用混合線性模型(LMM),不考慮協變量,然後加入協變量,然後將PCA加入協變量。

最最後介紹一下可視化,包括曼哈頓圖,QQ圖,LD衰減圖等相關可視化。

最最最後,介紹一下這個數據,用這麼多數據分析後,哪種模型最好,哪種模型控制假陽性較好,哪種模型控制假陰性較好。

最最最最後,介紹一下結果的中有疑問的地方,比如爲何有些SNP顯著但是效應較小,有些SNP效應較大但是顯著性較低?比如GWAS分析結果中效應值是怎麼理解的?GWAS分析的效應值和rrBLUP中SNP效應值有什麼關係?

計劃章節:

筆記 GWAS 操作流程4-1:LM模型assoc(本篇)

主要是介紹assoc和linear兩個參數,不考慮協變量,然後將結果與R語言編程結果比較

筆記 GWAS 操作流程4-2:LM模型linear+數值協變量

主要是介紹linear參數,考慮數值協變量,然後將結果與R語言編程結果比較

筆記 GWAS 操作流程4-3:LM模型linear+因子協變量

主要是介紹linear參數,考慮因子協變量,然後將結果與R語言編程結果比較

筆記 GWAS 操作流程4-4:LM模型linear+數值+因子協變量

主要是介紹linear參數,考慮數值+因子協變量,然後將結果與R語言編程結果比較

筆記 GWAS 操作流程4-5:LM模型linear+數值+因子+PCA協變量

主要是介紹linear參數,考慮數值+因子協變量,然後將結果與R語言編程結果比較

筆記 GWAS 操作流程5-1:LMM模型進行GWAS分析

主要是介紹混合線性模型,不考慮協變量結果分析

筆記 GWAS 操作流程5-2:LMM模型進行GWAS分析+數值協變量

主要是介紹混合線性模型,考慮數值協變量結果分析

筆記 GWAS 操作流程5-3:LMM模型進行GWAS分析+因子協變量

主要是介紹混合線性模型,考慮因子協變量結果分析

筆記 GWAS 操作流程5-4:LMM模型進行GWAS分析+數值+因子協變量

主要是介紹混合線性模型,考慮數值+因子協變量結果分析

筆記 GWAS 操作流程5-5:LMM模型進行GWAS分析+數值+因子+PCA協變量

主要是介紹混合線性模型,考慮數值+因子+PCA協變量結果分析

筆記 GWAS 操作流程6-1:GWAS分析中曼哈頓圖的繪製

主要是介紹GWAS分析中曼哈頓圖的繪製

筆記 GWAS 操作流程6-2:GWAS分析中QQ的繪製

主要是介紹GWAS分析中QQ圖的繪製

筆記 GWAS 操作流程6-3:GWAS分析中其它圖的繪製

主要是介紹GWAS分析中其它圖的繪製

筆記 GWAS 操作流程7:GWAS分析中結果解讀

主要是介紹GWAS分析中結果解讀

2. 模擬的數據

模擬數據使用QMSim軟件,模擬的數據如下:

b.map  b.ped  cov.txt  phe.txt

這裏b.mapb.ped是plink格式的數據,cov.txt爲協變量,phe.txt爲觀測值

數據預覽:

b.map數據:

b.ped數據:

cov.txt 協變量數據:

phe.txt表型數據:

3. plink利用assoc進行LM的GWAS分析

plink --file b --pheno phe.txt --assoc --out re --allow-no-sex 

代碼解釋:

  • –file爲plink的文件名的前綴
  • –pheno 爲plink分析GWAS的表型數據,注意前兩列爲FID IID,第三列爲分析的性狀
  • –assoc 利用的是LM模型
  • –out 輸出文件名
  • –allow-no-sex 因爲數據中沒有性別信息,需要加上這個參數,允許沒有性別的數據

運行日誌:

PLINK v1.90b6.17 64-bit (28 Apr 2020)          www.cog-genomics.org/plink/1.9/
(C) 2005-2020 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to re.log.
Options in effect:
  --allow-no-sex
  --assoc
  --file b
  --out re
  --pheno phe.txt

7820 MB RAM detected; reserving 3910 MB for main workspace.
.ped scan complete (for binary autoconversion).
Performing single-pass .bed write (10000 variants, 1500 people).
--file: re-temporary.bed + re-temporary.bim + re-temporary.fam written.
10000 variants loaded from .bim file.
1500 people (0 males, 0 females, 1500 ambiguous) loaded from .fam.
Ambiguous sex IDs written to re.nosex .
1500 phenotype values present after --pheno.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 1500 founders and 0 nonfounders present.
Calculating allele frequencies... done.
10000 variants and 1500 people pass filters and QC.
Phenotype data is quantitative.
Writing QT --assoc report to re.qassoc ... done.

結果文件:
re.qassoc

注意,這裏的SNP沒有質控,有很多SNP沒有分型,所以結果又很多NA,不過這裏可以看出assoc分析GWAS的結果,其中SNP中M7和M9的結果:

  • M7,beta值爲1.394,se爲1.317,R2位0.000749,T值爲1.059,P值爲0.2898
  • M9,beta值爲3.327,se爲1.504,R2位0.003254,T值爲2.211,P值爲0.02715

4. plink利用linear進行LM的GWAS分析

這裏,利用linear和上面的assoc命令類似,將linear代替assoc即可。一般來說,linear可以支持協變量,assoc不支持協變量。assoc運行速度快於linear。

plink --file b --pheno phe.txt --allow-no-sex --linear --out re

運行日誌:

PLINK v1.90b6.17 64-bit (28 Apr 2020)          www.cog-genomics.org/plink/1.9/
(C) 2005-2020 Shaun Purcell, Christopher Chang   GNU General Public License v3
Logging to re.log.
Options in effect:
  --allow-no-sex
  --file b
  --linear
  --out re
  --pheno phe.txt

7820 MB RAM detected; reserving 3910 MB for main workspace.
.ped scan complete (for binary autoconversion).
Performing single-pass .bed write (10000 variants, 1500 people).
--file: re-temporary.bed + re-temporary.bim + re-temporary.fam written.
10000 variants loaded from .bim file.
1500 people (0 males, 0 females, 1500 ambiguous) loaded from .fam.
Ambiguous sex IDs written to re.nosex .
1500 phenotype values present after --pheno.
Using 1 thread (no multithreaded calculations invoked).
Before main variant filters, 1500 founders and 0 nonfounders present.
Calculating allele frequencies... done.
10000 variants and 1500 people pass filters and QC.
Phenotype data is quantitative.
Writing linear model association results to re.assoc.linear ... done.

結果文件:

re.assoc.linear

結果和assoc的結果完全一致!

5. 使用R語言的一般線性迴歸比較結果

這裏,需要將plink轉化爲012的形式,可以使用recodeA參數:

plink --file b --recodeA --out c

結果:
c.raw

編寫R程序:

library(data.table)
geno = fread("c.raw",header=T)
geno[1:10,1:20]
phe = fread("../phe.txt")
head(phe)
dd = data.frame(phe$V3,geno[,7:17])
head(dd)
mod_M7 = lm(phe.V3 ~ M7_1,data=dd)
summary(mod_M7)


可以看出R語言lm的結果中:
M7: beta爲1.3940, se爲1.3165,t值爲1.059,p值爲0.290,
M9:beta爲3.3265,se爲1.5042,t值爲2.211,p值爲0.0272

對比assoc的結果:
在這裏插入圖片描述

可以看出,兩者結果完全一致。

問題來了:
如果R中跑完10000個標記的迴歸分析,需要很長時間,而plink只需要幾秒。沒有比較久沒有傷害。不過R適合驗證性的分析,比如你在進行plink分析時,看到LM模型,說明書上寫的是迴歸分析,但是你用R語言編寫後,驗證了這是lm迴歸分析,這種喜悅是什麼?

這種喜悅就是,明知屁是臭的,偏偏還要聞一下。雖然很多人告訴你是臭的,但還是想要自己聞一下。所謂“紙上得來終覺淺,絕知此事要躬行”便是如此啊,聞過之後,可以告訴別人說:“真香!”

起碼我自己的收穫:
1,知道GWAS分析中,plink進行LM分析,SNP轉化爲012,0是major,2是minor,這順序是不能變的,你如果要手動進行迴歸分析,需要將SNP的分型進行轉化,而不是粗暴的將其替換爲0,1,2.
2,R在進行單個SNP的分析時,0,1,2是作爲數值進行的迴歸分析,而不是因子。

最後感言:

真香!

5. 相關係列

筆記 | GWAS 操作流程1:下載數據

筆記 | GWAS 操作流程2-1:缺失質控

筆記 | GWAS 操作流程2-2:性別質控

筆記 | GWAS 操作流程2-3:最小等位基因頻率

筆記 | GWAS 操作流程2-4:哈溫平衡檢驗

筆記 | GWAS 操作流程2-5:雜合率檢驗

筆記 | GWAS 操作流程2-6:去掉親緣關係近的個體

筆記 | GWAS 操作流程3:plink關聯分析

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章