diff --git a/setup.R b/setup.R
index 404839227a3f87c6f65c7b7436acf128f1536359..29f413eeb92e12cc69dc31f5c7e6e6ff53398721 100644
--- a/setup.R
+++ b/setup.R
@@ -1,27 +1,127 @@
-setwd("~/")
+setwd("./code/")
 ################################################################################
-#	step0: Prepare Priors and datasets
+#	step1: Install packages
 ################################################################################
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/priors/data/make_dataset.R
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/priors/go/get_go_features.R
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/priors/coexpression/make_coex_features_all.R
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/priors/go_vs_coex/go_vs_coex_analysis.R
+message('Installing required R packages...')
+if (!require("lme4")) {
+install.packages("lme4", dependencies = TRUE)
+library(lme4)
+}
+if (!require("lmerTest")) {
+install.packages("lmerTest", dependencies = TRUE)
+library(lmerTest)
+}
+if (!require("pbkrtest")) {
+install.packages("pbkrtest", dependencies = TRUE)
+library(pbkrtest)
+}
+if (!require("ggrepel")) {
+install.packages("ggrepel", dependencies = TRUE)
+library(ggrepel)
+}
+if (!require("RColorBrewer")) {
+install.packages("RColorBrewer", dependencies = TRUE)
+library(RColorBrewer)
+}
+if (!require("GO.db")) {
+install.packages("GO.db", dependencies = TRUE)
+library(GO.db)
+}
+if (!require("gplots")) {
+install.packages("gplots", dependencies = TRUE)
+library(gplots)
+}
+if (!require("ggExtra")) {
+install.packages("ggExtra", dependencies = TRUE)
+library(ggExtra)
+}
+if (!require("pheatmap")) {
+install.packages("pheatmap", dependencies = TRUE)
+library(pheatmap)
+}
+if (!require("splines")) {
+install.packages("splines", dependencies = TRUE)
+library(splines)
+}
+if (!require("ggpubr")) {
+install.packages("ggpubr", dependencies = TRUE)
+library(ggpubr)
+}
+if (!require("graphics")) {
+install.packages("graphics", dependencies = TRUE)
+library(graphics)
+}
+if (!require("stringr")) {
+install.packages("stringr", dependencies = TRUE)
+library(stringr)
+}
+if (!require("dplyr")) {
+install.packages("dplyr", dependencies = TRUE)
+library(dplyr)
+}
+if (!require("plyr")) {
+install.packages("plyr", dependencies = TRUE)
+library(plyr)
+}
+if (!require("backports")) {
+install.packages("backports", dependencies = TRUE)
+library(backports)
+}
+if (!require("devtools")) {
+install.packages("devtools", dependencies = TRUE)
+library(devtools)
+}
+if (!is.installed("qgg"))
+{
+options(devtools.install.args=" --no-multiargs")
+devtools::install_github("psoerensen/qgg")
+library(qgg)
+}
+if (!require("GO.db")) {
+install.packages("GO.db", dependencies = TRUE)
+library(GO.db)
+}
+if (!require("org.At.tair.db")) {
+install.packages("org.At.tair.db", dependencies = TRUE)
+library(org.At.tair.db)
+}
 ################################################################################
-#	step2: GBLUP without priors
+#	step2: Prepare Phenotype dataset
 ################################################################################
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/GBLUP/psii/gblup_model.R
-Rscript /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/GBLUP/pla/gblup_model.R
+message('Calculating BLUEs for PLA dataset...')
+Rscript BLUES.R	#PLA
 ################################################################################
-#	step3: Multi-BLUP
+#	step3: Prepare Genotype dataset
 ################################################################################
-cd /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/multiblup
+message('Calculating Minor Allele Count Matrix...')
+sh make_M_matrix.sh
+################################################################################
+#	step4: Prepare GRM Priors and datasets
+################################################################################
+message('Calculating GRM...')
+Rscript make_dataset.R FALSE	#the argument FALSE means, analysis will not be re-run again instead pre-calculated values will be used.
+message('Calculating GRM from GO groups...')
+Rscript make_go_features_all.R FALSE 
+message('Calculating GRM from COEX groups...')
+Rscript make_coex_features_all.R FALSE
+################################################################################
+#	step5: GBLUP without priors
+################################################################################
+Rscript GBLUP/psii/gblup_model.R
+Rscript GBLUP/pla/gblup_model.R
+Rscript GBLUP/psii/gblup_analysis.R
+Rscript GBLUP/pla/gblup_analysis.R
+################################################################################
+#	step6: Multi-BLUP
+################################################################################
+cd ./code/multiblup
 Rscript make_pheno_file.R
 sh run_multiblup.sh
 Rscript analysis.R
 ################################################################################
 #	step4: GBLUP with biology driven marker subsetting (using photosysnthesis genes)
 ################################################################################
-cd /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/using_PSGENES/
+cd ./code/using_PSGENES/
 Rscript make_GRM.R
 Rscript psii/gblup_using_psgenes_model.R
 Rscript pla/gblup_using_psgenes_model.R
@@ -29,7 +129,7 @@ Rscript gblup_vs_gfblup_analysis.R
 ################################################################################
 #	step5: GFBLUP with GO priors
 ################################################################################
-cd /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/using_GO
+cd ./code/using_GO
 Rscript psii/run_models.R
 Rscript pla/run_models.R
 Rsript psii/gblup_vs_gfblup_using_go_analysis1.R
@@ -37,7 +137,7 @@ Rscript pla/gblup_vs_gfblup_using_go_analysis1.R
 ################################################################################
 #	step6: GFBLUP with COEX priors
 ################################################################################
-cd /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/using_COEX
+cd ./code/using_COEX
 Rscript psii/run_models.R
 Rscript pla/run_models.R
 Rscript psii/gblup_vs_gfblup_using_coexpression_analysis1.R
@@ -46,5 +146,5 @@ Rscript pla/gblup_vs_gfblup_using_coexpression_analysis1.R
 ################################################################################
 #	step7: Aggregate Analysis
 ################################################################################
-cd /mnt/LTR_userdata/faroo002/arabidopsis/GP/using_conda/
+cd ./code/
 Rscript aggregate_analysis.R