GAPIT(genome association and prediction integrated tool)華盛頓大學等於 2012 年開發的軟件(軟件主頁:http://www.zzlab.net/GAPIT/)。GAPIT 是個.R
文件,一共 16317 行,可以在多平臺使用。截至 2020-03-27,被引了 853 次。引用的文章中不乏 Nature genetics、Nature Biotechnology 等。
GAPIT 的使用真的是超級簡單,一般只需要表型文件和基因型文件即可,一行代碼即可完成所有的分析,自動生成所有結果文件。
簡介
GAPIT 使用 EMMA(高效混合模型關聯)、CMLM(混合線性模型)和 P3D(population parameters previously determined)完成 GWAS 分析和基因組預測。GAPIT 能夠快速完成 1000,000SNP×10,000 樣本的分析。在最短的時間內用最少的代碼完成大數據集的分析。GAPIT 支持多種形式的基因型數據,能夠將基因型數據拆分成多個文件,減少計算壓力。GAPIT 導出的結果包括.csv
格式的表和.pdf
格式的圖。
安裝
在使用 GAPIT 之前需要安裝依賴包:
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")BiocManager::install("multtest")install.packages("gplots")install.packages("LDheatmap")install.packages("genetics")install.packages("ape")install.packages("EMMREML")install.packages("scatterplot3d") #The downloaded link at: http://cran.r-project.org/package=scatterplot3d
在官網上 GAPIT 是一個.txt
文件,直接 source 即可:
source("http://zzlab.net/GAPIT/gapit_functions.txt")
最後需要 source EMMA 的代碼:
source("http://zzlab.net/GAPIT/emma.txt")
爲了方便,可以直接將這兩個文件保存成了.R
格式的文件,在往後使用的時候就不用考慮網速等因素的影響了。
輸入文件
官方推薦所有的輸入文件都保存成.txt
格式的文件,以 Tab
進行分割。
表型文件
官方給出的示例如下:
輸入的表型文件的第一列是樣品名稱,往後的列是不同的表型數據,表型數據中有缺失值的需要用 NaN 或 NA 進行填充。讀入的表型文件是需要有表頭的。
讀入表型文件示例:
myY <- read.table("mdp_traits.txt", head = TRUE)
基因型文件
基因型文件對 GWAS 是必須的,如果是基因組預測,則不需要基因型文件。GAPIT 接受多種格式的基因型文件。
HapMap
SNP 信息常用 HapMap 格式的文件進行存儲。其中前 11 列是 SNP 的信息,往後的列是樣品的 SNP 信息。前 11 列中必須有的列是:rs,SNP 編號;chrom,SNP 所在染色體信息;pos,SNP 位置信息。這三列是必須有的,剩下的 8 列可以用 NA 進行填充。基因型缺失的數據需要用 NN 或 N 進行填充。需要注意的是這種基因型文件讀入 R 時, 是不能將第一行作爲表頭的。
數字格式
GAPIT 也可以使用數字型的基因型文件。行是樣品,列是 SNP 數據。純合子用 0
和 2
表示,雜合子用 1
表示。但是這個表裏面只包含了樣品的 SNP 數據,並沒有 SMP 的信息數據,所以需要另外一個文件來存儲 SNP 的詳細信息。
Kinship
Kinship 矩陣比較特殊的是第一列是樣品信息,但是沒有表頭。
協變量
可以是種羣結構的 Q 矩陣。比如可以是種羣數據的 PCA 值。同樣第一列是樣品名稱,後面就是對於的協變量的數據。
輸出文件
GAPIT 的輸出文件包括.csv
的表格和.pdf
的圖。
GAPIT 的詳細參數
下表就是 GAPIT 的參數及參數定義等信息。
示例
次處只演示最簡單的使用情況,其他使用情況請參照官方文檔或查看 GitHub:
# 下載好的GAPIT文件進行source#source("http://zzlab.net/GAPIT/gapit_functions.txt")source('code/gapit_functions.R')# 下載好的EMMA文件進行source#source("http://zzlab.net/GAPIT/emma.txt")source('code/emma.R')# A Basic Scenario#Step 1: 讀入表型文件和基因型文件myY <- read.table("data/mdp_traits.txt", head = TRUE)myG <- read.table("data/mdp_genotype_test.hmp.txt" , head = FALSE)#Step 2: 運行GAPITsetwd('results/A_Basic_Scenario/') # 設置結果保存的目錄myGAPIT <- GAPIT( Y = myY, G = myG, PCA.total = 3# 展示PCA的主成分數量)setwd('../../') # 返回到上上級目錄,方便其他分析
結果解讀
如果是進行 GWAS 分析,不同的性狀會生成的對應的 GWAS 結果文件。通常只關注幾個結果圖表:性狀分佈情況、PCA 結果、曼哈頓圖、Q-Q 圖等。
表型數據展示
PCA 圖
GAPIT 結果提供了二維和三維的 PCA 圖。
曼哈頓圖
GAPIT 提供的曼哈頓圖不是那麼好看,可以自己重新進行繪製。
res = read.csv('results/A_Basic_Scenario/GAPIT.MLM.EarHT.GWAS.Results.csv', header = T)colnames(res)[1:4] = c('SNP','CHR','BP','P')library(qqman)manhattan(res[,1:4],col = c("blue","orange"), main="Manhattan plot", annotatePval = .01, suggestiveline = -log10(2e-03), genomewideline = -log10(5e-04))
Q-Q 圖
示例數據、代碼等下載地址:https://github.com/lixiang117423/PLANTOMIX/tree/master/20200330%E3%80%90GWAS%E3%80%91GAPIT%E7%9A%84%E4%BD%BF%E7%94%A8