install packages:

library(plyr)
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:plyr':
## 
##     arrange, count, desc, failwith, id, mutate, rename, summarise,
##     summarize
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(tidyr)
library(readxl)
library("rstatix")
## 
## Attaching package: 'rstatix'
## The following objects are masked from 'package:plyr':
## 
##     desc, mutate
## The following object is masked from 'package:stats':
## 
##     filter
library("ggplot2")
library("dplyr")
library("ggpubr")
## 
## Attaching package: 'ggpubr'
## The following object is masked from 'package:plyr':
## 
##     mutate
library("dunn.test")
library("ARTool")
library(openxlsx)
library("rio")
library(corrplot)
## corrplot 0.95 loaded

locate file:

DFPMasterFeb2022_offical <- read_excel("DFPMasterFeb2022-offical.xlsx")
## New names:
## • `ID` -> `ID...1`
## • `IL-1b` -> `IL-1b...83`
## • `IL-1b` -> `IL-1b...103`
## • `ID` -> `ID...107`
## • `` -> `...111`

change file name:

DFP_Complete <- DFPMasterFeb2022_offical
colnames(DFP_Complete)
##   [1] "ID...1"                         "WAFR"                          
##   [3] "NATAM"                          "EURO"                          
##   [5] "AGE"                            "D.O.B."                        
##   [7] "SEX"                            "NEUROPATHY (Y OR N)"           
##   [9] "DIABETES      (Y OR N)"         "HYPERTENSION"                  
##  [11] "HEIGHT"                         "WEIGHT"                        
##  [13] "BMI"                            "A1C"                           
##  [15] "GLUCOSE, SERUM"                 "MICROALBUMIN"                  
##  [17] "CREATININE"                     "BUN/ CREATININE"               
##  [19] "C- REACTIVE PROTEIN"            "CHOLESTEROL, TOTAL"            
##  [21] "CHOLESTEROL, HDL"               "CHOLESTEROL, LDL"              
##  [23] "TRIGLYCERIDES"                  "CHOLESTEROL, VLDL"             
##  [25] "SODIUM"                         "POTASSIUM"                     
##  [27] "CALCIUM"                        "IGFBP2 rs11711877"             
##  [29] "IGFBP2rs7633675"                "IGFBP2 rs6769511"              
##  [31] "IGFBP2 rs6765808"               "IRAK4 rs4251545"               
##  [33] "IRAK4 rs1470579"                "a1c.cat"                       
##  [35] "trigly.cat"                     "hdl.cat"                       
##  [37] "glucose.cat"                    "mir17.avg.16.5p"               
##  [39] "mir17.avg.221.5p"               "mir17.ct"                      
##  [41] "mir142.avg.16.5p"               "mir142.avg.221.3p"             
##  [43] "mr142.ct"                       "Batch"                         
##  [45] "Fractalkine"                    "IFN-a2"                        
##  [47] "IL-3"                           "IL-4"                          
##  [49] "IL-7"                           "TNFa"                          
##  [51] "Total PCSK9"                    "Active PCSK9"                  
##  [53] "Ratio (A/T) PCSK9"              "Lp(a)"                         
##  [55] "A1AT (mg/dL) - ELISA"           "A1AT (mg/dL) - R&D ELISA"      
##  [57] "A1AT (mg/dL) - Turbidity Assay" "Met PCSK9 Gene"                
##  [59] "PCSK9 R46L (rs11591147)"        "PCSK9 R127S (rs28942111)"      
##  [61] "PCSK9 Y142* (rs67608943)"       "PCSK9 C679*  (rs28362286)"     
##  [63] "PCSK9 A443P (rs28362263)"       "PCSK9 G670E (rs505151)"        
##  [65] "PCSK9 V474I (rs562556)"         "ALT"                           
##  [67] "AST"                            "Ratio AST/ALT"                 
##  [69] "TGFa"                           "G-CSF"                         
##  [71] "GM-GSF"                         "INF-g"                         
##  [73] "IL-10"                          "MCP-3"                         
##  [75] "IL-12p40"                       "IL-12p70"                      
##  [77] "IL-13"                          "IL-15"                         
##  [79] "IL-17a"                         "IL-1ra"                        
##  [81] "IL-1a"                          "IL-9"                          
##  [83] "IL-1b...83"                     "IL-2"                          
##  [85] "IL-5"                           "IL-6"                          
##  [87] "IL-8"                           "IP-10"                         
##  [89] "MCP-1"                          "MIP-1a"                        
##  [91] "MIP-1b"                         "TNFb"                          
##  [93] "ACTH"                           "DKK1"                          
##  [95] "IL-6-Bone"                      "Insulin"                       
##  [97] "Leptin"                         "TNF-a-Bone"                    
##  [99] "OPG"                            "OC"                            
## [101] "OPN"                            "SOST"                          
## [103] "IL-1b...103"                    "PTH"                           
## [105] "FGF23"                          "sIL7R"                         
## [107] "ID...107"                       "WtBS"                          
## [109] "WtPI"                           "DeltaWeight"                   
## [111] "...111"                         "GDF15_rs1058587"               
## [113] "GPER_rs11544331"                "PCSK9_rs11591147"              
## [115] "HNFA1_rs1169288"                "A1AT_rs1303"                   
## [117] "A1AT_rs17580"                   "APOH_rs1801690"                
## [119] "APOH_rs1801692"                 "IL4R_rs1805011"                
## [121] "IL4R_rs1805016"                 "HNF41_rs1805098"               
## [123] "ABCA1_rs2230806"                "HNF13_rs2464196"               
## [125] "PCSK9_rs28362263"               "PCSK9_rs28362286"              
## [127] "A1AT_rs28929474"                "PCSK9_rs28942111"              
## [129] "HNF43_rs2943549"                "APOH_rs35449692"               
## [131] "IL3_rs40401"                    "IRAK4_rs4251545"               
## [133] "APOH_rs4581"                    "PCSK9_rs505151"                
## [135] "PCSK9_rs562556"                 "A1AT_rs6647"                   
## [137] "PCSK9_rs67608943"               "IL7R_rs6897932"                
## [139] "A1AT_rs709932"                  "Dkk1out"

