diff insect_phenology_model.xml @ 112:bcb12b7e8563 draft

Uploaded
author greg
date Tue, 29 May 2018 09:00:25 -0400
parents 1e28f7f61bb0
children bb61458966df
line wrap: on
line diff
--- a/insect_phenology_model.xml	Tue Feb 13 13:47:32 2018 -0500
+++ b/insect_phenology_model.xml	Tue May 29 09:00:25 2018 -0400
@@ -4,57 +4,229 @@
         <requirement type="package" version="1.4.4">r-optparse</requirement>
     </requirements>
     <command detect_errors="exit_code"><![CDATA[
+#import os
+#set output_data_dir = "output_data_dir"
+#set output_plots_dir = "output_plots_dir"
+#set error_file = $os.path.join($output_data_dir, "04_combined_generations.csv")
+#set life_stages = list()
+#set plot_adult_life_stage = $plot_adult_life_stage_cond.plot_adult_life_stage
+#set plot_nymph_life_stage = $plot_nymph_life_stage_cond.plot_nymph_life_stage
+#if str($plot_egg_life_stage) == "yes":
+    $life_stages.append("Egg")
+#end if
+#if str($plot_nymph_life_stage) == "yes":
+    $life_stages.append("Nymph")
+#end if
+#if str($plot_adult_life_stage) == "yes":
+    $life_stages.append("Adult")
+#end if
+#if str($plot_egg_life_stage) == "yes" and str($plot_nymph_life_stage) == "yes" and str($plot_adult_life_stage) == "yes":
+    $life_stages.append("Total")
+#end if
+#set life_stages = ",".join($life_stages)
+mkdir output_data_dir &&
+mkdir output_plots_dir &&
 Rscript '$__tool_directory__/insect_phenology_model.R'
 --adult_mortality $adult_mortality
 --adult_accumulation $adult_accumulation
 --egg_mortality $egg_mortality
---input '$input'
+#if str($merge_ytd_temperature_data_cond.merge_ytd_temperature_data) == "yes":
+    --input_ytd '$merge_ytd_temperature_data_cond.input_ytd'
+    --location '$merge_ytd_temperature_data_cond.location'
+    --num_days_ytd $merge_ytd_temperature_data_cond.input_ytd.metadata.data_lines
+#end if
+--input_norm '$input_norm'
 --insect '$insect'
 --insects_per_replication $insects_per_replication
---location '$location'
+--life_stages '$life_stages'
+#if str($plot_adult_life_stage) == "yes":
+    --life_stages_adult '$plot_adult_life_stage_cond.life_stages_adult'
+#end if
+#if str($plot_nymph_life_stage) == "yes":
+    --life_stages_nymph '$plot_nymph_life_stage_cond.life_stages_nymph'
+#end if
 --max_clutch_size $max_clutch_size
 --min_clutch_size $min_clutch_size
 --nymph_mortality $nymph_mortality
---num_days $input.metadata.data_lines
 --old_nymph_accumulation $old_nymph_accumulation
---output '$output'
 --oviposition $oviposition
 --photoperiod $photoperiod
 --replications $replications
---std_error_plot $std_error_plot
---young_nymph_accumulation $young_nymph_accumulation]]></command>
+--plot_generations_separately $plot_generations_separately
+--plot_std_error $plot_std_error
+--young_nymph_accumulation $young_nymph_accumulation
+&>ipm_log.txt;
+if [[ $? -ne 0 ]]; then
+    cp ipm_log.txt '$error_file';
+    exit 1;
+fi]]></command>
     <inputs>
-        <param name="input" type="data" format="csv" label="Temperature data" />
-        <param name="location" type="text" value="" optional="false" label="Location" />
+        <param name="input_norm" type="data" format="csv" label="30 year normals temperature data">
+            <validator type="expression" message="30 year normals temperature data must have 10 columns and 366 rows">value is not None and value.metadata.columns==10 and value.metadata.data_lines==366</validator>
+        </param>
+        <conditional name="merge_ytd_temperature_data_cond">
+            <param name="merge_ytd_temperature_data" type="select" label="Merge year-to-date temperature data with 30 year normals temperature data?">
+                <option value="yes" selected="true">Yes</option>
+                <option value="no">No</option>
+            </param>
+            <when value="yes">
+                <param name="input_ytd" type="data" format="csv" label="Year-to-date temperature data">
+                    <validator type="expression" message="Year-to-date temperature data must have 6 columns">value is not None and value.metadata.columns==6</validator>
+                </param>
+                <param name="location" type="text" value="" optional="true" label="Location" help="Enter the location or leave blank to use the station name from 30 year normals data."/>
+            </when>
+            <when value="no"/>
+        </conditional>
         <param name="insect" type="select" label="Select insect">
