#' Print the R code which you should perform for RAINBOW GWAS
#' @description Print the R code which you should perform for RAINBOW (Reliable Association INference By Optimizing Weights with R).
#' @return The R code which you should perform for RAINBOW GWAS
#'
#'
RGWAS.menu <- function(){
test.methods <- c("'LR'", "'score'")
gene.sets <- c("gene.set", "NULL")
kernel.methods <- c("'linear'", "'gaussian'", "'exponential'")
test.effects <- c("'additive'", "'dominance'", "'additive+dominance'")
weighting.centers <- c("TRUE", "FALSE")
dominance.effs <- c("FALSE", "TRUE")
Q1 <- menu(c("Normal GWAS; testing each single SNP",
"Kernel-based GWAS; testing multiple SNPs simultaneously",
"Check epistatic effects"),
title = "Which GWAS do you want to perform?")
if(Q1 != 1){
Q2 <- menu(c("One step method; perform kerenel method for all SNPs",
"Two step method; perform kerenel method for SNPs which were detected by normal GWAS"),
title = "Which method do you want to perform?")
Q3 <- menu(c("LR; likelihood-ratio test, relatively slow, but accurate (default)",
"score; score test, much faster than LR, but sometimes overestimate -log10(p)"),
title = "Kernel-based GWAS have two methods to test SNPs. Which do you want to use?")
Q4 <- menu(c("Yes; when you input your gene information, see Arguments of 'gene.set' for details of its format",
"No; perform tests for each SNP-set containing a fixed number of SNPs"),
title = "Do you have some gene information? RGWAS can perform gene-set based GWAS.")
Q5 <- menu(c("Yes; RGWAS will only test for additive effects",
"No; you can choose which effects to test"),
title = "Do you use inbred lines?")
if(Q1 == 2){
Q6 <- menu(c("linear; fastest especially when the number of SNPs in SNP-set is small (default)",
"gaussian; slower than linear (especially with LR test), but it may catch non-linear effects in SNP-set",
"exponential; slower than linear (especially with LR test), but it may have high detection sensitivity"),
title = "Which kernel do you want to use?")
if(Q5 == 2){
Q7 <- menu(c("additive; test additive effects (default)",
"dominance; test dominance effects, however score test sometimes overestimates this effect",
"additive+dominance; test both additive and dominance effects simultaneouly"),
title = "Which genetic effects do you want to test?")
}else{
Q7 <- 1
}
Q8 <- menu(c("Yes; weighting is recommended when you perform kernel-based GWAS by sliding windows (default)",
"No; weighting is not recommended when you perform kernel based GWAS by separated bins"),
title = "RGWAS can weight the SNP at the center of the SNP-set. Do you want to weight?")
}
}
if(Q1 == 1){
func.name <- "RGWAS.normal"
output <- paste0(func.name, "(pheno, geno, ZETA = ZETA, covariate = NULL, covariate.factor = NULL, ",
"structure.matrix = NULL, n.PC = 0, min.MAF = 0.02, P3D = TRUE, n.core = 1, ",
"sig.level = 0.05, plot.qq = TRUE, plot.Manhattan = TRUE, plot.method = 1, ",
"plot.col1 = c('dark blue', 'cornflowerblue'), plot.col2 = 1, ",
"plot.type = 'p', plot.pch = 16, saveName = NULL, main.qq = NULL, ",
"main.man = NULL, plot.add.last = FALSE, return.EMM.res = FALSE, ",
"thres = TRUE, verbose = FALSE, count = TRUE, time = TRUE)")
}else{
if(Q1 == 2){
if(Q2 == 1){
func.name <- "RGWAS.multisnp"
output <- paste0(func.name, "(pheno, geno, ZETA = ZETA, covariate = NULL, covariate.factor = NULL, ",
"structure.matrix = NULL, n.PC = 0, min.MAF = 0.02, test.method = ", test.methods[Q3],
", n.core = 1, kernel.method = ", kernel.methods[Q6], ", kernel.h = 'tuned', ",
"haplotype = TRUE, num.hap = NULL, test.effect = ", test.effects[Q7],
", window.size.half = 5, window.slide = 1, chi0.mixture = 0.5, ", "gene.set = ",
gene.sets[Q4], ", weighting.center = ", weighting.centers[Q8], ", weighting.other = NULL, ",
"sig.level = 0.05, plot.qq = TRUE, plot.Manhattan = TRUE, plot.method = 1, ",
"plot.col1 = c('dark blue', 'cornflowerblue'), plot.col2 = 1, ",
"plot.type = 'p', plot.pch = 16, saveName = NULL, main.qq = NULL, ",
"main.man = NULL, plot.add.last = FALSE, return.EMM.res = FALSE, ",
"thres = TRUE, verbose = FALSE, count = TRUE, time = TRUE)")
}else{
func.name <- "RGWAS.twostep"
output <- paste0(func.name, "(pheno, geno, ZETA = ZETA, covariate = NULL, covariate.factor = NULL, ",
"structure.matrix = NULL, n.PC = 0, min.MAF = 0.02, n.core = 1, ",
"check.size = 40, check.gene.size = 4, kernel.percent = 0.1, GWAS.res.first = NULL, ",
"P3D = TRUE, test.method.1 = 'normal', test.method.2 = ", test.methods[Q3],
", kernel.method = ", kernel.methods[Q6], ", kernel.h = 'tuned', ",
"haplotype = TRUE, num.hap = NULL, test.effect.1 = ", test.effects[Q7],
", test.effect.2 = ", test.effects[Q7],
", window.size.half = 5, window.slide = 1, chi0.mixture = 0.5, ", "gene.set = ",
gene.sets[Q4], ", weighting.center = ", weighting.centers[Q8], ", weighting.other = NULL, ",
"sig.level = 0.05, plot.qq.1 = TRUE, plot.Manhattan.1 = TRUE, ",
"plot.qq.2 = TRUE, plot.Manhattan.2 = TRUE, plot.method = 1, ",
"plot.col1 = c('dark blue', 'cornflowerblue'), plot.col2 = 1, ",
"plot.col3 = c('red3', 'orange3'), plot.type = 'p', plot.pch = 16, saveName = NULL, ",
"main.qq.1 = NULL, main.man.1 = NULL, main.qq.2 = NULL, main.man.2 = NULL, ",
"plot.add.last = FALSE, return.EMM.res = FALSE, ",
"thres = TRUE, verbose = FALSE, count = TRUE, time = TRUE)")
}
}else{
if(Q2 == 1){
func.name <- "RGWAS.epistasis"
output <- paste0(func.name, "(pheno, geno, ZETA = ZETA, covariate = NULL, covariate.factor = NULL, ",
"structure.matrix = NULL, n.PC = 0, min.MAF = 0.02, n.core = 1, test.method = ",
test.methods[Q3], ", haplotype = TRUE, dominance.eff = ",
dominance.effs[Q5], ", num.hap = NULL, window.size.half = 5, window.slide = 1, ",
"chi0.mixture = 0.5, ", "gene.set = ", gene.sets[Q4],
", plot.epi.3d = TRUE, plot.epi.2d = TRUE, main.epi.3d = NULL, ",
"main.epi.2d = NULL, saveName = NULL, ",
"verbose = FALSE, count = TRUE, time = TRUE)")
}else{
func.name <- "RGWAS.twostep.epi"
output <- paste0(func.name, "(pheno, geno, ZETA = ZETA, covariate = NULL, covariate.factor = NULL, ",
"structure.matrix = NULL, n.PC = 0, min.MAF = 0.02, n.core = 1, ",
"check.size.epi = 4, epistasis.percent = 0.1, check.epi.max = 200, ",
"your.check = NULL, GWAS.res.first = NULL, ",
"P3D = TRUE, test.method = ", test.methods[Q3], ", haplotype = TRUE, ",
"dominance.eff = ", dominance.effs[Q5], ", num.hap = NULL, window.size.half = 5, ",
"window.slide = 1, chi0.mixture = 0.5, gene.set = ", gene.sets[Q4],
", sig.level = 0.05, plot.qq.1 = TRUE, plot.Manhattan.1 = TRUE, ",
"plot.epi.3d = TRUE, plot.epi.2d = TRUE, plot.method = 1, ",
"plot.col1 = c('dark blue', 'cornflowerblue'), plot.col2 = 1, ",
"plot.type = 'p', plot.pch = 16, saveName = NULL, ",
"main.qq.1 = NULL, main.man.1 = NULL, main.epi.3d = NULL, main.epi.2d = NULL, ",
"verbose = FALSE, count = TRUE, time = TRUE)")
}
}
}
return(output)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.