fix names with spaces:

names(DFP_Complete)[15]<-"GluSer"
names(DFP_Complete)[18]<-"BunCre"
names(DFP_Complete)[19]<-"CRP"
names(DFP_Complete)[20]<-"Total_Chol"
names(DFP_Complete)[21]<-"HDL_Chol"
names(DFP_Complete)[22]<-"LDL_Chol"
names(DFP_Complete)[24]<-"VLDL_Chol"
names(DFP_Complete)[46]<-"IFNa2"
names(DFP_Complete)[47]<-"IL3"
names(DFP_Complete)[48]<-"IL4"
names(DFP_Complete)[49]<-"IL7"
names(DFP_Complete)[51]<-"Total_PCSK9"
names(DFP_Complete)[52]<-"Active_PCSK9"
names(DFP_Complete)[53]<-"Ratio_PCSK9"
names(DFP_Complete)[54]<-"LPA"
names(DFP_Complete)[55]<-"A1AT_ELISA"
names(DFP_Complete)[56]<-"A1AT_RnD"
names(DFP_Complete)[57]<-"A1AT_Turb"
names(DFP_Complete)[68]<-"Ratio_AST_ALT"
names(DFP_Complete)[70]<-"G_CSF"
names(DFP_Complete)[71]<-"GM_CSF"
names(DFP_Complete)[72]<-"IFNg"
names(DFP_Complete)[73]<-"IL10"
names(DFP_Complete)[74]<-"MCP3"
names(DFP_Complete)[75]<-"IL12p40"
names(DFP_Complete)[76]<-"IL12p70"
names(DFP_Complete)[77]<-"IL13"
names(DFP_Complete)[78]<-"IL15"
names(DFP_Complete)[79]<-"IL17a"
names(DFP_Complete)[80]<-"IL1ra"
names(DFP_Complete)[81]<-"IL1a"
names(DFP_Complete)[82]<-"IL9"
names(DFP_Complete)[83]<-"IL1b80"
names(DFP_Complete)[84]<-"IL2"
names(DFP_Complete)[85]<-"IL5"
names(DFP_Complete)[86]<-"IL6"
names(DFP_Complete)[87]<-"IL8"
names(DFP_Complete)[88]<-"IP10"
names(DFP_Complete)[89]<-"MCP1"
names(DFP_Complete)[90]<-"MIP1a"
names(DFP_Complete)[91]<-"MIP1b"
names(DFP_Complete)[95]<-"IL6_Bone"
names(DFP_Complete)[98]<-"TNFa_Bone"
names(DFP_Complete)[103]<-"IL1b_100"

Descriptive Statistics for population splitting ancestry data into quartiles:

