From 7c6b55aa974c917aecbaffcfb1c82cab4a61226f Mon Sep 17 00:00:00 2001
From: Joseph Atemia <j.atemia@fz-juelich.de>
Date: Fri, 27 Sep 2024 11:22:25 +0200
Subject: [PATCH] add: gwas analysis pipeline

---
 workflows/gwas_gapit_pipeline/README.md       |   5 +
 .../gwas_gapit_pipeline/scripts/gwas_3455.R   | 145 ++++++++++
 .../gwas_gapit_pipeline/scripts/run_gapit.sh  | 109 ++++++++
 .../scripts/run_gapit_all_taxa.sh             | 109 ++++++++
 .../scripts/run_gapit_diplo.sh                |  63 +++++
 .../scripts/run_gapit_diplo_plus_per.sh       |  63 +++++
 .../scripts/run_gapit_lux.sh                  |  82 ++++++
 .../scripts/run_gapit_lux_plus_nica.sh        |  73 +++++
 .../scripts/run_gapit_mex.sh                  |  53 ++++
 .../scripts/run_gapit_mex_chalco.sh           |  53 ++++
 .../scripts/run_gapit_mex_mesa.sh             |  53 ++++
 .../scripts/run_gapit_parv.sh                 |  53 ++++
 .../scripts/run_gapit_parv_plus_hue.sh        |  98 +++++++
 .../scripts/run_gapit_perenn.sh               |  63 +++++
 .../gwas_gapit_pipeline/scripts/traits.txt    | 258 ++++++++++++++++++
 15 files changed, 1280 insertions(+)
 create mode 100644 workflows/gwas_gapit_pipeline/README.md
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/gwas_3455.R
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_all_taxa.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo_plus_per.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_lux.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_lux_plus_nica.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_mex.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_chalco.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_mesa.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_parv.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_parv_plus_hue.sh
 create mode 100755 workflows/gwas_gapit_pipeline/scripts/run_gapit_perenn.sh
 create mode 100644 workflows/gwas_gapit_pipeline/scripts/traits.txt