-            <option value="Brown Marmorated Stink Bug" selected="True">Brown Marmorated Stink Bug</option>
+            <option value="BMSB" selected="True">Brown Marmorated Stink Bug</option>
         </param>
-        <param name="replications" type="integer" value="10" min="1" label="Number of replications" />
-        <param name="insects_per_replication" type="integer" value="1000" min="1" label="Number of insects with which to start each replication" />
-        <param name="photoperiod" type="float" value="13.5" min="0" label="Critical photoperiod for diapause induction/termination" />
-        <param name="egg_mortality" type="integer" value="1" min="0" label="Adjustment rate for egg mortality" />
-        <param name="nymph_mortality" type="integer" value="1" min="0" label="Adjustment rate for nymph mortality" />
-        <param name="adult_mortality" type="integer" value="1" min="0" label="Adjustment rate for adult mortality" />
-        <param name="oviposition" type="integer" value="1" min="0" label="Adjustment oviposition rate" />
-        <param name="min_clutch_size" type="integer" value="0" min="0" label="Adjustment of minimum clutch size" />
-        <param name="max_clutch_size" type="integer" value="0" min="0" label="Adjustment of maximum clutch size" />
-        <param name="young_nymph_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (egg->young nymph)" />
-        <param name="old_nymph_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (young nymph->old nymph)" />
-        <param name="adult_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (old nymph->adult)" />
-        <param name="std_error_plot" type="select" label="Plot standard error?">
-            <option value="1" selected="True">Yes</option>
-            <option value="0">No</option>
+        <param name="replications" type="integer" value="10" min="2" label="Number of replications"/>
+        <param name="insects_per_replication" type="integer" value="1000" min="1" label="Number of insects with which to start each replication"/>
+        <param name="photoperiod" type="float" value="13.5" min="0" label="Critical photoperiod for diapause induction/termination"/>
+        <param name="egg_mortality" type="integer" value="1" min="0" label="Adjustment rate for egg mortality"/>
+        <param name="nymph_mortality" type="integer" value="1" min="0" label="Adjustment rate for nymph mortality"/>
+        <param name="adult_mortality" type="integer" value="1" min="0" label="Adjustment rate for adult mortality"/>
+        <param name="oviposition" type="integer" value="1" min="0" label="Adjustment oviposition rate"/>
+        <param name="min_clutch_size" type="integer" value="0" min="0" label="Adjustment of minimum clutch size"/>
+        <param name="max_clutch_size" type="integer" value="0" min="0" label="Adjustment of maximum clutch size"/>
+        <param name="young_nymph_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (egg->young nymph)"/>
+        <param name="old_nymph_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (young nymph->old nymph)"/>
+        <param name="adult_accumulation" type="integer" value="0" min="0" label="Adjustment of degree-days accumulation (old nymph->adult)"/>
+        <param name="plot_generations_separately" type="select" label="Plot generations separately?">
+            <option value="yes" selected="True">Yes</option>
+            <option value="no">No</option>
+        </param>
+        <param name="plot_egg_life_stage" type="select" label="Plot egg life stage?">
+            <option value="yes" selected="true">Yes</option>
+            <option value="no">No</option>
+        </param>
+        <conditional name="plot_nymph_life_stage_cond">
+            <param name="plot_nymph_life_stage" type="select" label="Plot nymph life stage?">
+                <option value="yes" selected="true">Yes</option>
+                <option value="no">No</option>
+            </param>
+            <when value="yes">
+                <param name="life_stages_nymph" type="select" multiple="true" label="Select nymph life stage">
+                    <option value="Total" selected="true">All</option>
+                    <option value="Young">Young</option>
+                    <option value="Old">Old</option>
+                </param>
+            </when>
+            <when value="no"/>
+        </conditional>
+        <conditional name="plot_adult_life_stage_cond">
+            <param name="plot_adult_life_stage" type="select" label="Plot adult life stage?">
+                <option value="yes" selected="true">Yes</option>
+                <option value="no">No</option>
+            </param>
+            <when value="yes">
+                <param name="life_stages_adult" type="select" multiple="true" label="Select adult life stage">
+                    <option value="Total" selected="true">All</option>
+                    <option value="Pre-vittelogenic">Pre-vittelogenic</option>
+                    <option value="Vittelogenic">Vittelogenic</option>
+                    <option value="Diapausing">Diapausing</option>
+                </param>
+            </when>
+            <when value="no"/>
+        </conditional>
+        <param name="plot_std_error" type="select" label="Plot standard error?">
+            <option value="yes" selected="True">Yes</option>
+            <option value="no">No</option>
         </param>
     </inputs>
     <outputs>
