This notebook describes the selection of the top candidate genes using GWAS output for the data collected over 360 Arabidopsis accessions in HapMap population. The GWAS was run using ASReml script, as described in Awlia et al., 2021, using initially 250 K SNPs and subsequently 4 M SNPs. The raw GWAS output data can be found on Zenodo repository for mapping using 250 k SNP and 4 M SNP.
my_GWAS_files <- list.files(pattern="rda")
list.files()
## [1] "20221102_GWAS_notebook.nb.html"
## [2] "20221102_GWAS_notebook.Rmd"
## [3] "250kManhattan. R_125p0 .pdf"
## [4] "250kManhattan. R_75p0 .pdf"
## [5] "250kManhattan. reGF_0mM .pdf"
## [6] "250kManhattan. reGF_125mM .pdf"
## [7] "250kManhattan. reGF_75mM .pdf"
## [8] "250kManhattan. reSTART_0mM .pdf"
## [9] "250kManhattan. reSTART_125mM .pdf"
## [10] "250kManhattan. reSTART_75mM .pdf"
## [11] "250kManhattan. Root_d2_0mM .pdf"
## [12] "250kManhattan. Root_d2_125mM .pdf"
## [13] "250kManhattan. Root_d2_75mM .pdf"
## [14] "250kManhattan. Root_d4_0mM .pdf"
## [15] "250kManhattan. Root_d4_125mM .pdf"
## [16] "250kManhattan. Root_d4_75mM .pdf"
## [17] "250kManhattan. Root_d6_0mM .pdf"
## [18] "250kManhattan. Root_d6_125mM .pdf"
## [19] "250kManhattan. Root_d6_75mM .pdf"
## [20] "250kManhattan. Root_d8_0mM .pdf"
## [21] "250kManhattan. Root_d8_125mM .pdf"
## [22] "250kManhattan. Root_d8_75mM .pdf"
## [23] "250kManhattan. RpS_125p0 .pdf"
## [24] "250kManhattan. RpS_75p0 .pdf"
## [25] "250kManhattan. RpS_d2_0 .pdf"
## [26] "250kManhattan. RpS_d2_125 .pdf"
## [27] "250kManhattan. RpS_d2_75 .pdf"
## [28] "250kManhattan. RpS_d4_0 .pdf"
## [29] "250kManhattan. RpS_d4_125 .pdf"
## [30] "250kManhattan. RpS_d4_75 .pdf"
## [31] "250kManhattan. RpS_d6_0 .pdf"
## [32] "250kManhattan. RpS_d6_125 .pdf"
## [33] "250kManhattan. RpS_d6_75 .pdf"
## [34] "250kManhattan. RpS_d8_0 .pdf"
## [35] "250kManhattan. RpS_d8_125 .pdf"
## [36] "250kManhattan. RpS_d8_75 .pdf"
## [37] "250kManhattan. RpS_GF_0 .pdf"
## [38] "250kManhattan. RpS_GF_125 .pdf"
## [39] "250kManhattan. RpS_GF_75 .pdf"
## [40] "250kManhattan. S_125p0 .pdf"
## [41] "250kManhattan. S_75p0 .pdf"
## [42] "250kManhattan. seGF_0mM .pdf"
## [43] "250kManhattan. seGF_125mM .pdf"
## [44] "250kManhattan. seGF_75mM .pdf"
## [45] "250kManhattan. seSTART_0mM .pdf"
## [46] "250kManhattan. seSTART_125mM .pdf"
## [47] "250kManhattan. seSTART_75mM .pdf"
## [48] "250kManhattan. Shoot_d2_0mM .pdf"
## [49] "250kManhattan. Shoot_d2_125mM .pdf"
## [50] "250kManhattan. Shoot_d2_75mM .pdf"
## [51] "250kManhattan. Shoot_d4_0mM .pdf"
## [52] "250kManhattan. Shoot_d4_125mM .pdf"
## [53] "250kManhattan. Shoot_d4_75mM .pdf"
## [54] "250kManhattan. Shoot_d6_0mM .pdf"
## [55] "250kManhattan. Shoot_d6_125mM .pdf"
## [56] "250kManhattan. Shoot_d6_75mM .pdf"
## [57] "250kManhattan. Shoot_d8_0mM .pdf"
## [58] "250kManhattan. Shoot_d8_125mM .pdf"
## [59] "250kManhattan. Shoot_d8_75mM .pdf"
## [60] "250kManhattan. SpT_d2_0 .pdf"
## [61] "250kManhattan. SpT_d2_125 .pdf"
## [62] "250kManhattan. SpT_d2_75 .pdf"
## [63] "250kManhattan. SpT_d4_0 .pdf"
## [64] "250kManhattan. SpT_d4_125 .pdf"
## [65] "250kManhattan. SpT_d4_75 .pdf"
## [66] "250kManhattan. SpT_d6_0 .pdf"
## [67] "250kManhattan. SpT_d6_125 .pdf"
## [68] "250kManhattan. SpT_d6_75 .pdf"
## [69] "250kManhattan. SpT_d8_0 .pdf"
## [70] "250kManhattan. SpT_d8_125 .pdf"
## [71] "250kManhattan. SpT_d8_75 .pdf"
## [72] "250kManhattan. SpT_SHIIT_d2_125 .pdf"
## [73] "250kManhattan. SpT_SHIIT_d2_75 .pdf"
## [74] "250kManhattan. SpT_SHIIT_d4_125 .pdf"
## [75] "250kManhattan. SpT_SHIIT_d4_75 .pdf"
## [76] "250kManhattan. SpT_SHIIT_d6_125 .pdf"
## [77] "250kManhattan. SpT_SHIIT_d6_75 .pdf"
## [78] "250kManhattan. SpT_SHIIT_d8_125 .pdf"
## [79] "250kManhattan. SpT_SHIIT_d8_75 .pdf"
## [80] "250kManhattan. Tot_d2_0 .pdf"
## [81] "250kManhattan. Tot_d2_125 .pdf"
## [82] "250kManhattan. Tot_d2_75 .pdf"
## [83] "250kManhattan. Tot_d4_0 .pdf"
## [84] "250kManhattan. Tot_d4_125 .pdf"
## [85] "250kManhattan. Tot_d4_75 .pdf"
## [86] "250kManhattan. Tot_d6_0 .pdf"
## [87] "250kManhattan. Tot_d6_125 .pdf"
## [88] "250kManhattan. Tot_d6_75 .pdf"
## [89] "250kManhattan. Tot_d8_0 .pdf"
## [90] "250kManhattan. Tot_d8_125 .pdf"
## [91] "250kManhattan. Tot_d8_75 .pdf"
## [92] "250kQQplot. R_125p0 .pdf"
## [93] "250kQQplot. R_75p0 .pdf"
## [94] "250kQQplot. reGF_0mM .pdf"
## [95] "250kQQplot. reGF_125mM .pdf"
## [96] "250kQQplot. reGF_75mM .pdf"
## [97] "250kQQplot. reSTART_0mM .pdf"
## [98] "250kQQplot. reSTART_125mM .pdf"
## [99] "250kQQplot. reSTART_75mM .pdf"
## [100] "250kQQplot. Root_d2_0mM .pdf"
## [101] "250kQQplot. Root_d2_125mM .pdf"
## [102] "250kQQplot. Root_d2_75mM .pdf"
## [103] "250kQQplot. Root_d4_0mM .pdf"
## [104] "250kQQplot. Root_d4_125mM .pdf"
## [105] "250kQQplot. Root_d4_75mM .pdf"
## [106] "250kQQplot. Root_d6_0mM .pdf"
## [107] "250kQQplot. Root_d6_125mM .pdf"
## [108] "250kQQplot. Root_d6_75mM .pdf"
## [109] "250kQQplot. Root_d8_0mM .pdf"
## [110] "250kQQplot. Root_d8_125mM .pdf"
## [111] "250kQQplot. Root_d8_75mM .pdf"
## [112] "250kQQplot. RpS_125p0 .pdf"
## [113] "250kQQplot. RpS_75p0 .pdf"
## [114] "250kQQplot. RpS_d2_0 .pdf"
## [115] "250kQQplot. RpS_d2_125 .pdf"
## [116] "250kQQplot. RpS_d2_75 .pdf"
## [117] "250kQQplot. RpS_d4_0 .pdf"
## [118] "250kQQplot. RpS_d4_125 .pdf"
## [119] "250kQQplot. RpS_d4_75 .pdf"
## [120] "250kQQplot. RpS_d6_0 .pdf"
## [121] "250kQQplot. RpS_d6_125 .pdf"
## [122] "250kQQplot. RpS_d6_75 .pdf"
## [123] "250kQQplot. RpS_d8_0 .pdf"
## [124] "250kQQplot. RpS_d8_125 .pdf"
## [125] "250kQQplot. RpS_d8_75 .pdf"
## [126] "250kQQplot. RpS_GF_0 .pdf"
## [127] "250kQQplot. RpS_GF_125 .pdf"
## [128] "250kQQplot. RpS_GF_75 .pdf"
## [129] "250kQQplot. S_125p0 .pdf"
## [130] "250kQQplot. S_75p0 .pdf"
## [131] "250kQQplot. seGF_0mM .pdf"
## [132] "250kQQplot. seGF_125mM .pdf"
## [133] "250kQQplot. seGF_75mM .pdf"
## [134] "250kQQplot. seSTART_0mM .pdf"
## [135] "250kQQplot. seSTART_125mM .pdf"
## [136] "250kQQplot. seSTART_75mM .pdf"
## [137] "250kQQplot. Shoot_d2_0mM .pdf"
## [138] "250kQQplot. Shoot_d2_125mM .pdf"
## [139] "250kQQplot. Shoot_d2_75mM .pdf"
## [140] "250kQQplot. Shoot_d4_0mM .pdf"
## [141] "250kQQplot. Shoot_d4_125mM .pdf"
## [142] "250kQQplot. Shoot_d4_75mM .pdf"
## [143] "250kQQplot. Shoot_d6_0mM .pdf"
## [144] "250kQQplot. Shoot_d6_125mM .pdf"
## [145] "250kQQplot. Shoot_d6_75mM .pdf"
## [146] "250kQQplot. Shoot_d8_0mM .pdf"
## [147] "250kQQplot. Shoot_d8_125mM .pdf"
## [148] "250kQQplot. Shoot_d8_75mM .pdf"
## [149] "250kQQplot. SpT_d2_0 .pdf"
## [150] "250kQQplot. SpT_d2_125 .pdf"
## [151] "250kQQplot. SpT_d2_75 .pdf"
## [152] "250kQQplot. SpT_d4_0 .pdf"
## [153] "250kQQplot. SpT_d4_125 .pdf"
## [154] "250kQQplot. SpT_d4_75 .pdf"
## [155] "250kQQplot. SpT_d6_0 .pdf"
## [156] "250kQQplot. SpT_d6_125 .pdf"
## [157] "250kQQplot. SpT_d6_75 .pdf"
## [158] "250kQQplot. SpT_d8_0 .pdf"
## [159] "250kQQplot. SpT_d8_125 .pdf"
## [160] "250kQQplot. SpT_d8_75 .pdf"
## [161] "250kQQplot. SpT_SHIIT_d2_125 .pdf"
## [162] "250kQQplot. SpT_SHIIT_d2_75 .pdf"
## [163] "250kQQplot. SpT_SHIIT_d4_125 .pdf"
## [164] "250kQQplot. SpT_SHIIT_d4_75 .pdf"
## [165] "250kQQplot. SpT_SHIIT_d6_125 .pdf"
## [166] "250kQQplot. SpT_SHIIT_d6_75 .pdf"
## [167] "250kQQplot. SpT_SHIIT_d8_125 .pdf"
## [168] "250kQQplot. SpT_SHIIT_d8_75 .pdf"
## [169] "250kQQplot. Tot_d2_0 .pdf"
## [170] "250kQQplot. Tot_d2_125 .pdf"
## [171] "250kQQplot. Tot_d2_75 .pdf"
## [172] "250kQQplot. Tot_d4_0 .pdf"
## [173] "250kQQplot. Tot_d4_125 .pdf"
## [174] "250kQQplot. Tot_d4_75 .pdf"
## [175] "250kQQplot. Tot_d6_0 .pdf"
## [176] "250kQQplot. Tot_d6_125 .pdf"
## [177] "250kQQplot. Tot_d6_75 .pdf"
## [178] "250kQQplot. Tot_d8_0 .pdf"
## [179] "250kQQplot. Tot_d8_125 .pdf"
## [180] "250kQQplot. Tot_d8_75 .pdf"
## [181] "250kSNP.Bonf.csv"
## [182] "R_125p0_gwas.rda"
## [183] "R_75p0_gwas.rda"
## [184] "reGF_0mM_gwas.rda"
## [185] "reGF_125mM_gwas.rda"
## [186] "reGF_75mM_gwas.rda"
## [187] "reSTART_0mM_gwas.rda"
## [188] "reSTART_125mM_gwas.rda"
## [189] "reSTART_75mM_gwas.rda"
## [190] "Root_d2_0mM_gwas.rda"
## [191] "Root_d2_125mM_gwas.rda"
## [192] "Root_d2_75mM_gwas.rda"
## [193] "Root_d4_0mM_gwas.rda"
## [194] "Root_d4_125mM_gwas.rda"
## [195] "Root_d4_75mM_gwas.rda"
## [196] "Root_d6_0mM_gwas.rda"
## [197] "Root_d6_125mM_gwas.rda"
## [198] "Root_d6_75mM_gwas.rda"
## [199] "Root_d8_0mM_gwas.rda"
## [200] "Root_d8_125mM_gwas.rda"
## [201] "Root_d8_75mM_gwas.rda"
## [202] "RpS_125p0_gwas.rda"
## [203] "RpS_75p0_gwas.rda"
## [204] "RpS_d2_0_gwas.rda"
## [205] "RpS_d2_125_gwas.rda"
## [206] "RpS_d2_75_gwas.rda"
## [207] "RpS_d4_0_gwas.rda"
## [208] "RpS_d4_125_gwas.rda"
## [209] "RpS_d4_75_gwas.rda"
## [210] "RpS_d6_0_gwas.rda"
## [211] "RpS_d6_125_gwas.rda"
## [212] "RpS_d6_75_gwas.rda"
## [213] "RpS_d8_0_gwas.rda"
## [214] "RpS_d8_125_gwas.rda"
## [215] "RpS_d8_75_gwas.rda"
## [216] "RpS_GF_0_gwas.rda"
## [217] "RpS_GF_125_gwas.rda"
## [218] "RpS_GF_75_gwas.rda"
## [219] "S_125p0_gwas.rda"
## [220] "S_75p0_gwas.rda"
## [221] "seGF_0mM_gwas.rda"
## [222] "seGF_125mM_gwas.rda"
## [223] "seGF_75mM_gwas.rda"
## [224] "seSTART_0mM_gwas.rda"
## [225] "seSTART_125mM_gwas.rda"
## [226] "seSTART_75mM_gwas.rda"
## [227] "Shoot_d2_0mM_gwas.rda"
## [228] "Shoot_d2_125mM_gwas.rda"
## [229] "Shoot_d2_75mM_gwas.rda"
## [230] "Shoot_d4_0mM_gwas.rda"
## [231] "Shoot_d4_125mM_gwas.rda"
## [232] "Shoot_d4_75mM_gwas.rda"
## [233] "Shoot_d6_0mM_gwas.rda"
## [234] "Shoot_d6_125mM_gwas.rda"
## [235] "Shoot_d6_75mM_gwas.rda"
## [236] "Shoot_d8_0mM_gwas.rda"
## [237] "Shoot_d8_125mM_gwas.rda"
## [238] "Shoot_d8_75mM_gwas.rda"
## [239] "SpT_d2_0_gwas.rda"
## [240] "SpT_d2_125_gwas.rda"
## [241] "SpT_d2_75_gwas.rda"
## [242] "SpT_d4_0_gwas.rda"
## [243] "SpT_d4_125_gwas.rda"
## [244] "SpT_d4_75_gwas.rda"
## [245] "SpT_d6_0_gwas.rda"
## [246] "SpT_d6_125_gwas.rda"
## [247] "SpT_d6_75_gwas.rda"
## [248] "SpT_d8_0_gwas.rda"
## [249] "SpT_d8_125_gwas.rda"
## [250] "SpT_d8_75_gwas.rda"
## [251] "SpT_SHIIT_d2_125_gwas.rda"
## [252] "SpT_SHIIT_d2_75_gwas.rda"
## [253] "SpT_SHIIT_d4_125_gwas.rda"
## [254] "SpT_SHIIT_d4_75_gwas.rda"
## [255] "SpT_SHIIT_d6_125_gwas.rda"
## [256] "SpT_SHIIT_d6_75_gwas.rda"
## [257] "SpT_SHIIT_d8_125_gwas.rda"
## [258] "SpT_SHIIT_d8_75_gwas.rda"
## [259] "Tot_d2_0_gwas.rda"
## [260] "Tot_d2_125_gwas.rda"
## [261] "Tot_d2_75_gwas.rda"
## [262] "Tot_d4_0_gwas.rda"
## [263] "Tot_d4_125_gwas.rda"
## [264] "Tot_d4_75_gwas.rda"
## [265] "Tot_d6_0_gwas.rda"
## [266] "Tot_d6_125_gwas.rda"
## [267] "Tot_d6_75_gwas.rda"
## [268] "Tot_d8_0_gwas.rda"
## [269] "Tot_d8_125_gwas.rda"
## [270] "Tot_d8_75_gwas.rda"
load(my_GWAS_files[1])
head(results)
library(qqman)
##
## For example usage please run: vignette('qqman')
##
## Citation appreciated but not required:
## Turner, (2018). qqman: an R package for visualizing GWAS results using Q-Q and manhattan plots. Journal of Open Source Software, 3(25), 731, https://doi.org/10.21105/joss.00731.
##
library(qvalue)
library(cowplot)
results$Pval <-as.numeric(as.character(results$Pval))
results <- subset(results, results$MAC > 3)
a <- nrow(results)
b <- 0.05/a
head(results)
-log10(b)
## [1] 6.630361
title <- gsub("_gwas.rda", "", my_GWAS_files[1])
manhattan(results, chr="Chr",bp="Pos", p="Pval", snp="SNP", main=title, ylim=c(0,12), col = c("aquamarine3", "bisque3"), suggestiveline=FALSE, genomewideline=-log10(b))
pdf(paste("250kManhattan.", title, ".pdf"))
manhattan(results, chr="Chr",bp="Pos", p="Pval", snp="SNP", main=title, ylim=c(0,12), col = c("aquamarine3", "bisque3"), suggestiveline=FALSE, genomewideline=-log10(b))
dev.off()
## quartz_off_screen
## 2
qq(results$Pval, main = title, cex = 1.5, las = 1)
pdf(paste("250kQQplot.", title, ".pdf"))
qq(results$Pval, main = title, cex = 1.5, las = 1)
dev.off()
## quartz_off_screen
## 2
results$Pval <-as.numeric(as.character(results$Pval))
results$LOD <- -log10(results$Pval)
results$trait <- gsub("_gwas.rda", "", my_GWAS_files[1])
LOD5 <- subset(results, results$LOD > 5)
LOD5
length(my_GWAS_files)
## [1] 89
for(i in 2:89){
load(my_GWAS_files[i])
# Prepare table for graphing:
args <- commandArgs(trailingOnly=TRUE)
results$Pval <-as.numeric(as.character(results$Pval))
results <- subset(results, results$MAC > 3)
a <- nrow(results)
b <- 0.05/a
title <- gsub("_gwas.rda", "", my_GWAS_files[i])
pdf(paste("250kManhattan.", title, ".pdf"))
manhattan(results, chr="Chr",bp="Pos", p="Pval", snp="SNP", main=title, ylim=c(0,12), col = c("aquamarine3", "bisque3"), suggestiveline=FALSE, genomewideline=-log10(b))
dev.off()
pdf(paste("250kQQplot.", title, ".pdf"))
qq(results$Pval, main = title, cex = 1.5, las = 1)
dev.off()
results$Pval <-as.numeric(as.character(results$Pval))
results$LOD <- -log10(results$Pval)
results$trait <- gsub("_gwas.rda", "", my_GWAS_files[i])
temp <- subset(results, results$LOD > 5)
LOD5 <- rbind(LOD5, temp)
}
dim(LOD5)
## [1] 284 11
unique(LOD5$trait)
## [1] "R_125p0" "R_75p0" "reGF_0mM" "reGF_125mM"
## [5] "reGF_75mM" "reSTART_0mM" "reSTART_125mM" "reSTART_75mM"
## [9] "Root_d2_125mM" "Root_d2_75mM" "Root_d4_125mM" "Root_d4_75mM"
## [13] "Root_d6_0mM" "Root_d6_125mM" "Root_d8_0mM" "Root_d8_125mM"
## [17] "Root_d8_75mM" "RpS_125p0" "RpS_75p0" "RpS_d2_0"
## [21] "RpS_d2_75" "RpS_d4_0" "RpS_d4_125" "RpS_d4_75"
## [25] "RpS_d6_0" "RpS_d6_125" "RpS_d6_75" "RpS_d8_0"
## [29] "RpS_d8_125" "RpS_d8_75" "RpS_GF_0" "RpS_GF_125"
## [33] "RpS_GF_75" "S_125p0" "S_75p0" "seGF_125mM"
## [37] "seSTART_125mM" "seSTART_75mM" "Shoot_d2_125mM" "Shoot_d2_75mM"
## [41] "Shoot_d4_0mM" "Shoot_d4_125mM" "Shoot_d4_75mM" "Shoot_d6_0mM"
## [45] "Shoot_d6_125mM" "Shoot_d6_75mM" "Shoot_d8_0mM" "Shoot_d8_125mM"
## [49] "Shoot_d8_75mM" "SpT_d2_0" "SpT_d2_75" "SpT_d4_0"
## [53] "SpT_d4_125" "SpT_d4_75" "SpT_d6_0" "SpT_d6_125"
## [57] "SpT_d8_125" "SpT_d8_75" "SpT_SHIIT_d2_125" "SpT_SHIIT_d2_75"
## [61] "SpT_SHIIT_d4_125" "SpT_SHIIT_d4_75" "SpT_SHIIT_d6_125" "SpT_SHIIT_d6_75"
## [65] "SpT_SHIIT_d8_125" "SpT_SHIIT_d8_75" "Tot_d2_0" "Tot_d2_125"
## [69] "Tot_d2_75" "Tot_d4_0" "Tot_d4_125" "Tot_d4_75"
## [73] "Tot_d6_0" "Tot_d6_125" "Tot_d6_75" "Tot_d8_0"
## [77] "Tot_d8_125" "Tot_d8_75"
LOD5
write.csv(LOD5, "250kSNP.LOD5.csv", row.names=FALSE)
-log10(b)
## [1] 6.630361
LOD_Bonf <- subset(LOD5, LOD5$LOD > -log10(b))
dim(LOD_Bonf)
## [1] 6 11
LOD_Bonf
write.csv(LOD_Bonf, "250kSNP.Bonf.csv", row.names=FALSE)