Mercurial > repos > fubar > tool_factory_docker
diff toolfactory_docker/rgToolFactory2.xml @ 6:482386d6cc43 draft default tip
Uploaded
author | fubar |
---|---|
date | Sun, 24 Jan 2021 03:54:01 +0000 |
parents | b4985006fb05 |
children |
line wrap: on
line diff
--- a/toolfactory_docker/rgToolFactory2.xml Fri Jan 08 06:58:02 2021 +0000 +++ b/toolfactory_docker/rgToolFactory2.xml Sun Jan 24 03:54:01 2021 +0000 @@ -1,6 +1,32 @@ <tool id="rgtfd" name="toolfactory" version="2.00" profile="16.04" > <description>Scripts into tools v2.0</description> <macros> + <xml name="singleText"> + <param name="param_value" type="text" value="" label="Enter this parameter's default text value"> + </param> + </xml> + <xml name="singleInt"> + <param name="param_value" type="integer" value="" label="Enter this parameter's default integer value" > + </param> + </xml> + <xml name="singleFloat"> + <param name="param_value" type="float" value="" label="Enter this parameter's default value"> + </param> + </xml> + <xml name="singleBoolean"> + <param name="param_value" type="boolean" value="" label="Enter this parameter's default value" /> + <param name="truevalue" type="text" value="True" label="Command line value to emit when True" /> + <param name="falsevalue" type="boolean" value="True" label="Command line value to emit when False" /> + </xml> + <xml name="selectText"> + <repeat name="selectTexts" title="Add each option to be presented in a text select box" min="2" default="2" + help="Each text added here will also have a value to be emitted on the command line when the text is chosen"> + <param name="select_text" type="text" value="" label="Enter the explanatory text the user will see for this choice" > + </param> + <param name="select_value" type="text" value="" label="Enter the value for the command line when the user selects this option"> + </param> + </repeat> + </xml> <xml name="tool_metadata"> <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01" help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/> @@ -38,9 +64,9 @@ </xml> <xml name="io"> <section name="io" title="Input and output files" expanded="true"> - <repeat name="history_inputs" title="zero or more input data files to pass as parameters to the executable." + <repeat name="history_inputs" title="zero or more input data files to pass on the command line to the executable." help="USE SMALL SAMPLES for the new tool's test. Prompts will form a history item selector as input for users of this new tool"> - <param name="input_files" type="data" format="data" label="Select an input file from your history" optional="true" multiple="false" + <param name="input_files" type="data" format="data" label="Select an input file from your history" multiple="false" help=""/> <param name="input_formats" type="select" multiple="true" label="Select the datatype(s) that your tool/script accepts as input" help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular"> @@ -48,27 +74,14 @@ <column name="value" index="0"/> </options> </param> - <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative" - help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" > - <sanitizer invalid_char=""> - <valid initial="string.printable"> - <remove value='~~~' /> - </valid> - <mapping initial="none"/> - </sanitizer> + <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative" > </param> - <param name="input_help" type="text" value="" label="This will become help text on the form." - help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation"> - <sanitizer invalid_char=""> - <valid initial="string.printable"> - <remove value='~~~' /> - </valid> - <mapping initial="none"/> - </sanitizer> + <param name="input_help" type="text" value="" label="This will become help text on the form." > </param> <param name="input_CL" type="text" label="Positional: ordinal integer. Argparse: argument name. STDIN if the executable/script expects it" help="If you will pass positional parameters, enter the integer ordinal for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""> </param> + <param name="input_repeat" type="boolean" checked="False" truevalue="1" falsevalue="0" label="Allow user to repeat this input as many times as needed." /> </repeat> <repeat name="history_outputs" title="one or more new history items output by the executable to appear in the user history after the tool runs" help="The name will become a history item for users of the new tool you are making containing one of it's outputs"> @@ -91,6 +104,26 @@ <param name="history_test" type="text" label="Test pass decision criterion for this output compared to test generation" help="Available options are diff:[lines], sim_size:[delta (integer) or delta_frac (float)" value="diff:0"/> </repeat> + <repeat name="collection_outputs" title="zero or more new history collections to appear in the user history after the tool runs" + help="A collection contains outputs not needed for downstream tools such as images and intermediate reports" default="0"> + <param name="name" type="text" label="Name for new collection with all outputs not individually passed to history outputs" + help="No spaces! "> + <sanitizer invalid_char="_"> + <valid initial="string.ascii_letters,string.digits" > + <add value="_" /> + </valid> + </sanitizer> + </param> + <param name="kind" type="select" multiple="false" label="Select the kind of collection for this output" + help=""> + <option value="list" selected="true">List</option> + <option value="paired">Paired</option> + <option value="list:paired">List of paired</option> + </param> + <param name="label" type="text" label="Label for this collection" help="" value=""/> + <param name="discover" type="text" label="Discover datasets expression" help="__name_and_ext__ should catch all filenames with extensions" value="__name_and_ext__"/> + </repeat> + </section> </xml> <xml name="additparam"> @@ -100,8 +133,7 @@ <option value="yes" selected="true">Yes, allow user to edit all additional parameters on the generated tool form</option> <option value="no">No - use the fixed values for all additional parameters - no user editing</option> </param> - - <repeat name="additional_parameters" title="zero or more settings to be set by the tool user and passed on the command line" + <repeat name="additional_parameters" title="zero or more command line settings for the user to pass to the executable" help="See examples below to see how these can be parsed by scripts in the various languages"> <param name="param_name" type="text" value="" label="Choose the name for this parameter - MUST not be blank!"> <sanitizer invalid_char=""> @@ -109,37 +141,33 @@ <mapping initial="none"/> </sanitizer> </param> + <conditional name="ap_type"> <param name="param_type" type="select" label="Select the type for this parameter"> - <option value="text" selected="true">text</option> - <option value="integer">integer</option> - <option value="float">float</option> - </param> - <param name="param_value" type="text" value="" label="Enter this parameter's default value" - help="Note that '~~~' is an internal delimiter must not appear in this text field - please work around this technical limitation" > - <sanitizer invalid_char=""> - <valid initial="string.printable"> - <remove value='~~~' /> - </valid> - <mapping initial="none"/> - </sanitizer> + <option value="text" selected="true">Text string</option> + <option value="integer">Integer</option> + <option value="float">Float</option> + <option value="boolean">Boolean</option> + <option value="selecttext">Select text string</option> </param> - <param name="param_label" type="text" value="" label="Enter this parameter's label for the form" - help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" > - <sanitizer invalid_char=""> - <valid initial="string.printable"> - <remove value='~~~'/> - </valid> - <mapping initial="none"/> - </sanitizer> + <when value = "text"> + <expand macro="singleText" /> + </when> + <when value = "integer"> + <expand macro="singleInt" /> + </when> + <when value = "float"> + <expand macro="singleFloat" /> + </when> + <when value = "boolean"> + <expand macro="singleBoolean" /> + </when> + <when value = "selecttext"> + <expand macro="selectText" /> + </when> + </conditional> + <param name="param_label" type="text" value="" label="Enter this parameter's label for the form"> </param> - <param name="param_help" type="text" value="" label="Help for this parameter" - help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" > - <sanitizer invalid_char=""> - <valid initial="string.printable"> - <remove value='~~~'/> - </valid> - <mapping initial="none"/> - </sanitizer> + <param name="param_help" type="text" value="" label="Help for this parameter"> </param> <param name="param_CL" type="text" label="Positional ordinal | argparse argument name" help="Using positional parameters, enter the integer ordinal for this parameter on the command line. Using Argparse style, '--' will be prepended on the CL" value="" /> @@ -198,15 +226,40 @@ #if str($io_param.ppass.addparam.edit_params) == "yes": --edit_additional_parameters #end if - #for apar in $io_param.ppass.addparam.additional_parameters: ---additional_parameters "$apar.param_name~~~$apar.param_value~~~$apar.param_label~~~$apar.param_help~~~$apar.param_type~~~$apar.param_CL~~~$apar.param_CLprefixed" + #for $apar in $io_param.ppass.addparam.additional_parameters: + #if $apar.ap_type.param_type=="selecttext": +--selecttext_parameters '{"name":"$apar.param_name", "label":"$apar.param_label", "help":"$apar.param_help", +"type":"$apar.ap_type.param_type","CL":"$apar.param_CL","override":"$apar.param_CLprefixed","value": [ + #for $i,$st in enumerate($apar.ap_type.selectTexts): + "$st.select_value" + #if ($i < (len($apar.ap_type.selectTexts)-1)): + , + #end if + #end for + ], "texts": [ + #for $i,$st in enumerate($apar.ap_type.selectTexts): + "$st.select_text" + #if ($i < (len($apar.ap_type.selectTexts)-1)): + , + #end if + + #end for + ] + }' + #else: +--additional_parameters '{"name": "$apar.param_name", "value": "$apar.ap_type.param_value", "label": "$apar.param_label", "help": "$apar.param_help", +"type": "$apar.ap_type.param_type","CL": "$apar.param_CL","override": "$apar.param_CLprefixed" }' + #end if #end for #end if #for $intab in $io_param.ppass.io.history_inputs: ---input_files "$intab.input_files~~~$intab.input_CL~~~$intab.input_formats~~~$intab.input_label~~~$intab.input_help" +--input_files '{"name": "$intab.input_files", "CL": "$intab.input_CL", "format": "$intab.input_formats", "label": "$intab.input_label", "help": "$intab.input_help", "repeat": "$intab.input_repeat"}' #end for #for $otab in $io_param.ppass.io.history_outputs: ---output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL~~~$otab.history_test" +--output_files '{"name": "$otab.history_name", "format": "$otab.history_format", "CL": "$otab.history_CL", "test": "$otab.history_test"}' + #end for + #for $collect in $io_param.ppass.io.collection_outputs: +--collection '{"name": "$collect.name", "kind": "$collect.kind", "discover": "$collect.discover", "label": "$collect.label"}' #end for --galaxy_root "$__root_dir__" --tool_dir "$__tool_directory__" @@ -260,7 +313,7 @@ <section name="deps" title="Dependencies, optional script and script interpreter" expanded="true"> <param name="packages" type="text" value="" label="Conda dependencies as package name[:version, name:version...]. These will always be available when this tool executes" - optional="false" help="Use =[ver] or :[ver] for specific version - 'bwa=0.17.0'. Default is latest. Will be used every time the tool is (re)run. Only Conda is currently supported" /> + help="Use =[ver] or :[ver] for specific version - 'bwa=0.17.0'. Default is latest. Will be used every time the tool is (re)run. Only Conda is currently supported" /> <conditional name="usescript"> <param name="choosescript" type="select" display="radio" label="Supply a script for a dependency (e.g. python/R/bash) or a system executable such as Bash" @@ -345,8 +398,8 @@ <param name="make_Tool" type="select" display="radio" label="Choose the steps you want to run. The TF Docker container is recommended for local installation" help="Installation in this Galaxy is optional" > <option value="generate" >Run to generate tests only. Should fail if dependencies needed.</option> - <option value="gentest">Test with planemo after generating.</option> - <option value="gentestinstall" selected="true">Install in this Galaxy after generation and testing. Must have local ToolShed as in the TF Docker container</option> + <option value="gentest" selected="true">Test with planemo after generating.</option> + <option value="gentestinstall">Install in this Galaxy after generation and testing. Must have local ToolShed as in the TF Docker container</option> </param> <when value="generate"> <param name="galaxy_apikey" value="" type="hidden" ></param> @@ -416,7 +469,7 @@ <param name="input_help" value="help" /> <param name="tool_name" value="pyrevpos" /> <param name="parampass" value="positional" /> - <param name="make_Tool" value="generate" /> + <param name="make_Tool" value="gentest" /> <param name="tool_version" value="0.01" /> <param name="tool_desc" value="positional reverse" /> <param name="help_text" value="help text goes here" /> @@ -515,6 +568,27 @@ o.write('\n') o.close() +R script to draw some plots - use a collection. + +:: + + + \# note this script takes NO input because it generates random data + dir.create('plots') + for (i in 1:10) { + foo = runif(100) + bar = rnorm(100) + bar = foo + 0.05*bar + pdf(paste('plots/yet',i,"anotherplot.pdf",sep='_')) + plot(foo,bar,main=paste("Foo by Bar plot \#",i),col="maroon", pch=3,cex=0.6) + dev.off() + foo = data.frame(a=runif(100),b=runif(100),c=runif(100),d=runif(100),e=runif(100),f=runif(100)) + bar = as.matrix(foo) + pdf(paste('plots/yet',i,"anotherheatmap.pdf",sep='_')) + heatmap(bar,main='Random Heatmap') + dev.off() + } + Paper_