-        <data name="output" format="pdf" label="${tool.name} ${location}, on ${on_string}" />
+        <collection name="output_data_collection" type="list" label="${tool.name} (data), on ${on_string}">
+            <discover_datasets pattern="__name__" directory="output_data_dir" format="csv"/>
+        </collection>
+        <collection name="output_plots_collection" type="list" label="${tool.name} (plots), on ${on_string}">
+            <discover_datasets pattern="__name__" directory="output_plots_dir" format="pdf"/>
+        </collection>
     </outputs>
     <tests>
         <test>
-            <param name="input" value="state_college.csv" ftype="csv" />
-            <param name="location" value="State College PA" />
-            <param name="replications" value="10" />
-            <output name="output" file="output.pdf" ftype="pdf" compare="contains" />
+            <param name="input_norm" value="30_year_normals.csv" ftype="csv"/>
+            <param name="merge_ytd_temperature_data" value="no"/>
+            <param name="replications" value="2"/>
+            <param name="plot_generations_separately" value="no"/>
+            <param name="plot_egg_life_stage" value="no"/>
+            <param name="life_stages_nymph" value="Young"/>
+            <param name="life_stages_adult" value="Pre-vittelogenic"/>
+            <output_collection name="output_data_collection" type="list">
+                <element name="04_combined_generations.csv" file="output_combined1.csv" ftype="csv" compare="contains"/>
+            </output_collection>
+            <output_collection name="output_plots_collection" type="list">
+                <element name="02_young_nymph_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="05_pre-vittelogenic_adult_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+            </output_collection>
+        </test>
+        <test>
+            <param name="input_norm" value="30_year_normals.csv" ftype="csv"/>
+            <param name="input_ytd" value="state_college_partial.csv" ftype="csv"/>
+            <param name="location" value="State College PA"/>
+            <param name="replications" value="2"/>
+            <param name="plot_generations_separately" value="no"/>
+            <param name="plot_egg_life_stage" value="no"/>
+            <param name="life_stages_nymph" value="Young"/>
+            <param name="life_stages_adult" value="Pre-vittelogenic"/>
+            <output_collection name="output_data_collection" type="list">
+                <element name="04_combined_generations.csv" file="output_combined1.csv" ftype="csv" compare="contains"/>
+            </output_collection>
+            <output_collection name="output_plots_collection" type="list">
+                <element name="02_young_nymph_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="05_pre-vittelogenic_adult_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+            </output_collection>
+        </test>
+        <test>
+            <param name="input_norm" value="30_year_normals.csv" ftype="csv"/>
+            <param name="input_ytd" value="state_college_ytd.csv" ftype="csv"/>
+            <param name="location" value="State College PA"/>
+            <param name="replications" value="2"/>
+            <param name="plot_generations_separately" value="no"/>
+            <output_collection name="output_data_collection" type="list">
+                <element name="04_combined_generations.csv" file="output_combined2.csv" ftype="csv" compare="contains"/>
+            </output_collection>
+            <output_collection name="output_plots_collection" type="list">
+                <element name="01_egg_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="04_total_nymph_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="08_total_adult_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="09_total_pop.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+            </output_collection>
+        </test>
+        <test>
+            <param name="input_norm" value="30_year_normals.csv" ftype="csv"/>
+            <param name="input_ytd" value="state_college_partial.csv" ftype="csv"/>
+            <param name="location" value="State College PA"/>
+            <param name="replications" value="2"/>
+            <param name="plot_egg_life_stage" value="no"/>
+            <param name="life_stages_nymph" value="Old"/>
+            <param name="plot_adult_life_stage" value="no"/>
+            <output_collection name="output_data_collection" type="list">
+                <element name="01_generation_P.csv" file="output_p_3.csv" ftype="csv" compare="contains"/>
+                <element name="02_generation_F1.csv" file="output_f1_3.csv" ftype="csv" compare="contains"/>
+                <element name="03_generation_F2.csv" file="output_f2_3.csv" ftype="csv" compare="contains"/>
+                <element name="04_combined_generations.csv" file="output_combined3.csv" ftype="csv" compare="contains"/>
+            </output_collection>
+            <output_collection name="output_plots_collection" type="list">
+                <element name="03_old_nymph_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+            </output_collection>
+        </test>
+        <test>
+            <param name="input_norm" value="30_year_normals.csv" ftype="csv"/>
+            <param name="input_ytd" value="state_college_ytd.csv" ftype="csv"/>
+            <param name="location" value="State College PA"/>
+            <param name="replications" value="2"/>
+            <output_collection name="output_data_collection" type="list">
+                <element name="01_generation_P.csv" file="output_p_4.csv" ftype="csv" compare="contains"/>
+                <element name="02_generation_F1.csv" file="output_f1_4.csv" ftype="csv" compare="contains"/>
+                <element name="03_generation_F2.csv" file="output_f2_4.csv" ftype="csv" compare="contains"/>
+                <element name="04_combined_generations.csv" file="output_combined4.csv" ftype="csv" compare="contains"/>
+            </output_collection>
+            <output_collection name="output_plots_collection" type="list">
+                <element name="01_egg_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="04_total_nymph_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="08_total_adult_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+                <element name="09_total_pop_by_generation.pdf" file="plot.pdf" ftype="pdf" compare="contains"/>
+            </output_collection>
         </test>
     </tests>
     <help>
