FINEMAP:使用GWAS摘要數據進行無功能注釋數據的精細定位(Fine-mapping)


介紹

全基因組關聯分析(GWAS)是非常流行的定位表型或疾病遺傳位點方法。不過很多情況下,GWAS 發現的最顯著的 SNP(top SNP 或者 index SNP)並不是真正造成影響的causal SNP(因果SNP),而是因為跟 causal SNP 之間存在的 LD 而變得顯著。因而,后續還需要對結果進行 fine-mapping(精細定位),把 causal SNP找到。

如果想了解更多 fine-mapping 的知識,推薦看看 Nature Reviews Genetics From genome-wide associations to candidate causal variants by statistical fine-mapping 這篇綜述。

方法

常用的 fine-mapping 方法有 PAINTOR、eCAVIAR等。這些方法利用了 Roadmap、ENCODE 或者 GTEx 的功能注釋數據,效果不錯。然而,這些方法一般需要其他組學注釋數據的輔助。如果研究對象是動物或者植物,而沒有可以利用的組學數據,那怎么辦?

無注釋數據時,可以選擇 CAVIAR、CAVIARBF、SNPtest等方法。不過,這些方法用了窮舉搜索,速度上堪憂。

這里推薦 FINEMAP,它可以用於:

  1. 識別因果SNP(causal SNP)
  2. 估計因果SNP的效應大小
  3. 估計因果SNP的遺傳貢獻

FINEMAP 的統計模型類似於 CAVIAR 和 CAVIARBF,但算法上有一個很大的區別。FINEMAP 使用shotgun stochastic search(SSS)算法,與 CAVIARBF 的窮舉搜索算法相比速度提高了非常多,避免計算量大的窮舉搜索。PAINTOR 也可在無注釋數據時使用,但相比而言 FINEMAP 的結果會更准確。

另外,FINEMAP 有一個方便的地方是,在設定好最大causal SNPs 數量 k 后,得到的結果包含了 1 到 k 個不同 causal SNPs 的后驗概率以及各個 causal SNPs 數量的概率,非常方便進行后續的分析。

下載

可在 http://www.christianbenner.com 根據自己的系統平台選擇編譯好的文件。以 Linux 為例:

wget http://www.christianbenner.com/finemap_v1.4_x86_64.tgz
tar -xzvf finemap_v1.4_x86_64.tgz

解壓后文件夾中的 finemap_v1.4_x86_64 可直接執行。

輸入文件

FINEMAP 的輸入需要 master 文件,z 文件和 ld 文件。如果有 5 個不同的顯著位點,那么需要 1 個 master 文件和 5 個不同的 z文件 和 ld 文件。

另外,如果有每個 SNP 的先驗概率,則可以提供對應的 k 文件。k 文件屬於可選項,不提供的話 FINEMAP 會假定每個 SNP 的先驗概率為 1。如果想要更准確,並且研究對象是人類,推薦使用 PolyFun 利用功能注釋數據計算出先驗概率,提供給 FINEMAP 讓 fine-mapping 結果更可靠。這篇教程介紹的是無功能注釋數據時的 fine-mapping,不會對 PolyFun 的使用進行介紹。

因為每個人的數據格式不太一樣,這里僅說明每個文件的格式要求,操作的時候需要根據實際情況自己寫腳本生成相應文件。

Z file

一個用空格分隔的文本文件,包含需要分析區域的 GWAS summary statistics 信息,每行一個SNP。文件必須包含列名,每一列分別是:

rsid:SNP 名字
chromosome:染色體名稱,性染色體的名字與 precomputed SNP correlations 文件保持一致即可
position:物理位置
allele1:effect allele,在 FINEMAP 中特指 minor allele
allele2:reference allele,在 FINEMAP 中特指 major allele
maf:minor allele (allele1)頻率
beta:GWAS結果的 effect sizes
se:the standard errors of effect sizes

例子:

rsid chromosome position allele1 allele2 maf beta se
rs1 10 1 T C 0.35 0.0050 0.0208
rs2 10 1 A G 0.04 0.0368 0.0761
rs3 10 1 G A 0.18 0.0228 0.0199

LD file

一個用空格分隔的文本文件,當中是SNPs的相關性矩陣(correlation matrix)。FINEMAP 官方文檔建議計算皮爾遜相關系數,不過文獻中未特別指出矩陣的計算方法。如果要方便點,也可以用 plink 的 --r square 計算出 r matrix,效果差不多。

例子:

1.00 0.95 0.98
0.95 1.00 0.96
0.97 0.96 1.00

注意,SNP 順序必須與 Z 文件中的順序保持一致

Master file

分號分隔的文本文件,不包含空格。這個文件記錄的是數據集和配置參考。第一行是列名,后續每一行是一個數據集和對應的參數。文件每一列分別是:

z:Z 文件的名稱(輸入)
ld:LD 文件的名稱(輸入)
bcor:BCOR 文件的名稱(輸入)
snp:結果輸出 SNP 文件的名稱(輸出)
config:結果輸出 CONFIG 文件的名稱(輸出)
cred:結果輸出 CRED 文件的名稱(輸出)
n_samples:GWAS 樣本數量
k:K 文件的名稱(可選輸入,可忽略)
log:LOG文件的名稱(可選輸出,可忽略)

ld 列和 bcor 列二選一,如果 ld 信息是用純文本表示的矩陣,填入 ld 文件即可。

舉例,分別計算兩個數據集的 master 文件如下所示:

z;ld;snp;config;cred;log;n_samples
dataset1.z;dataset1.ld;dataset1.snp;dataset1.config;dataset1.cred;dataset1.log;5363
dataset2.z;dataset2.ld;dataset2.snp;dataset2.config;dataset2.cred;dataset2.log;5363

運行

以程序中的示例數據為例:

運行 shotgun stochastic search 方法的 fine-mapping:

./finemap_v1.4_x86_64 --sss --in-files example/data --dataset 1

--infiles 是 master 文件。 --dataset 接的是 master 文件中的行號,行號從 1 開始,填入 1 代表使用第 1 行的 z 文件、ld 文件和配置參數進行分析。

除了 shotgun stochastic search,還可以使用 stepwise conditional search 方法,它的逐步條件處理過程類似於 GCTA COJO 中的實現:

./finemap_v1.4_x86_64 --cond --in-files example/data --dataset 2

如果想要了解指定 SNP 是否 causal,可以:

./finemap_v1.4_x86_64 --config --in-files example/data --dataset 1 --rsids rs30,rs11

結果解讀

輸出結果有 .snp.cred.config 三種不同后綴的文件。

.config 記錄了分析時選用的參數。

.snp 文件是 model-averaged posterior summaries,每一行是一個 SNP。在假定不同 causal SNPs 數量時會得到不一樣的結果,而這個文件包含了所有結果的摘要情況。

.cred 文件最后會帶有一個數字,這個數字代表的是 causal SNPs 數量 k。比如,.cred5 是設定 causal SNPs 為5個而得到的計算結果。這個文件中,包含了數量 k 的后驗概率和和推斷出的 causal SNP 后驗概率。

如果對 FINEMAP 的方法不是特別了解,可以只看 .cred 文件中的結果,從中選出 k 值和相應的 causal SNPs。

總結

FINAMAP 的速度非常快。經過實踐,在 6000 個樣本的情況下,截取 top SNPs 上下游各 3Mb 區域進行分析,設定最大 causal SNPs 數量為 10,每一個區域的計算時間大概 20 分鍾,內存占用非常小。在顯著位點很多的時候,FINEMAP 的優勢體現出來了。


免責聲明!

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



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