#West African Ancestry
WAFRquart <- quantile(DFP_Complete$WAFR, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
WAFRquart
##     25%     50%     75% 
## 0.68665 0.76380 0.83795
#European Ancestry
EUROquart <- quantile(DFP_Complete$EURO, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
EUROquart
##     25%     50%     75% 
## 0.09675 0.19180 0.29505
#Native American Ancestry
NATAMquart <- quantile(DFP_Complete$NATAM, probs = c(0.25, 0.5, 0.75), na.rm = TRUE)
NATAMquart
##     25%     50%     75% 
## 0.02150 0.03785 0.06955

subset data by ancestry: West African Ancestry:

#subset
WAFRlow <- subset(DFP_Complete, WAFR <= 0.68665)
WAFRmid <- subset(DFP_Complete, WAFR >= 0.68666 & WAFR <= 0.83794)
WAFRhigh <- subset(DFP_Complete, WAFR >= 0.83795)

European Ancestry:

#subset
EUROlow <- subset(DFP_Complete, EURO <= 0.09675)
EUROmid <- subset(DFP_Complete, EURO >= 0.09676 & EURO <= 0.29504)
EUROhigh <- subset(DFP_Complete, EURO >= 0.29505)

Native American Ancestry:

#subset
NATAMlow <- subset(DFP_Complete, NATAM <= 0.02150)
NATAMmid <- subset(DFP_Complete, NATAM >= 0.02151 & NATAM <= 0.06954)
NATAMhigh <- subset(DFP_Complete, NATAM >= 0.06955)

histogram of WAFR:

hist(DFP_Complete$WAFR,
     breaks = 200,
     main = "Histogram of % WAFR",
     col = "lightblue",
     border = "black")

histogram of EURO:

hist(DFP_Complete$EURO,
     breaks = 100,
     main = "Histogram of % EURO",
     col = "coral",
     border = "black")

histogram of NATAM:

hist(DFP_Complete$NATAM,
     breaks = 100,
     main = "Histogram of % NATAM",
     col = "darkgoldenrod1",
     border = "black")

creating data set that removes rows/individuals with NA (no values for ancestry data):

WAFRlab<- subset(DFP_Complete, !is.na(DFP_Complete$WAFR))
EUROlab<- subset(DFP_Complete, !is.na(DFP_Complete$EURO))
NATAMlab<- subset(DFP_Complete, !is.na(DFP_Complete$NATAM))

creating a new column within the current data set:

WAFRquart
##     25%     50%     75% 
## 0.68665 0.76380 0.83795
WAFRlab$WAFRPercentage[WAFRlab$WAFR < 0.68665] <- 0
## Warning: Unknown or uninitialised column: `WAFRPercentage`.
WAFRlab$WAFRPercentage[(WAFRlab$WAFR >= 0.68666) & (WAFRlab$WAFR <= 0.83794)] <- 1
WAFRlab$WAFRPercentage[WAFRlab$WAFR > 0.83795] <- 2
WAFRlab$WAFRPercentage
##   [1] 2 2 1 1 1 0 1 1 0 1 1 2 1 1 0 0 1 1 0 0 2 2 1 1 1 0 2 1 0 0 1 0 1 1 0 0 1
##  [38] 2 0 1 1 1 1 2 0 0 2 1 0 0 0 2 2 0 1 1 2 2 1 1 2 2 2 0 1 1 0 0 1 2 2 1 2 2
##  [75] 0 0 0 0 1 1 1 1 1 0 2 0 1 1 1 1 1 1 2 2 0 2 1 1 0 1 2 1 1 2 1 2 1 1 1 1 1
## [112] 0 2 1 1 0 1 1 1 1 2 1 1 0 1 0 1 0 1 1 0 1 0 0 2 1 1 1 1 1 1 1 0 0 2 1 1 0
## [149] 2 2 2 2 1 1 2 2 2 2 1 2 0 0 1 2 0 1 1 1 1 1 1 2 2 1 1 0 1 0 0 2 1 1 1 1 2
## [186] 0 2 2 1 1 2 1 1 0 0 0 2 1 1 2 0 2 1 1 1 1 2
EUROquart
##     25%     50%     75% 
## 0.09675 0.19180 0.29505
EUROlab$EUROPercentage[EUROlab$EURO < 0.09675] <- 0
## Warning: Unknown or uninitialised column: `EUROPercentage`.
EUROlab$EUROPercentage[(EUROlab$EURO >= 0.09676) & (EUROlab$EURO <= 0.29504)] <- 1
EUROlab$EUROPercentage[EUROlab$EURO > 0.29505] <- 2
EUROlab$EUROPercentage
##   [1] 0 0 1 1 1 2 1 1 1 1 1 0 1 0 2 2 1 0 2 2 0 0 2 1 1 2 1 1 2 2 1 1 1 0 2 2 1
##  [38] 0 2 1 1 1 1 0 2 2 0 1 2 2 1 0 0 2 1 1 0 0 1 1 0 0 0 2 1 0 2 2 1 1 0 1 1 0
##  [75] 2 2 2 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 0 1 2 0 0 0 1 1 0 1 0 1 1 0 1 1 1 1 1
## [112] 2 0 1 1 2 1 0 1 1 0 1 1 2 1 1 1 2 1 1 2 1 2 2 0 1 1 1 1 1 1 0 2 1 0 1 1 2
## [149] 0 0 1 0 1 0 0 0 1 1 1 0 2 2 1 0 2 1 1 1 1 1 1 0 0 1 1 2 1 2 1 1 1 1 1 1 0
## [186] 2 0 1 1 1 0 1 1 2 2 2 0 1 0 1 2 0 0 0 1 1 0 1 1 2 2 0 1 0 1 0 2 2 1 2 1 0
## [223] 1 2 0 2 2 2 2 0 2 2 2 2 2
NATAMquart
##     25%     50%     75% 
## 0.02150 0.03785 0.06955
NATAMlab$NATAMPercentage[NATAMlab$NATAM < 0.02150] <- 0
## Warning: Unknown or uninitialised column: `NATAMPercentage`.
NATAMlab$NATAMPercentage[(NATAMlab$NATAM >= 0.02151) & (NATAMlab$NATAM <= 0.06954)] <- 1
NATAMlab$NATAMPercentage[NATAMlab$NATAM > 0.06955] <- 2
NATAMlab$NATAMPercentage
##   [1]  1  2  1  2  2  1  1  1  1  1  1  1  1  2  1  2  2  2  1  1  1  1  0  0  2
##  [26]  1  0  2  0  1  0  2  1  2  1  1  0  1  0  1  1  1  1  1  1  1  1  1  1  1
##  [51]  2  2  0  1  1  1  1  2  1  2  2  2  1  0  1  2  1  0  0  0  1  1  1  2  0
##  [76]  1  1  2  0  0  1  1  0  0  1  2  1  1  0  1  1  1  1  1  0  2  2  2  2  1
## [101]  2  0  2  1  1  1  1  0  0  1  1  2  2  0  1  1  1  2  1  0  0  1  2  2  2
## [126]  2  0  0  1  1  0  0  0  0  1  0  0  0  1  1  1  2  1  2  1  1  2  0  1  2
## [151]  1  2  0  2  2  2  0  1  0  2  0  2  2  1  1  0  1  1  1  1  0  1  1  1  1
## [176]  1  2  1  1  0  0  1  2  0  2  1  0  1  0  2  1  0 NA  1  1  0  1 NA  2  1
## [201]  0  1  2  2  0  1  0

creating a new column that is a replicate of the old column (labeling our original conditions with text):

WAFRlab$WAFRPerLab <- WAFRlab$WAFRPercentage
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 0] <- "Low"
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 1] <- "Mid"
WAFRlab$WAFRPerLab[WAFRlab$WAFRPerLab == 2] <- "High"
EUROlab$EUROPerLab <- EUROlab$EUROPercentage
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 0] <- "Low"
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 1] <- "Mid"
EUROlab$EUROPerLab[EUROlab$EUROPerLab == 2] <- "High"
NATAMlab$NATAMPerLab <- NATAMlab$NATAMPercentage
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 0] <- "Low"
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 1] <- "Mid"
NATAMlab$NATAMPerLab[NATAMlab$NATAMPerLab == 2] <- "High"

Immune regulators:

Fractalkine:

Fractalkine WAFR ancestry plot with mean bar:***

