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">×</span></button>
11 <h4 class="modal-title" id="droneImageryCalculateStatisticsDialog">Calculate statistics on aerial image phenotypes</h4>
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" &>
20 <button class="btn btn-default" id="drone_imagery_calculate_statistics_intro_single_trial_select_step">Single Trial Field Analysis</button>
24 <button class="btn btn-default" id="drone_imagery_calculate_statistics_intro_single_trial_multiseason_select_step">Single Trial Multi-Season Field Analysis</button>
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." &>
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>
39 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_field_trial_select_step">Go to Next Step</button>
42 <&| /util/workflow.mas:step, title=> "Trait Selection" &>
43 <& /page/page_title.mas, title=>"Select the observation variable(s) you are interested in" &>
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>
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>
63 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_trait_select_step">Go to Next Step</button>
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-->
90 <div id="drone_imagery_calculate_statistics_relationship_matrix_type_div" style="display:none">
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>
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>
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>
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>
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>
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>
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>
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>
183 <div id="drone_image_calculate_statistics_use_area_under_curve_select_div" style="display:none">
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>
198 <div id="drone_image_calculate_statistics_inversion_tolerance_select_div" style="display:none">
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>
221 <div id="drone_imagery_calculate_statistics_legendre_polynomial_div" style="display:none">
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>
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)$$
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>
248 <div id="drone_imagery_calculate_statistics_permanent_env_structure_div" style="display:none">
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>
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>
278 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_select_step">Submit</button>
281 <&| /util/workflow.mas:step, title=> "Results" &>
282 <& /page/page_title.mas, title=>"Statistics results" &>
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>
293 <div id ="drone_imagery_calculate_statistics_result_div">
301 <div class="modal-footer">
302 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
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">×</span></button>
313 <h4 class="modal-title" id="droneImageryCalculateStatisticsSingleTrialMultiSeasonDialog">Calculate statistics on aerial image phenotypes</h4>
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." &>
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>
331 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_field_trial_select_step">Go to Next Step</button>
334 <&| /util/workflow.mas:step, title=> "Trait Selection" &>
335 <& /page/page_title.mas, title=>"Select the observation variable(s) you are interested in" &>
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>
346 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_trait_select_step">Go to Next Step</button>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
471 <div id="drone_imagery_calculate_statistics_multiseason_legendre_polynomial_div" style="display:none">
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>
489 <div id="drone_imagery_calculate_statistics_multiseason_permanent_env_structure_div" style="display:none">
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>
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>
519 <button class="btn btn-primary" id="drone_imagery_calculate_statistics_multiseason_select_step">Submit</button>
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">
533 <div class="modal-footer">
534 <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
542 jQuery(document).ready(function() {
545 // Calculate statistics
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');
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');
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);
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' });
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 });
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!');
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!');
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' });
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 });
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);
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!');
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);
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() {
656 manage_drone_imagery_calculate_statistics_trait_ids.push(jQuery(this).val());
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!');
668 if (manage_drone_imagery_calculate_statistics_trait_ids.length < 1){
669 alert('Please select at least one observation variable!');
671 Workflow.complete("#drone_imagery_calculate_statistics_trait_select_step");
672 Workflow.focus('#drone_imagery_calculate_statistics_workflow', 3);
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
815 jQuery('#drone_imagery_calculate_statistics_genotyping_protocol_div').hide();
816 jQuery('#drone_imagery_calculate_statistics_htp_phenotypes_rel_matrix_div').hide();
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();
825 jQuery('#drone_image_calculate_statistics_htp_phenotypes_rel_matrix_inversion_select_div').hide();
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();
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');
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();
847 if (jQuery(this).val() == 'no') {
848 jQuery('#drone_image_calculate_statistics_genotyping_protocol_include_pedigree_select_div').show();
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();
856 else if (jQuery(this).val() == 'phenotype_correlation') {
857 jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div').show();
860 jQuery('#drone_imagery_calculate_statistics_permanent_env_structure_phenotype_correlation_div').hide();
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.');
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!');
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!');
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!');
891 url : '/api/drone_imagery/calculate_statistics',
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)
912 beforeSend: function() {
913 jQuery("#working_modal").modal("show");
915 success: function(response){
916 console.log(response);
917 jQuery("#working_modal").modal("hide");
919 if (response.error) {
920 alert(response.error);
923 manage_drone_imagery_calculate_statistics_response = response;
926 if (response.sum_square_residual) {
927 html = html + '<h4>Sum square residual: '+response.sum_square_residual+'</h4><hr>';
929 if (response.genetic_effects_line_plot) {
930 html = html + '<img src="'+response.genetic_effects_line_plot+'"><hr>';
932 if (response.env_effects_heatmap_plot) {
933 html = html + '<img src="'+response.env_effects_heatmap_plot+'"><hr>';
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>';
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>';
954 html = html + '<td>NA</td>';
957 html = html + '</tr>';
959 html = html + '</tbody></table>';
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>';
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>';
977 html = html + '</tr>';
979 html = html + '</tbody></table>';
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>';
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>';
999 html = html + '<td>NA</td>';
1002 html = html + '</tr>';
1004 html = html + '</tbody></table>';
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>';
1012 html = html + '</tbody></table>';
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>';
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);
1027 error: function(response){
1028 jQuery("#working_modal").modal("hide");
1029 alert('Error calculating statistics!')
1034 jQuery('#drone_imagery_calculate_statistics_analysis_save_blups_genetic_pe_residual').click(function(){
1035 jQuery('#generic_save_analysis_template_dialog').modal('show');
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');
1048 if (generic_save_analysis_template_analysis_description == '') {
1049 alert('Please give an analysis template description');
1052 if (generic_save_analysis_template_analysis_year == '') {
1053 alert('Please give an analysis template year');
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);
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
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";
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);
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
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";
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
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'},
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";
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
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'}
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";
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
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'},
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";
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
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'},
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";
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+');';
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+');';
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
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'}
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'});
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'}
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'});
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'}
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'});
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'}
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'});
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
1282 statistical_ontology_term = "Univariate linear mixed model genetic BLUPs using germplasmName computed using LMER R|SGNSTAT:0000002";
1287 url : '/ajax/analysis/store/json',
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)
1319 beforeSend: function() {
1320 jQuery('#working_modal').modal('show');
1322 success: function(response){
1323 console.log(response);
1324 if (response.error) {
1325 alert(response.error);
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>';
1332 if (response.analysis_id) {
1333 html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >GBLUP analysis</a></p>';
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'}
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;
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'}
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;
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'}
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'});
1381 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1398 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1415 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1432 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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;
1448 url : '/ajax/analysis/store/json',
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)
1480 success: function(response){
1481 console.log(response);
1482 if (response.error) {
1483 alert(response.error);
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>';
1492 html = html + '<p>Go to saved <a href="/analyses/'+response.analysis_id+'" target=_blank >permanent environment BLUP analysis</a></p>';
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'}
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;
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'}
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;
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'}
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'});
1542 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1560 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1578 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
1596 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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!');
1607 url : '/ajax/analysis/store/json',
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)
1639 success: function(response){
1640 jQuery('#working_modal').modal('hide');
1641 console.log(response);
1642 if (response.error) {
1643 alert(response.error);
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>';
1651 html = html + '</center>';
1652 jQuery('#generic_save_analysis_template_response_div').html(html);
1655 error: function(response){
1656 alert('Error saving analysis multiple!');
1661 error: function(response){
1662 alert('Error saving analysis multiple!');
1667 error: function(response){
1668 jQuery('#working_modal').modal('hide');
1669 alert('Error saving analysis multiple!');
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);
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
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";
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);
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
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";
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
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'},
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";
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
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'}
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";
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
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'},
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";
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
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'},
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";
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+');';
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+');';
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
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'}
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'});
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'}
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'});
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'}
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'});
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'}
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'});
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
1901 statistical_ontology_term = "Univariate linear mixed model genetic BLUPs using germplasmName computed using LMER R|SGNSTAT:0000002";
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));
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');
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);
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
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));
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');
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'}
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;
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'}
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;
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'}
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'});
2047 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2066 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2085 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2104 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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
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));
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'}
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;
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'}
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;
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'}
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'});
2202 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2222 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2242 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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'}
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'});
2262 drone_imagery_stats_training_data_file = manage_drone_imagery_calculate_statistics_response.blupf90_training_file;
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
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));