This is an experiment that was conducted by Jaden Milton, who treated cowpea, maize / corn, tomato and tepary bean with N-acetyl tryptophan, to examine the effect of NAT on plant growth and health.

Data import

RGB <- read.csv("consolidated_data.csv")
RGB

Let’s keep only the measurements that we are most interested in

unique(RGB$measurement_name)
##   [1] "Rfid"                            "Side01_00_row1"                 
##   [3] "Side01_00_area"                  "Side01_00_height"               
##   [5] "Side01_00_width"                 "Side01_00_circularity"          
##   [7] "Side01_00_compactness"           "Side01_00_contlength"           
##   [9] "Side01_00_convexity"             "Side01_00_rectangularity"       
##  [11] "Side01_00_anisometry"            "Side01_00_bulkiness"            
##  [13] "Side01_00_struct_factor"         "Side01_00_outer_radius"         
##  [15] "Side01_00_inner_radius"          "Side01_00_dist_mean"            
##  [17] "Side01_00_dist_deviation"        "Side01_00_roundness"            
##  [19] "Side01_00_holes_num"             "Side01_00_areaInMm2"            
##  [21] "Side01_00_heightInMm"            "Side01_00_widthInMm"            
##  [23] "Side01_00_Convex_Hull_Area"      "Side01_00_AverageColor_H"       
##  [25] "Side01_00_AverageColor_S"        "Side01_00_AverageColor_V"       
##  [27] "Side01_00_CenterOfMassX"         "Side01_00_CenterOfMassY"        
##  [29] "Side01_00_CenterOfMassDistance"  "Side01_00_H_Mean"               
##  [31] "Side01_00_H_Median"              "Side01_00_H_StDev"              
##  [33] "Side01_00_H_Q1"                  "Side01_00_H_Q3"                 
##  [35] "Side01_00_brown(H_14_27)"        "Side01_00_brown-yellow(H_28_35)"
##  [37] "Side01_00_yellow(H_36_43)"       "Side01_00_yellow-green(H_44_57)"
##  [39] "Side01_00_green(H_58_99)"        "Side01_00_green-cyan(H_100_120)"
##  [41] "Side01_00_cyan-blue(H_121_142)"  "Side01_00_blue(H_143_156)"      
##  [43] "Side01_00_HistoH_0_5"            "Side01_00_HistoH_5_10"          
##  [45] "Side01_00_HistoH_10_15"          "Side01_00_HistoH_15_20"         
##  [47] "Side01_00_HistoH_20_25"          "Side01_00_HistoH_25_30"         
##  [49] "Side01_00_HistoH_30_35"          "Side01_00_HistoH_35_40"         
##  [51] "Side01_00_HistoH_40_45"          "Side01_00_HistoH_45_50"         
##  [53] "Side01_00_HistoH_50_55"          "Side01_00_HistoH_55_60"         
##  [55] "Side01_00_HistoH_60_65"          "Side01_00_HistoH_65_70"         
##  [57] "Side01_00_HistoH_70_75"          "Side01_00_HistoH_75_80"         
##  [59] "Side01_00_HistoH_80_85"          "Side01_00_HistoH_85_90"         
##  [61] "Side01_00_HistoH_90_95"          "Side01_00_HistoH_95_100"        
##  [63] "Side01_00_HistoH_100_105"        "Side01_00_HistoH_105_110"       
##  [65] "Side01_00_HistoH_110_115"        "Side01_00_HistoH_115_120"       
##  [67] "Side01_00_HistoH_120_125"        "Side01_00_HistoH_125_130"       
##  [69] "Side01_00_HistoH_130_135"        "Side01_00_HistoH_135_140"       
##  [71] "Side01_00_HistoH_140_145"        "Side01_00_HistoH_145_150"       
##  [73] "Side01_00_HistoH_150_155"        "Side01_00_HistoH_155_160"       
##  [75] "Side01_00_HistoH_160_165"        "Side01_00_HistoH_165_170"       
##  [77] "Side01_00_HistoH_170_175"        "Side01_00_HistoH_175_180"       
##  [79] "Side01_00_HistoH_180_185"        "Side01_00_HistoH_185_190"       
##  [81] "Side01_00_HistoH_190_195"        "Side01_00_HistoH_195_200"       
##  [83] "Side01_00_HistoH_200_205"        "Side01_00_HistoH_205_210"       
##  [85] "Side01_00_HistoH_210_215"        "Side01_00_HistoH_215_220"       
##  [87] "Side01_00_HistoH_220_225"        "Side01_00_HistoH_225_230"       
##  [89] "Side01_00_HistoH_230_235"        "Side01_00_HistoH_235_240"       
##  [91] "Side01_00_HistoH_240_245"        "Side01_00_HistoH_245_250"       
##  [93] "Side01_00_HistoH_250_255"        "Side01_00_Greennes_Mean"        
##  [95] "Side01_00_Greennes_Deviation"    "Side01_00_BarcodeEnabled"       
##  [97] "Side01_00_BarcodeFound"          "BarcodeResult"                  
##  [99] "Side01_01_row1"                  "Side01_01_area"                 
## [101] "Side01_01_height"                "Side01_01_width"                
## [103] "Side01_01_circularity"           "Side01_01_compactness"          
## [105] "Side01_01_contlength"            "Side01_01_convexity"            
## [107] "Side01_01_rectangularity"        "Side01_01_anisometry"           
## [109] "Side01_01_bulkiness"             "Side01_01_struct_factor"        
## [111] "Side01_01_outer_radius"          "Side01_01_inner_radius"         
## [113] "Side01_01_dist_mean"             "Side01_01_dist_deviation"       
## [115] "Side01_01_roundness"             "Side01_01_holes_num"            
## [117] "Side01_01_areaInMm2"             "Side01_01_heightInMm"           
## [119] "Side01_01_widthInMm"             "Side01_01_Convex_Hull_Area"     
## [121] "Side01_01_AverageColor_H"        "Side01_01_AverageColor_S"       
## [123] "Side01_01_AverageColor_V"        "Side01_01_CenterOfMassX"        
## [125] "Side01_01_CenterOfMassY"         "Side01_01_CenterOfMassDistance" 
## [127] "Side01_01_H_Mean"                "Side01_01_H_Median"             
## [129] "Side01_01_H_StDev"               "Side01_01_H_Q1"                 
## [131] "Side01_01_H_Q3"                  "Side01_01_brown(H_14_27)"       
## [133] "Side01_01_brown-yellow(H_28_35)" "Side01_01_yellow(H_36_43)"      
## [135] "Side01_01_yellow-green(H_44_57)" "Side01_01_green(H_58_99)"       
## [137] "Side01_01_green-cyan(H_100_120)" "Side01_01_cyan-blue(H_121_142)" 
## [139] "Side01_01_blue(H_143_156)"       "Side01_01_HistoH_0_5"           
## [141] "Side01_01_HistoH_5_10"           "Side01_01_HistoH_10_15"         
## [143] "Side01_01_HistoH_15_20"          "Side01_01_HistoH_20_25"         
## [145] "Side01_01_HistoH_25_30"          "Side01_01_HistoH_30_35"         
## [147] "Side01_01_HistoH_35_40"          "Side01_01_HistoH_40_45"         
## [149] "Side01_01_HistoH_45_50"          "Side01_01_HistoH_50_55"         
## [151] "Side01_01_HistoH_55_60"          "Side01_01_HistoH_60_65"         
## [153] "Side01_01_HistoH_65_70"          "Side01_01_HistoH_70_75"         
## [155] "Side01_01_HistoH_75_80"          "Side01_01_HistoH_80_85"         
## [157] "Side01_01_HistoH_85_90"          "Side01_01_HistoH_90_95"         
## [159] "Side01_01_HistoH_95_100"         "Side01_01_HistoH_100_105"       
## [161] "Side01_01_HistoH_105_110"        "Side01_01_HistoH_110_115"       
## [163] "Side01_01_HistoH_115_120"        "Side01_01_HistoH_120_125"       
## [165] "Side01_01_HistoH_125_130"        "Side01_01_HistoH_130_135"       
## [167] "Side01_01_HistoH_135_140"        "Side01_01_HistoH_140_145"       
## [169] "Side01_01_HistoH_145_150"        "Side01_01_HistoH_150_155"       
## [171] "Side01_01_HistoH_155_160"        "Side01_01_HistoH_160_165"       
## [173] "Side01_01_HistoH_165_170"        "Side01_01_HistoH_170_175"       
## [175] "Side01_01_HistoH_175_180"        "Side01_01_HistoH_180_185"       
## [177] "Side01_01_HistoH_185_190"        "Side01_01_HistoH_190_195"       
## [179] "Side01_01_HistoH_195_200"        "Side01_01_HistoH_200_205"       
## [181] "Side01_01_HistoH_205_210"        "Side01_01_HistoH_210_215"       
## [183] "Side01_01_HistoH_215_220"        "Side01_01_HistoH_220_225"       
## [185] "Side01_01_HistoH_225_230"        "Side01_01_HistoH_230_235"       
## [187] "Side01_01_HistoH_235_240"        "Side01_01_HistoH_240_245"       
## [189] "Side01_01_HistoH_245_250"        "Side01_01_HistoH_250_255"       
## [191] "Side01_01_Greennes_Mean"         "Side01_01_Greennes_Deviation"   
## [193] "Side01_01_BarcodeEnabled"        "Side01_01_BarcodeFound"         
## [195] "Side01_02_row1"                  "Side01_02_area"                 
## [197] "Side01_02_height"                "Side01_02_width"                
## [199] "Side01_02_circularity"           "Side01_02_compactness"          
## [201] "Side01_02_contlength"            "Side01_02_convexity"            
## [203] "Side01_02_rectangularity"        "Side01_02_anisometry"           
## [205] "Side01_02_bulkiness"             "Side01_02_struct_factor"        
## [207] "Side01_02_outer_radius"          "Side01_02_inner_radius"         
## [209] "Side01_02_dist_mean"             "Side01_02_dist_deviation"       
## [211] "Side01_02_roundness"             "Side01_02_holes_num"            
## [213] "Side01_02_areaInMm2"             "Side01_02_heightInMm"           
## [215] "Side01_02_widthInMm"             "Side01_02_Convex_Hull_Area"     
## [217] "Side01_02_AverageColor_H"        "Side01_02_AverageColor_S"       
## [219] "Side01_02_AverageColor_V"        "Side01_02_CenterOfMassX"        
## [221] "Side01_02_CenterOfMassY"         "Side01_02_CenterOfMassDistance" 
## [223] "Side01_02_H_Mean"                "Side01_02_H_Median"             
## [225] "Side01_02_H_StDev"               "Side01_02_H_Q1"                 
## [227] "Side01_02_H_Q3"                  "Side01_02_brown(H_14_27)"       
## [229] "Side01_02_brown-yellow(H_28_35)" "Side01_02_yellow(H_36_43)"      
## [231] "Side01_02_yellow-green(H_44_57)" "Side01_02_green(H_58_99)"       
## [233] "Side01_02_green-cyan(H_100_120)" "Side01_02_cyan-blue(H_121_142)" 
## [235] "Side01_02_blue(H_143_156)"       "Side01_02_HistoH_0_5"           
## [237] "Side01_02_HistoH_5_10"           "Side01_02_HistoH_10_15"         
## [239] "Side01_02_HistoH_15_20"          "Side01_02_HistoH_20_25"         
## [241] "Side01_02_HistoH_25_30"          "Side01_02_HistoH_30_35"         
## [243] "Side01_02_HistoH_35_40"          "Side01_02_HistoH_40_45"         
## [245] "Side01_02_HistoH_45_50"          "Side01_02_HistoH_50_55"         
## [247] "Side01_02_HistoH_55_60"          "Side01_02_HistoH_60_65"         
## [249] "Side01_02_HistoH_65_70"          "Side01_02_HistoH_70_75"         
## [251] "Side01_02_HistoH_75_80"          "Side01_02_HistoH_80_85"         
## [253] "Side01_02_HistoH_85_90"          "Side01_02_HistoH_90_95"         
## [255] "Side01_02_HistoH_95_100"         "Side01_02_HistoH_100_105"       
## [257] "Side01_02_HistoH_105_110"        "Side01_02_HistoH_110_115"       
## [259] "Side01_02_HistoH_115_120"        "Side01_02_HistoH_120_125"       
## [261] "Side01_02_HistoH_125_130"        "Side01_02_HistoH_130_135"       
## [263] "Side01_02_HistoH_135_140"        "Side01_02_HistoH_140_145"       
## [265] "Side01_02_HistoH_145_150"        "Side01_02_HistoH_150_155"       
## [267] "Side01_02_HistoH_155_160"        "Side01_02_HistoH_160_165"       
## [269] "Side01_02_HistoH_165_170"        "Side01_02_HistoH_170_175"       
## [271] "Side01_02_HistoH_175_180"        "Side01_02_HistoH_180_185"       
## [273] "Side01_02_HistoH_185_190"        "Side01_02_HistoH_190_195"       
## [275] "Side01_02_HistoH_195_200"        "Side01_02_HistoH_200_205"       
## [277] "Side01_02_HistoH_205_210"        "Side01_02_HistoH_210_215"       
## [279] "Side01_02_HistoH_215_220"        "Side01_02_HistoH_220_225"       
## [281] "Side01_02_HistoH_225_230"        "Side01_02_HistoH_230_235"       
## [283] "Side01_02_HistoH_235_240"        "Side01_02_HistoH_240_245"       
## [285] "Side01_02_HistoH_245_250"        "Side01_02_HistoH_250_255"       
## [287] "Side01_02_Greennes_Mean"         "Side01_02_Greennes_Deviation"   
## [289] "Side01_02_BarcodeEnabled"        "Side01_02_BarcodeFound"         
## [291] "Side01_03_row1"                  "Side01_03_area"                 
## [293] "Side01_03_height"                "Side01_03_width"                
## [295] "Side01_03_circularity"           "Side01_03_compactness"          
## [297] "Side01_03_contlength"            "Side01_03_convexity"            
## [299] "Side01_03_rectangularity"        "Side01_03_anisometry"           
## [301] "Side01_03_bulkiness"             "Side01_03_struct_factor"        
## [303] "Side01_03_outer_radius"          "Side01_03_inner_radius"         
## [305] "Side01_03_dist_mean"             "Side01_03_dist_deviation"       
## [307] "Side01_03_roundness"             "Side01_03_holes_num"            
## [309] "Side01_03_areaInMm2"             "Side01_03_heightInMm"           
## [311] "Side01_03_widthInMm"             "Side01_03_Convex_Hull_Area"     
## [313] "Side01_03_AverageColor_H"        "Side01_03_AverageColor_S"       
## [315] "Side01_03_AverageColor_V"        "Side01_03_CenterOfMassX"        
## [317] "Side01_03_CenterOfMassY"         "Side01_03_CenterOfMassDistance" 
## [319] "Side01_03_H_Mean"                "Side01_03_H_Median"             
## [321] "Side01_03_H_StDev"               "Side01_03_H_Q1"                 
## [323] "Side01_03_H_Q3"                  "Side01_03_brown(H_14_27)"       
## [325] "Side01_03_brown-yellow(H_28_35)" "Side01_03_yellow(H_36_43)"      
## [327] "Side01_03_yellow-green(H_44_57)" "Side01_03_green(H_58_99)"       
## [329] "Side01_03_green-cyan(H_100_120)" "Side01_03_cyan-blue(H_121_142)" 
## [331] "Side01_03_blue(H_143_156)"       "Side01_03_HistoH_0_5"           
## [333] "Side01_03_HistoH_5_10"           "Side01_03_HistoH_10_15"         
## [335] "Side01_03_HistoH_15_20"          "Side01_03_HistoH_20_25"         
## [337] "Side01_03_HistoH_25_30"          "Side01_03_HistoH_30_35"         
## [339] "Side01_03_HistoH_35_40"          "Side01_03_HistoH_40_45"         
## [341] "Side01_03_HistoH_45_50"          "Side01_03_HistoH_50_55"         
## [343] "Side01_03_HistoH_55_60"          "Side01_03_HistoH_60_65"         
## [345] "Side01_03_HistoH_65_70"          "Side01_03_HistoH_70_75"         
## [347] "Side01_03_HistoH_75_80"          "Side01_03_HistoH_80_85"         
## [349] "Side01_03_HistoH_85_90"          "Side01_03_HistoH_90_95"         
## [351] "Side01_03_HistoH_95_100"         "Side01_03_HistoH_100_105"       
## [353] "Side01_03_HistoH_105_110"        "Side01_03_HistoH_110_115"       
## [355] "Side01_03_HistoH_115_120"        "Side01_03_HistoH_120_125"       
## [357] "Side01_03_HistoH_125_130"        "Side01_03_HistoH_130_135"       
## [359] "Side01_03_HistoH_135_140"        "Side01_03_HistoH_140_145"       
## [361] "Side01_03_HistoH_145_150"        "Side01_03_HistoH_150_155"       
## [363] "Side01_03_HistoH_155_160"        "Side01_03_HistoH_160_165"       
## [365] "Side01_03_HistoH_165_170"        "Side01_03_HistoH_170_175"       
## [367] "Side01_03_HistoH_175_180"        "Side01_03_HistoH_180_185"       
## [369] "Side01_03_HistoH_185_190"        "Side01_03_HistoH_190_195"       
## [371] "Side01_03_HistoH_195_200"        "Side01_03_HistoH_200_205"       
## [373] "Side01_03_HistoH_205_210"        "Side01_03_HistoH_210_215"       
## [375] "Side01_03_HistoH_215_220"        "Side01_03_HistoH_220_225"       
## [377] "Side01_03_HistoH_225_230"        "Side01_03_HistoH_230_235"       
## [379] "Side01_03_HistoH_235_240"        "Side01_03_HistoH_240_245"       
## [381] "Side01_03_HistoH_245_250"        "Side01_03_HistoH_250_255"       
## [383] "Side01_03_Greennes_Mean"         "Side01_03_Greennes_Deviation"   
## [385] "Side01_03_BarcodeEnabled"        "Side01_03_BarcodeFound"         
## [387] "Side01_04_row1"                  "Side01_04_area"                 
## [389] "Side01_04_height"                "Side01_04_width"                
## [391] "Side01_04_circularity"           "Side01_04_compactness"          
## [393] "Side01_04_contlength"            "Side01_04_convexity"            
## [395] "Side01_04_rectangularity"        "Side01_04_anisometry"           
## [397] "Side01_04_bulkiness"             "Side01_04_struct_factor"        
## [399] "Side01_04_outer_radius"          "Side01_04_inner_radius"         
## [401] "Side01_04_dist_mean"             "Side01_04_dist_deviation"       
## [403] "Side01_04_roundness"             "Side01_04_holes_num"            
## [405] "Side01_04_areaInMm2"             "Side01_04_heightInMm"           
## [407] "Side01_04_widthInMm"             "Side01_04_Convex_Hull_Area"     
## [409] "Side01_04_AverageColor_H"        "Side01_04_AverageColor_S"       
## [411] "Side01_04_AverageColor_V"        "Side01_04_CenterOfMassX"        
## [413] "Side01_04_CenterOfMassY"         "Side01_04_CenterOfMassDistance" 
## [415] "Side01_04_H_Mean"                "Side01_04_H_Median"             
## [417] "Side01_04_H_StDev"               "Side01_04_H_Q1"                 
## [419] "Side01_04_H_Q3"                  "Side01_04_brown(H_14_27)"       
## [421] "Side01_04_brown-yellow(H_28_35)" "Side01_04_yellow(H_36_43)"      
## [423] "Side01_04_yellow-green(H_44_57)" "Side01_04_green(H_58_99)"       
## [425] "Side01_04_green-cyan(H_100_120)" "Side01_04_cyan-blue(H_121_142)" 
## [427] "Side01_04_blue(H_143_156)"       "Side01_04_HistoH_0_5"           
## [429] "Side01_04_HistoH_5_10"           "Side01_04_HistoH_10_15"         
## [431] "Side01_04_HistoH_15_20"          "Side01_04_HistoH_20_25"         
## [433] "Side01_04_HistoH_25_30"          "Side01_04_HistoH_30_35"         
## [435] "Side01_04_HistoH_35_40"          "Side01_04_HistoH_40_45"         
## [437] "Side01_04_HistoH_45_50"          "Side01_04_HistoH_50_55"         
## [439] "Side01_04_HistoH_55_60"          "Side01_04_HistoH_60_65"         
## [441] "Side01_04_HistoH_65_70"          "Side01_04_HistoH_70_75"         
## [443] "Side01_04_HistoH_75_80"          "Side01_04_HistoH_80_85"         
## [445] "Side01_04_HistoH_85_90"          "Side01_04_HistoH_90_95"         
## [447] "Side01_04_HistoH_95_100"         "Side01_04_HistoH_100_105"       
## [449] "Side01_04_HistoH_105_110"        "Side01_04_HistoH_110_115"       
## [451] "Side01_04_HistoH_115_120"        "Side01_04_HistoH_120_125"       
## [453] "Side01_04_HistoH_125_130"        "Side01_04_HistoH_130_135"       
## [455] "Side01_04_HistoH_135_140"        "Side01_04_HistoH_140_145"       
## [457] "Side01_04_HistoH_145_150"        "Side01_04_HistoH_150_155"       
## [459] "Side01_04_HistoH_155_160"        "Side01_04_HistoH_160_165"       
## [461] "Side01_04_HistoH_165_170"        "Side01_04_HistoH_170_175"       
## [463] "Side01_04_HistoH_175_180"        "Side01_04_HistoH_180_185"       
## [465] "Side01_04_HistoH_185_190"        "Side01_04_HistoH_190_195"       
## [467] "Side01_04_HistoH_195_200"        "Side01_04_HistoH_200_205"       
## [469] "Side01_04_HistoH_205_210"        "Side01_04_HistoH_210_215"       
## [471] "Side01_04_HistoH_215_220"        "Side01_04_HistoH_220_225"       
## [473] "Side01_04_HistoH_225_230"        "Side01_04_HistoH_230_235"       
## [475] "Side01_04_HistoH_235_240"        "Side01_04_HistoH_240_245"       
## [477] "Side01_04_HistoH_245_250"        "Side01_04_HistoH_250_255"       
## [479] "Side01_04_Greennes_Mean"         "Side01_04_Greennes_Deviation"   
## [481] "Side01_04_BarcodeEnabled"        "Side01_04_BarcodeFound"         
## [483] "Side01_05_row1"                  "Side01_05_area"                 
## [485] "Side01_05_height"                "Side01_05_width"                
## [487] "Side01_05_circularity"           "Side01_05_compactness"          
## [489] "Side01_05_contlength"            "Side01_05_convexity"            
## [491] "Side01_05_rectangularity"        "Side01_05_anisometry"           
## [493] "Side01_05_bulkiness"             "Side01_05_struct_factor"        
## [495] "Side01_05_outer_radius"          "Side01_05_inner_radius"         
## [497] "Side01_05_dist_mean"             "Side01_05_dist_deviation"       
## [499] "Side01_05_roundness"             "Side01_05_holes_num"            
## [501] "Side01_05_areaInMm2"             "Side01_05_heightInMm"           
## [503] "Side01_05_widthInMm"             "Side01_05_Convex_Hull_Area"     
## [505] "Side01_05_AverageColor_H"        "Side01_05_AverageColor_S"       
## [507] "Side01_05_AverageColor_V"        "Side01_05_CenterOfMassX"        
## [509] "Side01_05_CenterOfMassY"         "Side01_05_CenterOfMassDistance" 
## [511] "Side01_05_H_Mean"                "Side01_05_H_Median"             
## [513] "Side01_05_H_StDev"               "Side01_05_H_Q1"                 
## [515] "Side01_05_H_Q3"                  "Side01_05_brown(H_14_27)"       
## [517] "Side01_05_brown-yellow(H_28_35)" "Side01_05_yellow(H_36_43)"      
## [519] "Side01_05_yellow-green(H_44_57)" "Side01_05_green(H_58_99)"       
## [521] "Side01_05_green-cyan(H_100_120)" "Side01_05_cyan-blue(H_121_142)" 
## [523] "Side01_05_blue(H_143_156)"       "Side01_05_HistoH_0_5"           
## [525] "Side01_05_HistoH_5_10"           "Side01_05_HistoH_10_15"         
## [527] "Side01_05_HistoH_15_20"          "Side01_05_HistoH_20_25"         
## [529] "Side01_05_HistoH_25_30"          "Side01_05_HistoH_30_35"         
## [531] "Side01_05_HistoH_35_40"          "Side01_05_HistoH_40_45"         
## [533] "Side01_05_HistoH_45_50"          "Side01_05_HistoH_50_55"         
## [535] "Side01_05_HistoH_55_60"          "Side01_05_HistoH_60_65"         
## [537] "Side01_05_HistoH_65_70"          "Side01_05_HistoH_70_75"         
## [539] "Side01_05_HistoH_75_80"          "Side01_05_HistoH_80_85"         
## [541] "Side01_05_HistoH_85_90"          "Side01_05_HistoH_90_95"         
## [543] "Side01_05_HistoH_95_100"         "Side01_05_HistoH_100_105"       
## [545] "Side01_05_HistoH_105_110"        "Side01_05_HistoH_110_115"       
## [547] "Side01_05_HistoH_115_120"        "Side01_05_HistoH_120_125"       
## [549] "Side01_05_HistoH_125_130"        "Side01_05_HistoH_130_135"       
## [551] "Side01_05_HistoH_135_140"        "Side01_05_HistoH_140_145"       
## [553] "Side01_05_HistoH_145_150"        "Side01_05_HistoH_150_155"       
## [555] "Side01_05_HistoH_155_160"        "Side01_05_HistoH_160_165"       
## [557] "Side01_05_HistoH_165_170"        "Side01_05_HistoH_170_175"       
## [559] "Side01_05_HistoH_175_180"        "Side01_05_HistoH_180_185"       
## [561] "Side01_05_HistoH_185_190"        "Side01_05_HistoH_190_195"       
## [563] "Side01_05_HistoH_195_200"        "Side01_05_HistoH_200_205"       
## [565] "Side01_05_HistoH_205_210"        "Side01_05_HistoH_210_215"       
## [567] "Side01_05_HistoH_215_220"        "Side01_05_HistoH_220_225"       
## [569] "Side01_05_HistoH_225_230"        "Side01_05_HistoH_230_235"       
## [571] "Side01_05_HistoH_235_240"        "Side01_05_HistoH_240_245"       
## [573] "Side01_05_HistoH_245_250"        "Side01_05_HistoH_250_255"       
## [575] "Side01_05_Greennes_Mean"         "Side01_05_Greennes_Deviation"   
## [577] "Side01_05_BarcodeEnabled"        "Side01_05_BarcodeFound"         
## [579] "row1"                            "area"                           
## [581] "height"                          "width"                          
## [583] "circularity"                     "compactness"                    
## [585] "contlength"                      "convexity"                      
## [587] "rectangularity"                  "anisometry"                     
## [589] "bulkiness"                       "struct_factor"                  
## [591] "outer_radius"                    "inner_radius"                   
## [593] "dist_mean"                       "dist_deviation"                 
## [595] "roundness"                       "holes_num"                      
## [597] "areaInMm2"                       "heightInMm"                     
## [599] "widthInMm"                       "Convex_Hull_Area"               
## [601] "AverageColor_H"                  "AverageColor_S"                 
## [603] "AverageColor_V"                  "CenterOfMassX"                  
## [605] "CenterOfMassY"                   "CenterOfMassDistance"           
## [607] "H_Mean"                          "H_Median"                       
## [609] "H_StDev"                         "H_Q1"                           
## [611] "H_Q3"                            "brown(H_14_27)"                 
## [613] "brown-yellow(H_28_35)"           "yellow(H_36_43)"                
## [615] "yellow-green(H_44_57)"           "green(H_58_99)"                 
## [617] "green-cyan(H_100_120)"           "cyan-blue(H_121_142)"           
## [619] "blue(H_143_156)"                 "HistoH_0_5"                     
## [621] "HistoH_5_10"                     "HistoH_10_15"                   
## [623] "HistoH_15_20"                    "HistoH_20_25"                   
## [625] "HistoH_25_30"                    "HistoH_30_35"                   
## [627] "HistoH_35_40"                    "HistoH_40_45"                   
## [629] "HistoH_45_50"                    "HistoH_50_55"                   
## [631] "HistoH_55_60"                    "HistoH_60_65"                   
## [633] "HistoH_65_70"                    "HistoH_70_75"                   
## [635] "HistoH_75_80"                    "HistoH_80_85"                   
## [637] "HistoH_85_90"                    "HistoH_90_95"                   
## [639] "HistoH_95_100"                   "HistoH_100_105"                 
## [641] "HistoH_105_110"                  "HistoH_110_115"                 
## [643] "HistoH_115_120"                  "HistoH_120_125"                 
## [645] "HistoH_125_130"                  "HistoH_130_135"                 
## [647] "HistoH_135_140"                  "HistoH_140_145"                 
## [649] "HistoH_145_150"                  "HistoH_150_155"                 
## [651] "HistoH_155_160"                  "HistoH_160_165"                 
## [653] "HistoH_165_170"                  "HistoH_170_175"                 
## [655] "HistoH_175_180"                  "HistoH_180_185"                 
## [657] "HistoH_185_190"                  "HistoH_190_195"                 
## [659] "HistoH_195_200"                  "HistoH_200_205"                 
## [661] "HistoH_205_210"                  "HistoH_210_215"                 
## [663] "HistoH_215_220"                  "HistoH_220_225"                 
## [665] "HistoH_225_230"                  "HistoH_230_235"                 
## [667] "HistoH_235_240"                  "HistoH_240_245"                 
## [669] "HistoH_245_250"                  "HistoH_250_255"                 
## [671] "Greennes_Mean"                   "Greennes_Deviation"             
## [673] "BarcodeEnabled"                  "BarcodeFound"
want <- c("Side01_00_area", "Side01_01_area", "Side01_02_area", "Side01_03_area", "Side01_04_area", "Side01_05_area", "area")
RGB_Area <- subset(RGB, RGB$measurement_name %in% want)
RGB_Area