diff --git a/workflows/gwas_gapit_pipeline/README.md b/workflows/gwas_gapit_pipeline/README.md
new file mode 100644
index 0000000000..0dbd620572
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/README.md
@@ -0,0 +1,5 @@
+# Directory Description
+
+Data used for the GWAS analysis can be found in the following directory:
+
+- studies/processed_genotype_phenotype_teosinte
diff --git a/workflows/gwas_gapit_pipeline/scripts/gwas_3455.R b/workflows/gwas_gapit_pipeline/scripts/gwas_3455.R
new file mode 100755
index 0000000000..fb556cd60e
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/gwas_3455.R
@@ -0,0 +1,145 @@
+#!/usr/bin/env Rscript
+
+# library('optparse')
+# 
+# option_list = list(
+#   make_option(c("-x", "--taxon"), type="string", default=NULL, action="store_true",
+#               help="name of the taxon", metavar="string"),
+#   make_option(c("-t", "--trait"), type="string", default=NULL, action="store_true",
+#               help="name of the trait", metavar="string"),
+#   make_option(c("-p", "--phenotype"), type="string", default=NULL, action="store_true",
+#               help="phenotype file path", metavar="string"),
+#   make_option(c("-g", "--genotype"), type="string", default=NULL, action="store_true",
+#               help="genotype file path", metavar="string"),
+#   make_option(c("-b", "--bic_out_dir"), type="string", default=NULL, action="store_true",
+#               help="MLM results directory path. Optimal PCs are also calculated in this run and will be used for the MLMM, FarmCPU and BLINK model runs", metavar="string"),
+#   make_option(c("-o", "--main_out_dir"), type="string", default=NULL, action="store_true",
+#               help="output directory where the results from MLMM, FarmCPU amd Blink runs will be stored", metavar="string")
+# ); 
+# 
+# opt_parser = OptionParser(option_list=option_list);
+# opt = parse_args(opt_parser);
+# 
+# if (length(opt != 6) {
+#    message("\nPlease provide 6 command line arguments. See above 'Usage'.\n")
+#    stop()
+# }
+
+# if (is.null(opt$file)){
+#   print_help(opt_parser)
+#   stop("\nPlease provide 6 command line arguments. See above 'Usage'.\n", call.=FALSE)
+# }
+
+
+
+# Usage:
+message("\nUsage:\nRscript GWAS pipeline using GAPIT tool") #todo add usage example
+
+# Get arguments:
+script.args <- commandArgs(trailingOnly = TRUE)
+# Validate:
+if (length(script.args) != 6) {
+  message("\nPlease provide 6 command line arguments. See above 'Usage'.\n")
+  stop()
+}
+
+taxon <- script.args[[1]]
+trait <- script.args[[2]]
+phenotype <- script.args[[3]]
+genotype <- script.args[[4]]
+bic_out_dir <- script.args[[5]]
+main_out_dir <- script.args[[6]]
+
+
+# libraries / tools
+source("http://zzlab.net/GAPIT/GAPIT.library.R")
+source("http://zzlab.net/GAPIT/gapit_functions.txt")
+
+library(multtest)
+library(gplots)
+library(LDheatmap)
+library(compiler)
+library(parallel)
+
+# Speed up computation:
+options(mc.cores = (detectCores() - 1))
+
+
+# working form the script's directory. Set working directory to the directory
+setwd(bic_out_dir)
+
+dir.create(taxon, showWarnings = TRUE, recursive = FALSE, mode = "0777")
+
+setwd(taxon)
+# load phenotype data
+phenotype.dir <- paste('../', phenotype, sep='') # update relative path
+
+parv_pheno <- read.csv(phenotype.dir, header = T)
+
+# load genotype data
+genotype.dir <- paste('../', genotype, sep='') # update relative path
+
+myG_parv <- read.delim(genotype.dir, header = F)
+
+# create a dir with the name of trait being analyzed
+dir.create(trait, showWarnings = TRUE, recursive = FALSE, mode = "0777")
+
+# change to the directory created above for output files to be saved in it
+setwd(trait)
+
+# generate log file
+sink(paste(trait, "_log.txt", sep = ""))
+
+GAPIT(
+  G = myG_parv,
+  Y = parv_pheno[,c("taxa",trait)],
+  PCA.total = 6,
+  Model.selection = TRUE, #BIC model selection determine optimal number of PCs to include for each trait (differs from trait to trait depending on how correlated the given trait is with population structure).
+  model = "MLM", 
+  Major.allele.zero = T, #convert hapmap file to numeric file, set major marker as 0
+  SNP.MAF = 0.05 #Minor Allele Frequency to Filter SNPs in GWAS Reports
+)
+
+# Change working directory to the main results directory for the FarmCPU, MLMM, BLINK results
+
+main_out_dir_path <- paste('../../' ,main_out_dir, sep = "")# update relative path to the main output dir. 
+
+setwd(main_out_dir_path)
+
+# create a dir with the name of trait being analyzed
+dir.create(taxon, showWarnings = TRUE, recursive = FALSE, mode = "0777")
+setwd(taxon)
+
+dir.create(trait, showWarnings = TRUE, recursive = FALSE, mode = "0777")
+
+# change to the directory created above for output files to be saved in it
+setwd(trait)
+
+#  generate log file
+sink(paste(trait, "_log.txt", sep = ""))
+
+
+# read BIC file and get the best PC
+bic.path <- paste("../../../gapit_pipeline_bic_pc_selection/", taxon,'/', trait, "/GAPIT.MLM.", trait, ".BIC.Model.Selection.Results.csv" , sep = "")
+bic.file  <- read.csv(bic.path)
+
+names(bic.file) <- c("Number.of.PCs.Covariates","BIC.larger.is.better.Schwarz.1978","log.Likelihood.Function.Value")
+bic.file.sorted <- bic.file[order(abs(bic.file$BIC.larger.is.better.Schwarz.1978)),]
+bic.pc <- bic.file.sorted[1,1]
+file.name <- paste("PC.BIC.sorted.",trait,".csv",sep = "")
+bic.pc.file <- write.csv(x=bic.file.sorted, file = file.name, row.names = FALSE)
+print(bic.file.sorted)
+
+
+GAPIT(
+  G = myG_parv,
+  Y = parv_pheno[,c("taxa",trait)],
+  PCA.total = bic.pc,
+  Multiple_analysis = TRUE, #option for multiple Manhattan and QQ plots
+  Model.selection = TRUE, #BIC model selection determine optimal number of PCs to include for each trait (differs from trait to trait depending on how correlated the given trait is with population structure).
+  model = c("FarmCPU","MLMM","BLINK"), 
+  Major.allele.zero = T, #convert hapmap file to numeric file, set major marker as 0
+  SNP.MAF = 0.05 #Minor Allele Frequency to Filter SNPs in GWAS Reports
+)
+
+devtools::session_info()
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit.sh
new file mode 100755
index 0000000000..72cd581ed7
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit.sh
@@ -0,0 +1,109 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+ 
+# Zea mays ssp. Mexicana - mesa central
+while read trait;
+do
+    Rscript gwas_3455.R mexicana_mesa_central\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea mays ssp. Mexicana - Chalco -> 700 accessions
+while read trait;
+do
+    Rscript gwas_3455.R mexicana_chalco\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea mays ssp. Mexicana - all races including Nobogame and Durango -> 1381 accessions
+while read trait;
+do
+    Rscript gwas_3455.R mexicana\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea mays ssp. parviglumis -> 1732 accessions
+while read trait;
+do
+    Rscript gwas_3455.R parviglumis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea mays ssp. parviglumis and Zea may ssp. huehuetenangensis -> 1756 accessions
+while read trait;
+do
+    Rscript gwas_3455.R parviglumis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/parv_plus_hue_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/parv_plus_hue_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea diploperenis and Zea perennis -> 215 accessions
+while read trait;
+do
+    Rscript gwas_3455.R diplo_perennis_perennis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea nicaraguensis and Zea luxurians ->  105 accessions
+while read trait;
+do
+    Rscript gwas_3455.R luxurians_nicaraguensis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Zea luxurians -> 85 accessions
+while read trait;
+do
+    Rscript gwas_3455.R luxurians\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/lux_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/lux_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+# Genus Zea -> 3455 accessions
+while read trait;
+do
+    Rscript gwas_3455.R genus_zea_combined\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/all_taxa_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/all_taxa_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_all_taxa.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_all_taxa.sh
new file mode 100755
index 0000000000..4d66c3cdcb
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_all_taxa.sh
@@ -0,0 +1,109 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+ 
+# # Zea mays ssp. Mexicana - mesa central
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. Mexicana - Chalco -> 700 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. Mexicana - all races including Nobogame and Durango -> 1381 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. parviglumis -> 1732 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. parviglumis and Zea may ssp. huehuetenangensis -> 1756 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_plus_hue_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_plus_hue_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea diploperenis and Zea perennis -> 215 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R diplo_perennis_perennis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea nicaraguensis and Zea luxurians ->  105 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R luxurians_nicaraguensis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea luxurians -> 85 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R luxurians\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/lux_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/lux_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# Genus Zea -> 3455 accessions
+while read trait;
+do
+    Rscript gwas_3455.R genus_zea_combined\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/all_taxa_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/all_taxa_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits_all.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo.sh
new file mode 100755
index 0000000000..c666ffb2b1
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+while read trait;
+do
+    Rscript gwas_3455.R diplo_perennis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/diplo_per_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/diplo_per_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo_plus_per.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo_plus_per.sh
new file mode 100755
index 0000000000..40d89505a4
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_diplo_plus_per.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+while read trait;
+do
+    Rscript gwas_3455.R diplo_perennis_perennis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits_diplo_perenn.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux.sh
new file mode 100755
index 0000000000..fe8b2b4250
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux.sh
@@ -0,0 +1,82 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R diplo_perennis_perennis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R luxurians_nicaraguensis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# Luxurians 
+while read trait;
+do
+    Rscript gwas_3455.R luxurians\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/lux_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/lux_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux_plus_nica.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux_plus_nica.sh
new file mode 100755
index 0000000000..6efc45ba5a
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_lux_plus_nica.sh
@@ -0,0 +1,73 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R diplo_perennis_perennis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+while read trait;
+do
+    Rscript gwas_3455.R luxurians_nicaraguensis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/lux_plus_nica_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/lux_plus_nica_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex.sh
new file mode 100755
index 0000000000..8a87da1255
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+while read trait;
+do
+    Rscript gwas_3455.R mexicana\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_chalco.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_chalco.sh
new file mode 100755
index 0000000000..7edf15c8df
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_chalco.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+while read trait;
+do
+    Rscript gwas_3455.R mexicana_chalco\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_mesa.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_mesa.sh
new file mode 100755
index 0000000000..3d037396d2
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_mex_mesa.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+while read trait;
+do
+    Rscript gwas_3455.R mexicana_mesa_central\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv.sh
new file mode 100755
index 0000000000..ca580ffa54
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+while read trait;
+do
+    Rscript gwas_3455.R parviglumis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits_parv.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv_plus_hue.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv_plus_hue.sh
new file mode 100755
index 0000000000..5518e60979
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_parv_plus_hue.sh
@@ -0,0 +1,98 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+ 
+# # Zea mays ssp. Mexicana - mesa central
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. Mexicana - Chalco -> 700 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. Mexicana - all races including Nobogame and Durango -> 1381 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea mays ssp. parviglumis -> 1732 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# Zea mays ssp. parviglumis and Zea may ssp. huehuetenangensis -> 1756 accessions
+while read trait;
+do
+    Rscript gwas_3455.R parviglumis_huehuetenangensis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/parv_plus_hue_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/parv_plus_hue_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits_parv_hue.txt
+
+# # Zea diploperenis and Zea perennis -> 215 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R diplo_perennis_perennis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea nicaraguensis and Zea luxurians ->  105 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R luxurians_nicaraguensis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/diplo_plus_perennis_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/diplo_plus_perennis_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+# # Zea luxurians -> 85 accessions
+# while read trait;
+# do
+#     Rscript gwas_3455.R luxurians\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/lux_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/lux_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/run_gapit_perenn.sh b/workflows/gwas_gapit_pipeline/scripts/run_gapit_perenn.sh
new file mode 100755
index 0000000000..501a245429
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/run_gapit_perenn.sh
@@ -0,0 +1,63 @@
+#!/usr/bin/env bash
+
+# Rscript gwas_3455.R --taxon mexicana_mesa_central\
+#                     --trait bio_1\
+#                     --phenotype ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                     --genotype ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                     --bic_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                     --main_out_dir ../../../results/gwas_3455_accessions/gapit_pipeline/
+
+# cut -f 7- -d ',' ../../../data/phenotype/data_with_headers/mexicana.csv | head -n 1 | sed -s 's/,/\n/g' > trait.txt
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_mesa_central\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_mesa_central_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_mesa_central_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana_chalco\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_chalco_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_chalco_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R mexicana\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/mex_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/mex_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+
+# while read trait;
+# do
+#     Rscript gwas_3455.R parviglumis\
+#                         ${trait}\
+#                         ../../../data/gwas_data_3455_accessions/phenotype/parv_pheno_3455_accessions.csv\
+#                         ../../../data/gwas_data_3455_accessions/genotype/parv_geno_3455_accessions.hapmap.txt\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+#                         ../../../results/gwas_3455_accessions/gapit_pipeline/
+# done < traits.txt
+
+while read trait;
+do
+    Rscript gwas_3455.R perennis\
+                        ${trait}\
+                        ../../../data/gwas_data_3455_accessions/phenotype/per_pheno_3455_accessions.csv\
+                        ../../../data/gwas_data_3455_accessions/genotype/per_geno_3455_accessions.hapmap.txt\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline_bic_pc_selection/\
+                        ../../../results/gwas_3455_accessions/gapit_pipeline/
+done < traits.txt
\ No newline at end of file
diff --git a/workflows/gwas_gapit_pipeline/scripts/traits.txt b/workflows/gwas_gapit_pipeline/scripts/traits.txt
new file mode 100644
index 0000000000..d839d2e320
--- /dev/null
+++ b/workflows/gwas_gapit_pipeline/scripts/traits.txt
@@ -0,0 +1,258 @@
+altitude
+latitude
+longitude
+plant_height
+leaf_width
+spikelet_width
+plant_surface_area
+days_to_silk_emergence
+days_to_pollen_shed
+number_of_tillers
+total_number_of_leaves_per_plant
+tassel_length
+leaf_length
+central_spike_length
+spikelet_length
+Weight_of_100_kernels
+peduncle_length
+total_number_of_tassel
+number_of_lateral_branches
+heat_unit_to_silk
+heat_units_to_pollen_shed
+x1
+x2
+x3
+x4
+x5
+x6
+x7
+x8
+x9
+x10
+x11
+x12
+x13
+x14
+x15
+x16
+x17
+x18
+x19
+x20
+x21
+x22
+x23
+x24
+x25
+x26
+x27
+x28
+x29
+x30
+x31
+x32
+x33
+x34
+x35
+x36
+x37
+x38
+x39
+x40
+x41
+x42
+x43
+x44
+x45
+x46
+x47
+x48
+x49
+x50
+x51
+x52
+x53
+x54
+x55
+x56
+x57
+x58
+x59
+x60
+x61
+x62
+x63
+x64
+x65
+x66
+x67
+x68
+x69
+x70
+x71
+x72
+x73
+x74
+x75
+x76
+x77
+x78
+x79
+x80
+x81
+x82
+x83
+x84
+x85
+x86
+x87
+x88
+x89
+x90
+x91
+x92
+x93
+x94
+x95
+x96
+x97
+x98
+x99
+x100
+x101
+x102
+x103
+x104
+x105
+x106
+x107
+x108
+x109
+x110
+x111
+x112
+x113
+x114
+x115
+x116
+x117
+x118
+x119
+x120
+x121
+x122
+x123
+x124
+x125
+x126
+x127
+x128
+x129
+x130
+x131
+x132
+x133
+x134
+x135
+x136
+x137
+x138
+x139
+x140
+x141
+x142
+x143
+x144
+x145
+x146
+x147
+x148
+x149
+x150
+x151
+x152
+x153
+x154
+x155
+x156
+x157
+x158
+x159
+x160
+x161
+x162
+x163
+x164
+x165
+x166
+x167
+x168
+x169
+x170
+x171
+x172
+x173
+x174
+x175
+x176
+x177
+x178
+x179
+x180
+x181
+x182
+x183
+x184
+x185
+x186
+x187
+x188
+x189
+x190
+x191
+x192
+x193
+x194
+x195
+x196
+x197
+x198
+x199
+x200
+x201
+x202
+x203
+x204
+x205
+x206
+x207
+x208
+x209
+x210
+x211
+x212
+x213
+x214
+x215
+x216
+x217
+x218
+bio_1
+bio_2
+bio_3
+bio_4
+bio_5
+bio_6
+bio_7
+bio_8
+bio_9
+bio_10
+bio_11
+bio_12
+bio_13
+bio_14
+bio_15
+bio_16
+bio_17
+bio_18
+bio_19
-- 
GitLab