comparison toolfactory/rgToolFactory2.xml @ 38:a30536c100bf draft

Updated history outputs
author fubar
date Wed, 12 Aug 2020 01:43:46 -0400
parents ce2b1f8ea68d
children 2cd6555baf44
comparison
equal deleted inserted replaced
37:099047ee7094 38:a30536c100bf
1 <tool id="rgTF2" name="toolfactory" version="2.00"> 1 <tool id="rgTF2" name="toolfactory" version="2.00" profile="16.04" >
2 <description>Scripts into tools</description> 2 <description>Scripts into tools</description>
3 <macros> 3 <macros>
4 <xml name="io"> 4 <xml name="io">
5 <repeat name="history_inputs" title="Add a data file from your history to pass in to the script. Use the '+' button as needed" 5 <repeat name="history_inputs" title="Add a data file from your history to pass in to the script. Use the '+' button as needed"
6 help="USE SMALL SAMPLES because these will be used for the new tool's test. The names will become a history item selector as input for users of the new tool you are making"> 6 help="USE SMALL SAMPLES because these will be used for the new tool's test. The names will become a history item selector as input for users of the new tool you are making">
7 <param name="input_files" type="data" format="data" label="Select an input file from your history" optional="true" size="120" multiple="false" 7 <param name="input_files" type="data" format="data" label="Select an input file from your history" optional="true" multiple="false"
8 help=""/> 8 help=""/>
9 <param name="input_formats" type="select" multiple="true" label="Select the datatype(s) that your tool/script accepts as input" 9 <param name="input_formats" type="select" multiple="true" label="Select the datatype(s) that your tool/script accepts as input"
10 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular"> 10 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
11 <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> 11 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
12 <column name="value" index="0"/> 12 <column name="value" index="0"/>
13 </options> 13 </options>
14 </param> 14 </param>
15 <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative" size="60" 15 <param name="input_label" type="text" value="" label="This will become the user prompt for the form so please make it informative"
16 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" > 16 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
17 <sanitizer invalid_char=""> 17 <sanitizer invalid_char="">
18 <valid initial="string.printable"> <remove value='~~~'/> </valid> 18 <valid initial="string.printable"> <remove value='~~~'/> </valid>
19 <mapping initial="none"/> 19 <mapping initial="none"/>
20 </sanitizer> 20 </sanitizer>
21 </param> 21 </param>
22 <param name="input_help" type="text" value="parameter_help" label="This will become help text on the form." 22 <param name="input_help" type="text" value="parameter_help" label="This will become help text on the form."
23 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" size="60"> 23 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation">
24 <sanitizer invalid_char=""> 24 <sanitizer invalid_char="">
25 <valid initial="string.printable"> <remove value='~~~'/> </valid> 25 <valid initial="string.printable"> <remove value='~~~'/> </valid>
26 <mapping initial="none"/> 26 <mapping initial="none"/>
27 </sanitizer> 27 </sanitizer>
28 </param> 28 </param>
29 <param name="input_CL" type="text" size="60" label="Positional: ordinal integer. Argparse: argument name." 29 <param name="input_CL" type="text" label="Positional: ordinal integer. Argparse: argument name. STDIN if the executable/script expects it"
30 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=""> 30 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="">
31 </param> 31 </param>
32 </repeat> 32 </repeat>
33 <repeat name="history_outputs" title="Add a tool run output file to the user's history from your tool - Use the '+' button to add as many as needed" 33 <repeat name="history_outputs" title="Add a tool run output file to the user's history from your tool - Use the '+' button to add as many as needed"
34 help="The name will become a history item for users of the new tool you are making containing one of it's outputs"> 34 help="The name will become a history item for users of the new tool you are making containing one of it's outputs">
35 <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" size="120" 35 <param name="history_name" type="text" label="Name for this output to appear in new history" optional="false" help=""/>
36 help=""/>
37 <param name="history_format" type="select" multiple="false" label="Select the datatype for this output" 36 <param name="history_format" type="select" multiple="false" label="Select the datatype for this output"
38 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular"> 37 help="If your datatype is not listed here, it has to be added in galaxy's datatypes_conf.xml" value="tabular">
39 <options from_parameter="tool.app.datatypes_registry.upload_file_formats"> 38 <options from_parameter="tool.app.datatypes_registry.upload_file_formats">
40 <column name="value" index="0"/> 39 <column name="value" index="0"/>
41 </options> 40 </options>
42 </param> 41 </param>
43 <param name="history_CL" type="text" size="60" label="Positional: ordinal integer. Argparse: argument name expected for this output parameter" 42 <param name="history_CL" type="text" label="Positional: ordinal integer. Argparse: argument name expected for this output parameter. Use STDOUT if '>' required."
44 help="If positional parameters, enter the integer ordinal expected for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""> 43 help="If positional parameters, enter the integer ordinal expected for this parameter. If Argparse style, '--' will be prepended or '-' if single character" value=""/>
45 </param>
46 </repeat> 44 </repeat>
47 </xml> 45 </xml>
48 <xml name="additparam"> 46 <xml name="additparam">
49 <param name="edit_params" type="select" display="radio" label="Add any additional parameters to the generated tool form so they are user editable?" 47 <param name="edit_params" type="select" display="radio" label="Add any additional parameters to the generated tool form so they are user editable?"
50 help="If no (default), 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"> 48 help="If no (default), 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">
51 <option value="yes">Yes, allow user to edit all additional parameters on the generated tool form</option> 49 <option value="yes">Yes, allow user to edit all additional parameters on the generated tool form</option>
52 <option value="no" selected="true">No - use the fixed values for all additional parameters - no user editing</option> 50 <option value="no" selected="true">No - use the fixed values for all additional parameters - no user editing</option>
53 </param> 51 </param>
54 52
55 <repeat name="additional_parameters" title="Pass additional parameters to the script" 53 <repeat name="additional_parameters" title="Pass additional parameters to the script"
56 help="See examples below to see how these can be parsed by scripts in the various languages"> 54 help="See examples below to see how these can be parsed by scripts in the various languages">
57 <param name="param_name" type="text" value="parameter_name" label="Choose the name for this parameter" size="60"> 55 <param name="param_name" type="text" value="parameter_name" label="Choose the name for this parameter">
58 <sanitizer invalid_char=""> 56 <sanitizer invalid_char="">
59 <valid initial="string.letters,string.digits"/> 57 <valid initial="string.letters,string.digits"/>
60 <mapping initial="none"/> 58 <mapping initial="none"/>
61 </sanitizer> 59 </sanitizer>
62 </param> 60 </param>
63 <param name="param_type" type="select" label="Select the type for this parameter"> 61 <param name="param_type" type="select" label="Select the type for this parameter">
64 <option value="text" selected="true">text</option> 62 <option value="text" selected="true">text</option>
65 <option value="integer">integer</option> 63 <option value="integer">integer</option>
66 <option value="float">float</option> 64 <option value="float">float</option>
67 </param> 65 </param>
68 <param name="param_value" type="text" value="" label="Enter this parameter's default value" size="60" 66 <param name="param_value" type="text" value="" label="Enter this parameter's default value"
69 help="Note that '~~~' is an internal delimiter must not appear in this text field - please work around this technical limitation" > 67 help="Note that '~~~' is an internal delimiter must not appear in this text field - please work around this technical limitation" >
70 <sanitizer invalid_char=""> 68 <sanitizer invalid_char="">
71 <valid initial="string.printable"> <remove value='~~~'/> </valid> 69 <valid initial="string.printable"> <remove value='~~~'/> </valid>
72 <mapping initial="none"/> 70 <mapping initial="none"/>
73 </sanitizer> 71 </sanitizer>
74 </param> 72 </param>
75 <param name="param_label" type="text" value="parameter_label" label="Enter this parameter's label for the form" size="60" 73 <param name="param_label" type="text" value="parameter_label" label="Enter this parameter's label for the form"
76 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" > 74 help="Note that '~~~' is an internal delimiter so must not appear in this text field - please work around this technical limitation" >
77 <sanitizer invalid_char=""> 75 <sanitizer invalid_char="">
78 <valid initial="string.printable"> <remove value='~~~'/> </valid> 76 <valid initial="string.printable"> <remove value='~~~'/> </valid>
79 <mapping initial="none"/> 77 <mapping initial="none"/>
80 </sanitizer> 78 </sanitizer>
81 </param> 79 </param>
82 <param name="param_help" type="text" value="parameter_help" label="Help for this parameter" 80 <param name="param_help" type="text" value="parameter_help" label="Help for this parameter"
83 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" size="60"> 81 help="Note that three consecutive ~ cannot be used in this text field - please work around this technical limitation" >
84 <sanitizer invalid_char=""> 82 <sanitizer invalid_char="">
85 <valid initial="string.printable"> <remove value='~~~'/> </valid> 83 <valid initial="string.printable"> <remove value='~~~'/> </valid>
86 <mapping initial="none"/> 84 <mapping initial="none"/>
87 </sanitizer> 85 </sanitizer>
88 </param> 86 </param>
89 <param name="param_CL" type="text" size="60" label="Positional order (must be integer > 1) or Argument name to be prefixed with '--' or '-' if single letter" 87 <param name="param_CL" type="text" label="Positional ordinal or argparse argument name"
90 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=""> 88 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="" />
91 </param> 89 <param name="param_CLprefixed" type="text" label="Override the generated default argparse name prefix if not empty - eg ----foo if needed"
90 help="Some targets like Planemo expect an unadorned action like 'test' before --galaxy_root and so on. " value="" />
91
92 </repeat> 92 </repeat>
93 </xml> 93 </xml>
94 <xml name="builtin_dynpar"> 94 <xml name="builtin_dynpar">
95 <param name="interpreter_version" type="text" value="" 95 <param name="interpreter_version" type="text" value=""
96 label="Specific interpreter version to match dependency (Conda) repositories - e.g. for python '3.8.5' Latest if empty"/> 96 label="Specific interpreter version to match dependency (Conda) repositories - e.g. for python '3.8.5' Latest if empty"/>
97 <param name="exe_package_version" type="text" value="" 97 <param name="exe_package_version" type="text" value=""
98 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/> 98 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/>
99 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True" 99 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True"
100 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately"> 100 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately">
101 <sanitizer> 101 <sanitizer>
102 <valid initial="string.printable"> 102 <valid initial="string.printable">
103 </valid> 103 </valid>
104 <mapping initial="none"/> 104 <mapping initial="none"/>
106 </param> 106 </param>
107 </xml> 107 </xml>
108 <xml name="dynpar"> 108 <xml name="dynpar">
109 <param name="interpreter_version" type="text" value="" 109 <param name="interpreter_version" type="text" value=""
110 label="Specific interpreter version to match dependency (Conda) repositories - e.g. for python '3.8.5' Latest if empty"/> 110 label="Specific interpreter version to match dependency (Conda) repositories - e.g. for python '3.8.5' Latest if empty"/>
111 <param name="exe_package_version" type="text" value="" 111 <param name="exe_package_version" type="text" value=""
112 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/> 112 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/>
113 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True" 113 <param name="dynScript" label="Cut and paste the script to be executed here" type="text" value="Script goes here" area="True"
114 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately"> 114 help="If there are parameters, either positional or argparse style, the script must parse and use them appropriately">
115 <sanitizer> 115 <sanitizer>
116 <valid initial="string.printable"> 116 <valid initial="string.printable">
117 </valid> 117 </valid>
118 <mapping initial="none"/> 118 <mapping initial="none"/>
128 #import os 128 #import os
129 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1' 129 #set dev_env = os.environ.get('GALAXY_DEVELOPMENT_ENVIRONMENT', '0') == '1'
130 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ): 130 #if not $dev_env and ( $__user_email__ not in $__admin_users__ ):
131 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__ 131 $__tool_directory__/rgToolFactory2.py --bad_user $__user_email__
132 #else: 132 #else:
133 $__tool_directory__/rgToolFactory2.py 133 $__tool_directory__/rgToolFactory2.py
134 --runmode "$interexe.interpreter" 134 --runmode "$interexe.interpreter"
135 #if str($interexe.interpreter)=="Executable" or str($interexe.interpreter)=="system": 135 #if str($interexe.interpreter)=="Executable" or str($interexe.interpreter)=="system":
136 --exe_package="$interexe.exe_package" 136 --exe_package="$interexe.exe_package"
137 #if str($interexe.exe_package_version) != 'None' : 137 #if str($interexe.exe_package_version) != 'None' :
138 --exe_package_version="$interexe.exe_package_version" 138 --exe_package_version="$interexe.exe_package_version"
139 #end if 139 #end if
140 #else: 140 #else:
141 --interpreter_name="$interexe.interpreter" --script_path "$runme" 141 --interpreter_name="$interexe.interpreter" --script_path "$runme"
142 #if str($interexe.interpreter_version) != 'None': 142 #if str($interexe.interpreter_version) != 'None':
143 --interpreter_version="$interexe.interpreter_version" 143 --interpreter_version="$interexe.interpreter_version"
144 #end if 144 #end if
145 #end if 145 #end if
146 --tool_name="$tool_name" --user_email="$__user_email__" --citations="$citeme" --parampass="$ppass.parampass" 146 --tool_name="$tool_name" --user_email="$__user_email__" --citations="$citeme" --parampass="$ppass.parampass"
151 --help_text="$helpme" 151 --help_text="$helpme"
152 --new_tool="$new_tool" 152 --new_tool="$new_tool"
153 #end if 153 #end if
154 #if $ppass.parampass != '0': 154 #if $ppass.parampass != '0':
155 #if str($ppass.edit_params) == "yes": 155 #if str($ppass.edit_params) == "yes":
156 --edit_additional_parameters 156 --edit_additional_parameters
157 #end if 157 #end if
158 #for apar in $ppass.additional_parameters: 158 #for apar in $ppass.additional_parameters:
159 --additional_parameters="$apar.param_name~~~$apar.param_value~~~$apar.param_label~~~$apar.param_help~~~$apar.param_type~~~$apar.param_CL" 159 --additional_parameters="$apar.param_name~~~$apar.param_value~~~$apar.param_label~~~$apar.param_help~~~$apar.param_type~~~$apar.param_CL~~~$apar.param_CLprefixed"
160 #end for 160 #end for
161 #end if 161 #end if
162 162
163 #for $intab in $ppass.history_inputs: 163 #for $intab in $ppass.history_inputs:
164 --input_files="$intab.input_files~~~$intab.input_CL~~~$intab.input_formats~~~$intab.input_label~~~$intab.input_help" 164 --input_files="$intab.input_files~~~$intab.input_CL~~~$intab.input_formats~~~$intab.input_label~~~$intab.input_help"
166 166
167 167
168 #for $otab in $ppass.history_outputs: 168 #for $otab in $ppass.history_outputs:
169 --output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL" 169 --output_files "$otab.history_name~~~$otab.history_format~~~$otab.history_CL"
170 #end for 170 #end for
171 #end if 171 #end if
172 ]]></command> 172 ]]></command>
173 <configfiles> 173 <configfiles>
174 <configfile name="runme"> 174 <configfile name="runme">
175 175
176 #if $interexe.interpreter != "Executable" and $interexe.interpreter != "system" : 176 #if $interexe.interpreter != "Executable" and $interexe.interpreter != "system" :
200 #end if 200 #end if
201 </configfile> 201 </configfile>
202 </configfiles> 202 </configfiles>
203 <inputs> 203 <inputs>
204 204
205 <param name="tool_name" type="text" value="tool1" label="New tool ID and title for outputs" size="60" 205 <param name="tool_name" type="text" value="tool1" label="New tool ID and title for outputs"
206 help="This will become the toolshed repository name so choose thoughtfully to avoid namespace clashes with other tool writers. lower case, digits and underscores only"> 206 help="This will become the toolshed repository name so choose thoughtfully to avoid namespace clashes with other tool writers. lower case, digits and underscores only">
207 <sanitizer invalid_char=""> 207 <sanitizer invalid_char="">
208 <valid initial="string.letters,string.digits"> 208 <valid initial="string.letters,string.digits">
209 <add value="_"/> 209 <add value="_"/>
210 </valid> 210 </valid>
211 </sanitizer> 211 </sanitizer>
212 </param> 212 </param>
213 <conditional name="interexe"> 213 <conditional name="interexe">
214 <param name="interpreter" type="select" label="For binaries, choose 'Executable'. Otherwise choose the interpreter for your code" 214 <param name="interpreter" type="select" label="For binaries, choose 'Executable'. Otherwise choose the interpreter for your code"
215 help = "If executable, the supplied package will become a requirement so must match the tool dependency resolver package name - conda is the default."> 215 help = "If executable, the supplied package will become a requirement so must match the tool dependency resolver package name - conda is the default.">
216 <option value="Executable" selected="true">An executable binary to be provided and managed by the Conda dependency management subsystem</option> 216 <option value="Executable" selected="true">An executable binary to be provided and managed by the Conda dependency management subsystem</option>
217 <option value="python">python</option> 217 <option value="python">python</option>
221 <option value="sh">sh</option> 221 <option value="sh">sh</option>
222 <option value="system" >A system executable found on the path such as awk/sed</option> 222 <option value="system" >A system executable found on the path such as awk/sed</option>
223 <option value="specialtestcaseinterpreterpython" >for testing only - do not use me please</option> 223 <option value="specialtestcaseinterpreterpython" >for testing only - do not use me please</option>
224 </param> 224 </param>
225 <when value="Executable"> 225 <when value="Executable">
226 <param name="exe_package" type="text" value="" label="Executable package name in dependency (Conda) repositories - e.g. 'bwa'" size="60" optional="false"/> 226 <param name="exe_package" type="text" value="" label="Executable package name in dependency (Conda) repositories - e.g. 'bwa'" optional="false"/>
227 <param name="exe_package_version" type="text" value="" label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty" size="60"/> 227 <param name="exe_package_version" type="text" value="" label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty" />
228 </when> 228 </when>
229 <when value="system"> 229 <when value="system">
230 <param name="exe_package" type="text" value="" label="System executable to run" size="60" optional="false"/> 230 <param name="exe_package" type="text" value="" label="System executable to run" optional="false"/>
231 <param name="exe_package_version" type="text" value="" 231 <param name="exe_package_version" type="text" value=""
232 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/> 232 label="Executable package version to match dependency (Conda) repositories - e.g. for bwa='0.7.17'. Latest if empty"/>
233 </when> 233 </when>
234 <when value = "python"> 234 <when value = "python">
235 <expand macro="dynpar" /> 235 <expand macro="dynpar" />
251 </when> 251 </when>
252 </conditional> 252 </conditional>
253 <conditional name = "ppass"> 253 <conditional name = "ppass">
254 254
255 <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use"> 255 <param name="parampass" type="select" display="radio" label="Command line parameter passing method to use">
256 <option value="argparse" selected="true">Argparse style: on CL in the form of --inputbam="foo.bam" if label below is "inputbam"</option> 256 <option value="argparse" selected="true">Argparse style: passed in the form of '--[clname] [value]'</option>
257 <option value="positional">Positional: on CL in the order defined on this screen -> "... foo.bam bar.idx zot.xls"</option> 257 <option value="positional">Positional: Passed in the order of positional ordinals '...foo.bam bar.idx zot.xls'</option>
258 <option value="0">No parameters needed because tool reads selected history file from STDIN and writes to STDOUT for history"</option> 258 <option value="0">No parameters needed because tool reads selected input file from STDIN and writes STDOUT with new history output"</option>
259 </param> 259 </param>
260 <when value = "argparse"> 260 <when value = "argparse">
261 <expand macro="io" /> 261 <expand macro="io" />
262 <expand macro="additparam" /> 262 <expand macro="additparam" />
263 </when> 263 </when>
266 <expand macro="additparam" /> 266 <expand macro="additparam" />
267 </when> 267 </when>
268 <when value = "0"> 268 <when value = "0">
269 <expand macro="io"/> 269 <expand macro="io"/>
270 </when> 270 </when>
271 </conditional> 271 </conditional>
272 <conditional name="makeMode"> 272 <conditional name="makeMode">
273 <param name="make_Tool" type="select" display="radio" label="Generate new tool as a tar.gz file ready to upload to a toolshed repository" 273 <param name="make_Tool" type="select" display="radio" label="Generate new tool as a tar.gz file ready to upload to a toolshed repository"
274 help="Generate a toolshed archive - upload to a toolshed from where it can be auto-installed via the Galaxy admin functions" 274 help="Generate a toolshed archive - upload to a toolshed from where it can be auto-installed via the Galaxy admin functions" >
275 size="60">
276 <option value="yes">Generate a Galaxy ToolShed compatible toolshed.gz</option> 275 <option value="yes">Generate a Galaxy ToolShed compatible toolshed.gz</option>
277 <option value="" selected="true">No. Just run the script please</option> 276 <option value="" selected="true">No. Just run the script please</option>
278 </param> 277 </param>
279 <when value = "yes"> 278 <when value = "yes">
280 <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01" 279 <param name="tool_version" label="Tool Version - bump this to warn users trying to redo old analyses" type="text" value="0.01"
281 help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/> 280 help="If you change your script and regenerate the 'same' tool, you should inform Galaxy (and users) by changing (bumping is traditional) this number"/>
282 <param name="tool_desc" label="Tool Description" type="text" value="" size="40" 281 <param name="tool_desc" label="Tool Description" type="text" value=""
283 help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)" /> 282 help="Supply a brief tool description for the Galaxy tool menu entry (optional - appears after the tool name)" />
284 <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true" 283 <param name="help_text" label="Tool form documentation and help text for users" type="text" area="true"
285 size="8x120" value="**What it Does**" 284 value="**What it Does**"
286 help="Supply the brief user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html" > 285 help="Supply the brief user documentation to appear on the new tool form as reStructured text - http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html" >
287 <sanitizer> 286 <sanitizer>
288 <valid initial="string.printable"> 287 <valid initial="string.printable">
289 </valid> 288 </valid>
290 <mapping initial="none"/> 289 <mapping initial="none"/>
291 </sanitizer> 290 </sanitizer>
295 <param name="type" type="select" display="radio" label="Citation Type"> 294 <param name="type" type="select" display="radio" label="Citation Type">
296 <option value="doi">DOI</option> 295 <option value="doi">DOI</option>
297 <option value="bibtex">BibTeX</option> 296 <option value="bibtex">BibTeX</option>
298 </param> 297 </param>
299 <when value="doi"> 298 <when value="doi">
300 <param name="doi" label="DOI" type="text" value="" 299 <param name="doi" label="DOI" type="text" value=""
301 help="Supply a DOI (e.g. doi: 10.1111/j.1740-9713.2007.00258.x) that should be cited when this tool is used in published research." /> 300 help="Supply a DOI (e.g. doi: 10.1111/j.1740-9713.2007.00258.x) that should be cited when this tool is used in published research." />
302 </when> 301 </when>
303 <when value="bibtex"> 302 <when value="bibtex">
304 <param name="bibtex" label="BibTex" type="text" area="true" size="8x120" 303 <param name="bibtex" label="BibTex" type="text" area="true"
305 help="Supply a BibTex entry that should be cited when this tool is used in published research." value="" > 304 help="Supply a BibTex entry that should be cited when this tool is used in published research." value="" >
306 <sanitizer> 305 <sanitizer>
307 <valid initial="string.printable"> 306 <valid initial="string.printable">
308 </valid> 307 </valid>
309 <mapping initial="none"/> 308 <mapping initial="none"/>
313 </conditional> 312 </conditional>
314 </repeat> 313 </repeat>
315 </when> 314 </when>
316 <when value = ""> 315 <when value = "">
317 </when> 316 </when>
318 </conditional> 317 </conditional>
319 </inputs> 318 </inputs>
320 <outputs> 319 <outputs>
321 <collection name="ToolFactory_Outputs" type="list" label="Toolfactory ${tool_name} test run outputs" > 320
322 <discover_datasets pattern="__name__" directory="tfout/test-data" format="txt"/> 321 <data format="tgz" name="new_tool" label="${tool_name}_toolshed.tgz" >
323 </collection>
324 <data format="tgz" name="new_tool" label="${tool_name}_toolshed.tgz">
325 <filter>makeMode['make_Tool'] == "yes"</filter> 322 <filter>makeMode['make_Tool'] == "yes"</filter>
326 </data> 323 </data>
324
325 <collection name="TF_run_report" type="list" label="${tool_name} outputs">
326 <discover_datasets pattern="__name__" directory="TF_run_report_tempdir" format="txt"/>
327 </collection>
328
329
327 </outputs> 330 </outputs>
328 <tests> 331 <tests>
329 <test> 332 <test>
330 <param name="input_files" value="input1_sample" /> 333 <param name="input_files" value="input1_sample" />
331 <param name="input_CL" value="1" /> 334 <param name="input_CL" value="1" />
340 <param name="help_text" value="help text goes here" /> 343 <param name="help_text" value="help text goes here" />
341 <param name="interpreter" value="python"/> 344 <param name="interpreter" value="python"/>
342 <param name="history_name" value="output2_sample" /> 345 <param name="history_name" value="output2_sample" />
343 <param name="history_format" value="txt" /> 346 <param name="history_format" value="txt" />
344 <param name="history_CL" value="2" /> 347 <param name="history_CL" value="2" />
345 <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()"/> 348 <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()"/>
346 <output_collection name="ToolFactory_Outputs" type="list">
347 <element name="output2_sample_sample" file="output2_sample" ftype="txt" compare="diff" lines_diff = "10" />
348 </output_collection>
349 <output name="new_tool" file="toolfactory_pyrevpos_tgz_sample" compare="sim_size" delta="6000" /> 349 <output name="new_tool" file="toolfactory_pyrevpos_tgz_sample" compare="sim_size" delta="6000" />
350 <!-- <output name="output" file="output2_sample" ftype="txt" compare="diff" lines_diff = "10" /> -->
350 </test> 351 </test>
351 </tests> 352 </tests>
352 <help> 353 <help>
353 354
354 .. class:: warningmark 355 .. class:: warningmark
355 356
356 **Details and attribution** 357 **Details and attribution**
357 (see GTF_) 358 (see GTF_)
358 359
359 **Local Admins ONLY** 360 **Local Admins ONLY**
360 Only users whose IDs found in the local admin_user configuration setting in universe_wsgi.ini can run this tool. 361 Only users whose IDs found in the local admin_user configuration setting in universe_wsgi.ini can run this tool.
361 362
362 **If you find a bug** 363 **If you find a bug**
363 Please raise an issue, or even better, submit a pull request fixing it, on the github repository GTF_ 364 Please raise an issue, or even better, submit a pull request fixing it, on the github repository GTF_
364 365
365 **What it does** 366 **What it does**
366 This tool optionally generates normal workflow compatible first class Galaxy tools 367 This tool optionally generates normal workflow compatible first class Galaxy tools
367 368
368 Generated tools can run existing binary packages that become requirements, existing scripts, or new scripts pasted into this tool form. 369 Generated tools can run existing binary packages that become requirements, existing scripts, or new scripts pasted into this tool form.
369 Pasted scripts are written so they are part of the new tool and cannot be adjusted by the downstream user. 370 Pasted scripts are written so they are part of the new tool and cannot be adjusted by the downstream user.
370 Binary packages are managed by the dependency subsystem - conda usually, so anything in bioconda or conda_forge is available for example. 371 Binary packages are managed by the dependency subsystem - conda usually, so anything in bioconda or conda_forge is available for example.
380 installed into any toolshed from where it can be installed into your Galaxy. 381 installed into any toolshed from where it can be installed into your Galaxy.
381 382
382 383
383 .. class:: warningmark 384 .. class:: warningmark
384 385
385 **Note to system administrators** 386 **Note to system administrators**
386 This tool offers *NO* built in protection against malicious scripts. It should only be installed on private/personnal Galaxy instances. 387 This tool offers *NO* built in protection against malicious scripts. It should only be installed on private/personnal Galaxy instances.
387 Admin_users will have the power to do anything they want as the Galaxy user if you install this tool. 388 Admin_users will have the power to do anything they want as the Galaxy user if you install this tool.
388 389
389 .. class:: warningmark 390 .. class:: warningmark
390 391
410 o.write(''.join(rs)) 411 o.write(''.join(rs))
411 o.write('\n') 412 o.write('\n')
412 o.close() 413 o.close()
413 414
414 With argparse style parameters: 415 With argparse style parameters:
415 416
416 :: 417 ::
417 418
418 # reverse order of text by row 419 # reverse order of text by row
419 import argparse 420 import argparse
420 parser = argparse.ArgumentParser() 421 parser = argparse.ArgumentParser()
431 rs = list(rs) 432 rs = list(rs)
432 rs.reverse() 433 rs.reverse()
433 o.write(''.join(rs)) 434 o.write(''.join(rs))
434 o.write('\n') 435 o.write('\n')
435 o.close() 436 o.close()
436 437
437 438
438 Paper_ : 439 Paper_ :
439 440
440 Creating re-usable tools from scripts: The Galaxy Tool Factory 441 Creating re-usable tools from scripts: The Galaxy Tool Factory
441 Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team 442 Ross Lazarus; Antony Kaspi; Mark Ziemann; The Galaxy Team
442 Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573 443 Bioinformatics 2012; doi: 10.1093/bioinformatics/bts573
443 444
444 **Licensing** 445 **Licensing**
445 446
446 Copyright Ross Lazarus (ross period lazarus at gmail period com) May 2012 447 Copyright Ross Lazarus (ross period lazarus at gmail period com) May 2012
447 All rights reserved. 448 All rights reserved.
448 Licensed under the LGPL_ 449 Licensed under the LGPL_
449 450