Awesome! Now - Let’s separate the file_name into individual sections - including timestamp, trayID and so on.

strsplit(RGB_Area$file_name[1], "_")
## [[1]]
## [1] "20240610-164036" "39312016015360"  "00034877"        "010103"         
## [5] "040089"          "Side01.xml"

1st element is timestamp (YYYMMDD-HHMMSS), then some unknown ID, then tray ID, experiment ID, some other unknown ID and side.xml file

We will need timestamp and trayID for this experiment:

timestamp <- strsplit(RGB_Area$file_name[1], "_")[[1]][1]
tray.ID <- strsplit(RGB_Area$file_name[1], "_")[[1]][3]
timestamp
## [1] "20240610-164036"

Now let’s loop it into all of the rows of our dataset:

for(i in 1:nrow(RGB_Area)){
  RGB_Area$timestamp[i]  <- strsplit(RGB_Area$file_name[i], "_")[[1]][1]
  RGB_Area$tray.ID[i] <- strsplit(RGB_Area$file_name[i], "_")[[1]][3]
}
RGB_Area$tray.ID <- as.numeric(as.character(RGB_Area$tray.ID))
unique(RGB_Area$tray.ID)
##  [1] 34877 34878 34879 34880 34881 34882 34883 34884 34885 34886 34887 34888
## [13] 34889 34890 34891 34892 34893 34894 34895 34896 34897 34898 34899 34900
## [25] 34901 34902 34903 34904 34905 34906 34907 34908 34909 34910 34911 34912

OK - I have added these numbers manually to correspond to the Tray01 … Tray60 in the decoding sheet for this experiment. So let’s load this:

decode <- read.csv("20240610_Jade_NAT_1x1.csv")
decode
decode <- decode[,c(14,2,5:6)]
colnames(decode)[1] <- "tray.ID"
decode
RGB2 <- merge(RGB_Area, decode, by= "tray.ID", all=T)
RGB2

Now - let’s keep onnly things that we would like to and get rid of unnecessary stuff

library(reshape2)
RGB_Area2 <- RGB2[,c(1, 6:9,4,5)]

RGB_Area2$measurement_value <- as.numeric(RGB_Area2$measurement_value)
nona.RGB_Area <- na.omit(RGB_Area2)
nona.RGB_Area

And now - it will be easier to summarize values that are in individual collumns rather than rows - so let’s cast the data first

nona.RGB_Area <- dcast(nona.RGB_Area, timestamp + TrayInfo + PlantID + PlantName + tray.ID ~ measurement_name)
## Using measurement_value as value column: use value.var to override.
nona.RGB_Area

now let’s summarize the area from top view and 6 different angles into one value:

nona.RGB_Area$Area.all <- nona.RGB_Area$area + nona.RGB_Area$Side01_00_area + nona.RGB_Area$Side01_01_area + nona.RGB_Area$Side01_02_area + nona.RGB_Area$Side01_03_area + nona.RGB_Area$Side01_04_area + nona.RGB_Area$Side01_05_area
nona.RGB_Area

One last remaining thing would be to resolve the timestamp into the “Day of experiment”. First let’s split it into a date and time:

# date
strsplit(nona.RGB_Area$timestamp[1], "-")[[1]][1]
## [1] "20240610"
# time
strsplit(nona.RGB_Area$timestamp[1], "-")[[1]][2]
## [1] "164036"

now for all of the rows:

for(i in 1:nrow(nona.RGB_Area)){
  nona.RGB_Area$date[i] <-  strsplit(nona.RGB_Area$timestamp[i], "-")[[1]][1]
  nona.RGB_Area$time[i] <-  strsplit(nona.RGB_Area$timestamp[i], "-")[[1]][2]
}
nona.RGB_Area

Now - let’s see how it looks like!

plot the RGB data

library(ggplot2)
nona.RGB_Area$date <- as.factor(nona.RGB_Area$date)
unique(nona.RGB_Area$tray_id)
## NULL
lgraph <- ggplot(data=nona.RGB_Area, aes(x= date, y=Area.all, group = tray.ID)) 
lgraph <- lgraph + geom_line(alpha = 0.7) + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
lgraph <- lgraph + ylab("digital biomass (a.u.)") + xlab("")
lgraph

Change the x-variable to time of experimenmt

unique(nona.RGB_Area$timestamp)
##   [1] "20240610-164036" "20240610-164137" "20240610-164308" "20240610-164440"
##   [5] "20240610-164612" "20240610-164744" "20240610-164916" "20240610-165048"
##   [9] "20240610-165303" "20240610-165404" "20240610-165536" "20240610-165708"
##  [13] "20240610-165840" "20240610-170012" "20240610-170144" "20240610-170318"
##  [17] "20240610-170450" "20240610-170622" "20240610-170754" "20240610-170926"
##  [21] "20240610-171058" "20240610-171230" "20240610-171402" "20240610-171534"
##  [25] "20240610-171706" "20240610-171840" "20240610-172010" "20240610-172142"
##  [29] "20240610-172315" "20240610-172447" "20240610-172619" "20240610-172751"
##  [33] "20240610-172923" "20240610-173055" "20240610-173227" "20240610-173359"
##  [37] "20240610-174921" "20240610-175504" "20240610-180045" "20240610-180628"
##  [41] "20240610-181211" "20240610-181753" "20240610-182335" "20240610-182917"
##  [45] "20240610-183500" "20240610-184626" "20240610-185208" "20240610-185751"
##  [49] "20240610-190334" "20240610-190918" "20240610-191501" "20240610-193211"
##  [53] "20240610-193754" "20240610-194338" "20240610-214235" "20240610-214808"
##  [57] "20240610-215351" "20240610-215935" "20240610-220517" "20240610-221059"
##  [61] "20240610-221640" "20240610-222222" "20240610-222803" "20240610-223344"
##  [65] "20240610-223925" "20240610-224506" "20240610-225048" "20240610-225632"
##  [69] "20240610-230213" "20240611-031225" "20240611-031806" "20240611-032348"
##  [73] "20240611-032930" "20240611-033512" "20240611-034056" "20240611-034638"
##  [77] "20240611-035220" "20240611-040927" "20240611-041508" "20240611-042050"
##  [81] "20240611-042632" "20240611-043214" "20240611-043757" "20240611-045503"
##  [85] "20240611-050045" "20240611-050628" "20240611-051210" "20240611-051751"
##  [89] "20240611-052334" "20240611-052916" "20240611-053457" "20240611-054040"
##  [93] "20240611-054621" "20240611-055204" "20240611-055746" "20240611-060328"
##  [97] "20240611-060911" "20240611-061453" "20240611-062035" "20240611-062617"
## [101] "20240611-063159" "20240611-152951" "20240611-153043" "20240611-153159"
## [105] "20240611-153314" "20240611-153430" "20240611-153545" "20240611-153701"
## [109] "20240611-153816" "20240611-153931" "20240611-154047" "20240611-154202"
## [113] "20240611-154318" "20240611-154433" "20240611-154549" "20240611-155212"
## [117] "20240611-155339" "20240611-155432" "20240611-155546" "20240611-155702"
## [121] "20240611-155817" "20240611-155933" "20240611-160048" "20240611-160204"
## [125] "20240611-160746" "20240611-160913" "20240611-161007" "20240611-161122"
## [129] "20240611-161238" "20240611-161353" "20240611-161509" "20240611-161659"
## [133] "20240611-161752" "20240611-162536" "20240611-162652" "20240611-162807"
## [137] "20240611-170440" "20240611-171026" "20240611-171611" "20240611-172156"
## [141] "20240611-172741" "20240611-173326" "20240611-173911" "20240611-174455"
## [145] "20240611-175039" "20240611-175623" "20240611-180208" "20240611-180753"
## [149] "20240611-181339" "20240611-181923" "20240611-182613" "20240613-103741"
## [153] "20240613-110753" "20240613-111313" "20240613-111840" "20240613-112423"
## [157] "20240613-113005" "20240613-113548" "20240613-114131" "20240613-114713"
## [161] "20240613-115256" "20240613-115839" "20240613-120423" "20240613-121006"
## [165] "20240613-131939" "20240613-132522" "20240613-133105" "20240613-170643"
## [169] "20240613-171227" "20240613-171811" "20240613-172354" "20240613-172937"
## [173] "20240613-173519" "20240613-174101" "20240613-174643" "20240613-175228"
## [177] "20240613-175812" "20240613-180356" "20240613-180939" "20240613-181521"
## [181] "20240613-182646" "20240613-183813" "20240613-184356" "20240613-184941"
## [185] "20240613-185525" "20240613-190108" "20240613-190652" "20240613-191235"
## [189] "20240613-191819" "20240613-192402" "20240613-192945" "20240613-193528"
## [193] "20240613-194111" "20240613-194655" "20240613-195238" "20240613-195821"
## [197] "20240613-200406" "20240613-200949" "20240614-031251" "20240614-031836"
## [201] "20240614-032421" "20240614-033005" "20240614-033550" "20240614-034136"
## [205] "20240614-034719" "20240614-035305" "20240614-035849" "20240614-040434"
## [209] "20240614-041017" "20240614-041601" "20240614-042148" "20240614-042733"
## [213] "20240614-043318" "20240614-043902" "20240614-044446" "20240614-045031"
## [217] "20240614-045617" "20240614-050202" "20240614-050749" "20240614-051334"
## [221] "20240614-051920" "20240614-052505" "20240614-053051" "20240614-053637"
## [225] "20240614-054222" "20240614-054807" "20240614-055352" "20240614-055937"
## [229] "20240614-060522" "20240614-061106" "20240614-061651" "20240614-062237"
## [233] "20240614-062823" "20240614-063408" "20240614-173423" "20240614-174009"
## [237] "20240614-175141" "20240614-175726" "20240614-180311" "20240614-180857"
## [241] "20240614-181442" "20240614-182027" "20240614-182612" "20240614-183157"
## [245] "20240614-183743" "20240614-184329" "20240614-184913" "20240614-185459"
## [249] "20240614-190045" "20240614-190631" "20240614-191216" "20240614-191909"
## [253] "20240614-192454" "20240614-193038" "20240614-193623" "20240614-194208"
## [257] "20240614-194859" "20240615-094356" "20240615-094942" "20240615-095526"
## [261] "20240615-100111" "20240615-100655" "20240615-101239" "20240615-101824"
## [265] "20240615-102409" "20240615-102954" "20240615-103537" "20240615-111909"
## [269] "20240615-112455" "20240615-113040" "20240615-113624" "20240615-114210"
## [273] "20240615-114755" "20240615-115339" "20240615-143118" "20240615-143832"
## [277] "20240615-144415" "20240615-144959" "20240615-145544" "20240615-150129"
## [281] "20240615-150713" "20240615-151258" "20240615-151842" "20240615-152428"
## [285] "20240615-153013" "20240615-153557" "20240615-154141" "20240615-154726"
## [289] "20240615-155309" "20240615-155856" "20240615-160441" "20240615-161027"
## [293] "20240615-161612" "20240615-162157" "20240615-162742" "20240615-163327"
## [297] "20240615-163913" "20240615-165045" "20240615-165632" "20240615-170216"
## [301] "20240615-170800" "20240615-171345" "20240615-195508" "20240615-200057"
## [305] "20240615-200646" "20240615-201235" "20240615-201824" "20240615-202413"
## [309] "20240615-203002" "20240615-203551" "20240615-204139" "20240615-204727"
## [313] "20240615-205316" "20240615-210015" "20240615-210606" "20240615-211156"
## [317] "20240615-211750" "20240615-212340" "20240615-212927" "20240615-213516"
## [321] "20240615-214105" "20240615-214654" "20240615-215244" "20240616-104250"
## [325] "20240616-171424" "20240616-172034" "20240616-172622" "20240616-174433"
## [329] "20240616-175021" "20240616-175608" "20240616-180156" "20240616-180744"
## [333] "20240616-181332" "20240616-181919" "20240616-182507" "20240616-183055"
## [337] "20240616-183642" "20240616-192053" "20240616-192642" "20240616-193230"
## [341] "20240616-193817" "20240616-202033" "20240616-202623" "20240616-203211"
## [345] "20240616-203803" "20240616-204349" "20240616-204936" "20240616-205524"
## [349] "20240616-210112" "20240616-210700" "20240616-211249" "20240616-211836"
## [353] "20240616-212424" "20240616-213013" "20240616-213600" "20240616-214148"
## [357] "20240616-214736" "20240616-215324" "20240616-215913" "20240616-220501"
## [361] "20240616-221048" "20240616-221637" "20240616-222225" "20240616-222813"
## [365] "20240616-223401" "20240616-223950" "20240616-224538" "20240616-225126"
## [369] "20240616-225714" "20240616-230304" "20240616-230852" "20240616-231440"
## [373] "20240616-232028" "20240617-020122" "20240617-020713" "20240617-021258"
## [377] "20240617-021847" "20240617-022434" "20240617-023023" "20240617-023610"
## [381] "20240617-024158" "20240617-024747" "20240617-025334" "20240617-025923"
## [385] "20240617-030511" "20240617-031058" "20240617-031646" "20240617-042922"
## [389] "20240617-043509" "20240617-044058" "20240617-044646" "20240617-045234"
## [393] "20240617-045821" "20240617-050410" "20240617-050958" "20240617-051546"
## [397] "20240617-052134" "20240617-052722" "20240617-053310" "20240617-053858"
## [401] "20240617-054446" "20240617-055034" "20240617-055622" "20240617-060211"
## [405] "20240617-060800" "20240617-061348" "20240617-061936" "20240617-062524"
## [409] "20240617-063113" "20240617-071532" "20240617-072120" "20240617-072708"
## [413] "20240617-073257" "20240617-073845" "20240617-080210" "20240617-080801"
## [417] "20240617-081412" "20240617-082000" "20240617-082548" "20240617-083137"
## [421] "20240617-083728" "20240617-084315" "20240617-084903" "20240617-085451"
## [425] "20240617-090041" "20240617-090740" "20240617-091328" "20240617-093227"
## [429] "20240617-095114" "20240617-095703" "20240617-100252" "20240617-100841"
## [433] "20240617-101430" "20240617-102019" "20240617-102608" "20240617-103157"
## [437] "20240618-113341" "20240618-113931" "20240618-114521" "20240618-115111"
## [441] "20240618-115700" "20240618-120247" "20240618-120838" "20240618-121428"
## [445] "20240618-122018" "20240618-122608" "20240618-123157" "20240618-123747"
## [449] "20240618-124337" "20240618-124927" "20240618-125517" "20240618-130107"
## [453] "20240618-130657" "20240618-131247" "20240618-131838" "20240618-132427"
## [457] "20240618-133017" "20240618-133606" "20240618-134153" "20240618-134741"
## [461] "20240618-135330" "20240618-135917" "20240618-140510" "20240618-141056"
## [465] "20240618-141723" "20240618-142244" "20240618-142805" "20240618-143003"
## [469] "20240618-150453" "20240618-151014" "20240618-151538" "20240619-111323"
## [473] "20240619-112408" "20240619-112955" "20240619-113543" "20240619-114130"
## [477] "20240619-114718" "20240619-121403" "20240619-121952" "20240619-122541"
## [481] "20240619-123128" "20240619-123716" "20240619-124304" "20240619-124853"
## [485] "20240619-125441" "20240619-130028" "20240619-130617" "20240619-131206"
## [489] "20240619-131756" "20240619-132345" "20240619-132935" "20240619-133526"
## [493] "20240619-134116" "20240619-134705" "20240619-135255" "20240619-135845"
## [497] "20240619-140434" "20240619-141024" "20240619-141615" "20240619-142205"
## [501] "20240619-142755" "20240619-143345" "20240619-143934" "20240619-162750"
## [505] "20240619-163340" "20240619-163930" "20240619-164520" "20240619-165111"
## [509] "20240619-165658" "20240619-170245" "20240619-170836" "20240619-171423"
## [513] "20240619-172014" "20240619-172601" "20240619-173152" "20240619-173742"
## [517] "20240619-174330" "20240619-174916" "20240619-175504" "20240619-180055"
## [521] "20240619-180643" "20240619-181234" "20240619-181825" "20240619-182412"
## [525] "20240619-182959" "20240619-183547" "20240620-043319" "20240620-043927"
## [529] "20240620-044513" "20240620-045101" "20240620-045648" "20240620-050236"
## [533] "20240620-050824" "20240620-051411" "20240620-051958" "20240620-052546"
## [537] "20240620-053133" "20240620-053722" "20240620-054310" "20240620-065315"
## [541] "20240620-065902" "20240620-070449" "20240620-071146" "20240620-071734"
## [545] "20240620-072322" "20240620-072910" "20240620-073457" "20240620-074045"
## [549] "20240620-074633" "20240620-075222" "20240620-075809" "20240620-080357"
## [553] "20240620-080946" "20240620-081533" "20240620-082120" "20240620-082709"
## [557] "20240620-083257" "20240620-083845" "20240620-084432" "20240620-085020"
## [561] "20240620-085609" "20240620-090157" "20240620-090745" "20240620-091332"
## [565] "20240620-091920" "20240620-092508" "20240620-093056" "20240620-093643"
## [569] "20240620-094231" "20240620-094819" "20240620-095407" "20240620-095955"
## [573] "20240620-110345" "20240620-110933" "20240620-115338" "20240620-115926"
## [577] "20240620-120514" "20240620-121102" "20240620-121651" "20240620-122239"
## [581] "20240620-122827" "20240620-123415" "20240620-124004" "20240620-124552"
## [585] "20240620-125140" "20240620-125729" "20240620-130317" "20240620-130906"
## [589] "20240620-131454" "20240620-132043" "20240620-132632" "20240620-133220"
## [593] "20240620-133809" "20240620-134358" "20240620-134946" "20240620-135535"
## [597] "20240620-140124" "20240620-140713" "20240620-141302" "20240620-141850"
## [601] "20240620-142439" "20240620-143028" "20240620-143617" "20240620-144205"
## [605] "20240620-144754" "20240620-145344" "20240620-145933" "20240620-150522"
## [609] "20240620-151111" "20240620-151701" "20240621-093654" "20240621-094242"
## [613] "20240621-094829" "20240621-095416" "20240621-100004" "20240621-100552"
## [617] "20240621-101139" "20240621-101727" "20240621-102314" "20240621-102902"
## [621] "20240621-103450" "20240621-104039" "20240621-104626" "20240621-105214"
## [625] "20240621-105802" "20240621-110350" "20240621-110938" "20240621-111534"
## [629] "20240621-112126" "20240621-112714" "20240621-113304" "20240621-113853"
## [633] "20240621-114443" "20240621-115033" "20240621-115623"
#create day and hour columns from timestamp
nona.RGB_Area$day <- substr(nona.RGB_Area$date, 7,8)
nona.RGB_Area$hour <- substr(nona.RGB_Area$time, 1,2)

#time of experiment is adjusted to start time of first plant
nona.RGB_Area$TOE <- (as.numeric(as.character(nona.RGB_Area$day))-10)*24 + (as.numeric(as.character(nona.RGB_Area$hour))) - 16

lgraph <- ggplot(data=nona.RGB_Area, aes(x=TOE, y = Area.all, group = tray.ID))
lgraph <- lgraph + geom_line(alpha = 0.7)
lgraph <- lgraph + ylab("digital biomass") + xlab("TOE")
lgraph 

now - let’s try to add more info - such as specific treatment from the decoding file:

library(ggpubr)
nona.RGB_Area$Area.all <- as.numeric(as.character(nona.RGB_Area$Area.all))
nona.RGB_Area$TOE <- as.numeric(as.character(nona.RGB_Area$TOE))
nona.RGB_Area$TrayInfo <- as.factor(nona.RGB_Area$TrayInfo)
unique(nona.RGB_Area$TrayInfo)
## [1] NAT     Control
## Levels: Control NAT
Area_graph <- ggplot(data=nona.RGB_Area, aes(x= TOE, y=Area.all, group = tray.ID, color = TrayInfo)) 
Area_graph <- Area_graph + geom_line(alpha = 0.7) 
Area_graph <- Area_graph + stat_summary(fun.data = mean_se, geom="ribbon", linetype=0, aes(group= TrayInfo), alpha=0.3)
Area_graph <- Area_graph + stat_summary(fun=mean, aes(group= TrayInfo),  size=0.7, geom="line", linetype = "dashed")
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
Area_graph <- Area_graph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = TRUE)
Area_graph <- Area_graph + ylab("Digital Biomass") + xlab("Time of imaging (h)")
Area_graph
## Warning: Computation failed in `stat_compare_means()`
## Caused by error in `mutate()`:
## ℹ In argument: `p = purrr::map(...)`.
## Caused by error in `purrr::map()`:
## ℹ In index: 18.
## ℹ With name: x.68.
## Caused by error in `t.test.default()`:
## ! not enough 'x' observations

The reason we have these odd lines - is that some of the trays got imaged one hour later - which pulls average into totally different direction (aka - one sample average). In order to make sure that we are comparing like-with-like - we can implement splines - so we can “predict” the values for all time points - however - we need to make sure that we are not over-interpreting the data - as in - predicting on a time scale of minutes or hours - as we have imaged approximately every 24h.

Spline fitting for RGB data

So - how do we do it? Splines!!! Spline-who??? Sounds complicated. But it is not. First - let’s take one tray and calculate predicted spline values based on one tray:

max(nona.RGB_Area$TOE)
## [1] 259
days <- seq(0, 259, by = 12)
#create a temporary subset that contains only rows where the trayID is the first unique one
temp <- subset(nona.RGB_Area, nona.RGB_Area$tray.ID == unique(nona.RGB_Area$tray.ID)[1])
#assign TOE as a numeric val
temp$TOE <- as.numeric(as.character(temp$TOE))
#plot spline for this first entry 
plot.spl <- with(temp, smooth.spline(TOE, Area.all, df = 5))

plot(Area.all ~ TOE, data = temp)

#actual vals
lines(plot.spl, col = "blue")
#predicted vals
lines(predict(plot.spl, days), col = "red")

this looks good, now lets apply the same procedure to the rest of the trays

smooth out graph using spline for the rest of the trays

#names of columns to be used for plot 
names <- c("tray.ID", "TOE", "Area.SUM")
#create a new dataframe with only tray.ID, TOE, Area.SUM
spline_data <- data.frame(tray.ID = character(), TOE = numeric(), Area.SUM = numeric(), stringsAsFactors = FALSE)

# Populate spline_data
pred_temp <- predict(plot.spl, days)
#append the first tray to the dataframe
spline_data <- data.frame(tray.ID = temp$tray.ID[1], TOE = pred_temp$x, Area.SUM = pred_temp$y)

final_spline <- spline_data

#Do the same prediction for all plants
all_plants <- unique(nona.RGB_Area$tray.ID)

for (i in 2:length(all_plants)) {
  #iterate foe each based on tray.ID
  temp <- subset(nona.RGB_Area, tray.ID == all_plants[i])
 
  if (nrow(temp) > 4) {
    #if there are more datapoints that match the correct tray.ID
    #use timestamps corresponding to the data from subset 
    plot.spl <- with(temp, smooth.spline(TOE, Area.all, df = 5))
    pred_temp <- predict(plot.spl, days)
   
    spline_data <- data.frame(
      tray.ID = temp$tray.ID[1],
      TOE = pred_temp$x,
      Area.SUM = pred_temp$y,
      stringsAsFactors = FALSE
    )
  } else {
    spline_data <- data.frame(
      #trayID is corresponding to the first trayID of i subset
      tray.ID = temp$tray.ID[1],
      TOE = days,
      Area.SUM = rep(0, length(days)),
      stringsAsFactors = FALSE
    )
  }
  #append the predictions onto final_spline
  final_spline <- rbind(final_spline, spline_data)
}
final_spline
# Convert the 'TOE' column in 'final_spline' to numeric type
final_spline$TOE <- as.numeric(as.character(final_spline$TOE))

# Convert the 'Area.SUM' column in 'final_spline' to numeric type
final_spline$Area.SUM <- as.numeric(as.character(final_spline$Area.SUM))

# Filter 'final_spline' to keep rows where 'Area.SUM' is greater than 1
final_spline <- final_spline[final_spline$Area.SUM > 1, ]
# add decoding info:
final_spline <- merge(final_spline, decode, by = c("tray.ID"))

final_spline
library(ggsci)

# Convert 'Area.SUM' column to numeric type
final_spline$Area.SUM <- as.numeric(as.character(final_spline$Area.SUM))

# Convert 'day' column to a factor with numeric levels
final_spline$TOE <- as.factor(as.numeric(as.character(final_spline$TOE)))

# Create a line graph (Area_lgraph) using ggplot2
Area_lgraph <- ggplot(data = final_spline, aes(x = TOE, y = Area.SUM, group = tray.ID, color = TrayInfo)) 
Area_lgraph <- Area_lgraph + geom_line(alpha = 0.1)
Area_lgraph <- Area_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
Area_lgraph <- Area_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
Area_lgraph <- Area_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
Area_lgraph <- Area_lgraph + labs(x = "Hours of Imaging", y = "Digital Biomass (a.u.)") + scale_color_d3("category10") + theme(legend.position = "bottom")
Area_lgraph

Area_lgraph2 <- ggplot(data = final_spline, aes(x = TOE, y = Area.SUM, group = tray.ID, color = TrayInfo)) 
Area_lgraph2 <- Area_lgraph2 + geom_line(alpha = 0.1) + facet_grid(~PlantName)
Area_lgraph2 <- Area_lgraph2 + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
Area_lgraph2 <- Area_lgraph2 + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
Area_lgraph2 <- Area_lgraph2 + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
Area_lgraph2 <- Area_lgraph2 + labs(x = "Hours of Imaging", y = "Digital Biomass (a.u.)") + scale_color_d3("category10") + theme(legend.position = "bottom")
Area_lgraph2

Let’s be honest - this graph is a bit messy - with all of the NS above each timepoint. Let’s make it better by plotting p-value for each comparison below the graph.

First - let’s change TOE into a nummeric and re-plot the graph:

library(scales)

final_spline$TOE <- as.numeric(final_spline$TOE)

Area_lgraph2 <- ggplot(data = final_spline, aes(x = TOE, y = Area.SUM, group = tray.ID, color = TrayInfo)) 
Area_lgraph2 <- Area_lgraph2 + geom_line(alpha = 0.1) + facet_grid(~PlantName)
Area_lgraph2 <- Area_lgraph2 + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
Area_lgraph2 <- Area_lgraph2 + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
# removing this line - since we will plot p-values in a separate graph and thus dont need the compare_means() function
#Area_lgraph2 <- Area_lgraph2 + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
Area_lgraph2 <- Area_lgraph2 + labs(x = "", y = "Digital Biomass (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + scale_y_continuous(labels = scientific)
Area_lgraph2

OK - now let’s plot the p-values:

library("dplyr")
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Function to perform t-test and extract p-value
get_p_value <- function(final_spline_deco) {
  t.test(Area.SUM ~ TrayInfo, data = final_spline_deco)$p.value
}

# Calculate p-values for each genotype and timepoint
p_values <- final_spline %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## Warning: There was 1 warning in `summarise()`.
## ℹ In argument: `p_value = get_p_value(cur_data())`.
## ℹ In group 1: `TOE = 1` and `PlantName = "Corn_B73"`.
## Caused by warning:
## ! `cur_data()` was deprecated in dplyr 1.1.0.
## ℹ Please use `pick()` instead.
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
# Display the p-values in a table
p_values$LOD <- -log10(p_values$p_value)
p_values
Area_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
Area_pplot <- Area_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") 
Area_pplot <- Area_pplot + facet_wrap(~ PlantName, ncol = 6)
Area_pplot <- Area_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
Area_pplot <- Area_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 
Area_pplot

Cool - now let’s combine these two graphs into one:

library(cowplot)
## 
## Attaching package: 'cowplot'
## The following object is masked from 'package:ggpubr':
## 
##     get_legend
Area_plot <- plot_grid(Area_lgraph2, Area_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
Area_plot

Calculating Growth Rate based on RGB data:

Now - we dont see much sigificant differences accross Control and NAT - but let’s also calculate the growth rate for each of the plants - to see if we see differences in recorded change in biomass.

First - let’s do it for one plant - just to see if everything is working all right;

temp <- subset(final_spline, final_spline$tray.ID == unique(final_spline$tray.ID[1]))
temp$Area.SUM <- as.numeric(temp$Area.SUM)
temp$TOE <- as.numeric(temp$TOE)
# plot the data
plot(temp$Area.SUM ~ temp$TOE) +
# Linear regression line is added to the scatterplot using the lm() function
abline(lm(temp$Area.SUM ~ temp$TOE))

## integer(0)

Let’s have a look at the linear model components:

# Fit a linear regression model to predict 'length' based on 'hours' in the 'temp' data frame
model <- lm(temp$Area.SUM ~ temp$TOE)
model
## 
## Call:
## lm(formula = temp$Area.SUM ~ temp$TOE)
## 
## Coefficients:
## (Intercept)     temp$TOE  
##       11148        48359

Extract the growth rate (GR) coefficient from the linear regression model

GR <- model$coefficients[2]
GR
## temp$TOE 
##    48359

Calculate the coefficient of determination (R-squared) for the model

R2 <- summary(model)$r.squared
R2
## [1] 0.9445757

Define vector ‘names’ containing column names for the ‘growth_data’ data frame

temp
names <- c(text = "tray.ID", "TrayInfo", "PlantName", "GR", "R2")

# Create an empty data frame 'growth_data' to store growth-related data
growth_data <- data.frame()

# Loop through each element 'k' in the 'names' vector
for (k in names) {
  # Create a new column in 'growth_data' with the name specified by 'k' and set as character type
  growth_data[[k]] <- as.character()
}

# Assign the 'ID' value from the 'temp' data frame to the first row, first column of 'growth_data'
growth_data[1, 1] <- temp$tray.ID[1]

# Assign the 'Accession' value from the 'temp' data frame to the first row, second column of 'growth_data'
growth_data[1, 2] <- as.character(temp$TrayInfo[1])

# Assign the 'Treatment' value from the 'temp' data frame to the first row, third column of 'growth_data'
growth_data[1, 3] <- temp$PlantName[1]

# Assign the growth rate (GR) to the first row, fourth column of 'growth_data'
growth_data[1, 4] <- GR

# Assign the coefficient of determination (R-squared, R2) to the first row, fifth column of 'growth_data'
growth_data[1, 5] <- R2

growth_data

Looks great! Now - let’s do this for all of the plants within this experiment:

# Create vector 'all_plants' containing unique 'ID' values from 'final_spline'
all_plants <- unique(final_spline$tray.ID)

# Loop through each unique 'ID' in 'all_plants'
for (i in 1:length(all_plants)) {
  # Subset 'final_spline' to select data for the current 'ID'
  temp <- subset(final_spline, final_spline$tray.ID == all_plants[i])
  temp$Area.SUM <- as.numeric(temp$Area.SUM)
  temp$TOE <- as.numeric(temp$TOE)

  # Fit a linear regression model to predict 'Area.SUM' based on 'day'
  model <- lm(temp$Area.SUM ~ temp$TOE)

  # Extract the growth rate (GR) coefficient from the linear regression model
  GR <- model$coefficients[2]

  # Calculate the coefficient of determination (R-squared, R2) for the model
  R2 <- summary(model)$r.squared

  # Populate 'growth_data' with relevant information for the current 'ID'
  growth_data[i, 1] <- temp$tray.ID[1]
  growth_data[i, 2] <-  as.character(temp$TrayInfo[1])
  growth_data[i, 3] <- temp$PlantName[1]
  growth_data[i, 4] <- GR
  growth_data[i, 5] <- R2
}

growth_data

Let’s fo a little clean up:

# Convert the 'GR' and 'R2' columns in 'growth_data' to numeric
growth_data$GR <- as.numeric(as.character(growth_data$GR))
growth_data$R2 <- as.numeric(as.character(growth_data$R2))

growth_data_clean <- subset(growth_data, growth_data$R2 > 0.7)
growth_data_clean <- subset(growth_data_clean, growth_data_clean$GR > 0)
growth_data_clean

Great - now we have all of this data - let’s plot it:

growth_data_clean$TrayInfo <- factor(growth_data_clean$TrayInfo, levels =c("Control", "NAT"))
GR_overall <- ggerrorplot(growth_data_clean, x = "TrayInfo", y = "GR", color = "TrayInfo", fill = "TrayInfo", facet.by = "PlantName",
                          desc_stat = "mean_sd", add = "jitter", ncol = 8,
                          xlab="", ylab= "Growth Rate (pixel / hour)", add.params = list(color = "darkgray")) + scale_color_d3("category10") 
GR_overall <- GR_overall + stat_compare_means(method = "aov", label.y = 90000)
GR_overall <- GR_overall + rremove("legend") + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
GR_overall

OK - now let’s save these two graphs as PDF:

library(cowplot)
pdf("NAT.Jade202406.RGB_data_per_species.pdf", width = 10, height = 10)
plot_grid(Area_plot, GR_overall, rel_heights = c(1, 0.7), labels = "AUTO", ncol = 1)
dev.off()
## quartz_off_screen 
##                 2

Before moving on - let’s save all of the data used for these plots:

write.csv(growth_data_clean, "NAT.Jade202406.GrowthRate.csv", row.names = F)
write.csv(final_spline, "NAT.Jade202406.DigitalBiomass.csv", row.names = F)

PS2 data processing

Now, lets analyze the chlorophyll index of each plant and plot it with respect to time

Data reading

#format the ps2 file into something we can work with
PS2 <- read.csv("Exp10103_NAT_Jade_Analysis_MMJ.csv")
PS2
#Since here only one plant is present per tray - let's keep only All from object number analyzed results
PS3 <- subset(PS2, PS2$Obj.No == "1")
PS3

get only the columns that are informative biologically (for now):

colnames(PS3)
##  [1] "File"           "Date"           "Time"           "Obj.No"        
##  [5] "nTmPam"         "Obj.Size"       "Obj.Xc"         "Obj.Yc"        
##  [9] "Fv.Fm"          "s.d."           "Fq..Fm."        "s.d..1"        
## [13] "NPQ"            "s.d..2"         "F0."            "s.d..3"        
## [17] "qP"             "s.d..4"         "qN"             "s.d..5"        
## [21] "qL"             "s.d..6"         "qE"             "s.d..7"        
## [25] "qI"             "s.d..8"         "D.no"           "s.d..9"        
## [29] "D.npq"          "s.d..10"        "npq.t."         "s.d..11"       
## [33] "Red"            "s.d..12"        "Green"          "s.d..13"       
## [37] "Blue"           "s.d..14"        "Hue"            "s.d..15"       
## [41] "Saturation"     "s.d..16"        "Value"          "s.d..17"       
## [45] "SpcGrn"         "s.d..18"        "FarRed"         "s.d..19"       
## [49] "Nir"            "s.d..20"        "ChlIdx"         "s.d..21"       
## [53] "AriIdx"         "s.d..22"        "NDVI"           "s.d..23"       
## [57] "Border"         "Mask.Border"    "Points"         "Area..CH."     
## [61] "Mask.Area..CH." "X.Centre"       "Y.Centre"       "Radius"        
## [65] "Area..MC."      "Mask.Area..MC." "Width"          "Height"        
## [69] "Area..MR."      "Mask.Area..MR." "Alpha"          "Size..SK."     
## [73] "Junction..SK."  "Endpoint..SK."  "Path..SK."
PS4 <- PS3[,c(1:3, 6, 9, 11, 13, 17, 19, 21, 23, 25, 27, 29, 31, 51, 53, 55)]
PS4
library(ggplot2)
library(ggpubr)
PS4$Date <- as.factor(PS4$Date)
lgraph <- ggplot(data=PS4, aes(x= Date, y=ChlIdx)) 
lgraph <- lgraph + geom_point(alpha = 0.7) + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
lgraph <- lgraph + ylab("Chlorophylll Index") + xlab("days after stress")
lgraph

There seems to be 2 outliers with negative chlorophyll indexes, lets remove them and try again

#we can see 2 very obvious outliers. Lets remove them and try again
PS4 <- subset(PS4, ChlIdx > 0 )

PS4$Date <- as.factor(PS4$Date)
lgraph <- ggplot(data=PS4, aes(x = Date, y = ChlIdx)) + geom_point(alpha = 0.7)
lgraph <- lgraph + ylab("Chlorophyll Index") + xlab("days after stress") + theme(axis.text.x = element_text(angle = 90, vjust = 0.5, hjust=1))
lgraph

That looks better, now lets try to plot linear graphs by grouping plants with their tray.IDs

This is great start, but lets isolate the measurement per tray ID - which is the third item in the File name (HDR_ExpID_TrayID_roundID.INF)

How do we get there?

strsplit(PS4$File[1], "_")[[1]][3]
## [1] "34877"

Now - lets isolate it for the entire data sheet:

for(i in 1:nrow(PS4)){
  PS4$tray.ID[i] <- strsplit(PS4$File[i], "_")[[1]][3]
}
length(unique(PS4$tray.ID))
## [1] 36
unique(PS4$Date)
##  [1] 20240614 20240615 20240616 20240617 20240618 20240619 20240620 20240610
##  [9] 20240621 20240622 20240623 20240611 20240612 20240613
## 14 Levels: 20240610 20240611 20240612 20240613 20240614 20240615 ... 20240623

Let’s transfer date and time into TOE.

for(i in 1:nrow(PS4)){
  PS4$month <- substr(PS4$Date, 5, 6)
  PS4$day <- substr(PS4$Date, 7, 8)
  PS4$hour <- substr(PS4$Time, 1, 2)
}
PS4

Trays were loaded on June 6th at around 17:00

PS4$TOE <- (as.numeric(as.character(PS4$day)) - 10)*24 + (as.numeric(as.character(PS4$hour)) - 17)
unique(PS4$TOE)
##   [1]  96 114 122 146 153 158 168 188 212 227   0 232 237 259 265 269 277 289
##  [19] 301 313  10  24  34  44  68  82 123 186 209 215 229 234 256 263 267 275
##  [37] 287 299 311 211 217   1 231 236 258 268 300 312  72  97 147 189 213 228
##  [55] 266 270 278 290 302 314 187 210 216 230 235 257  45 117 159 190  11  35
##  [73]  83 238 260  25 148 154 264 276 288 118 124   2  73 233  98 155 160  46
##  [91]  12  36  84 156  26 137 149   4  65 119 144  66  74   5 112 113 145 157
## [109] 161  13  37  85 150  27 120  67  75   6
PS4

OK - then we have an issue with the FvFm being correct for one set of the data - and the other traits (FqFm and such) for other row. We need to correct it first:

# Get data containing right measurements into two separate datasets:
FvFm_data <- subset(PS4, PS4$Fv.Fm > 0)
notFvFm_data <- subset(PS4, PS4$Fv.Fm < 0)
# Get rid of collumns containing nonsense
FvFm_data <- FvFm_data[,c(1:5)]
notFvFm_data <- notFvFm_data[,c(1:4,6:23)]
FvFm_data
notFvFm_data

Now - let’s merge them together:

PS5 <- merge(FvFm_data, notFvFm_data, by =c("File", "Date", "Time", "Obj.Size"))
PS5

Before moving forward - let’s decode the data:

PS6 <- merge(PS5, decode, by= "tray.ID", all=T)
PS6

Lets have a look at how the data looks like now:

lgraph <- ggplot(data=PS6, aes(x= TOE, y=Fv.Fm, group = tray.ID)) 
lgraph <- lgraph + geom_line(alpha = 0.7) 
lgraph <- lgraph + ylab("Maximum Quantum Yield (Fv/Fm)") + xlab("Hours of Imaging")
lgraph

lets add more info to the graph:

FvFm_graph <- ggplot(data=PS6, aes(x= TOE, y=Fv.Fm, group = tray.ID, color = TrayInfo)) 
FvFm_graph <- FvFm_graph + geom_line(alpha = 0.7) 
FvFm_graph <- FvFm_graph + stat_summary(fun.data = mean_se, geom="ribbon", linetype=0, aes(group= TrayInfo), alpha=0.3)
FvFm_graph <- FvFm_graph + stat_summary(fun=mean, aes(group= TrayInfo),  size=0.7, geom="line", linetype = "dashed")
FvFm_graph <- FvFm_graph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = TRUE)
FvFm_graph <- FvFm_graph + ylab("Fv/Fm (a.u.)") + xlab("Time of imaging (h)")
FvFm_graph
## Warning: Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 9.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

As you can see - there are some lines that are not exactly the same timepoints - so we will get in trouble when calculating averages. Therefore - we need to do splines!

Splines for ALL PS2 traits

So - let’s first isolate one plant to establish our spline calculations

PS6 <- na.omit(PS6)
max(PS6$TOE)
## [1] 314
hours <- seq(0, 314, by = 12)
hours
##  [1]   0  12  24  36  48  60  72  84  96 108 120 132 144 156 168 180 192 204 216
## [20] 228 240 252 264 276 288 300 312
length(hours)
## [1] 27
temp <- subset(PS6, PS6$tray.ID == unique(PS6$tray.ID)[1])
temp$TOE <- as.numeric(as.character(temp$TOE))
temp <- temp[order(temp$TOE, decreasing = F),]
temp$TOE
##   [1]   0   0   0   0   0  10  10  10  10  10  24  24  24  24  24  34  34  34
##  [19]  34  34  44  44  44  44  44  68  68  68  68  68  82  82  82  82  82  96
##  [37]  96  96  96  96 114 114 114 114 114 122 122 122 122 122 146 146 146 146
##  [55] 146 153 153 153 153 153 158 158 158 158 158 168 168 168 168 168 188 188
##  [73] 188 188 188 212 212 212 212 212 227 227 227 227 227 232 232 232 232 232
##  [91] 237 237 237 237 237 259 259 259 259 259 265 265 265 265 265 269 269 269
## [109] 269 269 277 277 277 277 277 289 289 289 289 289 301 301 301 301 301 313
## [127] 313 313 313 313
temp

Fv/Fm

plot.spl <- with(temp, smooth.spline(TOE, Fv.Fm, df = 17))
plot(Fv.Fm ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

Fq/Fm

plot.spl <- with(temp, smooth.spline(TOE, Fq..Fm., df = 17))
plot(Fq..Fm. ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

NPQ

plot.spl <- with(temp, smooth.spline(TOE, NPQ, df = 17))
plot(NPQ ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

qP

plot.spl <- with(temp, smooth.spline(TOE, qP, df = 17))
plot(qP ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

qN

plot.spl <- with(temp, smooth.spline(TOE, qN, df = 17))
plot(qN ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

qL

plot.spl <- with(temp, smooth.spline(TOE, qL, df = 17))
plot(qL ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

qE

plot.spl <- with(temp, smooth.spline(TOE, qE, df = 17))
plot(qE ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

qI

plot.spl <- with(temp, smooth.spline(TOE, qI, df = 17))
plot(qI ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

фno

plot.spl <- with(temp, smooth.spline(TOE, D.no, df = 17))
plot(D.no ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

фnpq

plot.spl <- with(temp, smooth.spline(TOE, D.npq, df = 17))
plot(D.npq ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

npq(t)

plot.spl <- with(temp, smooth.spline(TOE, npq.t., df = 17))
plot(npq.t. ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

ChlIdx

plot.spl <- with(temp, smooth.spline(TOE, ChlIdx, df = 17))
plot(ChlIdx ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

AriIdx

plot.spl <- with(temp, smooth.spline(TOE, AriIdx, df = 17))
plot(AriIdx ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

NDVI

plot.spl <- with(temp, smooth.spline(TOE, NDVI, df = 17))
plot(NDVI ~ TOE, data = temp)
lines(plot.spl, col = "blue")
lines(predict(plot.spl, hours), col = "red")

Then - let’s save all of the information into one file

PS6
# CHANGE last thing into trait name
names <- c(text = "tray.ID", "TOE", "Fv.Fm", "Fq.Fm", "NPQ", "qP", "qN", "qL", "qE", "qI", "phiNO", "phiNPQ", "npq.t", "ChlIdx", "AriIdx", "NDVI")
spline_data <- data.frame()
for (k in names) {
  spline_data[[k]] <- as.character()}
pred_temp <- predict(plot.spl, hours)
length(pred_temp$x)
## [1] 27
spline_data[1:27,1] <- temp$tray.ID[1]
spline_data[1:27,2] <- pred_temp$x
plot.spl <- with(temp, smooth.spline(TOE, Fv.Fm, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,3] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, Fq..Fm., df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,4] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, NPQ, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,5] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, qP, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,6] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, qN, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,7] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, qL, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,8] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, qE, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,9] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, qI, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,10] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, D.no, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,11] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, D.npq, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,12] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, npq.t., df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,13] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, ChlIdx, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,14] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, AriIdx, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,15] <- pred_temp$y
plot.spl <- with(temp, smooth.spline(TOE, NDVI, df = 17))
pred_temp <- predict(plot.spl, hours)
spline_data[1:27,16] <- pred_temp$y

final_spline <- spline_data
final_spline
all_plants <- unique(PS5$tray.ID)
all_plants
##  [1] "34877" "34878" "34879" "34880" "34881" "34882" "34883" "34884" "34885"
## [10] "34886" "34887" "34888" "34889" "34890" "34891" "34892" "34893" "34894"
## [19] "34895" "34896" "34897" "34898" "34899" "34900" "34901" "34902" "34903"
## [28] "34904" "34905" "34906" "34907" "34908" "34909" "34910" "34911" "34912"
for(i in 2:36){
    temp <- subset(PS6, PS6$tray.ID == unique(PS6$tray.ID)[i])

   if (dim(temp)[1] > 3) {
        temp$TOE <- as.numeric(as.character(temp$TOE))
        temp <- temp[order(temp$TOE, decreasing = F),]
        spline_data[1:27,1] <- temp$tray.ID[1]
        spline_data[1:27,2] <- hours
        plot.spl <- with(temp, smooth.spline(TOE, Fv.Fm, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,3] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, Fq..Fm., df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,4] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, NPQ, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,5] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, qP, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,6] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, qN, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,7] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, qL, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,8] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, qE, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,9] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, qI, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,10] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, D.no, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,11] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, D.npq, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,12] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, npq.t., df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,13] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, ChlIdx, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,14] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, AriIdx, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,15] <- pred_temp$y
        plot.spl <- with(temp, smooth.spline(TOE, NDVI, df = 17))
        pred_temp <- predict(plot.spl, hours)
        spline_data[1:27,16] <- pred_temp$y
        final_spline <- rbind(final_spline, spline_data)
  } else {
        spline_data[1:27,1] <- temp$tray.ID[1]
        spline_data[1:27,2] <- hours
        spline_data[1:27,3] <- 0
        spline_data[1:27,4] <- 0
        spline_data[1:27,5] <- 0
        spline_data[1:27,6] <- 0
        spline_data[1:27,7] <- 0
        spline_data[1:27,8] <- 0
        spline_data[1:27,9] <- 0
        spline_data[1:27,10] <- 0
        spline_data[1:27,11] <- 0
        spline_data[1:27,12] <- 0
        spline_data[1:27,13] <- 0
        spline_data[1:27,14] <- 0
        spline_data[1:27,15] <- 0
        spline_data[1:27,16] <- 0
        final_spline <- rbind(final_spline, spline_data)
  }}
final_spline

Let’s change the collumns also to numeric - otherwise it will be tought to plot this:

final_spline2 <- final_spline
final_spline2[2:16] <- sapply(final_spline2[2:16],as.numeric)
final_spline2

Decode

Now - let’s decode all of the information into individual experiments and TrayInfos:

final_spline3 <- merge(final_spline2, decode, by = "tray.ID")
final_spline3
unique(final_spline3$TrayInfo)
## [1] "NAT"     "Control"
unique(final_spline3$PlantID)
##  [1] "Jade_01_NAT_A1_Corn_B73"          "Jade_02_Control_A1_Corn_B73"     
##  [3] "Jade_03_NAT_A1_Cowpea_UCR"        "Jade_04_Control_A1_Cowpea_UCR"   
##  [5] "Jade_05_NAT_A1_Tomato_Heinz"      "Jade_06_Control_A1_Tomato_Heinz" 
##  [7] "Jade_07_NAT_A1_Tepary_22"         "Jade_08_Control_A1_Tepary_22"    
##  [9] "Jade_09_NAT_A1_Corn_B73"          "Jade_10_Control_A1_Corn_B73"     
## [11] "Jade_11_NAT_A1_Cowpea_Suvita"     "Jade_12_Control_A1_Cowpea_Suvita"
## [13] "Jade_13_NAT_A1_Tomato_Heinz"      "Jade_14_Control_A1_Tomato_Heinz" 
## [15] "Jade_15_NAT_A1_Tepary_22"         "Jade_16_Control_A1_Tepary_22"    
## [17] "Jade_17_NAT_A1_Corn_B73"          "Jade_18_Control_A1_Corn_B73"     
## [19] "Jade_19_NAT_A1_Cowpea_ITK"        "Jade_20_Control_A1_Cowpea_ITK"   
## [21] "Jade_21_NAT_A1_Tomato_Heinz"      "Jade_22_Control_A1_Tomato_Heinz" 
## [23] "Jade_23_NAT_A1_Tepary_22"         "Jade_24_Control_A1_Tepary_22"    
## [25] "Jade_25_NAT_A1_Cowpea_UCR"        "Jade_26_Control_A1_Cowpea_UCR"   
## [27] "Jade_27_NAT_A1_Cowpea_Suvita"     "Jade_28_Control_A1_Cowpea_Suvita"
## [29] "Jade_29_NAT_A1_Cowpea_ITK"        "Jade_30_Control_A1_Cowpea_ITK"   
## [31] "Jade_31_NAT_A1_Cowpea_UCR"        "Jade_32_Control_A1_Cowpea_UCR"   
## [33] "Jade_33_NAT_A1_Cowpea_Suvita"     "Jade_34_Control_A1_Cowpea_Suvita"
## [35] "Jade_35_NAT_A1_Cowpea_ITK"        "Jade_36_Control_A1_Cowpea_ITK"

