GWAS:拒絕假陽性之case和control數量比例嚴重失衡的解決方案(SAIGE模型的應用)


一、為什么要校正case和control數量比例不平衡情況

試問作為生信屆人員,最怕的是什么,當然是統計結果不靠譜。統計結果不靠譜包括兩方面:一個是假陰性,一個是假陽性。假陰性可以理解為白天鵝被誤當成丑小鴨了,假陽性可以理解為一大堆青蛙,你不知道哪個才是你的真命天子。假陰性就罷了,最多讓你錯過發現真理的機會,但萬一假陽性呢,你拿着一個看似完美的結果吭哧吭哧做實驗驗證,一年半載的周期下來,什么結果都驗證不出來,豈不是坑了做實驗的人。因此,我們就要在源頭上,把這個不靠譜的統計結果杜絕出去。

上一篇文章什么!GWAS研究中case和control的比例是有講究的?就講到GWAS分析中,如果case和control數量比例失衡的話,會產出非常多的假陽性結果,而用SAIGE模型做GWAS分析可以校正這種數量比例不平衡的情況。下面具體講講怎么應用SAIGE模型。

 

二、怎么校正:SAIGE的下載和安裝

1、下載SAIGE

此操作在Linux上進行,系統要求R-3.5.1, gcc >= 5.5.0, cmake 3.8.1

wget https://github.com/weizhouUMICH/SAIGE/blob/master/SAIGE_0.35.8.1_R_x86_64-pc-linux-gnu.tar.gz

  

 

2、安裝SAIGE

R CMD INSTALL SAIGE_XX_R_x86_64-pc-linux-gnu.tar.gz

  

 

3、安裝SAIGE所依賴的其他R包:Rcpp, RcppArmadillo, RcppParallel, data.table, SPAtest, RcppEigen, Matrix, methods, optparse

以下兩個方法二選一:

如果是用conda的話,則用以下命令:

conda install -n r-env r-Rcpp #r-env是指conda下的R環境
conda install -n r-env r-RcppArmadillo
conda install -n r-env r-RcppParallel
conda install -n r-env r-SPAtest
conda install -n r-env r-RcppEigen
conda install -n r-env r-optparse

  

也可以進入R,用install.packages( )安裝:

install.packages("Rcpp")
install.packages("RcppArmadillo")
install.packages("RcppParallel")
install.packages("SPAtest")
install.packages("RcppEigen")
install.packages("optparse")

  

 

三、怎么校正:SAIGE的分析、解讀

1、第一步,計算NULL GLMM

1)計算NULL GLMM的命令:

Rscript step1_fitNULLGLMM.R \  
--plinkFile=./input/plinkforGRM_1000samples_10kMarkers \  
--phenoFile=./input/pheno_1000samples.txt \  
--phenoCol=y \   
--covarColList=x1,x2 \  
--sampleIDColinphenoFile=IID \  
--traitType=binary \  
--outputPrefix=./output/example \  
--nThreads=4 \  
--LOCO=TRUE

  

plinkFile為plink的輸入文件(bed, bim, fam格式)

phenoFile文件格式如下,第一列代表研究的表型,第二列及第N-1列代表協變量,最后一列IID為個體的ID號:

 

--phenoCol=y # 指定你要研究的表型列名,在本次例子中,指定y的表型分析。

--covarColList=x1,x2 #指定加入的協變量

--sampleIDColinphenoFile=IID #指定樣本的ID

--traitType=binary  #指定研究的表型的類型,binary指二分類,即case和control

--outputPrefix #生成文件的輸出路徑

 

2)輸出文件的結果解讀:

這個步驟會生成三個文件,分別為:example.rda、example.varianceRatio.txt、example_30markers.SAIGE.results.txt

第一個文件:example.rda,是一個model file

可以用R打開:

load("./output/example.rda")
names(modglmm)
modglmm$theta

  

第二個文件:example_30markers.SAIGE.results.txt,隨意選取位點的關聯分析結果

 

第三個文件:example.varianceRatio.txt

 

2、計算每個marker的SPA得分

1)計算每個marker的SNP得分命令:

Rscript step2_SPAtests.R \  
--dosageFile=./input/dosage_10markers.txt \  
--dosageFileNrowSkip=1 \  
--dosageFileNcolSkip=6 \  
--dosageFilecolnamesSkip=CHR,SNP,CM,POS,EFFECT_ALLELE,ALT_ALLELE \  
--minMAF=0.0001 \  
--sampleFile=./input/sampleIDindosage.txt \  
--GMMATmodelFile=./output/example.rda \  
--varianceRatioFile=./output/example.varianceRatio.txt \  
--SAIGEOutputFile=./output/example.plainDosage.SAIGE.txt \  
--numLinesOutput=2 \        
--IsOutputAFinCaseCtrl=TRUE

  

dosage_10markers.txt的文件格式如下,類似於plink的ped格式,前六列分別為:CHR, SNP, CM, POS, COUNTED, ALT, 后面為個體的ID號:

 

sampleIDindosage.txt文件為樣本ID名:

 

example.rda、example.varianceRatio.txt為第一步生成的兩個文件。

 

2)輸出文件的結果解讀:

生成example.plainDosage.SAIGE.txt文件,其內容如下:

 

其中,P值(紅框)即為我們校正case和control數量比例不平衡以后得到的GWAS結果,p.value.NA為不校正case和control數量不平衡的結果。

參數說明:

CHR: chromosome

POS: genome position 

SNPID: variant ID

Allele1: Ref allele

Allele2: Alt allele

AC_Allele2: allele count of Alt allele

AF_Allele2: allele frequency of Alt allele

N: sample size

BETA: effect size

SE: standard error of BETA

Tstat: score statistic

p.value: p value with SPA applied

p.value.NA: p value when SPA is not applied

Is.SPA.converge: whether SPA is converged or not

varT: estimated variance of score statistic with sample related incorporated

varTstar: variance of score statistic without sample related incorporated

AF.Cases: allele frequency of allele 2 in cases (only for binary traits and if --IsOutputAFinCaseCtrl=TRUE)

AF.Controls: allele frequency of allele 2 in controls (only for binary traits and if --IsOutputAFinCaseCtrl=TRUE)

 

 至此,校正GWAS分析中case和control數量比例嚴重失衡的工作就完成了。導師再也不用擔心你給出一堆假陽性結果了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM