view insect_phenology_model.xml @ 32:94afb3e484c3 draft

Uploaded
author greg
date Mon, 19 Mar 2018 11:00:30 -0400
parents 0e49e1d1c5a1
children ef5add7dea47
line wrap: on
line source

<tool id="insect_phenology_model" name="Insect phenology model" version="1.1.0">
    <description>expressing stage-specific phenology and population dynamics</description>
    <requirements>
        <requirement type="package" version="1.4.4">r-optparse</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
#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_dir &&
Rscript '$__tool_directory__/insect_phenology_model.R'
--adult_mortality $adult_mortality
--adult_accumulation $adult_accumulation
--egg_mortality $egg_mortality
--input '$input'
--insect '$insect'
--insects_per_replication $insects_per_replication
--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
--location '$location'
--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
--oviposition $oviposition
--photoperiod $photoperiod
--replications $replications
--plot_generations_separately $plot_generations_separately
--plot_std_error $plot_std_error
--young_nymph_accumulation $young_nymph_accumulation
--output_combined '$output_combined'
#if str($plot_generations_separately) == "yes":
    --output_p '$output_p'
    --output_f1 '$output_f1'
    --output_f2 '$output_f2'
#end if
&>ipm_log.txt;
if [[ $? -ne 0 ]]; then
    cp ipm_log.txt '$output_combined';
    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="insect" type="select" label="Select insect">
            <option value="BMSB" selected="True">Brown Marmorated Stink Bug</option>
        </param>
        <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_p" format="csv" label="${tool.name} (P) on ${on_string}">
            <filter>plot_generations_separately == 'yes'</filter>
        </data>
        <data name="output_f1" format="csv" label="${tool.name} (F1) on ${on_string}">
            <filter>plot_generations_separately == 'yes'</filter>
        </data>
        <data name="output_f2" format="csv" label="${tool.name} (F2) on ${on_string}">
            <filter>plot_generations_separately == 'yes'</filter>
        </data>
        <data name="output_combined" format="csv" label="${tool.name} (combined generations) on ${on_string}"/>
        <collection name="output_collection" type="list" label="${tool.name} (plots), on ${on_string}">
            <discover_datasets pattern="__name__" directory="output_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="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 name="output_combined" file="output_combined1.csv" ftype="csv" compare="contains"/>
            <output_collection name="output_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" value="state_college.csv" ftype="csv" />
            <param name="location" value="State College PA" />
            <param name="replications" value="2" />
            <param name="plot_generations_separately" value="no" />
            <output name="output_combined" file="output_combined2.csv" ftype="csv" compare="contains"/>
            <output_collection name="output_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" value="state_college.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 name="output_p" file="output_p_3.csv" ftype="csv" compare="contains"/>
            <output name="output_f1" file="output_f1_3.csv" ftype="csv" compare="contains"/>
            <output name="output_f2" file="output_f2_3.csv" ftype="csv" compare="contains"/>
            <output name="output_combined" file="output_combined3.csv" ftype="csv" compare="contains"/>
            <output_collection name="output_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" value="state_college.csv" ftype="csv" />
            <param name="location" value="State College PA" />
            <param name="replications" value="2" />
            <output name="output_p" file="output_p_4.csv" ftype="csv" compare="contains"/>
            <output name="output_f1" file="output_f1_4.csv" ftype="csv" compare="contains"/>
            <output name="output_f2" file="output_f2_4.csv" ftype="csv" compare="contains"/>
            <output name="output_combined" file="output_combined4.csv" ftype="csv" compare="contains"/>
            <output_collection name="output_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>
**What it does**

Provides an agent-based stochastic model expressing stage-specific phenology and population dynamics for an insect species across geographic regions.

-----

**Required options**

 * **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.
 * **Critical photoperiod for diapause induction/termination** - critical photoperiod for diapause induction/termination.
 * **Adjustment rate for egg mortality** - adjustment rate for egg mortality.
 * **Adjustment rate for nymph mortality** - adjustment rate for nymph mortality.
 * **Adjustment rate for adult mortality** - adjustment rate for adult mortality.
 * **Adjustment oviposition rate** - adjustment oviposition rate.
 * **Adjustment of minimum clutch size** - adjustment of minimum clutch size.
 * **Adjustment of maximum clutch size** - adjustment of maximum clutch size
 * **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>
        <citation type="doi">10.1175/JTECH-D-11-00103.1</citation>
        <citation type="doi">10.7289/V5D21VHZ</citation>
    </citations>
</tool>