Also - since none of the recorded values are supposed to be negative - let’s clean it up:

#final_spline3 <- subset(final_spline3, final_spline3$Fv.Fm > 0)
#final_spline3 <- subset(final_spline3, final_spline3$Fq.Fm > 0)
#final_spline3 <- subset(final_spline3, final_spline3$NPQ > 0)
#final_spline3 <- subset(final_spline3, final_spline3$qP > 0)
#final_spline3 <- subset(final_spline3, final_spline3$qN > 0)
#final_spline3 <- subset(final_spline3, final_spline3$qL > 0)
#final_spline3 <- subset(final_spline3, final_spline3$qI > 0)
#final_spline3 <- subset(final_spline3, final_spline3$phiNO > 0)
#final_spline3 <- subset(final_spline3, final_spline3$phiNPQ > 0)
#final_spline3 <- subset(final_spline3, final_spline3$npq.t > 0)
#final_spline3 <- subset(final_spline3, final_spline3$ChlIdx > 0)
#final_spline3 <- subset(final_spline3, final_spline3$AriIdx > 0)
#final_spline3 <- subset(final_spline3, final_spline3$NDVI > 0)

Plotting PS2 data

Fv/Fm

library(ggsci)

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = Fv.Fm, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "Fv/Fm (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Maximum Quantum Yield of Photosystem II")
C1_lgraph
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

final_spline3
library("dplyr")
library(cowplot)

get_p_value <- function(final_spline3) {
  t.test(Fv.Fm ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_FvFm.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

Fq/Fm

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = Fq.Fm, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "Fq'/Fm'") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Quantum Yield of Photosystem II in light adapted state")
get_p_value <- function(final_spline3) {
  t.test(Fq.Fm ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_FqFm.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

NPQ

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = NPQ, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "NPQ (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Non-photochemical Quenching [(Fm-Fm’)/Fm’]")
get_p_value <- function(final_spline3) {
    t.test(NPQ ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_NPQ.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [(Fm-Fm’)/Fm’]' in
## 'mbcsToSbcs': dot substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

qP

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = qP, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "qP (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Fraction of Open Reaction Centers (puddle mode) / photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]")
get_p_value <- function(final_spline3) {
    t.test(qP ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_qP.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (puddle mode) /
## photochemical quenching [(Fm’ – Fs’)/(Fm’ – F0’)]' in 'mbcsToSbcs': dot
## substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

qN

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = qN, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "qN (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]")
get_p_value <- function(final_spline3) {
    t.test(qN ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_qN.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <93>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Non-photochemical Quenching [1 – (Fm’ – F0’)/(Fm-F0)]'
## in 'mbcsToSbcs': dot substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

qL

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = qL, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "qL (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Fraction of Open Reaction Centers (lake mode) / photochemical quenching (qP*F0’/Fs’)")
get_p_value <- function(final_spline3) {
    t.test(qL ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_qL.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fraction of Open Reaction Centers (lake mode) /
## photochemical quenching (qP*F0’/Fs’)' in 'mbcsToSbcs': dot substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

qE

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = qE, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "qE (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("fast relaxing component of NPQ (Fm*(Fm''-Fm’)/(Fm''*Fm’)")
get_p_value <- function(final_spline3) {
    t.test(qE ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_qE.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'fast relaxing component of NPQ
## (Fm*(Fm''-Fm’)/(Fm''*Fm’)' in 'mbcsToSbcs': dot substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

qI

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = qI, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "qI (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Slow relaxing component of NPQ [(Fm-Fm'')/Fm'']")
get_p_value <- function(final_spline3) {
    t.test(qI ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_qI.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

PhiNO

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = phiNO, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "ɸNO (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Quantum Yield of non-regulated energy dissipation [1/(NPQ+1+qI*Fm/F0)]")
get_p_value <- function(final_spline3) {
    t.test(phiNO ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_phiNO.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNO (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
dev.off()
## quartz_off_screen 
##                 2

PhiNPQ

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = phiNPQ, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "ɸNPQ (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Quantum Yield of NPQ (regulated energy dissipation) (1-Fq’/Fm’- ɸNO)")
get_p_value <- function(final_spline3) {
    t.test(phiNPQ ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_phiNPQ.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Quantum Yield of NPQ (regulated energy dissipation)
## (1-Fq’/Fm’- ɸNO)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <c9>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'ɸNPQ (a.u.)' in 'mbcsToSbcs': dot substituted for <b8>
dev.off()
## quartz_off_screen 
##                 2

NPQ(t)

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = npq.t, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "NPQ(t) (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Fast NPQ  4.88/(Fm’/F0’-1)-1")
get_p_value <- function(final_spline3) {
# CHANGE
    t.test(npq.t ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_NPQ(t).pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call(C_textBounds, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <e2>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <80>
## Warning in grid.Call.graphics(C_text, as.graphicsAnnot(x$label), x$x, x$y, :
## conversion failure on 'Fast NPQ 4.88/(Fm’/F0’-1)-1' in 'mbcsToSbcs': dot
## substituted for <99>
dev.off()
## quartz_off_screen 
##                 2

ChlIdx

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = ChlIdx, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "ChlIdx (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Chlorophyll Index")
get_p_value <- function(final_spline3) {
    t.test(ChlIdx ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_ChlIdx.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

AriIdx

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = AriIdx, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "AriIdx (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Anthocyanin Reflectance Index")
get_p_value <- function(final_spline3) {
    t.test(AriIdx ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

# CHANGE
pdf("Jade_NAT_202406_PS2_AriIdx.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

NDVI

C1_lgraph <- ggplot(data = final_spline3, aes(x = TOE, y = NDVI, group = tray.ID, color = TrayInfo)) 
C1_lgraph <- C1_lgraph + geom_line(alpha = 0.1) + facet_wrap(~ PlantName, ncol = 6)
C1_lgraph <- C1_lgraph + stat_summary(fun.data = mean_se, geom = "ribbon", linetype = 0, aes(group = TrayInfo), alpha = 0.3) 
C1_lgraph <- C1_lgraph + stat_summary(fun = mean, aes(group = TrayInfo), size = 0.7, geom = "line", linetype = "dashed") 
C1_lgraph <- C1_lgraph + stat_compare_means(aes(group = TrayInfo), label = "p.signif", method = "t.test", hide.ns = F) 
C1_lgraph <- C1_lgraph + labs(x = "", y = "NDVI (a.u.)") + scale_color_d3("category10") + theme(legend.position = "top") + ggtitle("Normalized Difference Vegetation Index")
get_p_value <- function(final_spline3) {
    t.test(NDVI ~ TrayInfo, data = final_spline3)$p.value
}
p_values <- final_spline3 %>%
  group_by(TOE, PlantName) %>%
  summarise(p_value = get_p_value(cur_data())) %>%
  ungroup()
## `summarise()` has grouped output by 'TOE'. You can override using the `.groups`
## argument.
p_values$LOD <- -log10(p_values$p_value)

C1_pplot <- ggplot(p_values, aes(x = TOE, y = LOD)) 
C1_pplot <- C1_pplot + geom_line() + geom_hline(yintercept = -log10(0.05), linetype = "dashed", color = "red") + facet_wrap(~ PlantName, ncol = 6)
C1_pplot <- C1_pplot + labs(x = "Hours Of Imaging", y = "-log10(p-value)") 
C1_pplot <- C1_pplot + theme_minimal() + theme_bw() + theme(strip.text = element_blank(), strip.background = element_blank()) 

plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle

pdf("Jade_NAT_202406_PS2_NDVI.pdf", height = 5, width = 20)
plot_grid(C1_lgraph, C1_pplot, rel_heights = c(4,1), ncol = 1, align = "v", axis = "l")
## Warning: Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Computation failed in `stat_compare_means()`
## Caused by error in `purrr::map()`:
## ℹ In index: 1.
## Caused by error in `.check_npc_coord()`:
## ! '*.npc coord for x axis should be either a numeric value in [0-1] or a character strings including one of right, left, center, centre, middle
dev.off()
## quartz_off_screen 
##                 2

OK - that’s all - but just before we finish this - let’s save all of the data:

write.csv(final_spline3, "NAT.Jade202406.PS2.csv", row.names = F)