Fractalkine.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Fractalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 42 rows containing missing values or values outside the scale range
## (`geom_point()`).

Fractalkine WAFR ancestry plot with box plot (Color):***

Fractalkine.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Fractalkine, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 42 rows containing missing values or values outside the scale range
## (`geom_point()`).

Fractalkine EURO ancestry plot with mean bar:

Fractalkine.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Fractalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 58 rows containing missing values or values outside the scale range
## (`geom_point()`).

Fractalkine EURO ancestry plot with box plot (Color):

Fractalkine.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Fractalkine, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 58 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 58 rows containing missing values or values outside the scale range
## (`geom_point()`).

Fractalkine NATAM ancestry plot with mean bar:***

Fractalkine.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Fractalkine)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 44 rows containing missing values or values outside the scale range
## (`geom_point()`).

Fractalkine NATAM ancestry plot with box plot (Color):***

Fractalkine.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Fractalkine, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Fractalkine \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Fractalkine Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Fractalkine.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Fractalkine.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Fractalkine.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 42 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 44 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 44 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2:

IFNa2 WAFR ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 WAFR ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNa2, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 EURO ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 EURO ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNa2, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 67 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 67 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 NATAM ancestry plot with mean bar:

IFNa2.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNa2)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNa2 NATAM ancestry plot with box plot (Color):

IFNa2.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNa2, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNa2 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNa2 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNa2.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNa2.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNa2.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3:

IL3 WAFR ancestry plot with mean bar:

IL3.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 80 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 WAFR ancestry plot with box plot (Color):

IL3.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL3, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 80 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 EURO ancestry plot with mean bar:

IL3.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 98 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 EURO ancestry plot with box plot (Color):

IL3.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL3, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 98 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 NATAM ancestry plot with mean bar:***

IL3.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL3)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 80 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL3 NATAM ancestry plot with box plot (Color):***

IL3.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL3, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL3 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL3 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL3.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL3.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL3.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 78 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 80 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 80 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4:

IL4 WAFR ancestry plot with mean bar:

IL4.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 72 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 WAFR ancestry plot with box plot (Color):

IL4.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL4, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 72 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 EURO ancestry plot with mean bar:

IL4.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 90 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 EURO ancestry plot with box plot (Color):***

IL4.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL4, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 90 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 90 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 NATAM ancestry plot with mean bar:***

IL4.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL4)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 72 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL4 NATAM ancestry plot with box plot (Color):

IL4.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL4, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL4 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL4 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL4.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL4.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL4.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 70 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 72 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 72 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7:

IL7 WAFR ancestry plot with mean bar:

IL7.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 60 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 WAFR ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL7, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 60 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 60 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 EURO ancestry plot with mean bar:

IL7.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 79 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 EURO ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL7, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 79 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 79 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 NATAM ancestry plot with mean bar:

IL7.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL7)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 61 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL7 NATAM ancestry plot with box plot (Color):

IL7.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL7, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL7 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL7 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL7.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL7.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL7.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 59 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 61 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 61 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R:

sIL7R WAFR ancestry plot with mean bar:

sIL7R.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=sIL7R)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 143 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R WAFR ancestry plot with box plot (Color):

sIL7R.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=sIL7R, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 143 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 143 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R EURO ancestry plot with mean bar:

sIL7R.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=sIL7R)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 164 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R EURO ancestry plot with box plot (Color):

sIL7R.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=sIL7R, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 164 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 164 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R NATAM ancestry plot with mean bar:

sIL7R.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=sIL7R)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 144 rows containing missing values or values outside the scale range
## (`geom_point()`).

sIL7R NATAM ancestry plot with box plot (Color):

sIL7R.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=sIL7R, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("sIL7R \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("sIL7R Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
sIL7R.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
sIL7R.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = sIL7R.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 142 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 144 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 144 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa:

TNFa WAFR ancestry plot with mean bar:***

TNFa.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 37 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa WAFR ancestry plot with box plot (Color):***

TNFa.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TNFa, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 37 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa EURO ancestry plot with mean bar:

TNFa.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa EURO ancestry plot with box plot (Color):

TNFa.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TNFa, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa NATAM ancestry plot with mean bar:

TNFa.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TNFa)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 39 rows containing missing values or values outside the scale range
## (`geom_point()`).

TNFa NATAM ancestry plot with box plot (Color):

TNFa.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TNFa, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TNFa \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TNFa Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TNFa.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TNFa.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TNFa.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 37 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 39 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF:

G_CSF WAFR ancestry plot with mean bar:

G_CSF.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=G_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF WAFR ancestry plot with box plot (Color):

G_CSF.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=G_CSF, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF EURO ancestry plot with mean bar:

G_CSF.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=G_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 176 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF EURO ancestry plot with box plot (Color):

G_CSF.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=G_CSF, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 176 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 176 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF NATAM ancestry plot with mean bar:

G_CSF.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=G_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 157 rows containing missing values or values outside the scale range
## (`geom_point()`).

G_CSF NATAM ancestry plot with box plot (Color):

G_CSF.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=G_CSF, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("G_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("G_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
G_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
G_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = G_CSF.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 157 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 157 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF:

GM_CSF WAFR ancestry plot with mean bar:

GM_CSF.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=GM_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF WAFR ancestry plot with box plot (Color):

GM_CSF.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=GM_CSF, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF EURO ancestry plot with mean bar:

GM_CSF.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=GM_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 184 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF EURO ancestry plot with box plot (Color):

GM_CSF.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=GM_CSF, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 184 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 184 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF NATAM ancestry plot with mean bar:

GM_CSF.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=GM_CSF)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 163 rows containing missing values or values outside the scale range
## (`geom_point()`).

GM_CSF NATAM ancestry plot with box plot (Color):

