check file name
[sgn.git] / mason / breeders_toolbox / drone_imagery / drone_imagery_analysis.mas
blob2ac6ec128aaa67f26de71490241b55caa028a0e8
1 <%args>
2 </%args>
4 <!--button class='btn btn-success' style='margin:3px;float:right' id='drone_imagery_calculate_statistics_link'>Drone Imagery Statistics</button-->
6 <div class="modal fade" id="drone_imagery_calculate_statistics_dialog" name="drone_imagery_calculate_statistics_dialog" tabindex="-1" role="dialog" aria-labelledby="droneImageryCalculateStatisticsDialog" data-backdrop="static">
7   <div class="modal-dialog modal-xl" role="document">
8     <div class="modal-content">
9       <div class="modal-header">
10         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
11         <h4 class="modal-title" id="droneImageryCalculateStatisticsDialog">Calculate statistics on aerial image phenotypes</h4>
12       </div>
13       <div class="modal-body">
14         <div class="container-fluid">
16             <&| /util/workflow.mas, id=> "drone_imagery_calculate_statistics_workflow" &>
17                 <&| /util/workflow.mas:step, title=> "Intro" &>
18                     <& /page/page_title.mas, title=>"Select the type of analysis to perform" &>
19                     <center>
20                     <button class="btn btn-default" id="drone_imagery_calculate_statistics_intro_single_trial_select_step">Single Trial Field Analysis</button>
21                     </center>
22                     <br/>
23                     <!--center>
24                     <button class="btn btn-default" id="drone_imagery_calculate_statistics_intro_single_trial_multiseason_select_step">Single Trial Multi-Season Field Analysis</button>
25                     </center-->
26                 </&>
27                 <&| /util/workflow.mas:step, title=> "Field Trial" &>
28                     <& /page/page_title.mas, title=>"Select the field trial you are interested in. Select only one." &>
29                     <br/><br/>
30                     <form class="form-horizontal">
31                         <div class="form-group">
32                             <label class="col-sm-3 control-label">Field Trial(s): </label>
33                             <div class="col-sm-9" >
34                                 <div id="drone_imagery_calculate_statistics_trial_select_div"></div>
35                             </div>
36                         </div>
37                     </form>
38                     <center>
39                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_field_trial_select_step">Go to Next Step</button>
40                     </center>
41                 </&>
42                 <&| /util/workflow.mas:step, title=> "Trait Selection" &>
43                     <& /page/page_title.mas, title=>"Select the observation variable(s) you are interested in" &>
44                     <br/><br/>
45                     <form class="form-horizontal">
46                         <div class="form-group">
47                             <label class="col-sm-3 control-label">Observation Variable Type: </label>
48                             <div class="col-sm-9" >
49                                 <select class="form-control" id="drone_imagery_calculate_statistics_select_observation_variable_type">
50                                     <option value="time_ontology">Time Series</option>
51                                     <option value="">Single Trait</option>
52                                 </select>
53                             </div>
54                         </div>
55                         <div class="form-group">
56                             <label class="col-sm-3 control-label">Observation Variables Phenotyped in the Selected Field Trial: </label>
57                             <div class="col-sm-9" >
58                                 <div id="drone_imagery_calculate_statistics_trait_select_div"></div>
59                             </div>
60                         </div>
61                     </form>
62                     <center>
63                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_trait_select_step">Go to Next Step</button>
64                     </center>
65                 </&>
66                 <&| /util/workflow.mas:step, title=> "Statistics" &>
67                     <& /page/page_title.mas, title=>"Select statistics to calculate" &>
69                     <select class="form-control" id="drone_imagery_calculate_statistics_select_input">
70                         <option value="">Select A Model</option>
71                         <!--option value="lmer_germplasmname_replicate">LMER BLUPs y~replicate+1|Germplasm. Univariate genetic effects</option-->
73                         <option value="sommer_grm_genetic_blups">Sommer GBLUPs Y~replicate+GRM. Multivariate genetic effects using GRM</option>
74                         <option value="sommer_grm_spatial_genetic_blups">Sommer Spatial GBLUPs Y~replicate+GRM+spatial. Multivariate genetic + 2Dspl spatial effects</option>
76                         <!--option value="blupf90_grm_random_regression_dap_blups">BLUPf90 GBLUPs Y~replicate+GRM+temporal random regression using days after planting. Multivariate genetic + permanent environment effects</option>
77                         <option value="blupf90_grm_random_regression_gdd_blups">BLUPf90 GBLUPs Y~replicate+GRM+temporal random regression using growing degree days. Multivariate genetic + permanent environment effects</option-->
79                         <option value="airemlf90_grm_random_regression_dap_blups">AIREMLf90 GBLUPs Y~replicate+GRM+temporal random regression using days after planting. Multivariate genetic + permanent environment effects</option>
80                         <option value="airemlf90_grm_random_regression_gdd_blups">AIREMLf90 GBLUPs Y~replicate+GRM+temporal random regression using growing degree days. Multivariate genetic + permanent environment effects</option>
82                         <!--option value="sommer_grm_temporal_random_regression_dap_genetic_blups">Sommer Temporal Random Regression GBLUPs Y~replicate+GRM+LegendrePoly. Multivariate genetic + permanent environment effects using days after planting</option>
83                         <option value="sommer_grm_temporal_random_regression_gdd_genetic_blups">Sommer Temporal Random Regression GBLUPs Y~replicate+GRM+LegendrePoly. Multivariate genetic + permanent environment effects using growing degree days</option>
84                         <option value="sommer_grm_genetic_only_random_regression_dap_genetic_blups">Sommer Random Regression GBLUPs Y~replicate+GRM+LegendrePoly. Multivariate genetic effects using days after planting</option>
85                         <option value="sommer_grm_genetic_only_random_regression_gdd_genetic_blups">Sommer Random Regression GBLUPs Y~replicate+GRM+LegendrePoly. Multivariate genetic effects using growing degree days</option-->
87                         <!--option value="marss_germplasmname_block">MARSS prediction for each germplasm</option-->
88                     </select>
90                     <div id="drone_imagery_calculate_statistics_relationship_matrix_type_div" style="display:none">
91                         <hr>
92                         <div class="form-horizontal">
93                             <div class="form-group">
94                                 <label class="col-sm-3 control-label">Relationship Matrix Type: </label>
95                                 <div class="col-sm-9" >
96                                     <select class="form-control" id="drone_imagery_calculate_statistics_relationship_matrix_type_select_div">
97                                         <option value="">Identity</option>
98                                         <option value="htp_phenotypes">High-throughput Phenotyping Data</option>
99                                         <option value="genotypes">Genotyping Data</option>
100                                     </select>
101                                 </div>
102                             </div>
103                         </div>
104                     </div>
106                     <div id="drone_imagery_calculate_statistics_genotyping_protocol_div" class="well well-sm" style="display:none">
107                         <div class="form-horizontal">
108                             <div class="form-group">
109                                 <label class="col-sm-3 control-label">Genotyping Protocol To Calculate Genomic Relationship Matrix (optional. If none selected, an identity matrix is used): </label>
110                                 <div class="col-sm-9" >
111                                     <div id="drone_imagery_calculate_statistics_genotyping_protocol_select_div"></div>
112                                 </div>
113                             </div>
114                             <div class="form-group">
115                                 <label class="col-sm-3 control-label">Compute Genotypes From Parents: </label>
116                                 <div class="col-sm-9" >
117                                     <select class="form-control" id="drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select">
118                                         <option value="no">No</option>
119                                         <option value="yes">Yes</option>
120                                     </select>
121                                 </div>
122                             </div>
123                             <div class="form-group" id="drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select_div" style="display:none">
124                                 <label class="col-sm-3 control-label">Use Parental Relationship Matrices: </label>
125                                 <div class="col-sm-9" >
126                                     <select class="form-control" id="drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select">
127                                         <option value="no">No</option>
128                                         <option value="yes">Yes</option>
129                                     </select>
130                                 </div>
131                             </div>
132                             <div class="form-group" id="drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div" style="display:none">
133                                 <label class="col-sm-3 control-label">Include Pedigree Info Into Relationship Matrix: </label>
134                                 <div class="col-sm-9" >
135                                     <select class="form-control" id="drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select">
136                                         <option value="no">No</option>
137                                         <option value="yes">Yes</option>
138                                     </select>
139                                 </div>
140                             </div>
141                         </div>
142                     </div>
144                     <div id="drone_imagery_calculate_statistics_htp_phenotypes_rel_matrix_div" class="well well-sm" style="display:none">
145                         <div class="form-horizontal">
146                             <div class="form-group">
147                                 <label class="col-sm-3 control-label">How to calculate the relationship matrix with high-throughput phenotypes: </label>
148                                 <div class="col-sm-9" >
149                                     <select class="form-control" id="drone_image_calculate_statistics_htp_phenotypes_rel_matrix_select">
150                                         <option value="correlations">Correlations</option>
151                                         <option value="blues">BLUEs</option>
152                                     </select>
153                                 </div>
154                             </div>
155                             <div class="form-group">
156                                 <label class="col-sm-3 control-label">Time Points to Use: </label>
157                                 <div class="col-sm-9" >
158                                     <select class="form-control" id="drone_image_calculate_statistics_htp_phenotypes_rel_matrix_times_select">
159                                         <option value="all">All Available</option>
160                                         <option value="latest_trait">Up to the latest date selected in traits</option>
161                                         <option value="vegetative" disabled>Vegetative Growth Stage</option>
162                                         <option value="reproductive" disabled>Reproductive Growth Stage</option>
163                                         <option value="mature" disabled>Mature Growth Stage</option>
164                                     </select>
165                                 </div>
166                             </div>
167                             <div class="form-group" id="drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select_div" style="display:none">
168                                 <label class="col-sm-3 control-label">HTP BLUEs Inversion Tolerance: </label>
169                                 <div class="col-sm-9" >
170                                     <select class="form-control" id="drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select">
171                                         <option value="0.00001">0.00001</option>
172                                         <option value="0.0001">0.0001</option>
173                                         <option value="0.001">0.001</option>
174                                         <option value="0.01">0.01</option>
175                                         <option value="0.1">0.1</option>
176                                         <option value="0.5">0.5</option>
177                                     </select>
178                                 </div>
179                             </div>
180                         </div>
181                     </div>
183                     <div id="drone_image_calculate_statistics_use_area_under_curve_select_div" style="display:none">
184                         <hr>
185                         <div class="form-horizontal">
186                             <div class="form-group">
187                                 <label class="col-sm-3 control-label">Use Cumulative Area-Under-Curve Phenotype in Analysis: </label>
188                                 <div class="col-sm-9" >
189                                     <select class="form-control" id="drone_image_calculate_statistics_use_area_under_curve_select">
190                                         <option value="no">No</option>
191                                         <option value="yes">Yes</option>
192                                     </select>
193                                 </div>
194                             </div>
195                         </div>
196                     </div>
198                     <div id="drone_image_calculate_statistics_inversion_tolerance_select_div" style="display:none">
199                         <hr>
200                         <div class="form-horizontal">
201                             <div class="form-group">
202                                 <label class="col-sm-3 control-label">Inversion Tolerance: </label>
203                                 <div class="col-sm-9" >
204                                     <select class="form-control" id="drone_image_calculate_statistics_tolparinv_select">
205                                         <option value="0.000001">0.000001</option>
206                                         <option value="0.00001">0.00001</option>
207                                         <option value="0.0001">0.0001</option>
208                                         <option value="0.001">0.001</option>
209                                         <option value="0.01">0.01</option>
210                                         <option value="0.05">0.05</option>
211                                         <option value="0.08">0.08</option>
212                                         <option value="0.1">0.1</option>
213                                         <option value="0.2">0.2</option>
214                                         <option value="0.5">0.5</option>
215                                     </select>
216                                 </div>
217                             </div>
218                         </div>
219                     </div>
221                     <div id="drone_imagery_calculate_statistics_legendre_polynomial_div" style="display:none">
222                         <hr>
223                         <div class="form-horizontal">
224                             <div class="form-group">
225                                 <label class="col-sm-3 control-label">Legendre Polynomial Order: </label>
226                                 <div class="col-sm-9" >
227                                     <select class="form-control" id="drone_image_calculate_statistics_legendre_order_number_select">
228                                         <option value="1">1</option>
229                                         <option value="2">2</option>
230                                         <option value="3">3</option>
231                                         <option value="4">4</option>
232                                         <option value="5">5</option>
233                                     </select>
234                                 </div>
235                             </div>
236                         </div>
237                     </div>
239                     <div id="drone_imagery_calculate_statistics_marss_div" style="display:none">
240                         $$x_t = Bx_{t-1} + u + w_t\\ w_t \sim MVN(0,Q)\\ y_t = Zx_t + a + v_t\\ v_t \sim MVN(0,R)\\ x_0 \sim MVN(\pi, \Lambda)$$
241                         <hr>
242                         <select class="form-control" id="drone_imagery_calculate_statistics_select_marss" name="drone_imagery_calculate_statistics_select_marss">
243                             <option value="marss_predict_last_time_point">Predict Last Time Point</option>
244                             <option value="marss_predict_last_two_time_points">Predict Last Two Time Point</option>
245                         </select>
246                     </div>
248                     <div id="drone_imagery_calculate_statistics_permanent_env_structure_div" style="display:none">
249                         <hr>
250                         <div class="form-horizontal">
251                             <div class="form-group">
252                                 <label class="col-sm-3 control-label">Permanent Environment Structure: </label>
253                                 <div class="col-sm-9" >
254                                     <select class="form-control" id="drone_image_calculate_statistics_permanent_env_structure_select">
255                                         <option value="identity">Identity Matrix</option>
256                                         <option value="phenotype_correlation">Phenotype Correlation Matrix</option>
257                                         <option value="euclidean_rows_and_columns">Euclidean Distance From Rows and Columns Matrix</option>
258                                     </select>
259                                 </div>
260                             </div>
261                         </div>
263                         <div id="drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div" style="display:none">
264                             <div class="form-horizontal">
265                                 <div class="form-group">
266                                     <label class="col-sm-3 control-label">Phenotypes For Correlation Matrix: </label>
267                                     <div class="col-sm-9" >
268                                         <div id="drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_select_div"></div>
269                                     </div>
270                                 </div>
271                             </div>
272                         </div>
274                     </div>
276                     <br/><br/>
277                     <center>
278                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_select_step">Submit</button>
279                     </center>
280                 </&>
281                 <&| /util/workflow.mas:step, title=> "Results" &>
282                     <& /page/page_title.mas, title=>"Statistics results" &>
284                     <hr>
285                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual" style="display:none">Go To Save Analysis Results For Genetic and Environment BLUPS and Residuals</button>
286                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_blups_genetic" style="display:none">Go To Save Analysis Results For Genetic BLUPS</button>
287                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_blups_spatial" style="display:none">Go To Save Analysis Results For Spatial BLUPS</button>
288                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_blups_pe" style="display:none">Go To Save Analysis Results For Permanent Environmental BLUPS</button>
289                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_residuals" style="display:none">Go To Save Analysis Results For Residuals</button>
290                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_analysis_save_fitted" style="display:none">Go To Save Analysis Results For Fitted Values</button>
291                     <hr>
293                     <div id ="drone_imagery_calculate_statistics_result_div">
294                     </div>
295                 </&>
296             </&>
298         </div>
300       </div>
301       <div class="modal-footer">
302         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
303       </div>
304     </div>
305   </div>
306 </div>
308 <div class="modal fade" id="drone_imagery_calculate_statistics_single_trial_multiseason_dialog" name="drone_imagery_calculate_statistics_single_trial_multiseason_dialog" tabindex="-1" role="dialog" aria-labelledby="droneImageryCalculateStatisticsSingleTrialMultiSeasonDialog" data-backdrop="static">
309   <div class="modal-dialog modal-xl" role="document">
310     <div class="modal-content">
311       <div class="modal-header">
312         <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
313         <h4 class="modal-title" id="droneImageryCalculateStatisticsSingleTrialMultiSeasonDialog">Calculate statistics on aerial image phenotypes</h4>
314       </div>
315       <div class="modal-body">
316         <div class="container-fluid">
318             <&| /util/workflow.mas, id=> "drone_imagery_calculate_statistics_single_trial_multiseason_workflow" &>
319                 <&| /util/workflow.mas:step, title=> "Field Trial" &>
320                     <& /page/page_title.mas, title=>"Select the field trial you are interested in. Select only one." &>
321                     <br/><br/>
322                     <form class="form-horizontal">
323                         <div class="form-group">
324                             <label class="col-sm-3 control-label">Field Trial(s): </label>
325                             <div class="col-sm-9" >
326                                 <div id="drone_imagery_calculate_statistics_multiseason_trial_select_div"></div>
327                             </div>
328                         </div>
329                     </form>
330                     <center>
331                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_field_trial_select_step">Go to Next Step</button>
332                     </center>
333                 </&>
334                 <&| /util/workflow.mas:step, title=> "Trait Selection" &>
335                     <& /page/page_title.mas, title=>"Select the observation variable(s) you are interested in" &>
336                     <br/><br/>
337                     <form class="form-horizontal">
338                         <div class="form-group">
339                             <label class="col-sm-3 control-label">Observation Variables Phenotyped in the Selected Field Trial: </label>
340                             <div class="col-sm-9" >
341                                 <div id="drone_imagery_calculate_statistics_multiseason_trait_select_div"></div>
342                             </div>
343                         </div>
344                     </form>
345                     <center>
346                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_trait_select_step">Go to Next Step</button>
347                     </center>
348                 </&>
349                 <&| /util/workflow.mas:step, title=> "Statistics" &>
350                     <& /page/page_title.mas, title=>"Select statistics to calculate" &>
352                     <select class="form-control" id="drone_imagery_calculate_statistics_multiseason_select_input">
353                         <option value="">Select A Model</option>
355                         <option value="sommer_grm_genetic_blups">Sommer GBLUPs Y~replicate+GRM. Multivariate genetic effects using GRM</option>
356                         <option value="sommer_grm_spatial_genetic_blups">Sommer Spatial GBLUPs Y~replicate+GRM+spatial. Multivariate genetic + 2Dspl spatial effects</option>
357                     </select>
359                     <hr>
360                     <div class="form-horizontal">
361                         <div class="form-group">
362                             <label class="col-sm-3 control-label">Relationship Matrix Type: </label>
363                             <div class="col-sm-9" >
364                                 <select class="form-control" id="drone_imagery_calculate_statistics_multiseason_relationship_matrix_type_select_div">
365                                     <option value="">Identity</option>
366                                     <option value="htp_phenotypes">High-throughput Phenotyping Data</option>
367                                     <option value="genotypes">Genotyping Data</option>
368                                 </select>
369                             </div>
370                         </div>
371                     </div>
373                     <div id="drone_imagery_calculate_statistics_multiseason_genotyping_protocol_div" class="well well-sm" style="display:none">
374                         <div class="form-horizontal">
375                             <div class="form-group">
376                                 <label class="col-sm-3 control-label">Genotyping Protocol To Calculate Genomic Relationship Matrix (optional. If none selected, an identity matrix is used): </label>
377                                 <div class="col-sm-9" >
378                                     <div id="drone_imagery_calculate_statistics_multiseason_genotyping_protocol_select_div"></div>
379                                 </div>
380                             </div>
381                             <div class="form-group">
382                                 <label class="col-sm-3 control-label">Compute Genotypes From Parents: </label>
383                                 <div class="col-sm-9" >
384                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_genotyping_protocol_compute_from_parents_select">
385                                         <option value="no">No</option>
386                                         <option value="yes">Yes</option>
387                                     </select>
388                                 </div>
389                             </div>
390                             <div class="form-group" id="drone_image_calculate_statistics_multiseason_genotyping_protocol_use_parental_grms_select_div" style="display:none">
391                                 <label class="col-sm-3 control-label">Use Parental Relationship Matrices: </label>
392                                 <div class="col-sm-9" >
393                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_genotyping_protocol_use_parental_grms_select">
394                                         <option value="no">No</option>
395                                         <option value="yes">Yes</option>
396                                     </select>
397                                 </div>
398                             </div>
399                             <div class="form-group" id="drone_image_calculate_statistics_multiseason_genotyping_protocol_include_pedigree_select_div" style="display:none">
400                                 <label class="col-sm-3 control-label">Include Pedigree Info Into Relationship Matrix: </label>
401                                 <div class="col-sm-9" >
402                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_genotyping_protocol_include_pedigree_select">
403                                         <option value="no">No</option>
404                                         <option value="yes">Yes</option>
405                                     </select>
406                                 </div>
407                             </div>
408                         </div>
409                     </div>
411                     <div id="drone_imagery_calculate_statistics_multiseason_htp_phenotypes_rel_matrix_div" class="well well-sm" style="display:none">
412                         <div class="form-horizontal">
413                             <div class="form-group">
414                                 <label class="col-sm-3 control-label">How to calculate the relationship matrix with high-throughput phenotypes: </label>
415                                 <div class="col-sm-9" >
416                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_htp_phenotypes_rel_matrix_select">
417                                         <option value="correlations">Correlations</option>
418                                         <option value="blues">BLUEs</option>
419                                     </select>
420                                 </div>
421                             </div>
422                             <div class="form-group">
423                                 <label class="col-sm-3 control-label">Time Points to Use: </label>
424                                 <div class="col-sm-9" >
425                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_htp_phenotypes_rel_matrix_times_select">
426                                         <option value="all">All Available</option>
427                                         <option value="latest_trait">Up to the latest date selected in traits</option>
428                                         <option value="vegetative" disabled>Vegetative Growth Stage</option>
429                                         <option value="reproductive" disabled>Reproductive Growth Stage</option>
430                                         <option value="mature" disabled>Mature Growth Stage</option>
431                                     </select>
432                                 </div>
433                             </div>
434                             <div class="form-group" id="drone_image_calculate_statistics_multiseason_htp_phenotypes_rel_matrix_inversion_select_div" style="display:none">
435                                 <label class="col-sm-3 control-label">HTP BLUEs Inversion Tolerance: </label>
436                                 <div class="col-sm-9" >
437                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_htp_phenotypes_rel_matrix_inversion_select">
438                                         <option value="0.00001">0.00001</option>
439                                         <option value="0.0001">0.0001</option>
440                                         <option value="0.001">0.001</option>
441                                         <option value="0.01">0.01</option>
442                                         <option value="0.1">0.1</option>
443                                         <option value="0.5">0.5</option>
444                                     </select>
445                                 </div>
446                             </div>
447                         </div>
448                     </div>
450                     <hr>
451                     <div class="form-horizontal">
452                         <div class="form-group">
453                             <label class="col-sm-3 control-label">Inversion Tolerance: </label>
454                             <div class="col-sm-9" >
455                                 <select class="form-control" id="drone_image_calculate_statistics_multiseason_tolparinv_select">
456                                     <option value="0.000001">0.000001</option>
457                                     <option value="0.00001">0.00001</option>
458                                     <option value="0.0001">0.0001</option>
459                                     <option value="0.001">0.001</option>
460                                     <option value="0.01">0.01</option>
461                                     <option value="0.05">0.05</option>
462                                     <option value="0.08">0.08</option>
463                                     <option value="0.1">0.1</option>
464                                     <option value="0.2">0.2</option>
465                                     <option value="0.5">0.5</option>
466                                 </select>
467                             </div>
468                         </div>
469                     </div>
471                     <div id="drone_imagery_calculate_statistics_multiseason_legendre_polynomial_div" style="display:none">
472                         <hr>
473                         <div class="form-horizontal">
474                             <div class="form-group">
475                                 <label class="col-sm-3 control-label">Legendre Polynomial Order: </label>
476                                 <div class="col-sm-9" >
477                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_legendre_order_number_select">
478                                         <option value="1">1</option>
479                                         <option value="2">2</option>
480                                         <option value="3">3</option>
481                                         <option value="4">4</option>
482                                         <option value="5">5</option>
483                                     </select>
484                                 </div>
485                             </div>
486                         </div>
487                     </div>
489                     <div id="drone_imagery_calculate_statistics_multiseason_permanent_env_structure_div" style="display:none">
490                         <hr>
491                         <div class="form-horizontal">
492                             <div class="form-group">
493                                 <label class="col-sm-3 control-label">Permanent Environment Structure: </label>
494                                 <div class="col-sm-9" >
495                                     <select class="form-control" id="drone_image_calculate_statistics_multiseason_permanent_env_structure_select">
496                                         <option value="identity">Identity Matrix</option>
497                                         <option value="phenotype_correlation">Phenotype Correlation Matrix</option>
498                                         <option value="euclidean_rows_and_columns">Euclidean Distance From Rows and Columns Matrix</option>
499                                     </select>
500                                 </div>
501                             </div>
502                         </div>
504                         <div id="drone_imagery_calculate_statistics_multiseason_permanent_env_structure_phenotype_correlation_div" style="display:none">
505                             <div class="form-horizontal">
506                                 <div class="form-group">
507                                     <label class="col-sm-3 control-label">Phenotypes For Correlation Matrix: </label>
508                                     <div class="col-sm-9" >
509                                         <div id="drone_imagery_calculate_statistics_multiseason_permanent_env_structure_phenotype_correlation_select_div"></div>
510                                     </div>
511                                 </div>
512                             </div>
513                         </div>
515                     </div>
517                     <br/><br/>
518                     <center>
519                     <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_select_step">Submit</button>
520                     </center>
521                 </&>
522                 <&| /util/workflow.mas:step, title=> "Results" &>
523                     <& /page/page_title.mas, title=>"Statistics results" &>
525                     <div id ="drone_imagery_calculate_statistics_multiseason_result_div">
526                     </div>
527                 </&>
528             </&>
530         </div>
532       </div>
533       <div class="modal-footer">
534         <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
535       </div>
536     </div>
537   </div>
538 </div>
540 <script>
542 jQuery(document).ready(function() {
544     //
545     // Calculate statistics
546     //
548     var manage_drone_imagery_calculate_statistics_field_trial_id_array = undefined;
549     var manage_drone_imagery_calculate_statistics_field_trial_id_string = "";
550     var manage_drone_imagery_calculate_statistics_observation_variable_type;
551     var manage_drone_imagery_calculate_statistics_trait_ids = [];
552     var manage_drone_imagery_calculate_statistics_trait_names = [];
553     var manage_drone_imagery_calculate_statistics_accession_names = [];
554     var manage_drone_imagery_calculate_statistics_plot_names = [];
555     var manage_drone_imagery_calculate_statistics_select = '';
556     var manage_drone_imagery_calculate_statistics_phenotype_training_file;
557     var manage_drone_imagery_calculate_statistics_grm_training_file;
558     var manage_drone_imagery_calculate_statistics_response = {};
560     var manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_array = undefined;
561     var manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_string = "";
562     var manage_drone_imagery_calculate_statistics_multiseason_trait_ids = [];
563     var manage_drone_imagery_calculate_statistics_multiseason_trait_names = [];
564     var manage_drone_imagery_calculate_statistics_multiseason_accession_names = [];
565     var manage_drone_imagery_calculate_statistics_multiseason_plot_names = [];
566     var manage_drone_imagery_calculate_statistics_multiseason_select = '';
567     var manage_drone_imagery_calculate_statistics_multiseason_phenotype_training_file;
568     var manage_drone_imagery_calculate_statistics_multiseason_grm_training_file;
569     var manage_drone_imagery_calculate_statistics_multiseason_response = {};
571     jQuery('#drone_imagery_calculate_statistics_link').click(function(){
572         get_select_box('trials', 'drone_imagery_calculate_statistics_trial_select_div', { 'name' : 'drone_imagery_calculate_statistics_field_trial_id', 'id' : 'drone_imagery_calculate_statistics_field_trial_id', 'empty':1, 'multiple':1 });
574         get_select_box('trials', 'drone_imagery_calculate_statistics_multiseason_trial_select_div', { 'name' : 'drone_imagery_calculate_statistics_multiseason_field_trial_id', 'id' : 'drone_imagery_calculate_statistics_multiseason_field_trial_id', 'empty':1, 'multiple':1 });
576         jQuery('#drone_imagery_calculate_statistics_dialog').modal('show');
577     });
579     jQuery('#drone_imagery_calculate_statistics_intro_single_trial_multiseason_select_step').click(function(){
580         jQuery('#drone_imagery_calculate_statistics_single_trial_multiseason_dialog').modal('show');
581     });
583     jQuery('#drone_imagery_calculate_statistics_intro_single_trial_select_step').click(function(){
584         Workflow.complete("#drone_imagery_calculate_statistics_intro_single_trial_select_step");
585         Workflow.focus('#drone_imagery_calculate_statistics_workflow', 1);
586     });
588     jQuery('#drone_imagery_calculate_statistics_select_observation_variable_type').change(function(){
589         manage_drone_imagery_calculate_statistics_observation_variable_type = jQuery('#drone_imagery_calculate_statistics_select_observation_variable_type').val();
590         if (manage_drone_imagery_calculate_statistics_observation_variable_type == 'time_ontology') {
591             get_select_box('traits', 'drone_imagery_calculate_statistics_trait_select_div', { 'name' : 'drone_imagery_calculate_statistics_trait_id_select', 'id' : 'drone_imagery_calculate_statistics_trait_id_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_field_trial_id_string, 'stock_type':'plot', 'contains_composable_cv_type':manage_drone_imagery_calculate_statistics_observation_variable_type, 'select_format':'component_table_select' });
592         }
593         else {
594             get_select_box('traits', 'drone_imagery_calculate_statistics_trait_select_div', { 'name' : 'drone_imagery_calculate_statistics_trait_id_select', 'id' : 'drone_imagery_calculate_statistics_trait_id_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_field_trial_id_string, 'stock_type':'plot', 'contains_composable_cv_type':manage_drone_imagery_calculate_statistics_observation_variable_type });
595         }
596     });
598     jQuery('#drone_imagery_calculate_statistics_field_trial_select_step').click(function(){
599         manage_drone_imagery_calculate_statistics_field_trial_id_array = undefined;
600         manage_drone_imagery_calculate_statistics_field_trial_id_string = "";
601         manage_drone_imagery_calculate_statistics_field_trial_id_array = jQuery('#drone_imagery_calculate_statistics_field_trial_id').val();
603         if (manage_drone_imagery_calculate_statistics_field_trial_id_array.length > 1) {
604             alert('Please only select a single field trial for now!');
605             return false;
606         }
608         manage_drone_imagery_calculate_statistics_field_trial_id_string = manage_drone_imagery_calculate_statistics_field_trial_id_array.join(",");
609         manage_drone_imagery_calculate_statistics_observation_variable_type = jQuery('#drone_imagery_calculate_statistics_select_observation_variable_type').val();
610         if (manage_drone_imagery_calculate_statistics_field_trial_id_string == '') {
611             alert('Please select a field trial first!');
612         } else {
613             if (manage_drone_imagery_calculate_statistics_observation_variable_type == 'time_ontology') {
614                 get_select_box('traits', 'drone_imagery_calculate_statistics_trait_select_div', { 'name' : 'drone_imagery_calculate_statistics_trait_id_select', 'id' : 'drone_imagery_calculate_statistics_trait_id_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_field_trial_id_string, 'stock_type':'plot', 'contains_composable_cv_type':manage_drone_imagery_calculate_statistics_observation_variable_type, 'select_format':'component_table_select' });
615             }
616             else {
617                 get_select_box('traits', 'drone_imagery_calculate_statistics_trait_select_div', { 'name' : 'drone_imagery_calculate_statistics_trait_id_select', 'id' : 'drone_imagery_calculate_statistics_trait_id_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_field_trial_id_string, 'stock_type':'plot', 'contains_composable_cv_type':manage_drone_imagery_calculate_statistics_observation_variable_type });
618             }
620             get_select_box('traits', 'drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_select_div', { 'name' : 'drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_select', 'id' : 'drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_field_trial_id_string, 'stock_type':'plot' });
622             Workflow.complete("#drone_imagery_calculate_statistics_field_trial_select_step");
623             Workflow.focus('#drone_imagery_calculate_statistics_workflow', 2);
624         }
625         return false;
626     });
628     jQuery('#drone_imagery_calculate_statistics_multiseason_field_trial_select_step').click(function(){
629         manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_array = undefined;
630         manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_string = "";
631         manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_array = jQuery('#drone_imagery_calculate_statistics_multiseason_field_trial_id').val();
633         if (manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_array.length > 1) {
634             alert('Please only select a single field trial for now!');
635             return false;
636         }
638         manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_string = manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_array.join(",");
640         get_select_box('traits', 'drone_imagery_calculate_statistics_multiseason_trait_select_div', { 'name' : 'drone_imagery_calculate_statistics_multiseason_trait_id_select', 'id' : 'drone_imagery_calculate_statistics_multiseason_trait_id_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_string, 'stock_type':'plot', 'contains_composable_cv_type':'time_ontology', 'select_format':'component_table_multiseason_select' });
642         get_select_box('traits', 'drone_imagery_calculate_statistics_multiseason_permanent_env_structure_phenotype_correlation_select_div', { 'name' : 'drone_imagery_calculate_statistics_multiseason_permanent_env_structure_phenotype_correlation_select', 'id' : 'drone_imagery_calculate_statistics_multiseason_permanent_env_structure_phenotype_correlation_select', 'empty':1, 'multiple':1, 'size': 20, 'trial_ids':manage_drone_imagery_calculate_statistics_multiseason_field_trial_id_string, 'stock_type':'plot' });
644         Workflow.complete("#drone_imagery_calculate_statistics_multiseason_field_trial_select_step");
645         Workflow.focus('#drone_imagery_calculate_statistics_single_trial_multiseason_workflow', 2);
646     });
648     jQuery('#drone_imagery_calculate_statistics_trait_select_step').click(function(){
649         get_select_box('genotyping_protocol', 'drone_imagery_calculate_statistics_genotyping_protocol_select_div', { 'name' : 'drone_image_calculate_statistics_genotyping_protocol_select', 'id' : 'drone_image_calculate_statistics_genotyping_protocol_select', 'empty':1 });
651         manage_drone_imagery_calculate_statistics_trait_ids = [];
653         if (manage_drone_imagery_calculate_statistics_observation_variable_type == 'time_ontology') {
654             jQuery('input[name="drone_imagery_calculate_statistics_trait_id_select"]').each(function() {
655                 if (this.checked){
656                     manage_drone_imagery_calculate_statistics_trait_ids.push(jQuery(this).val());
657                 }
658             });
659         }
660         else {
661             manage_drone_imagery_calculate_statistics_trait_ids = jQuery('#drone_imagery_calculate_statistics_trait_id_select').val();
662             if (manage_drone_imagery_calculate_statistics_trait_ids == null || manage_drone_imagery_calculate_statistics_trait_ids == undefined) {
663                 alert('Please select at least one observation variable!');
664                 return false;
665             }
666         }
668         if (manage_drone_imagery_calculate_statistics_trait_ids.length < 1){
669             alert('Please select at least one observation variable!');
670         } else {
671             Workflow.complete("#drone_imagery_calculate_statistics_trait_select_step");
672             Workflow.focus('#drone_imagery_calculate_statistics_workflow', 3);
673         }
674         return false;
675     });
677     jQuery('#drone_imagery_calculate_statistics_select_input').change(function(){
678         jQuery("#drone_imagery_calculate_statistics_relationship_matrix_type_select_div").val('').change();
679         jQuery("#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select").val('no').change();
681         manage_drone_imagery_calculate_statistics_select = jQuery('#drone_imagery_calculate_statistics_select_input').val();
682         if (manage_drone_imagery_calculate_statistics_select == 'marss_germplasmname_block') {
683             jQuery('#drone_imagery_calculate_statistics_marss_div').show();
684             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').hide();
685             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
686             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
687             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').hide();
688             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
689             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
690             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
691             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
692             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').hide();
693             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
694             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').hide();
695             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').hide();
696         }
697         else if (manage_drone_imagery_calculate_statistics_select == 'lmer_germplasmname_replicate') {
698             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
699             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').hide();
700             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
701             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
702             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').show();
703             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
704             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
705             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
706             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
707             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').hide();
708             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
709             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').hide();
710             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').hide();
711         }
712         else if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
713             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
714             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').show();
715             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
716             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').show();
717             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').hide();
718             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
719             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
720             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
721             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
722             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').hide();
723             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
724             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').hide();
725             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').show();
726         }
727         else if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups' || manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
728             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
729             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').show();
730             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
731             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
732             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').show();
733             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
734             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').show();
735             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
736             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
737             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').show();
738             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
739             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').show();
740             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').show();
741         }
742         else if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_dap_genetic_blups' || manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_gdd_genetic_blups') {
743             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
744             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').show();
745             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
746             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
747             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').show();
748             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
749             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
750             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
751             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
752             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').show();
753             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
754             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').show();
755             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').show();
756         }
757         else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
758             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
759             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').show();
760             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
761             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').show();
762             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').hide();
763             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
764             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
765             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
766             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
767             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').show();
768             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').show();
769             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').show();
770             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').show();
771         }
772         else if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_blups') {
773             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
774             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').show();
775             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
776             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
777             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').show();
778             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
779             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
780             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
781             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
782             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').hide();
783             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
784             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').hide();
785             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').show();
786         }
787         else {
788             jQuery('#drone_imagery_calculate_statistics_marss_div').hide();
789             jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_div').hide();
790             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
791             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').hide();
792             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').hide();
793             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').hide();
794             jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').hide();
795             jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').hide();
796             jQuery('#drone_imagery_calculate_statistics_analysis_save_fitted').hide();
797             jQuery('#drone_imagery_calculate_statistics_legendre_polynomial_div').hide();
798             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_div').hide();
799             jQuery('#drone_image_calculate_statistics_use_area_under_curve_select_div').hide();
800             jQuery('#drone_image_calculate_statistics_inversion_tolerance_select_div').hide();
801         }
803     });
805     jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_select_div').change(function(){
806         if (jQuery(this).val() == 'genotypes') {
807             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').show();
808             jQuery('#drone_imagery_calculate_statistics_htp_phenotypes_rel_matrix_div').hide();
809         }
810         else if (jQuery(this).val() == 'htp_phenotypes') {
811             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
812             jQuery('#drone_imagery_calculate_statistics_htp_phenotypes_rel_matrix_div').show();
813         }
814         else {
815             jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
816             jQuery('#drone_imagery_calculate_statistics_htp_phenotypes_rel_matrix_div').hide();
817         }
818     });
820     jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_select').change(function(){
821         if (jQuery(this).val() == 'blues') {
822             jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select_div').show();
823         }
824         else {
825             jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select_div').hide();
826         }
827     });
829     jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').change(function(){
830         if (jQuery(this).val() == 'yes') {
831             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div').show();
832             jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select_div').show();
833         }
834         if (jQuery(this).val() == 'no') {
835             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div').hide();
836             jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select_div').hide();
837             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select option[value=no]').attr('selected','selected');
838             jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select option[value=no]').attr('selected','selected');
839         }
840     });
842     jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select').change(function(){
843         if (jQuery(this).val() == 'yes') {
844             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select option[value=no]').attr('selected','selected');
845             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div').hide();
846         }
847         if (jQuery(this).val() == 'no') {
848             jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div').show();
849         }
850     });
852     jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').change(function(){
853         if (jQuery(this).val() == 'euclidean_rows_and_columns') {
854             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div').hide();
855         }
856         else if (jQuery(this).val() == 'phenotype_correlation') {
857             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div').show();
858         }
859         else {
860             jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div').hide();
861         }
862     });
864     jQuery('#drone_imagery_calculate_statistics_select_step').click(function(){
866         manage_drone_imagery_calculate_statistics_select = jQuery('#drone_imagery_calculate_statistics_select_input').val();
868         if (manage_drone_imagery_calculate_statistics_select == 'marss_germplasmname_block' && manage_drone_imagery_calculate_statistics_observation_variable_type != 'time_ontology') {
869             alert('The MARSS model fit and prediction only works for Time Series traits! Please go to Trait Selection and select time series traits.');
870             return false;
871         }
872         if (jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select').val() == 'yes' && jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val() != 'yes') {
873             alert('You can only use pedigree info in the relationship matrix if you will compute the genotypes from the parents!');
874             return false;
875         }
876         if (jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select').val() == 'yes' && jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val() != 'yes') {
877             alert('You can only use parental relationship matrices if you will compute the genotypes from the parents!');
878             return false;
879         }
881         var manage_drone_imagery_calculate_statistics_rr_structure_phenotype_correlation = [];
882         if (jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val() == 'phenotype_correlation') {
883             manage_drone_imagery_calculate_statistics_rr_structure_phenotype_correlation = jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_select').val();
884             if (!manage_drone_imagery_calculate_statistics_rr_structure_phenotype_correlation || manage_drone_imagery_calculate_statistics_rr_structure_phenotype_correlation.length < 3) {
885                 alert('Please select at least three phenotypes to use in random regression phenotype correlation structure!');
886                 return false;
887             }
888         }
890         jQuery.ajax({
891             url : '/api/drone_imagery/calculate_statistics',
892             type : 'POST',
893             data : {
894                 'observation_variable_id_list':JSON.stringify(manage_drone_imagery_calculate_statistics_trait_ids),
895                 'field_trial_id_list':JSON.stringify(manage_drone_imagery_calculate_statistics_field_trial_id_array),
896                 'statistics_select':manage_drone_imagery_calculate_statistics_select,
897                 'statistics_select_marss_options':jQuery('#drone_imagery_calculate_statistics_select_marss').val(),
898                 'relationship_matrix_type':jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_select_div').val(),
899                 'protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
900                 'compute_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
901                 'use_parental_grms_if_compute_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_use_parental_grms_select').val(),
902                 'include_pedgiree_info_if_compute_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select').val(),
903                 'htp_pheno_rel_matrix_type':jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_select').val(),
904                 'htp_pheno_rel_matrix_time_points':jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_times_select').val(),
905                 'htp_pheno_rel_matrix_blues_inversion':jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select').val(),
906                 'tolparinv':jQuery('#drone_image_calculate_statistics_tolparinv_select').val(),
907                 'legendre_order_number':jQuery('#drone_image_calculate_statistics_legendre_order_number_select').val(),
908                 'use_area_under_curve':jQuery('#drone_image_calculate_statistics_use_area_under_curve_select').val(),
909                 'permanent_environment_structure':jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val(),
910                 'permanent_environment_structure_phenotype_correlation_traits':JSON.stringify(manage_drone_imagery_calculate_statistics_rr_structure_phenotype_correlation)
911             },
912             beforeSend: function() {
913                 jQuery("#working_modal").modal("show");
914             },
915             success: function(response){
916                 console.log(response);
917                 jQuery("#working_modal").modal("hide");
919                 if (response.error) {
920                     alert(response.error);
921                 }
922                 else {
923                     manage_drone_imagery_calculate_statistics_response = response;
925                     var html = '';
926                     if (response.sum_square_residual) {
927                         html = html + '<h4>Sum square residual: '+response.sum_square_residual+'</h4><hr>';
928                     }
929                     if (response.genetic_effects_line_plot) {
930                         html = html + '<img src="'+response.genetic_effects_line_plot+'"><hr>';
931                     }
932                     if (response.env_effects_heatmap_plot) {
933                         html = html + '<img src="'+response.env_effects_heatmap_plot+'"><hr>';
934                     }
935                     if (response.unique_accessions.length > 0 && response.unique_traits.length > 0 && response.result_blup_genetic_data) {
936                         manage_drone_imagery_calculate_statistics_accession_names = response.unique_accessions;
937                         manage_drone_imagery_calculate_statistics_trait_names = response.unique_traits;
938                         manage_drone_imagery_calculate_statistics_phenotype_training_file = response.stats_tempfile;
939                         manage_drone_imagery_calculate_statistics_grm_training_file = response.grm_file;
941                         html = html + '<table class="table table-bordered table-hover"><thead><tr><th>Accessions</th>';
942                         for (var i=0; i<manage_drone_imagery_calculate_statistics_trait_names.length; i++) {
943                             html = html + '<th>'+manage_drone_imagery_calculate_statistics_trait_names[i]+'</th>';
944                         }
945                         html = html + '</tr></thead><tbody>';
946                         for (var k=0; k<response.unique_accessions.length; k++) {
947                             var acc = response.unique_accessions[k];
948                             html = html + '<tr><td>'+acc+'</td>';
949                             for (var i=0; i<manage_drone_imagery_calculate_statistics_trait_names.length; i++) {
950                                 if (response.result_blup_genetic_data[acc] && response.result_blup_genetic_data[acc][manage_drone_imagery_calculate_statistics_trait_names[i]]) {
951                                     html = html + '<td>'+response.result_blup_genetic_data[acc][manage_drone_imagery_calculate_statistics_trait_names[i]][0]+'</td>';
952                                 }
953                                 else {
954                                     html = html + '<td>NA</td>';
955                                 }
956                             }
957                             html = html + '</tr>';
958                         }
959                         html = html + '</tbody></table>';
960                     }
962                     if (response.unique_plots.length > 0 && response.unique_traits.length > 0 && response.result_blup_spatial_data) {
963                         manage_drone_imagery_calculate_statistics_plot_names = response.unique_plots;
964                         manage_drone_imagery_calculate_statistics_trait_names = response.unique_traits;
966                         html = html + '<table class="table table-bordered table-hover"><thead><tr><th>Plots</th>';
967                         for (var i=0; i<response.unique_traits.length; i++) {
968                             html = html + '<th>'+response.unique_traits[i]+'</th>';
969                         }
970                         html = html + '</tr></thead><tbody>';
971                         for (var k=0; k<response.unique_plots.length; k++) {
972                             var plot = response.unique_plots[k];
973                             html = html + '<tr><td>'+plot+'</td>';
974                             for (var i=0; i<response.unique_traits.length; i++) {
975                                 html = html + '<td>'+response.result_blup_spatial_data[plot][response.unique_traits[i]][0]+'</td>';
976                             }
977                             html = html + '</tr>';
978                         }
979                         html = html + '</tbody></table>';
980                     }
982                     if (response.unique_plots.length > 0 && response.unique_traits.length > 0 && response.result_blup_pe_data) {
983                         manage_drone_imagery_calculate_statistics_plot_names = response.unique_plots;
984                         manage_drone_imagery_calculate_statistics_trait_names = response.unique_traits;
986                         html = html + '<table class="table table-bordered table-hover"><thead><tr><th>Plots</th>';
987                         for (var i=0; i<response.unique_traits.length; i++) {
988                             html = html + '<th>'+response.unique_traits[i]+'</th>';
989                         }
990                         html = html + '</tr></thead><tbody>';
991                         for (var k=0; k<response.unique_plots.length; k++) {
992                             var plot = response.unique_plots[k];
993                             html = html + '<tr><td>'+plot+'</td>';
994                             for (var i=0; i<response.unique_traits.length; i++) {
995                                 if (response.result_blup_pe_data[plot] && response.result_blup_pe_data[plot][response.unique_traits[i]]) {
996                                     html = html + '<td>'+response.result_blup_pe_data[plot][response.unique_traits[i]][0]+'</td>';
997                                 }
998                                 else {
999                                     html = html + '<td>NA</td>';
1000                                 }
1001                             }
1002                             html = html + '</tr>';
1003                         }
1004                         html = html + '</tbody></table>';
1005                     }
1007                     if (response.results.length > 0) {
1008                         html = '<table class="table table-bordered table-hover"><thead><tr><th>Observation Variable</th><th>Statistics</th><th>Plot</th></tr></thead><tbody>';
1009                         for (var i=0; i<response.results.length; i++) {
1010                             html = html + '<tr><td>'+response.results[i][0]+'</td><td>'+response.results[i][1]+'</td><td><img src="'+response.results[i][2]+'"></td></tr>';
1011                         }
1012                         html = html + '</tbody></table>';
1013                     }
1015                     html = html + '<hr><a href="'+response.stats_out_tempfile_string+'.log" target=_blank>Stats file or log</a>';
1017                     if (jQuery('#drone_imagery_calculate_statistics_relationship_matrix_type_select_div').val() == 'htp_phenotypes') {
1018                         html = html + '<hr><a href="'+response.stats_out_htp_rel_tempfile_out_string+'" target=_blank>HTP Relationship Matrix</a>';
1019                     }
1021                     jQuery('#drone_imagery_calculate_statistics_result_div').html(html);
1023                     Workflow.complete("#drone_imagery_calculate_statistics_select_step");
1024                     Workflow.focus('#drone_imagery_calculate_statistics_workflow', 4);
1025                 }
1026             },
1027             error: function(response){
1028                 jQuery("#working_modal").modal("hide");
1029                 alert('Error calculating statistics!')
1030             }
1031         });
1032     });
1034     jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').click(function(){
1035         jQuery('#generic_save_analysis_template_dialog').modal('show');
1036     });
1038     jQuery('#generic_save_analysis_template_submit_button').click(function(){
1039         var generic_save_analysis_template_analysis_name = jQuery('#generic_save_analysis_template_analysis_name').val();
1040         var generic_save_analysis_template_analysis_description = jQuery('#generic_save_analysis_template_analysis_description').val();
1041         var generic_save_analysis_template_analysis_year = jQuery('#generic_save_analysis_template_analysis_year').val();
1042         var generic_save_analysis_template_breeding_program_id = jQuery('#generic_save_analysis_template_breeding_program_id').val();
1044         if (generic_save_analysis_template_analysis_name == '') {
1045             alert('Please give an analysis template name');
1046             return false;
1047         }
1048         if (generic_save_analysis_template_analysis_description == '') {
1049             alert('Please give an analysis template description');
1050             return false;
1051         }
1052         if (generic_save_analysis_template_analysis_year == '') {
1053             alert('Please give an analysis template year');
1054             return false;
1055         }
1057         var drone_imagery_stats_parameters = {};
1058         var drone_imagery_stats_protocol = '';
1059         var drone_imagery_stats_auxiliary_files = [];
1060         var drone_imagery_stats_result_summary = {};
1061         var statistical_ontology_term = '';
1062         var drone_imagery_stats_compose_trait_info;
1064         var drone_imagery_stats_tolparinv_param = jQuery('#drone_image_calculate_statistics_tolparinv_select').val();
1065         var drone_imagery_stats_numbers_traits = manage_drone_imagery_calculate_statistics_response.unique_traits.length;
1066         var drone_imagery_legendre_order = jQuery('#drone_image_calculate_statistics_legendre_order_number_select').val();
1068         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
1070             var drone_imagery_stats_mv_traits = [];
1071             for (var i=1; i<drone_imagery_stats_numbers_traits+1; i++) {
1072                 drone_imagery_stats_mv_traits.push('t'+i);
1073             }
1074             var drone_imagery_stats_mv_traits_string = drone_imagery_stats_mv_traits.join();
1076             drone_imagery_stats_protocol = 'mmer('+drone_imagery_stats_mv_traits_string+'~1+replicate, random=~vs(id, Gu=geno_mat, Gtc=unsm('+drone_imagery_stats_numbers_traits+')) +vs(rowNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')) +vs(colNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')) +vs(spl2D(rowNumber, colNumber), Gtc=diag('+drone_imagery_stats_numbers_traits+')), rcov=~vs(units, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), data=mat, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1078             drone_imagery_stats_parameters = {
1079                 'tolparinv':drone_imagery_stats_tolparinv_param,
1080                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1081                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1082                 'protocol':drone_imagery_stats_protocol
1083             };
1085             drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_spatial_genetic_blups_grm_file'}];
1087             drone_imagery_stats_compose_trait_info = JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info);
1089             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and row and column spatial effects computed using Sommer R|SGNSTAT:0000001";
1090         }
1091         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_blups') {
1093             var drone_imagery_stats_mv_traits = [];
1094             for (var i=1; i<drone_imagery_stats_numbers_traits+1; i++) {
1095                 drone_imagery_stats_mv_traits.push('t'+i);
1096             }
1097             var drone_imagery_stats_mv_traits_string = drone_imagery_stats_mv_traits.join();
1099             drone_imagery_stats_protocol = 'mmer('+drone_imagery_stats_mv_traits_string+'~1+replicate, random=~vs(id, Gu=geno_mat, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), rcov=~vs(units, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), data=mat, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1101             drone_imagery_stats_parameters = {
1102                 'tolparinv':drone_imagery_stats_tolparinv_param,
1103                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1104                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1105                 'protocol':drone_imagery_stats_protocol
1106             };
1108             drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_blups_grm_file'}];
1110             drone_imagery_stats_compose_trait_info = JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info);
1112             statistical_ontology_term = "Multivariate genetic BLUPs using genetic relationship matrix computed using Sommer R|SGNSTAT:0000024";
1113         }
1114         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
1116             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1118             drone_imagery_stats_parameters = {
1119                 'tolparinv':drone_imagery_stats_tolparinv_param,
1120                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1121                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1122                 'legendre_polynomial_order':drone_imagery_legendre_order,
1123                 'protocol':drone_imagery_stats_protocol
1124             };
1126             drone_imagery_stats_auxiliary_files = [
1127                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
1128                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
1129                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'},
1130             ];
1132             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
1133         }
1134         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
1136             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1138             drone_imagery_stats_parameters = {
1139                 'tolparinv':drone_imagery_stats_tolparinv_param,
1140                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1141                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1142                 'legendre_polynomial_order':drone_imagery_legendre_order,
1143                 'protocol':drone_imagery_stats_protocol
1144             };
1146             drone_imagery_stats_auxiliary_files = [
1147                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
1148                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
1149                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'}
1150             ];
1152             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
1153         }
1154         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_dap_genetic_blups') {
1156             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1158             drone_imagery_stats_parameters = {
1159                 'tolparinv':drone_imagery_stats_tolparinv_param,
1160                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1161                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1162                 'legendre_polynomial_order':drone_imagery_legendre_order,
1163                 'protocol':drone_imagery_stats_protocol
1164             };
1166             drone_imagery_stats_auxiliary_files = [
1167                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_grm_file'},
1168                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_genetic_coefficients_file'},
1169             ];
1171             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
1172         }
1173         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_gdd_genetic_blups') {
1175             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1177             drone_imagery_stats_parameters = {
1178                 'tolparinv':drone_imagery_stats_tolparinv_param,
1179                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1180                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1181                 'legendre_polynomial_order':drone_imagery_legendre_order,
1182                 'protocol':drone_imagery_stats_protocol
1183             };
1185             drone_imagery_stats_auxiliary_files = [
1186                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_grm_file'},
1187                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_genetic_coefficients_file'},
1188             ];
1190             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
1191         }
1193         var training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1195         if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups' || manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1197             training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1198             var drone_imagery_permanent_env_structure = jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val();
1200             if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups' || manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1201                 drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
1202             }
1203             if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1204                 drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
1205             }
1207             drone_imagery_stats_parameters = {
1208                 'tolparinv':drone_imagery_stats_tolparinv_param,
1209                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1210                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1211                 'legendre_polynomial_order':drone_imagery_legendre_order,
1212                 'protocol':drone_imagery_stats_protocol,
1213                 'permanent_environment_structure':drone_imagery_permanent_env_structure
1214             };
1216             if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
1217                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000010";
1219                 drone_imagery_stats_auxiliary_files = [
1220                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_grm_file'},
1221                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_param_file'},
1222                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_log_file'},
1223                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_genetic_coefficients_file'},
1224                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_permanent_environment_coefficients_file'},
1225                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1226                 ];
1227                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1228                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1229                 }
1230             }
1231             else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1232                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000008";
1234                 drone_imagery_stats_auxiliary_files = [
1235                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_grm_file'},
1236                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_param_file'},
1237                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_log_file'},
1238                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_genetic_coefficients_file'},
1239                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_permanent_environment_coefficients_file'},
1240                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1241                 ];
1242                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1243                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1244                 }
1245             }
1246             else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
1247                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000018";
1249                 drone_imagery_stats_auxiliary_files = [
1250                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_grm_file'},
1251                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_param_file'},
1252                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_log_file'},
1253                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_genetic_coefficients_file'},
1254                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_permanent_environment_coefficients_file'},
1255                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1256                 ];
1257                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1258                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1259                 }
1260             }
1261             else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1262                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000020";
1264                 drone_imagery_stats_auxiliary_files = [
1265                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_grm_file'},
1266                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_param_file'},
1267                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_log_file'},
1268                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_genetic_coefficients_file'},
1269                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_permanent_environment_coefficients_file'},
1270                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1271                 ];
1272                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1273                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1274                 }
1275             }
1276         }
1277         if (manage_drone_imagery_calculate_statistics_select == 'lmer_germplasmname_replicate') {
1278             drone_imagery_stats_protocol = 'lmer(t1~replicate + 1|germplasmName, data=mat, na.action = na.omit)';
1279             drone_imagery_stats_parameters = {
1280                 'protocol':drone_imagery_stats_protocol
1281             };
1282             statistical_ontology_term = "Univariate linear mixed model genetic BLUPs using germplasmName computed using LMER R|SGNSTAT:0000002";
1283         }
1285         jQuery.ajax({
1286             type: 'POST',
1287             url : '/ajax/analysis/store/json',
1288             data : {
1289                 'analysis_to_save_boolean':'yes',
1290                 'analysis_name':generic_save_analysis_template_analysis_name+'_GBLUPS',
1291                 'analysis_description':generic_save_analysis_template_analysis_description,
1292                 'analysis_year':generic_save_analysis_template_analysis_year,
1293                 'analysis_breeding_program_id':generic_save_analysis_template_breeding_program_id,
1294                 'analysis_protocol':drone_imagery_stats_protocol,
1295                 'analysis_dataset_id':'',
1296                 'analysis_accession_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions),
1297                 'analysis_trait_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_traits),
1298                 'analysis_statistical_ontology_term':statistical_ontology_term,
1299                 'analysis_precomputed_design_optional':'',
1300                 'analysis_result_values':JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_genetic_data),
1301                 'analysis_result_values_type':'analysis_result_values_match_accession_names',
1302                 'analysis_result_summary':JSON.stringify(drone_imagery_stats_result_summary),
1303                 'analysis_result_trait_compose_info':drone_imagery_stats_compose_trait_info,
1304                 'analysis_model_id':'',
1305                 'analysis_model_name':generic_save_analysis_template_analysis_name+'_GBLUPSandPEandResiduals_Model',
1306                 'analysis_model_description':generic_save_analysis_template_analysis_description,
1307                 'analysis_model_is_public':'yes',
1308                 'analysis_model_language':manage_drone_imagery_calculate_statistics_response.analysis_model_language,
1309                 'analysis_model_type':manage_drone_imagery_calculate_statistics_response.analysis_model_type,
1310                 'analysis_model_properties':JSON.stringify(drone_imagery_stats_parameters),
1311                 'analysis_model_application_name':manage_drone_imagery_calculate_statistics_response.application_name,
1312                 'analysis_model_application_version':manage_drone_imagery_calculate_statistics_response.application_version,
1313                 'analysis_model_file':'',
1314                 'analysis_model_file_type':'',
1315                 'analysis_model_training_data_file':training_data_file,
1316                 'analysis_model_training_data_file_type':manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type,
1317                 'analysis_model_auxiliary_files':JSON.stringify(drone_imagery_stats_auxiliary_files)
1318             },
1319             beforeSend: function() {
1320                 jQuery('#working_modal').modal('show');
1321             },
1322             success: function(response){
1323                 console.log(response);
1324                 if (response.error) {
1325                     alert(response.error);
1326                 }
1327                 if (response.success) {
1328                     var html = '<center>';
1329                     if (response.model_id) {
1330                         html = html + '<p>Go to saved <a href="/analyses_model/'+response.model_id+'" target=_blank >model</a></p>';
1331                     }
1332                     if (response.analysis_id) {
1333                         html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >GBLUP analysis</a></p>';
1334                     }
1335                     html = html + '</center>';
1336                     jQuery('#generic_save_analysis_template_response_div').html(html);
1338                     var statistical_ontology_term;
1339                     var drone_imagery_stats_auxiliary_files;
1340                     var drone_imagery_stats_training_data_file;
1341                     var generic_save_analysis_template_name_type = '_PermanentEnvironment';
1342                     var generic_save_analysis_template_env1_result_values = JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_pe_data);
1344                     if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
1345                         drone_imagery_stats_auxiliary_files = [
1346                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
1347                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
1348                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'}
1349                         ];
1351                         statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
1353                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1354                     }
1355                     if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
1356                         drone_imagery_stats_auxiliary_files = [
1357                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
1358                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
1359                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'}
1360                         ];
1362                         statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
1364                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1365                     }
1366                     if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
1367                         statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000011";
1369                         drone_imagery_stats_auxiliary_files = [
1370                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
1371                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
1372                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
1373                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
1374                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
1375                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1376                         ];
1377                         if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1378                             drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1379                         }
1381                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1382                     }
1383                     else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1384                         statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000009";
1386                         drone_imagery_stats_auxiliary_files = [
1387                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
1388                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
1389                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
1390                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
1391                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
1392                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1393                         ];
1394                         if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1395                             drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1396                         }
1398                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1399                     }
1400                     if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1401                         statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000021";
1403                         drone_imagery_stats_auxiliary_files = [
1404                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
1405                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
1406                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
1407                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
1408                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
1409                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1410                         ];
1411                         if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1412                             drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1413                         }
1415                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1416                     }
1417                     else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
1418                         statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000019";
1420                         drone_imagery_stats_auxiliary_files = [
1421                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
1422                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
1423                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
1424                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
1425                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
1426                             {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1427                         ];
1428                         if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1429                             drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1430                         }
1432                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1433                     }
1435                     if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
1436                         statistical_ontology_term = "Multivariate linear mixed model 2D spline spatial BLUPs using genetic relationship matrix and row and column spatial effects computed using Sommer R|SGNSTAT:0000003";
1438                         drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_spatial_genetic_blups_grm_file'}];
1440                         generic_save_analysis_template_name_type = '_Spatial';
1441                         generic_save_analysis_template_env1_result_values = JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_spatial_data);
1443                         drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1444                     }
1446                     jQuery.ajax({
1447                         type: 'POST',
1448                         url : '/ajax/analysis/store/json',
1449                         data : {
1450                             'analysis_to_save_boolean':'yes',
1451                             'analysis_name':generic_save_analysis_template_analysis_name+generic_save_analysis_template_name_type,
1452                             'analysis_description':generic_save_analysis_template_analysis_description,
1453                             'analysis_year':generic_save_analysis_template_analysis_year,
1454                             'analysis_breeding_program_id':generic_save_analysis_template_breeding_program_id,
1455                             'analysis_protocol':drone_imagery_stats_protocol,
1456                             'analysis_dataset_id':'',
1457                             'analysis_accession_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions),
1458                             'analysis_trait_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_traits),
1459                             'analysis_statistical_ontology_term':statistical_ontology_term,
1460                             'analysis_precomputed_design_optional':JSON.stringify(manage_drone_imagery_calculate_statistics_response.field_trial_design),
1461                             'analysis_result_values':generic_save_analysis_template_env1_result_values,
1462                             'analysis_result_values_type':'analysis_result_values_match_precomputed_design',
1463                             'analysis_result_summary':JSON.stringify(drone_imagery_stats_result_summary),
1464                             'analysis_result_trait_compose_info':'',
1465                             'analysis_model_id':response.model_id,
1466                             'analysis_model_name':'',
1467                             'analysis_model_description':'',
1468                             'analysis_model_is_public':'yes',
1469                             'analysis_model_language':manage_drone_imagery_calculate_statistics_response.analysis_model_language,
1470                             'analysis_model_type':manage_drone_imagery_calculate_statistics_response.analysis_model_type,
1471                             'analysis_model_properties':JSON.stringify(drone_imagery_stats_parameters),
1472                             'analysis_model_application_name':manage_drone_imagery_calculate_statistics_response.application_name,
1473                             'analysis_model_application_version':manage_drone_imagery_calculate_statistics_response.application_version,
1474                             'analysis_model_file':'',
1475                             'analysis_model_file_type':'',
1476                             'analysis_model_training_data_file':drone_imagery_stats_training_data_file,
1477                             'analysis_model_training_data_file_type':manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type,
1478                             'analysis_model_auxiliary_files':JSON.stringify(drone_imagery_stats_auxiliary_files)
1479                         },
1480                         success: function(response){
1481                             console.log(response);
1482                             if (response.error) {
1483                                 alert(response.error);
1484                             }
1485                             if (response.success) {
1486                                 html = html + '<center>';
1487                                 if (response.analysis_id) {
1488                                     if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
1489                                         html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >spatial BLUP analysis</a></p>';
1490                                     }
1491                                     else {
1492                                         html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >permanent environment BLUP analysis</a></p>';
1493                                     }
1494                                 }
1495                                 html = html + '</center>';
1496                                 jQuery('#generic_save_analysis_template_response_div').html(html);
1498                                 var drone_imagery_stats_auxiliary_files;
1499                                 var drone_imagery_stats_training_data_file;
1500                                 if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
1502                                     drone_imagery_stats_auxiliary_files = [
1503                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
1504                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
1505                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'},
1506                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_residual_file'}
1507                                     ];
1509                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000030";
1511                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1512                                 }
1513                                 if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
1515                                     drone_imagery_stats_auxiliary_files = [
1516                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
1517                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
1518                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'},
1519                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_residual_file'}
1520                                     ];
1522                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000031";
1524                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1525                                 }
1526                                 if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
1527                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000029";
1529                                     drone_imagery_stats_auxiliary_files = [
1530                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
1531                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
1532                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
1533                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
1534                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
1535                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'},
1536                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_residual_file'}
1537                                     ];
1538                                     if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1539                                         drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1540                                     }
1542                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1543                                 }
1544                                 else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1545                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000028";
1547                                     drone_imagery_stats_auxiliary_files = [
1548                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
1549                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
1550                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
1551                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
1552                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
1553                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'},
1554                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_residual_file'}
1555                                     ];
1556                                     if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1557                                         drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1558                                     }
1560                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1561                                 }
1562                                 if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1563                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000027";
1565                                     drone_imagery_stats_auxiliary_files = [
1566                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
1567                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
1568                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
1569                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
1570                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
1571                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'},
1572                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_residual_file'}
1573                                     ];
1574                                     if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1575                                         drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1576                                     }
1578                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1579                                 }
1580                                 else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
1581                                     statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000026";
1583                                     drone_imagery_stats_auxiliary_files = [
1584                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
1585                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
1586                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
1587                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
1588                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
1589                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'},
1590                                         {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_residual_file'}
1591                                     ];
1592                                     if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1593                                         drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1594                                     }
1596                                     drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1597                                 }
1599                                 if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
1600                                     jQuery('#working_modal').modal('hide');
1601                                     alert('Analysis and/or model saved!');
1602                                     return false;
1603                                 }
1605                                 jQuery.ajax({
1606                                     type: 'POST',
1607                                     url : '/ajax/analysis/store/json',
1608                                     data : {
1609                                         'analysis_to_save_boolean':'yes',
1610                                         'analysis_name':generic_save_analysis_template_analysis_name+'_Residual',
1611                                         'analysis_description':generic_save_analysis_template_analysis_description,
1612                                         'analysis_year':generic_save_analysis_template_analysis_year,
1613                                         'analysis_breeding_program_id':generic_save_analysis_template_breeding_program_id,
1614                                         'analysis_protocol':drone_imagery_stats_protocol,
1615                                         'analysis_dataset_id':'',
1616                                         'analysis_accession_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions),
1617                                         'analysis_trait_names':JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_residual_traits),
1618                                         'analysis_statistical_ontology_term':statistical_ontology_term,
1619                                         'analysis_precomputed_design_optional':JSON.stringify(manage_drone_imagery_calculate_statistics_response.field_trial_design),
1620                                         'analysis_result_values':JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_residual_data),
1621                                         'analysis_result_values_type':'analysis_result_values_match_precomputed_design',
1622                                         'analysis_result_summary':JSON.stringify(drone_imagery_stats_result_summary),
1623                                         'analysis_result_trait_compose_info':JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info),
1624                                         'analysis_model_id':response.model_id,
1625                                         'analysis_model_name':'',
1626                                         'analysis_model_description':'',
1627                                         'analysis_model_is_public':'yes',
1628                                         'analysis_model_language':manage_drone_imagery_calculate_statistics_response.analysis_model_language,
1629                                         'analysis_model_type':manage_drone_imagery_calculate_statistics_response.analysis_model_type,
1630                                         'analysis_model_properties':JSON.stringify(drone_imagery_stats_parameters),
1631                                         'analysis_model_application_name':manage_drone_imagery_calculate_statistics_response.application_name,
1632                                         'analysis_model_application_version':manage_drone_imagery_calculate_statistics_response.application_version,
1633                                         'analysis_model_file':'',
1634                                         'analysis_model_file_type':'',
1635                                         'analysis_model_training_data_file':drone_imagery_stats_training_data_file,
1636                                         'analysis_model_training_data_file_type':manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type,
1637                                         'analysis_model_auxiliary_files':JSON.stringify(drone_imagery_stats_auxiliary_files)
1638                                     },
1639                                     success: function(response){
1640                                         jQuery('#working_modal').modal('hide');
1641                                         console.log(response);
1642                                         if (response.error) {
1643                                             alert(response.error);
1644                                         }
1645                                         if (response.success) {
1646                                             alert('Analysis and/or model saved!');
1647                                             html = html + '<center>';
1648                                             if (response.analysis_id) {
1649                                                 html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >residuals analysis</a></p>';
1650                                             }
1651                                             html = html + '</center>';
1652                                             jQuery('#generic_save_analysis_template_response_div').html(html);
1653                                         }
1654                                     },
1655                                     error: function(response){
1656                                         alert('Error saving analysis multiple!');
1657                                     }
1658                                 });
1659                             }
1660                         },
1661                         error: function(response){
1662                             alert('Error saving analysis multiple!');
1663                         }
1664                     });
1665                 }
1666             },
1667             error: function(response){
1668                 jQuery('#working_modal').modal('hide');
1669                 alert('Error saving analysis multiple!');
1670             }
1671         });
1672     });
1674     jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic').click(function(){
1675         jQuery('#generic_save_analysis_dialog').modal('show');
1677         var drone_imagery_stats_parameters = {};
1678         var drone_imagery_stats_protocol = '';
1679         var drone_imagery_stats_auxiliary_files = [];
1680         var drone_imagery_stats_result_summary = {};
1681         var statistical_ontology_term = '';
1683         var drone_imagery_stats_tolparinv_param = jQuery('#drone_image_calculate_statistics_tolparinv_select').val();
1684         var drone_imagery_stats_numbers_traits = manage_drone_imagery_calculate_statistics_response.unique_traits.length;
1685         var drone_imagery_legendre_order = jQuery('#drone_image_calculate_statistics_legendre_order_number_select').val();
1687         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_spatial_genetic_blups') {
1689             var drone_imagery_stats_mv_traits = [];
1690             for (var i=1; i<drone_imagery_stats_numbers_traits+1; i++) {
1691                 drone_imagery_stats_mv_traits.push('t'+i);
1692             }
1693             var drone_imagery_stats_mv_traits_string = drone_imagery_stats_mv_traits.join();
1695             drone_imagery_stats_protocol = 'mmer('+drone_imagery_stats_mv_traits_string+'~1+replicate, random=~vs(id, Gu=geno_mat, Gtc=unsm('+drone_imagery_stats_numbers_traits+')) +vs(rowNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')) +vs(colNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')) +vs(spl2D(rowNumber, colNumber), Gtc=diag('+drone_imagery_stats_numbers_traits+')), rcov=~vs(units, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), data=mat, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1697             drone_imagery_stats_parameters = {
1698                 'tolparinv':drone_imagery_stats_tolparinv_param,
1699                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1700                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1701                 'protocol':drone_imagery_stats_protocol
1702             };
1704             drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_spatial_genetic_blups_grm_file'}];
1706             jQuery('#generic_save_analysis_result_compose_trait_info').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info));
1708             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and row and column spatial effects computed using Sommer R|SGNSTAT:0000001";
1709         }
1710         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_blups') {
1712             var drone_imagery_stats_mv_traits = [];
1713             for (var i=1; i<drone_imagery_stats_numbers_traits+1; i++) {
1714                 drone_imagery_stats_mv_traits.push('t'+i);
1715             }
1716             var drone_imagery_stats_mv_traits_string = drone_imagery_stats_mv_traits.join();
1718             drone_imagery_stats_protocol = 'mmer('+drone_imagery_stats_mv_traits_string+'~1+replicate, random=~vs(id, Gu=geno_mat, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), rcov=~vs(units, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), data=mat, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1720             drone_imagery_stats_parameters = {
1721                 'tolparinv':drone_imagery_stats_tolparinv_param,
1722                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1723                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1724                 'protocol':drone_imagery_stats_protocol
1725             };
1727             drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_blups_grm_file'}];
1729             jQuery('#generic_save_analysis_result_compose_trait_info').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info));
1731             statistical_ontology_term = "Multivariate genetic BLUPs using genetic relationship matrix computed using Sommer R|SGNSTAT:0000024";
1732         }
1733         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
1735             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1737             drone_imagery_stats_parameters = {
1738                 'tolparinv':drone_imagery_stats_tolparinv_param,
1739                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1740                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1741                 'legendre_polynomial_order':drone_imagery_legendre_order,
1742                 'protocol':drone_imagery_stats_protocol
1743             };
1745             drone_imagery_stats_auxiliary_files = [
1746                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
1747                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
1748                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'},
1749             ];
1751             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
1752         }
1753         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
1755             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1757             drone_imagery_stats_parameters = {
1758                 'tolparinv':drone_imagery_stats_tolparinv_param,
1759                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1760                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1761                 'legendre_polynomial_order':drone_imagery_legendre_order,
1762                 'protocol':drone_imagery_stats_protocol
1763             };
1765             drone_imagery_stats_auxiliary_files = [
1766                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
1767                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
1768                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'}
1769             ];
1771             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
1772         }
1773         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_dap_genetic_blups') {
1775             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1777             drone_imagery_stats_parameters = {
1778                 'tolparinv':drone_imagery_stats_tolparinv_param,
1779                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1780                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1781                 'legendre_polynomial_order':drone_imagery_legendre_order,
1782                 'protocol':drone_imagery_stats_protocol
1783             };
1785             drone_imagery_stats_auxiliary_files = [
1786                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_grm_file'},
1787                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_genetic_coefficients_file'},
1788             ];
1790             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
1791         }
1792         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_genetic_only_random_regression_gdd_genetic_blups') {
1794             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1796             drone_imagery_stats_parameters = {
1797                 'tolparinv':drone_imagery_stats_tolparinv_param,
1798                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1799                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1800                 'legendre_polynomial_order':drone_imagery_legendre_order,
1801                 'protocol':drone_imagery_stats_protocol
1802             };
1804             drone_imagery_stats_auxiliary_files = [
1805                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_grm_file'},
1806                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_genetic_legendre_polynomial_genetic_blups_genetic_coefficients_file'},
1807             ];
1809             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
1810         }
1812         var training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
1814         if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups' || manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1816             training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
1817             var drone_imagery_permanent_env_structure = jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val();
1819             if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups' || manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1820                 drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
1821             }
1822             if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups' || manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1823                 drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
1824             }
1826             drone_imagery_stats_parameters = {
1827                 'tolparinv':drone_imagery_stats_tolparinv_param,
1828                 'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1829                 'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1830                 'legendre_polynomial_order':drone_imagery_legendre_order,
1831                 'protocol':drone_imagery_stats_protocol,
1832                 'permanent_environment_structure':drone_imagery_permanent_env_structure
1833             };
1835             if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
1836                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000010";
1838                 drone_imagery_stats_auxiliary_files = [
1839                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_grm_file'},
1840                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_param_file'},
1841                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_log_file'},
1842                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_genetic_coefficients_file'},
1843                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_genetic_blups_permanent_environment_coefficients_file'},
1844                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1845                 ];
1846                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1847                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1848                 }
1849             }
1850             else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
1851                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000008";
1853                 drone_imagery_stats_auxiliary_files = [
1854                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_grm_file'},
1855                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_param_file'},
1856                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_log_file'},
1857                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_genetic_coefficients_file'},
1858                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_genetic_blups_permanent_environment_coefficients_file'},
1859                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1860                 ];
1861                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1862                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1863                 }
1864             }
1865             else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
1866                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000018";
1868                 drone_imagery_stats_auxiliary_files = [
1869                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_grm_file'},
1870                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_param_file'},
1871                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_log_file'},
1872                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_genetic_coefficients_file'},
1873                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_genetic_blups_permanent_environment_coefficients_file'},
1874                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
1875                 ];
1876                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1877                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
1878                 }
1879             }
1880             else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
1881                 statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000020";
1883                 drone_imagery_stats_auxiliary_files = [
1884                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_grm_file'},
1885                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_param_file'},
1886                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_log_file'},
1887                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_genetic_coefficients_file'},
1888                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_genetic_blups_permanent_environment_coefficients_file'},
1889                     {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
1890                 ];
1891                 if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
1892                     drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
1893                 }
1894             }
1895         }
1896         if (manage_drone_imagery_calculate_statistics_select == 'lmer_germplasmname_replicate') {
1897             drone_imagery_stats_protocol = 'lmer(t1~replicate + 1|germplasmName, data=mat, na.action = na.omit)';
1898             drone_imagery_stats_parameters = {
1899                 'protocol':drone_imagery_stats_protocol
1900             };
1901             statistical_ontology_term = "Univariate linear mixed model genetic BLUPs using germplasmName computed using LMER R|SGNSTAT:0000002";
1902         }
1904         jQuery('#generic_save_analysis_protocol').val(drone_imagery_stats_protocol);
1905         jQuery('#generic_save_analysis_model_properties').val(JSON.stringify(drone_imagery_stats_parameters));
1906         //jQuery('#generic_save_analysis_dataset_id').val();
1907         jQuery('#generic_save_analysis_accession_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions));
1908         jQuery('#generic_save_analysis_trait_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_traits));
1909         jQuery('#generic_save_analysis_statistical_ontology_term').val(statistical_ontology_term);
1910         //jQuery('#generic_save_analysis_design').val();
1911         jQuery('#generic_save_analysis_result_values').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_genetic_data));
1912         jQuery('#generic_save_analysis_result_values_type').val(manage_drone_imagery_calculate_statistics_response.analysis_result_values_type);
1913         jQuery('#generic_save_analysis_result_summary_values').val(JSON.stringify(drone_imagery_stats_result_summary));
1914         jQuery('#generic_save_analysis_model_language').val(manage_drone_imagery_calculate_statistics_response.analysis_model_language);
1915         jQuery('#generic_save_analysis_model_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_type);
1916         jQuery('#generic_save_analysis_model_application_name').val(manage_drone_imagery_calculate_statistics_response.application_name);
1917         jQuery('#generic_save_analysis_model_application_version').val(manage_drone_imagery_calculate_statistics_response.application_version);
1918         //jQuery('#generic_save_analysis_model_file').val();
1919         //jQuery('#generic_save_analysis_model_archived_model_file_type').val();
1920         jQuery('#generic_save_analysis_model_training_data_file').val(training_data_file);
1921         jQuery('#generic_save_analysis_model_archived_training_data_file_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type);
1922         jQuery('#generic_save_analysis_model_auxiliary_files').val(JSON.stringify(drone_imagery_stats_auxiliary_files));
1924         return false;
1925     });
1927     jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_spatial').click(function(){
1928         if (manage_drone_imagery_calculate_statistics_field_trial_id_array.length>1) {
1929             alert('Saving spatial BLUPs currently only implemented for a single trial, so only select one field trial in your analysis');
1930             return false;
1931         }
1933         jQuery('#generic_save_analysis_dialog').modal('show');
1935         var drone_imagery_stats_result_summary = {};
1937         var drone_imagery_stats_tolparinv_param = jQuery('#drone_image_calculate_statistics_tolparinv_select').val();
1938         var drone_imagery_stats_numbers_traits = manage_drone_imagery_calculate_statistics_response.unique_traits.length;
1940         var drone_imagery_stats_mv_traits = [];
1941         for (var i=1; i<drone_imagery_stats_numbers_traits+1; i++) {
1942             drone_imagery_stats_mv_traits.push('t'+i);
1943         }
1944         var drone_imagery_stats_mv_traits_string = drone_imagery_stats_mv_traits.join();
1946         var drone_imagery_stats_protocol = 'mmer('+drone_imagery_stats_mv_traits_string+'~1, random=~vs(id, Gu=geno_mat, Gtc=unsm('+drone_imagery_stats_numbers_traits+')) +vs(rowNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')) +vs(colNumberFactor, Gtc=diag('+drone_imagery_stats_numbers_traits+')), rcov=~vs(units, Gtc=unsm('+drone_imagery_stats_numbers_traits+')), data=mat, tolparinv='+drone_imagery_stats_tolparinv_param+');';
1948         var drone_imagery_stats_parameters = {
1949             'tolparinv':drone_imagery_stats_tolparinv_param,
1950             'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
1951             'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
1952             'protocol':drone_imagery_stats_protocol
1953         };
1955         var statistical_ontology_term = "Multivariate linear mixed model 2D spline spatial BLUPs using genetic relationship matrix and row and column spatial effects computed using Sommer R|SGNSTAT:0000003";
1957         jQuery('#generic_save_analysis_result_compose_trait_info').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info));
1959         var drone_imagery_stats_auxiliary_files = [{'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_spatial_genetic_blups_grm_file'}];
1961         jQuery('#generic_save_analysis_protocol').val(drone_imagery_stats_protocol);
1962         jQuery('#generic_save_analysis_model_properties').val(JSON.stringify(drone_imagery_stats_parameters));
1963         //jQuery('#generic_save_analysis_dataset_id').val();
1964         jQuery('#generic_save_analysis_accession_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions));
1965         jQuery('#generic_save_analysis_trait_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_traits));
1966         jQuery('#generic_save_analysis_statistical_ontology_term').val(statistical_ontology_term);
1967         jQuery('#generic_save_analysis_design').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.field_trial_design));
1968         jQuery('#generic_save_analysis_result_values').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_spatial_data));
1969         jQuery('#generic_save_analysis_result_values_type').val('analysis_result_values_match_precomputed_design');
1970         jQuery('#generic_save_analysis_result_summary_values').val(JSON.stringify(drone_imagery_stats_result_summary));
1971         jQuery('#generic_save_analysis_model_language').val(manage_drone_imagery_calculate_statistics_response.analysis_model_language);
1972         jQuery('#generic_save_analysis_model_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_type);
1973         jQuery('#generic_save_analysis_model_application_name').val(manage_drone_imagery_calculate_statistics_response.application_name);
1974         jQuery('#generic_save_analysis_model_application_version').val(manage_drone_imagery_calculate_statistics_response.application_version);
1975         //jQuery('#generic_save_analysis_model_file').val();
1976         //jQuery('#generic_save_analysis_model_archived_model_file_type').val();
1977         jQuery('#generic_save_analysis_model_training_data_file').val(manage_drone_imagery_calculate_statistics_response.stats_tempfile);
1978         jQuery('#generic_save_analysis_model_archived_training_data_file_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type);
1979         jQuery('#generic_save_analysis_model_auxiliary_files').val(JSON.stringify(drone_imagery_stats_auxiliary_files));
1981         return false;
1982     });
1984     jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_pe').click(function(){
1985         if (manage_drone_imagery_calculate_statistics_field_trial_id_array.length>1) {
1986             alert('Saving spatial BLUPs currently only implemented for a single trial, so only select one field trial in your analysis');
1987             return false;
1988         }
1990         jQuery('#generic_save_analysis_dialog').modal('show');
1992         var drone_imagery_stats_result_summary = {};
1994         var drone_imagery_stats_tolparinv_param = jQuery('#drone_image_calculate_statistics_tolparinv_select').val();
1995         var drone_imagery_legendre_order = jQuery('#drone_image_calculate_statistics_legendre_order_number_select').val();
1996         var drone_imagery_permanent_env_structure = jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val();
1998         var drone_imagery_stats_protocol = '';
1999         var statistical_ontology_term;
2000         var drone_imagery_stats_auxiliary_files;
2001         var drone_imagery_stats_training_data_file;
2002         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
2004             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
2006             drone_imagery_stats_auxiliary_files = [
2007                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
2008                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
2009                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'}
2010             ];
2012             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000004";
2014             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
2015         }
2016         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
2018             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
2020             drone_imagery_stats_auxiliary_files = [
2021                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
2022                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
2023                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'}
2024             ];
2026             statistical_ontology_term = "Multivariate linear mixed model genetic BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000006";
2028             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
2029         }
2030         if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
2031             drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2033             statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000011";
2035             drone_imagery_stats_auxiliary_files = [
2036                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
2037                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
2038                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
2039                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
2040                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
2041                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
2042             ];
2043             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2044                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
2045             }
2047             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2048         }
2049         else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
2050             drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2052             statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000009";
2054             drone_imagery_stats_auxiliary_files = [
2055                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
2056                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
2057                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
2058                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
2059                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
2060                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
2061             ];
2062             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2063                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
2064             }
2066             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2067         }
2068         if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
2069             drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2071             statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000021";
2073             drone_imagery_stats_auxiliary_files = [
2074                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
2075                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
2076                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
2077                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
2078                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
2079                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'}
2080             ];
2081             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2082                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
2083             }
2085             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2086         }
2087         else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
2088             drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2090             statistical_ontology_term = "Multivariate linear mixed model permanent environment BLUPs using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000019";
2092             drone_imagery_stats_auxiliary_files = [
2093                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
2094                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
2095                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
2096                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
2097                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
2098                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'}
2099             ];
2100             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2101                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
2102             }
2104             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2105         }
2107         var drone_imagery_stats_parameters = {
2108             'tolparinv':drone_imagery_stats_tolparinv_param,
2109             'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
2110             'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
2111             'legendre_polynomial_order':drone_imagery_legendre_order,
2112             'protocol':drone_imagery_stats_protocol,
2113             'permanent_environment_structure':drone_imagery_permanent_env_structure
2114         };
2116         jQuery('#generic_save_analysis_protocol').val(drone_imagery_stats_protocol);
2117         jQuery('#generic_save_analysis_model_properties').val(JSON.stringify(drone_imagery_stats_parameters));
2118         //jQuery('#generic_save_analysis_dataset_id').val();
2119         jQuery('#generic_save_analysis_accession_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions));
2120         jQuery('#generic_save_analysis_trait_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_traits));
2121         jQuery('#generic_save_analysis_statistical_ontology_term').val(statistical_ontology_term);
2122         jQuery('#generic_save_analysis_design').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.field_trial_design));
2123         jQuery('#generic_save_analysis_result_values').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_blup_pe_data));
2124         jQuery('#generic_save_analysis_result_values_type').val('analysis_result_values_match_precomputed_design');
2125         jQuery('#generic_save_analysis_result_summary_values').val(JSON.stringify(drone_imagery_stats_result_summary));
2126         jQuery('#generic_save_analysis_model_language').val(manage_drone_imagery_calculate_statistics_response.analysis_model_language);
2127         jQuery('#generic_save_analysis_model_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_type);
2128         jQuery('#generic_save_analysis_model_application_name').val(manage_drone_imagery_calculate_statistics_response.application_name);
2129         jQuery('#generic_save_analysis_model_application_version').val(manage_drone_imagery_calculate_statistics_response.application_version);
2130         //jQuery('#generic_save_analysis_model_file').val();
2131         //jQuery('#generic_save_analysis_model_archived_model_file_type').val();
2132         jQuery('#generic_save_analysis_model_training_data_file').val(drone_imagery_stats_training_data_file);
2133         jQuery('#generic_save_analysis_model_archived_training_data_file_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type);
2134         jQuery('#generic_save_analysis_model_auxiliary_files').val(JSON.stringify(drone_imagery_stats_auxiliary_files));
2136         return false;
2137     });
2139     jQuery('#drone_imagery_calculate_statistics_analysis_save_residuals').click(function(){
2140         jQuery('#generic_save_analysis_dialog').modal('show');
2142         var drone_imagery_stats_result_summary = {};
2144         jQuery('#generic_save_analysis_result_compose_trait_info').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.trait_composing_info));
2146         var drone_imagery_stats_tolparinv_param = jQuery('#drone_image_calculate_statistics_tolparinv_select').val();
2147         var drone_imagery_legendre_order = jQuery('#drone_image_calculate_statistics_legendre_order_number_select').val();
2148         var drone_imagery_permanent_env_structure = jQuery('#drone_image_calculate_statistics_permanent_env_structure_select').val();
2150         var drone_imagery_stats_protocol = '';
2151         var statistical_ontology_term;
2152         var drone_imagery_stats_auxiliary_files;
2153         var drone_imagery_stats_training_data_file;
2154         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_dap_genetic_blups') {
2156             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_DAP, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
2158             drone_imagery_stats_auxiliary_files = [
2159                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_grm_file'},
2160                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_genetic_coefficients_file'},
2161                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_permanent_environment_coefficients_file'},
2162                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_DAP_genetic_blups_residual_file'}
2163             ];
2165             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using Sommer R|SGNSTAT:0000030";
2167             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
2168         }
2169         if (manage_drone_imagery_calculate_statistics_select == 'sommer_grm_temporal_random_regression_gdd_genetic_blups') {
2171             drone_imagery_stats_protocol = 'mmer(value~1+replicate, random=~vs(id, Gu=geno_mat) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), id) +vs(leg(time_GDD, '+drone_imagery_legendre_order+', intercept=TRUE), plot_id), rcov=~vs(units), data=mat_long_format, tolparinv='+drone_imagery_stats_tolparinv_param+');';
2173             drone_imagery_stats_auxiliary_files = [
2174                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.grm_file, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_grm_file'},
2175                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_genetic_coefficients_file'},
2176                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_permanent_environment_coefficients_file'},
2177                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'nicksmixedmodels_v1.01_sommer_grm_temporal_legendre_polynomial_GDD_genetic_blups_residual_file'}
2178             ];
2180             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using Sommer R|SGNSTAT:0000031";
2182             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.stats_tempfile;
2183         }
2184         if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_gdd_blups') {
2185             drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2187             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using BLUPf90|SGNSTAT:0000029";
2189             drone_imagery_stats_auxiliary_files = [
2190                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
2191                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
2192                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
2193                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
2194                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
2195                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'},
2196                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_residual_file'}
2197             ];
2198             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2199                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
2200             }
2202             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2203         }
2204         else if (manage_drone_imagery_calculate_statistics_select == 'blupf90_grm_random_regression_dap_blups') {
2205             drone_imagery_stats_protocol = 'blupf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2207             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using BLUPf90|SGNSTAT:0000028";
2209             drone_imagery_stats_auxiliary_files = [
2210                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
2211                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
2212                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
2213                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
2214                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
2215                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'},
2216                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_residual_file'}
2217             ];
2218             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2219                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'blupf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
2220             }
2222             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2223         }
2224         if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_gdd_blups') {
2225             drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2227             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on growing degree days computed using AIREMLf90|SGNSTAT:0000027";
2229             drone_imagery_stats_auxiliary_files = [
2230                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_grm_file'},
2231                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_param_file'},
2232                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_log_file'},
2233                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_genetic_coefficients_file'},
2234                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_permanent_environment_coefficients_file'},
2235                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_solutions_file'},
2236                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_permanent_environment_blups_residual_file'}
2237             ];
2238             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2239                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_GDD_blups_permanent_environment_structure_file'});
2240             }
2242             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2243         }
2244         else if (manage_drone_imagery_calculate_statistics_select == 'airemlf90_grm_random_regression_dap_blups') {
2245             drone_imagery_stats_protocol = 'airemlf90(random regression GRM and Permanent Environment '+drone_imagery_permanent_env_structure+', conv_crit='+drone_imagery_stats_tolparinv_param+');';
2247             statistical_ontology_term = "Multivariate linear mixed model residual using genetic relationship matrix and temporal Legendre polynomial random regression on days after planting computed using AIREMLf90|SGNSTAT:0000026";
2249             drone_imagery_stats_auxiliary_files = [
2250                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_grm_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_grm_file'},
2251                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_param_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_param_file'},
2252                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.stats_out_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_log_file'},
2253                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_genetic_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_genetic_coefficients_file'},
2254                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.rr_pe_coefficients, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_permanent_environment_coefficients_file'},
2255                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_solutions, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_solutions_file'},
2256                 {'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.yhat_residual_tempfile, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_permanent_environment_blups_residual_file'}
2257             ];
2258             if (drone_imagery_permanent_env_structure == 'euclidean_rows_and_columns') {
2259                 drone_imagery_stats_auxiliary_files.push({'auxiliary_model_file':manage_drone_imagery_calculate_statistics_response.blupf90_permanent_environment_structure_file, auxiliary_model_file_archive_type:'airemlf90_grm_temporal_leg_random_regression_DAP_blups_permanent_environment_structure_file'});
2260             }
2262             drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
2263         }
2265         var drone_imagery_stats_parameters = {
2266             'tolparinv':drone_imagery_stats_tolparinv_param,
2267             'genotyping_protocol_id':jQuery('#drone_image_calculate_statistics_genotyping_protocol_select').val(),
2268             'compute_genotypes_from_parents':jQuery('#drone_image_calculate_statistics_genotyping_protocol_compute_from_parents_select').val(),
2269             'legendre_polynomial_order':drone_imagery_legendre_order,
2270             'protocol':drone_imagery_stats_protocol,
2271             'permanent_environment_structure':drone_imagery_permanent_env_structure
2272         };
2274         jQuery('#generic_save_analysis_protocol').val(drone_imagery_stats_protocol);
2275         jQuery('#generic_save_analysis_model_properties').val(JSON.stringify(drone_imagery_stats_parameters));
2276         //jQuery('#generic_save_analysis_dataset_id').val();
2277         jQuery('#generic_save_analysis_accession_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_accessions));
2278         jQuery('#generic_save_analysis_trait_names').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.unique_residual_traits));
2279         jQuery('#generic_save_analysis_statistical_ontology_term').val(statistical_ontology_term);
2280         jQuery('#generic_save_analysis_design').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.field_trial_design));
2281         jQuery('#generic_save_analysis_result_values').val(JSON.stringify(manage_drone_imagery_calculate_statistics_response.result_residual_data));
2282         jQuery('#generic_save_analysis_result_values_type').val('analysis_result_values_match_precomputed_design');
2283         jQuery('#generic_save_analysis_result_summary_values').val(JSON.stringify(drone_imagery_stats_result_summary));
2284         jQuery('#generic_save_analysis_model_language').val(manage_drone_imagery_calculate_statistics_response.analysis_model_language);
2285         jQuery('#generic_save_analysis_model_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_type);
2286         jQuery('#generic_save_analysis_model_application_name').val(manage_drone_imagery_calculate_statistics_response.application_name);
2287         jQuery('#generic_save_analysis_model_application_version').val(manage_drone_imagery_calculate_statistics_response.application_version);
2288         //jQuery('#generic_save_analysis_model_file').val();
2289         //jQuery('#generic_save_analysis_model_archived_model_file_type').val();
2290         jQuery('#generic_save_analysis_model_training_data_file').val(manage_drone_imagery_calculate_statistics_response.stats_tempfile);
2291         jQuery('#generic_save_analysis_model_archived_training_data_file_type').val(manage_drone_imagery_calculate_statistics_response.analysis_model_training_data_file_type);
2292         jQuery('#generic_save_analysis_model_auxiliary_files').val(JSON.stringify(drone_imagery_stats_auxiliary_files));
2294         return false;
2295     });
2298 </script>