Mercurial > repos > tduigou > doe_synbio_sampler
diff sampler.xml @ 6:04159a12c757 draft
planemo upload for repository ['https://github.com/brsynth/icfree-ml', 'https://github.com/pablocarb/doebase'] commit 9889dbc08f8f4ff3ee992418d81d39e35c81051a
author | tduigou |
---|---|
date | Tue, 17 Sep 2024 15:09:50 +0000 |
parents | 5e7468a35380 |
children | 257a173f377e |
line wrap: on
line diff
--- a/sampler.xml Tue Jul 23 09:30:47 2024 +0000 +++ b/sampler.xml Tue Sep 17 15:09:50 2024 +0000 @@ -2,27 +2,62 @@ <description>Generate Latin Hypercube Samples for given components.</description> <macros> <import>macros.xml</import> - <token name="@TOOL_VERSION@">2.4.0</token> + <token name="@TOOL_VERSION@">2.5.0</token> </macros> <requirements> <requirement type="package" version="@TOOL_VERSION@">icfree-ml</requirement> </requirements> <expand macro="stdio"/> <command detect_errors="exit_code"><![CDATA[ + #import json + #set $components = {} + #for $x in $adv.rep + $components.__setitem__(str($x.component_name), str($x.component_value)) + #end for + python -m icfree.sampler '$input_file' '$output_sampling' '$num_samples' - --step '$adv.step' + #if str($adv.range_cond.range_param) == 'ratios' + --ratios '$adv.range_cond.by_ratios' + #else + --step '$adv.range_cond.by_step' + #end if #if str($adv.seed_cond.seed_param) == 'not_random' --seed '$adv.seed_cond.seed' #end if + #if len(components) > 0 + --fixed_values '#echo json.dumps(components)#' + #end if ]]></command> <inputs> <param name="input_file" type="data" format="tabular" label="Input file with components and their max values." /> - <param name="num_samples" type="integer" value="99" min="1" max="198" label="Number of samples to generate" /> + <param name="num_samples" type="integer" min="1" label="Number of samples to generate" /> <section name="adv" title="Advanced Options" expanded="false"> - <param name="step" type="float" value="2.5" min="1" max="10" label="Step size for creating discrete ranges" /> + <!-- Range --> + <conditional name="range_cond"> + <param name="range_param" type="select" label="Seed" help="How to create the discrete range"> + <option value="step" selected="true">step</option> + <option value="ratios">ratios</option> + </param> + <when value="step"> + <param name="by_step" type="float" value="2.5" min="0" label="Step size for creating discrete ranges" /> + </when> + <when value="ratios"> + <param name="by_ratios" type="text" label="Ratios to be sampled"> + <validator type="regex" message="List of float values, separated by a comma without of spaces">^(\d+(\.\d+)?)(,\d+(\.\d+)?)*$</validator> + </param> + </when> + </conditional> + <!-- Fixed values --> + <repeat name="rep" title="Fixed values for components as a dictionary"> + <param name="component_name" type="text" value="" label="Component Name"> + <validator type="empty_field" message="Not empty" /> + </param> + <param name="component_value" type="integer" value="1" min="1" label="Value" /> + </repeat> + <!-- Seed --> <conditional name="seed_cond"> <param name="seed_param" type="select" label="Seed" help="Choose a seed or let it as random"> <option value="random" selected="true">random</option> @@ -50,7 +85,7 @@ <param name="seed" value="0" /> <output name="output_sampling" file="sampler/output/sampling.test-1.tsv" ftype="tabular" compare="diff" /> </test> - <!-- test 1: check if identical outputs are produced with default parameters --> + <!-- test 2: with specific step --> <test> <param name="input_file" value="sampler/input/components.tsv" /> <param name="num_samples" value="4" /> @@ -59,6 +94,32 @@ <param name="seed" value="0" /> <output name="output_sampling" file="sampler/output/sampling.test-2.tsv" ftype="tabular" compare="diff" /> </test> + <!-- test 3: with fixed values --> + <test> + <param name="input_file" value="sampler/input/components.tsv" /> + <param name="num_samples" value="3" /> + <param name="seed_param" value="not_random" /> + <param name="seed" value="0" /> + <repeat name="rep"> + <param name="component_name" value="Hela lysate" /> + <param name="component_value" value="10" /> + </repeat> + <repeat name="rep"> + <param name="component_name" value="RNA 1ug/uL" /> + <param name="component_value" value="20" /> + </repeat> + <output name="output_sampling" file="sampler/output/sampling.test-3.tsv" ftype="tabular" compare="diff" /> + </test> + <!-- test 4: with ratios --> + <test> + <param name="input_file" value="sampler/input/components.tsv" /> + <param name="num_samples" value="4" /> + <param name="seed_param" value="not_random" /> + <param name="seed" value="0" /> + <param name="range_param" value="ratios" /> + <param name="by_ratios" value="0.5,0.1,0.3,0.2" /> + <output name="output_sampling" file="sampler/output/sampling.test-4.tsv" ftype="tabular" compare="diff" /> + </test> </tests> <help><![CDATA[ Sampler