GM_CSF.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=GM_CSF, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("GM_CSF \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GM_CSF Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GM_CSF.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GM_CSF.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GM_CSF.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 163 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg:

IFNg WAFR ancestry plot with mean bar:

IFNg.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNg)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 161 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg WAFR ancestry plot with box plot (Color):

IFNg.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IFNg, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 161 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg EURO ancestry plot with mean bar:

IFNg.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNg)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 182 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg EURO ancestry plot with box plot (Color):

IFNg.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IFNg, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 182 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 182 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg NATAM ancestry plot with mean bar:

IFNg.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNg)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

IFNg NATAM ancestry plot with box plot (Color):

IFNg.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IFNg, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IFNg \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IFNg Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IFNg.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IFNg.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IFNg.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 160 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a:

IL17a WAFR ancestry plot with mean bar:

IL17a.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL17a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 168 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a WAFR ancestry plot with box plot (Color):

IL17a.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL17a, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 168 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a EURO ancestry plot with mean bar:

IL17a.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL17a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 191 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a EURO ancestry plot with box plot (Color):

IL17a.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL17a, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 191 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 191 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a NATAM ancestry plot with mean bar:

IL17a.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL17a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 168 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL17a NATAM ancestry plot with box plot (Color):

IL17a.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL17a, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL17a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL17a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL17a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL17a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL17a.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 166 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 168 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 168 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra:

IL1ra WAFR ancestry plot with mean bar:

IL1ra.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL1ra)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra WAFR ancestry plot with box plot (Color):

IL1ra.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IL1ra, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 162 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 162 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra EURO ancestry plot with mean bar:***

IL1ra.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL1ra)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 183 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra EURO ancestry plot with box plot (Color):***

IL1ra.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IL1ra, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 183 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 183 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra NATAM ancestry plot with mean bar:

IL1ra.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL1ra)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 163 rows containing missing values or values outside the scale range
## (`geom_point()`).

IL1ra NATAM ancestry plot with box plot (Color):

IL1ra.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IL1ra, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IL1ra \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IL1ra Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IL1ra.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IL1ra.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IL1ra.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 161 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 163 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 163 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10:

IP10 WAFR ancestry plot with mean bar:***

IP10.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IP10)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10 WAFR ancestry plot with box plot (Color):***

IP10.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=IP10, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10 EURO ancestry plot with mean bar:***

IP10.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IP10)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10 EURO ancestry plot with box plot (Color):***

IP10.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=IP10, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10 NATAM ancestry plot with mean bar:

IP10.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IP10)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

IP10 NATAM ancestry plot with box plot (Color):

IP10.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=IP10, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("IP10 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("IP10 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
IP10.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
IP10.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = IP10.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 154 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1:

MCP1 WAFR ancestry plot with mean bar:

MCP1.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MCP1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1 WAFR ancestry plot with box plot (Color):

MCP1.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MCP1, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1 EURO ancestry plot with mean bar:

MCP1.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MCP1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1 EURO ancestry plot with box plot (Color):

MCP1.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MCP1, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1 NATAM ancestry plot with mean bar:***

MCP1.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MCP1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

MCP1 NATAM ancestry plot with box plot (Color):***

MCP1.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MCP1, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MCP1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MCP1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MCP1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MCP1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MCP1.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 154 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a:

MIP1a WAFR ancestry plot with mean bar:

MIP1a.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MIP1a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 171 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a WAFR ancestry plot with box plot (Color):

MIP1a.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MIP1a, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 171 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 171 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a EURO ancestry plot with mean bar:

MIP1a.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MIP1a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 193 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a EURO ancestry plot with box plot (Color):

MIP1a.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MIP1a, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 193 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 193 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a NATAM ancestry plot with mean bar:***

MIP1a.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MIP1a)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 172 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1a NATAM ancestry plot with box plot (Color):***

MIP1a.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MIP1a, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MIP1a \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1a Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1a.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1a.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1a.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 170 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 172 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 172 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b:

MIP1b WAFR ancestry plot with mean bar:

MIP1b.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MIP1b)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b WAFR ancestry plot with box plot (Color):

MIP1b.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MIP1b, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 155 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 155 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b EURO ancestry plot with mean bar:

MIP1b.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MIP1b)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b EURO ancestry plot with box plot (Color):

MIP1b.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MIP1b, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 175 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 175 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b NATAM ancestry plot with mean bar:

MIP1b.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MIP1b)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

MIP1b NATAM ancestry plot with box plot (Color):

MIP1b.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MIP1b, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MIP1b \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MIP1b Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MIP1b.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MIP1b.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MIP1b.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 154 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 156 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 156 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1:

DKK1 WAFR ancestry plot with mean bar:***

DKK1.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=DKK1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 95 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1 WAFR ancestry plot with box plot (Color):***

DKK1.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=DKK1, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 95 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 95 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1 EURO ancestry plot with mean bar:***

DKK1.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=DKK1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 109 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1 EURO ancestry plot with box plot (Color):***

DKK1.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=DKK1, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 109 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 109 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1 NATAM ancestry plot with mean bar:

DKK1.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=DKK1)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).

DKK1 NATAM ancestry plot with box plot (Color):

DKK1.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=DKK1, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("DKK1 \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("DKK1 Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
DKK1.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
DKK1.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = DKK1.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 94 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 96 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 96 rows containing missing values or values outside the scale range
## (`geom_point()`).

Liver Damage Markers:

ALT:

ALT WAFR ancestry plot with mean bar:

ALT.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 38 rows containing missing values or values outside the scale range
## (`geom_point()`).

ALT WAFR ancestry plot with box plot (Color):

ALT.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=ALT, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 38 rows containing missing values or values outside the scale range
## (`geom_point()`).

ALT EURO ancestry plot with mean bar:

ALT.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

ALT EURO ancestry plot with box plot (Color):

ALT.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=ALT, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 50 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 50 rows containing missing values or values outside the scale range
## (`geom_point()`).

ALT NATAM ancestry plot with mean bar:***

ALT.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("ALT \n (U/L)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 40 rows containing missing values or values outside the scale range
## (`geom_point()`).

ALT NATAM ancestry plot with box plot (Color):***

ALT.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=ALT, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("ALT \n ALT \n (U/L)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = ALT.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 40 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 40 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST:

AST WAFR ancestry plot with mean bar:

AST.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=AST)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 36 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST WAFR ancestry plot with box plot (Color):

AST.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=AST, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 36 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST EURO ancestry plot with mean bar:

AST.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=AST)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 48 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST EURO ancestry plot with box plot (Color):

AST.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=AST, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 48 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 48 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST NATAM ancestry plot with mean bar:

AST.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=AST)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 38 rows containing missing values or values outside the scale range
## (`geom_point()`).

AST NATAM ancestry plot with box plot (Color):

AST.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=AST, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("AST \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("AST Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
AST.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
AST.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = AST.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 36 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 38 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 38 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT:

Ratio_AST_ALT WAFR ancestry plot with mean bar:

Ratio_AST_ALT.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Ratio_AST_ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 39 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT WAFR ancestry plot with box plot (Color):

Ratio_AST_ALT.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Ratio_AST_ALT, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 39 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT EURO ancestry plot with mean bar:

Ratio_AST_ALT.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Ratio_AST_ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 51 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT EURO ancestry plot with box plot (Color):

Ratio_AST_ALT.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Ratio_AST_ALT, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 51 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 51 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT NATAM ancestry plot with mean bar:

Ratio_AST_ALT.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Ratio_AST_ALT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 41 rows containing missing values or values outside the scale range
## (`geom_point()`).

Ratio_AST_ALT NATAM ancestry plot with box plot (Color):

Ratio_AST_ALT.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Ratio_AST_ALT, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Ratio_AST_ALT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Ratio_AST_ALT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Ratio_AST_ALT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Ratio_AST_ALT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Ratio_AST_ALT.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 39 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 41 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 41 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN:

MICROALBUMIN WAFR ancestry plot with mean bar:

MICROALBUMIN.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MICROALBUMIN)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 21 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN WAFR ancestry plot with box plot (Color):

MICROALBUMIN.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=MICROALBUMIN, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 21 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN EURO ancestry plot with mean bar:

MICROALBUMIN.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MICROALBUMIN)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN EURO ancestry plot with box plot (Color):

MICROALBUMIN.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=MICROALBUMIN, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN NATAM ancestry plot with mean bar:

MICROALBUMIN.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MICROALBUMIN)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_point()`).

MICROALBUMIN NATAM ancestry plot with box plot (Color):

MICROALBUMIN.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=MICROALBUMIN, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("MICROALBUMIN \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("MICROALBUMIN Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
MICROALBUMIN.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
MICROALBUMIN.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = MICROALBUMIN.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 21 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 23 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 23 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE:

CREATININE WAFR ancestry plot with mean bar:

CREATININE.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CREATININE)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE WAFR ancestry plot with box plot (Color):

CREATININE.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CREATININE, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE EURO ancestry plot with mean bar:

CREATININE.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CREATININE)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE EURO ancestry plot with box plot (Color):

CREATININE.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CREATININE, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE NATAM ancestry plot with mean bar:

CREATININE.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CREATININE)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

CREATININE NATAM ancestry plot with box plot (Color):

CREATININE.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CREATININE, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CREATININE \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CREATININE Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CREATININE.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CREATININE.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CREATININE.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre:

BunCre WAFR ancestry plot with mean bar:

BunCre.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BunCre)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BunCre \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BunCre Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre WAFR ancestry plot with box plot (Color):

BunCre.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BunCre, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BunCre \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BunCre Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre EURO ancestry plot with mean bar:

BunCre.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BunCre)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BunCre \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BunCre Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre EURO ancestry plot with box plot (Color):

BunCre.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BunCre, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BunCre \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BunCre Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre NATAM ancestry plot with mean bar:***

BunCre.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BunCre)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Bun/creatinine ratio \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Bun/creatinine ratio by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

BunCre NATAM ancestry plot with box plot (Color):***

BunCre.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BunCre, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Bun/creatinine ratio \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Bun/creatinine ratio by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BunCre.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BunCre.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BunCre.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP:

CRP WAFR ancestry plot with mean bar:

CRP.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CRP)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 100 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP WAFR ancestry plot with box plot (Color):

CRP.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CRP, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 100 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP EURO ancestry plot with mean bar:

CRP.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CRP)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 116 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP EURO ancestry plot with box plot (Color):

CRP.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CRP, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 116 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 116 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP NATAM ancestry plot with mean bar:

CRP.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CRP)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 100 rows containing missing values or values outside the scale range
## (`geom_point()`).

CRP NATAM ancestry plot with box plot (Color):

CRP.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CRP, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CRP \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CRP Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CRP.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CRP.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CRP.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 98 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 100 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 100 rows containing missing values or values outside the scale range
## (`geom_point()`).

Lipid Biomarkers:

Total_Chol:

Total_Chol WAFR ancestry plot with mean bar:

Total_Chol.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Total_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

Total_Chol WAFR ancestry plot with box plot (Color):

Total_Chol.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=Total_Chol, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

Total_Chol EURO ancestry plot with mean bar:

Total_Chol.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Total_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

Total_Chol EURO ancestry plot with box plot (Color):

Total_Chol.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=Total_Chol, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

Total_Chol NATAM ancestry plot with mean bar:

Total_Chol.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Total_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

Total_Chol NATAM ancestry plot with box plot (Color):

Total_Chol.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=Total_Chol, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Total_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Total_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
Total_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
Total_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = Total_Chol.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol:

HDL_Chol WAFR ancestry plot with mean bar:***

HDL_Chol.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HDL Cholesterol \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL Cholesterol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol WAFR ancestry plot with box plot (Color):***

HDL_Chol.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HDL_Chol, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HDL Cholesterol \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL Cholesterol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol EURO ancestry plot with mean bar:

HDL_Chol.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("HDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol EURO ancestry plot with box plot (Color):

HDL_Chol.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HDL_Chol, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("HDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol NATAM ancestry plot with mean bar:

HDL_Chol.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("HDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

HDL_Chol NATAM ancestry plot with box plot (Color):

HDL_Chol.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HDL_Chol, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("HDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HDL_Chol.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol:

LDL_Chol WAFR ancestry plot with mean bar:

LDL_Chol.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=LDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("LDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol WAFR ancestry plot with box plot (Color):

LDL_Chol.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=LDL_Chol, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("LDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol EURO ancestry plot with mean bar:

LDL_Chol.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=LDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("LDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol EURO ancestry plot with box plot (Color):

LDL_Chol.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=LDL_Chol, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("LDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol NATAM ancestry plot with mean bar:***

LDL_Chol.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=LDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("LDL Cholesterol \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL Cholesterol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

LDL_Chol NATAM ancestry plot with box plot (Color):***

LDL_Chol.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=LDL_Chol, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("LDL Cholesterol \n (pm/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LDL Cholesterol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LDL_Chol.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES:

TRIGLYCERIDES WAFR ancestry plot with mean bar:

TRIGLYCERIDES.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TRIGLYCERIDES)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES WAFR ancestry plot with box plot (Color):

TRIGLYCERIDES.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=TRIGLYCERIDES, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES EURO ancestry plot with mean bar:

TRIGLYCERIDES.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TRIGLYCERIDES)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES EURO ancestry plot with box plot (Color):

TRIGLYCERIDES.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=TRIGLYCERIDES, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES NATAM ancestry plot with mean bar:

TRIGLYCERIDES.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TRIGLYCERIDES)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

TRIGLYCERIDES NATAM ancestry plot with box plot (Color):

TRIGLYCERIDES.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=TRIGLYCERIDES, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("TRIGLYCERIDES \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("TRIGLYCERIDES Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
TRIGLYCERIDES.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
TRIGLYCERIDES.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = TRIGLYCERIDES.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol:

VLDL_Chol WAFR ancestry plot with mean bar:

VLDL_Chol.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=VLDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol WAFR ancestry plot with box plot (Color):

VLDL_Chol.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=VLDL_Chol, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol EURO ancestry plot with mean bar:

VLDL_Chol.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=VLDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol EURO ancestry plot with box plot (Color):

VLDL_Chol.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=VLDL_Chol, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol NATAM ancestry plot with mean bar:

VLDL_Chol.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=VLDL_Chol)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

VLDL_Chol NATAM ancestry plot with box plot (Color):

VLDL_Chol.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=VLDL_Chol, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("VLDL_Chol \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("VLDL_Chol Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
VLDL_Chol.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
VLDL_Chol.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = VLDL_Chol.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA:

LPA WAFR ancestry plot with mean bar:***

LPA.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=LPA)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Lp(a) \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Lp(a) Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 114 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA WAFR ancestry plot with box plot (Color):***

LPA.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=LPA, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("Lp(a) \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Lp(a) Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 114 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA EURO ancestry plot with mean bar:***

LPA.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=LPA)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Lp(a) \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Lp(a) Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 137 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA EURO ancestry plot with box plot (Color):***

LPA.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=LPA, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Lp(a) \n (mg/dL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Lp(a) Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 137 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 137 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA NATAM ancestry plot with mean bar:

LPA.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=LPA)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("LPA \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LPA Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 114 rows containing missing values or values outside the scale range
## (`geom_point()`).

LPA NATAM ancestry plot with box plot (Color):

LPA.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=LPA, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("LPA \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("LPA Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
LPA.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
LPA.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = LPA.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 112 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 114 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 114 rows containing missing values or values outside the scale range
## (`geom_point()`).

Clinical Parameters:

HEIGHT:

HEIGHT WAFR ancestry plot with mean bar:

HEIGHT.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

HEIGHT WAFR ancestry plot with box plot (Color):

HEIGHT.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=HEIGHT, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("HEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("HEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

HEIGHT EURO ancestry plot with mean bar:***

HEIGHT.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Height \n (in)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

HEIGHT EURO ancestry plot with box plot (Color):***

HEIGHT.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=HEIGHT, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("Height \n (in)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

HEIGHT NATAM ancestry plot with mean bar:***

HEIGHT.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Height \n (in)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

HEIGHT NATAM ancestry plot with box plot (Color):***

HEIGHT.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=HEIGHT, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Height \n (in)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Height by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
HEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
HEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = HEIGHT.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT:

WEIGHT WAFR ancestry plot with mean bar:

WEIGHT.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=WEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("WEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("WEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT WAFR ancestry plot with box plot (Color):

WEIGHT.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=WEIGHT, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("WEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("WEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT EURO ancestry plot with mean bar:

WEIGHT.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=WEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("WEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("WEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT EURO ancestry plot with box plot (Color):

WEIGHT.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=WEIGHT, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("WEIGHT \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("WEIGHT Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT NATAM ancestry plot with mean bar:***

WEIGHT.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=WEIGHT)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Weight \n (lbs)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

WEIGHT NATAM ancestry plot with box plot (Color):***

WEIGHT.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=WEIGHT, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Weight \n (lbs)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Weight by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
WEIGHT.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
WEIGHT.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = WEIGHT.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI:

BMI WAFR ancestry plot with mean bar:

BMI.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI WAFR ancestry plot with box plot (Color):

BMI.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=BMI, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI EURO ancestry plot with mean bar:

BMI.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI EURO ancestry plot with box plot (Color):

BMI.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=BMI, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("BMI \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI NATAM ancestry plot with mean bar:***

BMI.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BMI)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("BMI \n (kg/m2)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

BMI NATAM ancestry plot with box plot (Color):***

BMI.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=BMI, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("BMI \n (kg/m2)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("BMI by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
BMI.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
BMI.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = BMI.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C:

A1C WAFR ancestry plot with mean bar:

A1C.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=A1C)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C WAFR ancestry plot with box plot (Color):

A1C.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=A1C, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C EURO ancestry plot with mean bar:

A1C.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=A1C)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C EURO ancestry plot with box plot (Color):

A1C.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=A1C, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 7 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 7 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C NATAM ancestry plot with mean bar:

A1C.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=A1C)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

A1C NATAM ancestry plot with box plot (Color):

A1C.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=A1C, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("A1C \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("A1C Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
A1C.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
A1C.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = A1C.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 8 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 8 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer:

GluSer WAFR ancestry plot with mean bar:

GluSer.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=GluSer)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer WAFR ancestry plot with box plot (Color):

GluSer.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=GluSer, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer EURO ancestry plot with mean bar:

GluSer.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=GluSer)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer EURO ancestry plot with box plot (Color):

GluSer.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=GluSer, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer NATAM ancestry plot with mean bar:

GluSer.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=GluSer)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

GluSer NATAM ancestry plot with box plot (Color):

GluSer.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=GluSer, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("GluSer \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("GluSer Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
GluSer.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
GluSer.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = GluSer.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

Kidney/Electrolyte Markers:

SODIUM:

SODIUM WAFR ancestry plot with mean bar:

SODIUM.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=SODIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

SODIUM WAFR ancestry plot with box plot (Color):

SODIUM.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=SODIUM, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

SODIUM EURO ancestry plot with mean bar:

SODIUM.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=SODIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

SODIUM EURO ancestry plot with box plot (Color):

SODIUM.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=SODIUM, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

SODIUM NATAM ancestry plot with mean bar:

SODIUM.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=SODIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

SODIUM NATAM ancestry plot with box plot (Color):

SODIUM.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=SODIUM, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("SODIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("SODIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
SODIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
SODIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = SODIUM.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM:

POTASSIUM WAFR ancestry plot with mean bar:

POTASSIUM.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=POTASSIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("POTASSIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("POTASSIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM WAFR ancestry plot with box plot (Color):

POTASSIUM.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=POTASSIUM, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("POTASSIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("POTASSIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM EURO ancestry plot with mean bar:

POTASSIUM.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=POTASSIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("POTASSIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("POTASSIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM EURO ancestry plot with box plot (Color):

POTASSIUM.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=POTASSIUM, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("POTASSIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("POTASSIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 4 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM NATAM ancestry plot with mean bar:***

POTASSIUM.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=POTASSIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Potassium \n (mmol/L)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Potassium Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

POTASSIUM NATAM ancestry plot with box plot (Color):***

POTASSIUM.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=POTASSIUM, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("Potassium \n (mmol/L") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("Potassium Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
POTASSIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
POTASSIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = POTASSIUM.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 4 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 6 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 6 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM:

CALCIUM WAFR ancestry plot with mean bar:

CALCIUM.plot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CALCIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM WAFR ancestry plot with box plot (Color):

CALCIUM.cplot <- ggplot(data=WAFRlab, aes(x=WAFRPerLab, y=CALCIUM, colour = WAFRPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of WAFR") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM EURO ancestry plot with mean bar:

CALCIUM.plot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CALCIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM EURO ancestry plot with box plot (Color):

CALCIUM.cplot <- ggplot(data=EUROlab, aes(x=EUROPerLab, y=CALCIUM, colour = EUROPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of EURO") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 3 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM NATAM ancestry plot with mean bar:

CALCIUM.plot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CALCIUM)) + 
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5))
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.plot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).

CALCIUM NATAM ancestry plot with box plot (Color):

CALCIUM.cplot <- ggplot(data=NATAMlab, aes(x=NATAMPerLab, y=CALCIUM, colour = NATAMPerLab)) + 
  geom_boxplot() +
  theme_classic() +
  geom_jitter(position=position_jitter(0.1)) + 
  stat_summary(fun = median, fun.min = median, fun.max = median, geom = "crossbar", width = 0.5) + 
  xlab("% of NATAM") + 
  ylab("CALCIUM \n (pg/mL)") + 
  scale_x_discrete(limit = c("Low","Mid","High")) + 
  ggtitle("CALCIUM Levels by \n Ancestry") + 
  theme(plot.title = element_text(hjust = 0.5), legend.position = "none")
#create mean comparison groups
CALCIUM.compare <- list( c("Low", "Mid"), c("Mid", "High"), c("Low", "High"))

#add p-value to plot while comparing means
CALCIUM.cplot + stat_compare_means(method = "t.test", label.y = 3500) +
# Visualize: Specify the comparisons you want
 stat_compare_means(method = 't.test', comparisons = CALCIUM.compare)
## Warning: Removed 2 rows containing missing values or values outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 3 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_summary()`).
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_compare_means()`).
## Warning: Unknown or uninitialised column: `p`.
## Warning: Computation failed in `stat_compare_means()`.
## Caused by error:
## ! argument "x" is missing, with no default
## Warning: Removed 5 rows containing non-finite outside the scale range
## (`stat_signif()`).
## Warning: Removed 5 rows containing missing values or values outside the scale range
## (`geom_point()`).