Mercurial > repos > fubar > mashmap
diff toolfactory/toolfactory.xml @ 1:0183cad9d13b draft
planemo upload
author | fubar |
---|---|
date | Thu, 22 Feb 2024 10:48:01 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/toolfactory/toolfactory.xml Thu Feb 22 10:48:01 2024 +0000 @@ -0,0 +1,655 @@ +<tool id="toolfactory" name="toolfactory" version="3.0" profile="22.05" > + <description>Scripts into tools v3.0</description> + <macros> + <xml name="dataColumn"> + <param name="param_dataref" type="text" value="" label="Input data name to use as source of data column names"/> + <param name="param_multiple" type="boolean" truevalue="1" falsevalue="" value = "" + label="Allow user to make multiple selections" help="default is single selection"/> + <param name="param_value" type="text" value="" label="Default column value"> + </param> + </xml> + <xml name="singleText"> + <param name="param_value" type="text" value="" label="Default text value"> + <sanitizer invalid_char="_"> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + </xml> + <xml name="singleInt"> + <param name="param_value" type="integer" value="" label="Default integer value" > + </param> + </xml> + <xml name="singleFloat"> + <param name="param_value" type="float" value="" label="Default value"> + </param> + </xml> + <xml name="singleBoolean"> + <param name="param_value" type="boolean" value="" label="Default value" /> + <param name="truevalue" type="text" value="True" label="Command line value when True" /> + <param name="falsevalue" type="boolean" value="True" label="Command line value when False" /> + </xml> + <xml name="selectText"> + <repeat name="selectTexts" title="Add each option to be presented" 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="Explanatory text the user will see for this choice" > + <sanitizer invalid_char="_"> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + <param name="select_value" type="text" value="" label="Value for the command line when the user selects this option"> + <sanitizer invalid_char="_"> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + </repeat> + </xml> + <xml name="selectFlag"> + <repeat name="selectFlags" title="Add mutually exclusive flag selection" min="2" default="2" + help="Supply the corresponding mutually exclusive flag as it should appear on the command line if each option is selected"> + <param name="select_text" type="text" value="" label="Explanatory text the user will see for this choice" > + </param> + <param name="select_value" type="text" value="" label="Value for the command line when the user selects this option" + help="Supply the corresponding mutually exclusive flag as it should appear on the command line if each option is selected"> + </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" + help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/> + <param name="tool_desc" label="Tool Synopsis" type="text" value="" + help="Supply a brief tool description for the Galaxy tool menu entry"> + </param> + <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true" + value="**What it Does**" + help="Supply user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html" > + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + <repeat name="citations" title="Citation"> + <conditional name="citation_type"> + <param name="type" type="select" display="radio" label="Citation Type"> + <option value="doi">DOI</option> + <option value="bibtex">BibTeX</option> + </param> + <when value="doi"> + <param name="doi" label="DOI" type="text" + help="Supply a DOI (e.g. doi: 10.1111/j.1740-9713.2007.00258.x) to be cited when this tool is used in published research." > + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + </when> + <when value="bibtex"> + <param name="bibtex" label="BibTex" type="text" area="true" + help="Supply a BibTex entry that should be cited when this tool is used in published research." value="" > + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + </when> + </conditional> + </repeat> + </xml> + <xml name="io"> + <section name="io" title="Input and output files" expanded="true"> + <repeat name="history_inputs" title="Inputs" min="0" + help="Input data files to pass on the command line to the executable. 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" multiple="true" + help="Note that multiple inputs can be selected if this input parameter will allow multiple selections"/> + <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"> + <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> + <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" > + </param> + <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"> + </param> + <param name="input_required" type="select" label="Input mode - optional, required, repeated optional or 1 or more repeated required."> + <option value="required" selected="true">Required single input</option> + <option value="optional">Optional single input</option> + <option value="required1">Required. 1 or more repeats</option> + <option value="optional1">Optional. 1 or more repeats</option> + </param> + </repeat> + <repeat name="history_outputs" min="0" title="Outputs" + help="New history items output by the executable to appear in the user history after the tool runs. The name will become a history item for + users of the new tool you are making containing one of it's outputs"> + <param name="history_name" type="text" label="Output Name" optional="false" + help="Name used for this output in history. No spaces. Digits and letters only please. Argparse should look for this name on the command line."> + <sanitizer invalid_char="_"> + <valid initial="string.ascii_letters,string.digits" > + <add value="_" /> + </valid> + </sanitizer> + </param> + <param name="history_label" type="text" label="Output label. Allows template substitution" value="" + help="Label used for this output - for example 'Plotlytabular $title on $input_tab.element_identifier' where variable templates are informative." > + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + <param name="history_format" type="select" multiple="false" label="Select the datatype for this output" + help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular"> + <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> + <column name="value" index="0"/> + </options> + </param> + <param name="history_CL" type="text" label="Position" + help="Positional: ordinal integer or 'STDOUT' if '>' required. Ignored if argparse because output name is used. + If positional parameters, enter the integer ordinal expected for this parameter. If argparse, ignore unless STDOUT needed" value=""/> + <param name="history_test" type="text" label="Output test criteria" + help="Pass/fail decision criterion for this output compared to test generation. Accepted variants include diff:100, sim_size:100 and sim_size:0.1" + value="diff:0"/> + <repeat name="history_whens" title="Optional change_format on this data" min="0" help="ADVANCED option only!! Easy to get wrong!"> + <param name="history_when" type="text" label="Add a 'when' expression for this output so format can depend on another parameter" + help="Supply the three key=value pairs needed as shown - no quotes: input=image_format value=small_png format=png" value=""> + </param> + </repeat> + </repeat> + <repeat name="collection_outputs" title="Output Collections" min="0" + help="New history collections to appear in the user history after the tool runs. Hides outputs not needed for downstream tools such as + images and intermediate reports." default="0"> + <param name="name" type="text" label="Name" + help="for new collection with all outputs not individually passed to history outputs. No spaces! Script MUST create and fill a directory + with the same name and the tool test MUST be overwritten - see the plotter example for hints"> + </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="Collection label. Allows template substitution" value="" + help="Label used for this output - for example 'Plotlytabular $title on $input_tab.element_identifier' where variable templates are informative." > + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + <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"> + <section name="addparam" title="Arguments" help="Executable or script settings passed on the command line other than I/O files" expanded="true"> + <param name="edit_params" type="select" display="radio" label="Make these settings on the generated tool form user editable?" + help="If no, users will NOT be able to alter any additional parameters. If yes, these will appear on the tool form as text fields with no validation or sanitizing"> + <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="Command Line Parameters" min="0" + help="Command line settings for the user to pass to the executable. See examples below to see how these can be parsed by scripts in the various languages"> + <param name="param_name" type="text" value="" label="Name for this parameter. Underscore, letters and digits only. No spaces allowed"> + <sanitizer invalid_char="_"> + <valid initial="string.ascii_letters,string.digits"> + <add value="_"/> + </valid> + </sanitizer> + </param> + <conditional name="ap_type"> + <param name="param_type" type="select" label="Type for this parameter"> + <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> + <option value="selectflag">Select from a mutually exclusive list of command line flags to pass</option> + <option value="clflag">Flag - user can set. Only used for argparse parameter passing style</option> + <option value="datacolumn">Data column - user selects from an input tabular file column name/header values</option> + </param> + <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> + <when value = "selectflag"> + <expand macro="selectFlag" /> + </when> + <when value = "clflag"> + <param name="param_value" type="select" value="notset"> + <option value='notset'>DO NOT set this flag</option> + <option value='set'>SET this flag</option> + </param> + </when> + <when value = "datacolumn"> + <expand macro="dataColumn" /> + </when> + </conditional> + <param name="param_label" type="text" value="" label="Label for the form"> + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </param> + <param name="param_help" type="text" value="" label="Help for this parameter"> + <sanitizer> + <valid initial="string.printable" > + </valid> + </sanitizer> + </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="" /> + <param name="param_CLprefixed" type="text" label="Override the generated default argparse name prefix if not empty - eg ----foo if needed" + help="Some targets like Planemo expect an unadorned action like 'test' before --galaxy_root." value=""> + <sanitizer invalid_char="_"> + <valid initial="string.printable" > + <remove value="'" /> + </valid> + </sanitizer> + </param> + <param name="param_repeat" type="boolean" checked="False" truevalue="1" falsevalue="0" + label="Allow user to repeat this as many times as needed." /> + </repeat> + </section> + </xml> + </macros> +<requirements> + <requirement type="package" version="3.10.12">python</requirement> + <requirement type="package" version="0.5.3">galaxyxml</requirement> + <requirement type="package" version="1.2.0">bioblend</requirement> + <requirement type="package" version="0.75.20">planemo</requirement> + <requirement type="package" version="0.10.10">ephemeris</requirement> +</requirements> + +<command detect_errors="exit_code"><![CDATA[ +#import os +#set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1' +#if not $__user_email__ + #set useremail = 'admin@galaxy.this' +#else + #set useremail = $__user_email__ +#end if +#if not $dev_env and ( $__user_email__ not in $__admin_users__ ) + python3 $__tool_directory__/toolfactory.py --bad_user $__user_email__ +#else + python3 $__tool_directory__/toolfactory.py + #if len(str($cl_options.cl_suffix)) > 0 +--cl_suffix "$clsuffix" + #end if + #if len(str($cl_options.cl_prefix)) > 0 +--cl_prefix "$clprefix" + #end if + #if len(str($cl_options.cl_override)) > 0 +--cl_override "$commandoverride" + #end if + #if len(str($cl_options.test_override)) > 0 +--test_override "$testoverride" + #end if + #if $deps.packages > "": + --packages "$deps.packages" + #end if + #if $deps.usescript.choosescript == "yes" +--script_path "$runscript" +--sysexe "$deps.usescript.scriptrunner" + #end if +--tool_name "$tool_name" --user_email "$useremail" --citations "$citeme" --parampass "$io_param.ppass.parampass" +--tool_desc "$tool_desc" +--tool_version "$tool_version" +--help_text "$helpme" + #if $io_param.ppass.parampass != '0' + #if str($io_param.ppass.addparam.edit_params) == "yes" +--edit_additional_parameters + #end if + #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 if $apar.ap_type.param_type=="selectflag" +--selectflag_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.selectFlags): + "$st.select_value" + #if ($i < (len($apar.ap_type.selectFlags)-1)): + , + #end if + #end for + ], "texts": [ + #for $i,$st in enumerate($apar.ap_type.selectFlags): + "$st.select_text" + #if ($i < (len($apar.ap_type.selectFlags)-1)): + , + #end if + + #end for + ] + }' + #else if $apar.ap_type.param_type=="datacolumn" +--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", "repeat": "$apar.param_repeat", "multiple": "$apar.ap_type.param_multiple", + "dataref": "$apar.ap_type.param_dataref"}' + #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", "repeat": "$apar.param_repeat"}' + #end if + #end for + #end if + #for $intab in $io_param.ppass.io.history_inputs +--input_files '{"name": "$intab.input_files", "CL": "$intab.input_CL", "format": "$intab.input_formats", "label": "$intab.input_label", +"help": "$intab.input_help", "required": "$intab.input_required"}' + #end for + #for $otab in $io_param.ppass.io.history_outputs + #if str($otab.history_label) > "" + --output_files '{"name": "$otab.history_name", "format": "$otab.history_format", "CL": "$otab.history_CL", "test": "$otab.history_test", "label": "$otab.history_label" + #else + --output_files '{"name": "$otab.history_name", "format": "$otab.history_format", "CL": "$otab.history_CL", "test": "$otab.history_test" + #end if + #if $otab.history_whens + , "when": [ + #for $i, $hw in enumerate($otab.history_whens) + "$hw.history_when" + #if ($i < (len($otab.history_whens)-1)) + , + #end if + #end for + ] + #end if + }' + #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 +--tfcollection 'toolgen' +--tested_tool_out "$untested_tool" +--nftest +--galaxy_root "$__root_dir__" +--toolfactory_dir "$__tool_directory__" + #if $cl_options.xtracond.needxtra == "yes" + #for $x in $cl_options.xtracond.xtra_files +--xtra_file '{"fpath":"$x", "fname":"$x.element_identifier"}' + #end for + #end if +#end if +]]> +</command> + <configfiles> + <configfile name="runscript"> +${deps.usescript.dynScript} + </configfile> + <configfile name="commandoverride"> +#if len(str($cl_options.cl_override).strip()) > 1: +${cl_options.cl_override} +#end if + </configfile> + <configfile name="testoverride"> +#if len(str($cl_options.test_override).strip()) > 1: +${cl_options.test_override} +#end if + </configfile> +<configfile name="clprefix"> +#if len(str($cl_options.cl_prefix).strip()) > 1: +${cl_options.cl_prefix} +#end if + </configfile> + <configfile name="clsuffix"> +#if len(str($cl_options.cl_suffix).strip()) > 1: +${cl_options.cl_suffix} +#end if + </configfile> + <configfile name="helpme"> +${help_text} + </configfile> + <configfile name="citeme"> + +#for $citation in $citations: + #if $citation.citation_type.type == "bibtex": + **ENTRY**bibtex + ${citation.citation_type.bibtex} + #else + **ENTRY**doi + ${citation.citation_type.doi} + #end if +#end for + + </configfile> + </configfiles> + <inputs> + <param name="tool_name" type="text" value="my_tool" label="New tool ID and title for outputs" + help="Toolshed repository name so lower case, digits and underscores only. Choose thoughtfully to avoid namespace clashes with other tool writers."> + <sanitizer invalid_char="_"> + <valid initial="string.ascii_lowercase,string.digits"> + <add value="_"/> + </valid> + </sanitizer> + </param> + + <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" 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" + help = "For script interpreters like Python or bash, parameters and i/o specified below must match script's expectations - i + f you pass parameters, the script must deal with them"> + <option value="no">No script required for this tool - just pass parameters on the command line to the first dependency listed above</option> + <option value="yes" selected="true">Yes, a script is ready to be pasted below</option> + </param> + <when value="no"> + <param name="dynScript" type="hidden" value="" /> + <param name="scriptrunner" type="hidden" value="" /> + </when> + <when value="yes"> + <param name="scriptrunner" type="text" value="" label="Interpreter for the script - eg bash or python. Can be one of the dependencies named + above or a system executable" help="Scripts are interpreted by the executable named here. For conda r-base, 'Rscript --vanilla' or for + conda planemo, 'planemo test' for example"> + </param> + <param name="dynScript" type="text" area="True" value="" label="Script for executable above to interpret. It can be one of the Conda dependency names" + help="Script must handle all i/o and parameters as specified below using the parameters and passing method chosen below"> + <sanitizer> + <valid initial="string.printable"/> + </sanitizer> + </param> + </when> + </conditional> + </section> + <section name="io_param" title="Data file input, output and settings forming the executable or script command line" expanded="true"> + <conditional name="ppass"> + <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use"> + <option value="argparse" selected="true">Argparse: passed in the form of --clname value</option> + <option value="embed">Script has Cheetah templates for parameters embedded into the code</option> + <option value="embednfmod">Specialised embed with nf-core module pixie dust</option> + <option value="positional">Positional: Passed in the order of positional ordinals ...foo.bam bar.idx zot.xls</option> + <option value="0">Tool reads selected input file from STDIN and writes STDOUT with no parameters</option> + </param> + <when value="argparse"> + <expand macro="io" /> + <expand macro="additparam" /> + </when> + <when value="embed"> + <expand macro="io" /> + <expand macro="additparam" /> + </when> + <when value="embednfmod"> + <expand macro="io" /> + <expand macro="additparam" /> + </when> + <when value="positional"> + <expand macro="io" /> + <expand macro="additparam" /> + </when> + <when value="0"> + <expand macro="io"/> + </when> + </conditional> + </section> + <section name="cl_options" title="ADVANCED DIY MANUAL REPLACEMENT OPTIONS: Test or command line prefix, suffix or DIY command line" expanded="false" > + <param name="cl_prefix" type="text" area="True" value="" label="Prefix for generated command line. Useful for bash pre processing. + Use override below to replace completely" + help="';' separated bash commands can be used here for pre processing like renaming or copying datasets for the script - + added at start of autogenerated command line"> + <sanitizer> + <valid initial="string.printable" /> + </sanitizer> + </param> + <param name="cl_suffix" type="text" area="True" value="" label="Suffix for generated command line. Useful for bash post processing. + Use override below to replace completely" + help="';' separated bash commands can be used here for post processing - added at end of autogenerated command line" > + <sanitizer> + <valid initial="string.printable" /> + </sanitizer> + </param> + <param name="cl_override" type="text" area="True" label="Optional. Human wrought command element override XML/template - e.g. for bwa" + help="For arbitrary and artfull command lines. All i/o and parameters must be passed. Leave blank unless needed. Not for the faint of heart" value=""> + <sanitizer> + <valid initial="string.printable"/> + </sanitizer> + </param> + <param name="test_override" type="text" area="True" label="Optional. Human wrought test element override XML/template - e.g. for bwa" + help="For arbitrary and artfull scripts. Leave blank unless needed. Not for the faint of heart" value=""> + <sanitizer> + <valid initial="string.printable" /> + </sanitizer> + </param> + <conditional name="xtracond"> + <param name="needxtra" type="select" display="radio" label="Specific files from the history must be available in the tool directory" + help = "If you need a java .jar file or special data file for your script to be able to access, upload it to the history and select it here"> + <option value="no" selected="true">No special files need to be available in the tool directory for the script to use</option> + <option value="yes">Yes - some special files must be copied into the tool directory</option> + </param> + <when value="no"> + <param name="xtra_files" type="hidden" value="" /> + </when> + <when value="yes"> + <param name="xtra_files" type="data" format="data" label="Select all files from your history to add to tool directory for the script to use" multiple="true" + help="If your script needs access to a .jar or other specific permanent resource, upload it before building, so you can select it here. + All those selected history items will be added to the tool directory. That path is available at execution as $__tool_directory__, for use in the command section. + These need to be expanded and used as parameters for the script where needed: $__tool_directory__/BlastTools.jar for example"/> + </when> + </conditional> + </section> + <expand macro="tool_metadata" /> + <param name="useremail" type="hidden" value="" /> + <param name="script_path" type="hidden" value="" /> + </inputs> + <outputs> + <collection name="toolgen" type="list" label="${tool_name} generated components"> + <discover_datasets pattern="__name_and_ext__" directory="toolgen" visible="false"/> + </collection> + <data name="untested_tool" format="tgz" label = "${tool_name}_toolshed_archive"/> + </outputs> + <tests> + <test> + <param name="useremail" value="admin.galaxy.here" /> + <param name="input_files" value="input1_sample" /> + <param name="input_CL" value="1" /> + <param name="input_formats" value="txt" /> + <param name="input_label" value="input" /> + <param name="input_help" value="help" /> + <param name="tool_name" value="pyrevpos" /> + <param name="parampass" value="positional" /> + <param name="tool_version" value="0.01" /> + <param name="tool_desc" value="positional reverse" /> + <param name="help_text" value="help text goes here" /> + <param name="packages" value="python" /> + <param name="history_name" value="output2" /> + <param name="history_format" value="txt" /> + <param name="history_CL" value="2" /> + <param name="dynScript" value="import sys; inp = sys.argv[1]; outp = sys.argv[2]; inlist = open(inp,'r').readlines(); + o = open(outp,'w'); rs = [''.join(list(reversed(x.rstrip()))) for x in inlist]; o.write('\n'.join(rs)); o.close()" /> + <param name="choosescript" value="yes" /> + <param name="script_path" value="$runscript" /> + <output name="untested_tool" file="pyrevpos_not_tested.toolshed_sample" ftype="tgz" compare="sim_size" delta_frac="0.1" /> + </test> + </tests> + <help> + +**Details and attribution** +(see GTF_) + +**Local Admins ONLY** +Only users with emails in the local admin_user configuration setting in config/galaxy.yml can run this tool. + +**If you find a bug** +Please raise an issue, or even better, submit a pull request fixing it, on the github repository GTF_ + +**What it does** +This tool contains an automated code generator, and creates normal, workflow compatible Galaxy tools as Toolshed ready archives. The +new tool is immediately installed and available for use - a page refresh will be needed to see the new tool in the "Local" tool section. + +Generated tools can use existing Conda packages. These become requirements for optional scripts pasted into this tool form. +Pasted scripts *cannot be adjusted* by the downstream user. + +Any number of parameters can be built into the new tool form for passing in to the script or executable at runtime. +These can be editable by the downstream user or baked in. + +A new tarball compatible with any Galaxy toolshed is created in your history, including a test based on the supplied default parameter +values and input history datasets. + +.. class:: warningmark + +**Note to system administrators** +This tool offers *NO* built in protection against malicious scripts. It should only be installed on private/personnal Galaxy instances. +Admin_users will have the power to do anything they want as the Galaxy user if you install this tool. + +.. class:: warningmark + +**Use on public servers** is STRONGLY discouraged for obvious reasons + +The tools generated by this tool will run just as securely as any other normal installed Galaxy tool but like any other new tools, +should always be checked carefully before installation. We recommend that you follow the good code hygiene practices associated with safe toolshed practices. + + +Paper_ + +*Licensing* + +Copyright Ross Lazarus May 2012 +Licensed under the MIT_ licence. + +.. _MIT: https://mit-license.org/ +.. _GTF: https://github.com/fubar2/galaxy_tf_overlay +.. _Paper: https://academic.oup.com/bioinformatics/article/28/23/3139/192853 + + + </help> + <citations> + <citation type="doi">10.1093/bioinformatics/bts573</citation> + </citations> +</tool> + +