@@ -66,8 +238,12 @@
 
 **Required options**
 
+ * **30 year normals temperature data** - the dataset from your history containing the 30-year normals temperature data (available at http://pestwatch.psu.edu/ghcn).
+ * **Merge year-to-date temperature data with 30 year normals temperature data** - select Yes to merge a year-to-date temperature dataset from your history into the selected 30 year normals temperature data.
+
+  * **Year-to-date temperature data** - the dataset from your history containing the year-to-date temperature data (available at http://pestwatch.psu.edu/minmax).
+
  * **Location** - the location associated with the selected temperature data.
- * **Temperature data** - select the dataset from your history containing the temperature data.
  * **Select insect** - currently only the Brown Marmorated Stink Bug can be analyzed.
  * **Number of replications** - number of replications.
  * **Number of insects with which to start each replication** - the analysis for each replication will start with this number of insects.
@@ -81,8 +257,17 @@
  * **Adjustment of degree-days accumulation (egg->young nymph)** - adjustment of degree-days accumulation (egg->young nymph).
  * **Adjustment of degree-days accumulation (young nymph->old nymph)** - adjustment of degree-days accumulation (young nymph->old nymph).
  * **Adjustment of degree-days accumulation (old nymph->adult)** - adjustment of degree-days accumulation (old nymph->adult).
+ * **Plot generations separately** - select "Yes" to plot P, F1 and F2 as separate lines or "no" to pool across generations, resulting in a total for the selected life states.
+ * **Plot egg life stage** - select "Yes" to plot the egg life stage.  If all life stages (egg, nymph and adult) are selected for plotting, one output for the total will be produced.
+ * **Plot nymph life stage** - select "Yes" to plot the nymph life stage.  If all life stages (egg, nymph and adult) are selected for plotting, one output for the total will be produced.
+
+  * **Select nymph life stage** - select the nymph life stage for plotting.
+
+ * **Plot adult life stage** - select "Yes" to plot the adult life stage.  If all life stages (egg, nymph and adult) are selected for plotting, one output for the total will be produced.
+
+  * **Select adult life stage** - select the adult life stage for plotting.
+
  * **Plot standard error** - add standard error lines to plot.
-
     </help>
     <citations>
         <citation type="doi">10.3389/fphys.2016.00165</citation>