comparison influx_si.xml @ 2:57f199aa07e4 draft default tip

planemo upload for repository https://github.com/workflow4metabolomics/tools-metabolomics/blob/master/tools/influx_si/ commit 77b389c6f38fb8eb7d46366e7dd75b01229cc911
author workflow4metabolomics
date Wed, 13 Dec 2023 08:56:04 +0000
parents 4e3d4318113b
children
comparison
equal deleted inserted replaced
1:4e3d4318113b 2:57f199aa07e4
1 <tool id="influx_si" name="influx_si" version="@TOOL_VERSION@+galaxy1"> 1 <tool id="influx_si" name="influx_si" version="@TOOL_VERSION@+galaxy1" profile="21.09">
2 <description>metabolic flux analysis</description> 2 <description>
3 <macros> 3 Estimate metabolic fluxes and concentrations by fitting simulated labeling in metabolites to NMR/MS measurements
4 <token name="@TOOL_VERSION@">5.1.0</token> 4 </description>
5 </macros> 5 <creator>
6 <requirements> 6 <person givenName="Serguei" familyName="Sokol" email="sokol@insa-toulouse.fr" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/cellule-mathematiques/" />
7 <requirement type="package" version="@TOOL_VERSION@">influx_si</requirement> 7 <organization name="INRAE" url="https://www.inrae.fr/" />
8 </requirements> 8 <organization name="TBI" url="https://www.toulouse-biotechnology-institute.fr/" />
9 <version_command>influx_s --version</version_command> 9 <organization name="Mathematics Cell" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/cellule-mathematiques/" />
10 <command detect_errors="exit_code"><![CDATA[ 10 <organization name="MetaToul-FluxoMet" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/metatoul/" />
11 #set $inp_all = [$input_main, ($prlexp.input_aux if $prlexp.input_aux else [])] 11 <organization name="MetaboHub2" url="https://www.metabohub.fr/" />
12 #if $si.s_i == 'i': 12 </creator>
13 #silent $inp_all.append($si.input_ti) 13 <macros>
14 #end if 14 <import>macros.xml</import>
15 </macros>
16 <requirements>
17 <requirement type="package" version="@TOOL_VERSION@">influx_si</requirement>
18 </requirements>
19 <command detect_errors="exit_code"><![CDATA[
20 #for $inp in $input_main:
21 unzip $inp;
22 #end for
23
24 ret=0;
25 influx_$si.s_i
26 $noopt
27 $noscale
28 $fullsys
29 $emu
30 $irand
31 $ln
32 $sln
33 $tikhreg
34 $lim
35 $ffguess
36 $nocalc
37 $addnoise
38 $TIMEIT
39 $prof
40 #if $opt.meth:
41 --meth='$opt.meth'
42 #end if
43 #if $opt.sens:
44 --sens='$opt.sens'
45 #end if
46 #if $opt.cupx:
47 --cupx='$opt.cupx'
48 #end if
49 #if $opt.cupn:
50 --cupn='$opt.cupn'
51 #end if
52 #if $opt.cupp:
53 --cupp='$opt.cupp'
54 #end if
55 #if $opt.clownr:
56 --clownr='$opt.clownr'
57 #end if
58 #if $opt.cinout:
59 --cinout='$opt.cinout'
60 #end if
61 #if $opt.clowp:
62 --clowp='$opt.clowp'
63 #end if
64 #if $opt.np:
65 --np='$opt.np'
66 #end if
67 #if $opt.zc:
68 --zc='$opt.zc'
69 #end if
70 #if $opt.fseries:
71 --fseries='$opt.fseries'
72 #end if
73 #if $opt.iseries:
74 --iseries='$opt.iseries'
75 #end if
76 #if $opt.seed:
77 --seed='$opt.seed'
78 #end if
79 #if $opt.excl_outliers:
80 --excl_outliers $opt.excl_outliers
81 #end if
82 #if $opt.tblimit:
83 --tblimit='$opt.tblimit'
84 #end if
85 #if $si.s_i == 'i' and $si.time_order != 'None':
86 --time_order='$si.time_order'
87 #end if
88 #for $inp in $input_main:
89 #set base = $inp.name[:-4]
90 --prefix "$base"
91 #end for
92 #if $opt.mtf:
93 --mtf '$opt.mtf'
94 #end if
95
96 || ret=\$?;
15 97
16 mkdir outdir && cd outdir && 98 #for $inp in $input_main:
99 #set base = $inp.name[:-4]
100 for f in "$base"_res/*.{err,log}; do mv -f "\$f" "\$f".txt || true; done;
101 for f in "$base"_res/*.{sim,stat}; do mv -f "\$f" "\$f".tsv || true; done;
102 for f in "$base"_res/*.pdf; do [ -e "\$f" ] && mv -f "\$f" "\$f".pdf || true; done;
103 rm -rf "$base"_res/tmp || true;
104 #end for
105 exit \$ret;
106 ]]></command>
107 <inputs>
108 <param type="data" format="zip" name="input_main" multiple="true" label="At least one MTF collection (.netw, .miso, ...)"/>
109 <conditional name="si">
110 <param name="s_i" type="select" label="labeling type" display="radio">
111 <option value="s">stationary</option>
112 <option value="i">instationary</option>
113 </param>
114 <when value="s"/>
115 <when value="i">
116 <param argument="--time_order" type="select" display="radio" label="Time order for ODE solving" help="Order 2 is more precise but more time consuming than order 1. The value &#x27;1,2&#x27; makes to start solving the ODE with the first order scheme then continues with the order 2.">
117 <option value="None">From .opt file or Default</option>
118 <option value="1">1 (Default)</option>
119 <option value="2">2</option>
120 <option value="1,2">1,2</option>
121 </param>
122 </when>
123 </conditional>
124 <section name="opt" title="Advanced Options" expanded="false">
125 <param argument="--noopt" type="boolean" checked="false" truevalue="--noopt" falsevalue="" label="--noopt" help="no optimization, just use free parameters as is (after a projection on feasibility domain), to calculate dependent fluxes, cumomers, stats and so on" />
126 <param argument="--noscale" type="boolean" checked="false" truevalue="--noscale" falsevalue="" label="--noscale" help="no scaling factors to optimize =&gt; all scaling factors are assumed to be 1" />
127 <param argument="--fullsys" type="boolean" checked="false" truevalue="--fullsys" falsevalue="" label="--fullsys" help="calculate all cumomer set (not just the reduced one necessary to simulate measurements)" />
128 <param argument="--emu" type="boolean" checked="false" truevalue="--emu" falsevalue="" label="--emu" help="simulate labeling in EMU approach" />
129 <param argument="--irand" type="boolean" checked="false" truevalue="--irand" falsevalue="" label="--irand" help="ignore initial approximation for free parameters (free fluxes and metabolite concentrations) from the FTBL file or from a dedicated file (cf --fseries and --iseries option) and use random values drawn uniformly from [0,1] interval" />
130 <param argument="--ln" type="boolean" checked="false" truevalue="--ln" falsevalue="" label="--ln" help="Least norm solution is used for increments during the non-linear iterations when Jacobian is rank deficient" />
131 <param argument="--sln" type="boolean" checked="false" truevalue="--sln" falsevalue="" label="--sln" help="Least norm of the solution of linearized problem (and not just of increments) is used when Jacobian is rank deficient" />
132 <param argument="--tikhreg" type="boolean" checked="false" truevalue="--tikhreg" falsevalue="" label="--tikhreg" help="Approximate least norm solution is used for increments during the non-linear iterations when Jacobian is rank deficient" />
133 <param argument="--lim" type="boolean" checked="false" truevalue="--lim" falsevalue="" label="--lim" help="The same as --ln but with a function limSolve::lsei()" />
134 <param argument="--ffguess" type="boolean" checked="false" truevalue="--ffguess" falsevalue="" label="--ffguess" help="Don&#x27;t use free/dependent flux definitions from FTBL file(s). Make an automatic guess." />
135 <param argument="--nocalc" type="boolean" checked="false" truevalue="--nocalc" falsevalue="" label="--nocalc" help="generate an R code but not execute it." />
136 <param argument="--addnoise" type="boolean" checked="false" truevalue="--addnoise" falsevalue="" label="--addnoise" help="Add centered gaussian noise to simulated measurements written to _res.kvh file. SD of this noise is taken from FTBL file" />
137 <param argument="--TIMEIT" type="boolean" checked="false" truevalue="--TIMEIT" falsevalue="" label="--TIMEIT" help="developer option: measure cpu time or not" />
138 <param argument="--prof" type="boolean" checked="false" truevalue="--prof" falsevalue="" label="--prof" help="developer option: do time profiling or not" />
17 139
18 #for $inp in $inp_all: 140 <param argument="--meth" type="select" label="--meth" optional="true" help="method for optimization, one of nlsic|BFGS|Nelder-Mead|pso. Default: nlsic">
19 #for $i in $inp: 141 <option value="BFGS">BFGS</option>
20 ln -s '$i' '$i.element_identifier' && 142 <option value="Nelder-Mead">Nelder-Mead</option>
21 #end for 143 <option value="nlsic">nlsic</option>
22 #end for 144 <option value="pso">pso</option>
145 </param>
146 <param argument="--sens" type="text" value="" label="--sens" optional="true" help="sensitivity method: SENS can be &#x27;mc[=N]&#x27;, mc stands for Monte-Carlo. N is an optional number of Monte-Carlo simulations. Default for N: 10" />
147 <param argument="--cupx" type="float" min="0" max="1" value="" label="--cupx" optional="true" help="upper limit for reverse fluxes. Must be in interval [0, 1]. Default: 0.999" />
148 <param argument="--cupn" type="float" min="0" value="" label="--cupn" optional="true" help="absolute limit for net fluxes: -cupn &lt;= netflux &lt;= cupn. Must be non negative. Value 0 means no limit. Default: 1.e3" />
149 <param argument="--cupp" type="float" min="0" value="" label="--cupp" optional="true" help="upper limit for metabolite pool. Default: 1.e5" />
150 <param argument="--clownr" type="float" min="0" value="" label="--clownr" optional="true" help="lower limit for not reversible free and dependent fluxes. Zero value (default) means no lower limit" />
151 <param argument="--cinout" type="float" min="0" value="" label="--cinout" optional="true" help="lower limit for input/output free and dependent fluxes. Must be non negative. Default: 0" />
152 <param argument="--clowp" type="float" min="0" value="" label="--clowp" optional="true" help="lower limit for free metabolite pools. Must be positive. Default 1.e-8" />
153 <param argument="--np" type="float" min="0" value="" label="--np" optional="true" help="When integer &gt;= 1, it is a number of parallel subprocesses used in Monte-Carlo (MC) simulations or for multiple FTBL inputs. When NP is a float number between 0 and 1, it gives a fraction of available cores (rounded to closest integer) to be used. Without this option or for NP=0, all available cores in a given node are used for MC simulations." />
154 <param argument="--zc" type="float" min="0" value="" label="--zc" optional="true" help="Apply zero crossing strategy with non negative threshold for net fluxes" />
155 <param argument="--fseries" type="text" value="" label="--fseries" optional="true" help="File name with free parameter values for multiple starting points. Default: &#x27;&#x27; (empty, i.e. only one starting point from the FTBL file is used)" />
156 <param argument="--iseries" type="text" value="" label="--iseries" optional="true" help="Indexes of starting points to use. Format: &#x27;1:10&#x27; -- use only first ten starting points; &#x27;1,3&#x27; -- use the the first and third starting points; &#x27;1:10,15,91:100&#x27; -- a mix of both formats is allowed. Default: &#x27;&#x27; (empty, i.e. all provided starting points are used)" />
157 <param argument="--seed" type="integer" min="0" value="" label="--seed" optional="true" help="Integer (preferably a prime integer) used for reproducible random number generating. It makes reproducible random starting points (--irand) but also Monte-Carlo simulations for sensitivity analysis. Default: none, i.e. current system value is used, so random drawing will be varying at each run." />
158 <param argument="--excl_outliers" type="float" min="0" max="1" value="" label="--excl_outliers" optional="true" help="This option takes an optional argument, a p-value between 0 and 1 which is used to filter out measurement outliers. The filtering is based on Z statistics calculated on reduced residual distribution. Default: 0.01." />
159 <param argument="--tblimit" type="integer" min="0" value="0" label="--tblimit" optional="true" help="developer option: set trace back limit for python error messages" />
160 <param argument="--mtf" type="text" value="" label="--mtf MTF" optional="true" help="MTF is a coma separated list of files with following extensions: netw, linp, miso, mflux, mmet, tvar, cnstr, ftbl, vmtf. Only first 3 files are necessary to obtain a workable FTBL file, others are optional."/>
161 </section>
162 </inputs>
163 <outputs>
164 <collection name="influx_si_output" type="list:list" label="influx_${si.s_i}_on_${on_string}">
165 <discover_datasets match_relative_path="true" recurse="true" pattern="(?P&lt;identifier_0&gt;[^/]+)_res/(?P&lt;identifier_1&gt;[^/]+)\.(?P&lt;ext&gt;[^.]+)" visible="false"/>
166 </collection>
167 </outputs>
168 <tests>
169 <test>
170 <param name="input_main" value="e_coli.zip" />
171 <conditional name="si">
172 <param name="s_i" value="s" />
173 </conditional>
174 <output_collection name="influx_si_output" type="list:list" count="1">
175 <element name="e_coli" count="7">
176 <element name="e_coli.log">
177 <assert_contents>
178 <has_n_lines n="38"/>
179 <has_line_matching expression="^end.*"/>
180 </assert_contents>
181 </element>
182 </element>
183 </output_collection>
184 </test>
185 </tests>
186 <help><![CDATA[
187 Select one or several zip archives with MTF (Multiple TSV Files) sets, stationary/instationary labeling type and possibly some advanced option to run the tool.
23 188
24 influx_$si.s_i 189 Detailed documentation is available on https://influx-si.readthedocs.io
25 $opt.noopt 190 ]]></help>
26 $opt.noscale 191 <citations>
27 #if $opt.meth != 'None': 192 <citation type="bibtex">
28 $opt.meth 193 @misc{githubinflux,
29 #end if 194 author = {Sokol, Serguei},
30 $opt.fullsys 195 year = {2023},
31 $opt.emu 196 title = {influx_s},
32 $opt.irand 197 publisher = {GitHub},
33 #if $opt.sens: 198 journal = {GitHub repository},
34 --sens='$opt.sens' 199 url = {https://github.com/sgsokol/influx},
35 #end if 200 }
36 #if $opt.cupx: 201 </citation>
37 --cupx='$opt.cupx' 202 <citation type="doi">10.1093/bioinformatics/btr716</citation>
38 #end if 203 </citations>
39 #if $opt.cupn:
40 --cupn='$opt.cupn'
41 #end if
42 #if $opt.cupp:
43 --cupp='$opt.cupp'
44 #end if
45 #if $opt.clownr:
46 --clownr='$opt.clownr'
47 #end if
48 #if $opt.cinout:
49 --cinout='$opt.cinout'
50 #end if
51 #if $opt.clowp:
52 --clowp='$opt.clowp'
53 #end if
54 #if $opt.np:
55 --np='$opt.np'
56 #end if
57 $opt.ln
58 $opt.sln
59 $opt.tikhreg
60 $opt.lim
61 #if $opt.zc:
62 --zc='$opt.zc'
63 #end if
64 $opt.ffguess
65 #if $opt.iseries:
66 --iseries='$opt.iseries'
67 #end if
68 #if $opt.seed:
69 --seed='$opt.seed'
70 #end if
71 #if $opt.excl_outliers:
72 --excl_outliers '$opt.excl_outliers'
73 #end if
74 $opt.nocalc
75 $opt.addnoise
76 $opt.TIMEIT
77 #if $opt.tblimit:
78 --tblimit='$opt.tblimit'
79 #end if
80
81 #if $si.s_i == 'i' and $si.time_order:
82 --time_order='$si.time_order'
83 #end if
84 '${"' '".join([str($in_m.element_identifier) for $in_m in $input_main])}'
85 > 'influx_${si.s_i}.stdout.txt' 2>'influx_${si.s_i}.stderr.txt'; res="\$?" &&
86
87 for f in *.ftbl *.log *.err *.R *.kvh *.attrs; do mv -f "\$f" "\$f".txt || true; done &&
88
89 for f in *.pdf; do [ -e "\$f" ] && mv -f "\$f" "\$f".pdf || true; done &&
90
91 for f in *.RData; do [ -e "\$f" ] && mv -f "\$f" "\$f".RData || true; done &&
92 [ "\$res" == "0" ]
93 ]]></command>
94 <inputs>
95 <param type="data" name="input_main" format="ftbl" multiple="true" label="main FTBL(s): network+data"/>
96 <conditional name="si">
97 <param name="s_i" type="select" label="labeling type" display="radio">
98 <option value="s">stationary</option>
99 <option value="i">instationary</option>
100 </param>
101 <when value="s"/>
102 <when value="i">
103 <param type="data" name="input_ti" label="time course data" format="txt,tsv" multiple="true"/>
104 <param argument="--time_order" type="select" label="time order for ODE solving" optional="true" help="Order 2 is more precise but more time consuming. The value &#x27;1,2&#x27; makes to start solving the ODE with the first order scheme then continues with the order 2.">
105 <option value="None">None</option>
106 <option value="1">1</option>
107 <option value="2">2</option>
108 <option value="1,2">1,2</option>
109 </param>
110 </when>
111 </conditional>
112 <section name="prlexp" title="Parallel labeling experiments" expanded="false">
113 <param optional="true" type="data" name="input_aux" format="ftbl" multiple="True" label="auxiliary FTBL(s): data only"/>
114 </section>
115 <section name="opt" title="Advanced Options" expanded="false">
116 <param argument="--noopt" type="boolean" checked="false" truevalue="--noopt" falsevalue="" label="no optimization" optional="true" help=", just use free parameters as is (after a projection on feasibility domain), to calculate dependent fluxes, cumomers, stats and so on" />
117 <param argument="--noscale" type="boolean" checked="false" truevalue="--noscale" falsevalue="" label="no scaling factors to optimize" optional="true" help="all scaling factors are assumed to be 1" />
118 <param argument="--meth" type="select" label="method for optimization" optional="true">
119 <option value="--meth=BFGS">BFGS</option>
120 <option value="--meth=Nelder-Mead">Nelder-Mead</option>
121 <option value="--meth=nlsic">nlsic</option>
122 </param>
123 <param argument="--fullsys" type="boolean" checked="false" truevalue="--fullsys" falsevalue="" label="full cumomer system" optional="true" help="calculate all cumomer set (not just the reduced one necesary to simulate measurements)" />
124 <param argument="--emu" type="boolean" checked="false" truevalue="--emu" falsevalue="" label="simulate labeling in EMU approach" optional="true" />
125 <param argument="--irand" type="boolean" checked="false" truevalue="--irand" falsevalue="" label="random initial approximation" optional="true" help="ignore initial approximation for free parameters (free fluxes and metabolite concentrations) from the FTBL file (cf. also --iseries option) and use random values drawn uniformly from [0,1] interval" />
126 <param argument="--sens" type="text" value="" label="sensitivity method" optional="true" help="can be &#x27;mc[=N]&#x27;, mc stands for Monte-Carlo. N is an optional number of Monte-Carlo simulations. Default for N: 10" />
127 <param argument="--cupx" type="float" min="0" max="1" value="" label="upper limit for reverse fluxes" optional="true" help="Must be in interval [0, 1]. Default: 0.999" />
128 <param argument="--cupn" type="float" min="0" value="" label="absolute limit for net fluxes" optional="true" help="-cupn &lt;= netflux &lt;= cupn. Must be non negative. Value 0 means no limit. Default: 1.e3" />
129 <param argument="--cupp" type="float" min="0" value="" label="upper limit for metabolite pool" optional="true" help="Default: 1.e5" />
130 <param argument="--clownr" type="float" min="0" value="" label="lower limit for not reversible free and dependent fluxes" optional="true" help="Zero value (default) means no lower limit" />
131 <param argument="--cinout" type="float" min="0" value="" label="lower limit for input/output free and dependent fluxes" optional="true" help="Must be non negative. Default: 0" />
132 <param argument="--clowp" type="float" min="0" value="" label="lower limit for free metabolite pools" optional="true" help="Must be positive. Default 1.e-8" />
133 <param argument="--np" type="float" min="0" value="" label="process number" optional="true" help="When integer &gt;= 1, it is a number of parallel subprocesses used in Monte-Carlo (MC) simulations or for multiple FTBL inputs. When NP is a float number between 0 and 1, it gives a fraction of available cores (rounded to closest integer) to be used. Without this option or for NP=0, all available cores in a given node are used for MC simulations." />
134 <param argument="--ln" type="boolean" checked="false" truevalue="--ln" falsevalue="" label="least norm" optional="true" help="Least norm solution is used for increments during the non-linear iterations when Jacobian is rank deficient" />
135 <param argument="--sln" type="boolean" checked="false" truevalue="--sln" falsevalue="" label="solution least norm" optional="true" help="Least norm of the solution of linearized problem (and not just of increments) is used when Jacobian is rank deficient" />
136 <param argument="--tikhreg" type="boolean" checked="false" truevalue="--tikhreg" falsevalue="" label="use Tikhonov regularization" optional="true" help="Approximate least norm solution is used for increments during the non-linear iterations when Jacobian is rank deficient" />
137 <param argument="--lim" type="boolean" checked="false" truevalue="--lim" falsevalue="" label="least norm from limSolve package" optional="true" help="The same as --ln but with a function limSolve::lsei()" />
138 <param argument="--zc" type="float" min="0" value="" label="zero crossing" optional="true" help="Apply zero crossing strategy with non negative threshold for net fluxes" />
139 <param argument="--ffguess" type="boolean" checked="false" truevalue="--ffguess" falsevalue="" label="free fluxes guess" optional="true" help="Don&#x27;t use free/dependent flux definitions from FTBL file(s). Make an automatic guess." />
140 <param argument="--iseries" type="text" value="" label="indexes of starting points" optional="true" help="When used jointly with --irand, allows generating multiple random starting points. Format: &#x27;1:10&#x27; -- use only first ten starting points; &#x27;1,3&#x27; -- use the the first and third starting points; &#x27;1:10,15,91:100&#x27; -- a mix of both formats is allowed. Default: &#x27;&#x27; (empty, i.e. all provided starting points are used)" />
141 <param argument="--seed" type="integer" min="0" value="" label="random seed" optional="true" help="Integer (preferably a prime integer) used for reproducible random number generating. It makes reproducible random starting points (--irand) but also Monte-Carlo simulations for sensitivity analysis. Default: none, i.e. current system value is used, so random drawing will be varying at each run." />
142 <param argument="--excl_outliers" type="float" min="0" max="1" value="" label="threshold for excluding outliers" optional="true" help="This option takes an optional argument, a p-value between 0 and 1 which is used to filter out measurement outliers. The filtering is based on Z statistics calculated on reduced residual distribution. Default: 0.01." />
143 <param argument="--nocalc" type="boolean" checked="false" truevalue="--nocalc" falsevalue="" label="no calculation" optional="true" help="generate an R code but not execute it." />
144 <param argument="--addnoise" type="boolean" checked="false" truevalue="--addnoise" falsevalue="" label="add noise" optional="true" help="Add centered gaussian noise to simulated measurements written to _res.kvh file. SD of this noise is taken from FTBL file" />
145 <param argument="--TIMEIT" type="boolean" checked="false" truevalue="--TIMEIT" falsevalue="" label="measure timings" optional="true" help="developer option: measure cpu time or not" />
146 <param argument="--tblimit" type="integer" min="0" value="0" label="Python traceback limit" optional="true" help="developer option: set trace back limit for Python error messages" />
147 </section>
148 </inputs>
149 <outputs>
150 <!-- TODO: this should probably not be a collection, also name_and_ext probably does not work correctly for all elements-->
151 <collection name="influx_si_output" type="list" label="influx_${si.s_i}_on_${on_string}">
152 <discover_datasets pattern="__name_and_ext__" directory="outdir" visible="false"/>
153 </collection>
154 </outputs>
155 <tests>
156 <test>
157 <param name="input_main" value="e_coli.ftbl" />
158 <conditional name="si">
159 <param name="s_i" value="s" />
160 </conditional>
161 <output_collection name="influx_si_output" type="list" count="11">
162 <element name="e_coli.log" ftype="txt">
163 <assert_contents>
164 <has_n_lines n="38"/>
165 <has_line_matching expression="^end.*"/>
166 </assert_contents>
167 </element>
168 </output_collection>
169 </test>
170 <test>
171 <param name="input_main" value="e_coli.ftbl,e_coli_growth.ftbl" />
172 <conditional name="si">
173 <param name="s_i" value="s" />
174 </conditional>
175 <output_collection name="influx_si_output" type="list">
176 <element name="e_coli_growth.log" ftype="txt">
177 <assert_contents>
178 <has_n_lines n="45"/>
179 <has_line_matching expression="^end.*"/>
180 </assert_contents>
181 </element>
182 </output_collection>
183 </test>
184 <test>
185 <param name="input_main" value="e_coli_i.ftbl" />
186 <conditional name="si">
187 <param name="s_i" value="i" />
188 <param name="input_ti" value="e_coli_msen.txt" />
189 <!--param name="time_order" value="1,2" /--> <!--How to pass single value with comma in it?-->
190 </conditional>
191 <output_collection name="influx_si_output" type="list">
192 <element name="e_coli_i.log" ftype="txt">
193 <assert_contents>
194 <has_n_lines n="47"/>
195 <has_line_matching expression="^end.*"/>
196 </assert_contents>
197 </element>
198 </output_collection>
199 </test>
200 <test>
201 <param name="input_main" value="e_coli_1-Glc_exact.ftbl" />
202 <param name="input_aux" value="e_coli_U-Glc_exact.ftbl" />
203 <conditional name="si">
204 <param name="s_i" value="s" />
205 </conditional>
206 <output_collection name="influx_si_output" type="list">
207 <element name="e_coli_1-Glc_exact.log" ftype="txt">
208 <assert_contents>
209 <has_n_lines n="40"/>
210 <has_line_matching expression="^end.*"/>
211 </assert_contents>
212 </element>
213 </output_collection>
214 </test>
215 </tests>
216 <help><![CDATA[
217 Optimize free fluxes and optionaly metabolite concentrations of a given static metabolic network defined in an FTBL file to fit 13C data provided in the same FTBL file.
218 ]]></help>
219 <citations>
220 <citation type="bibtex">
221 @misc{githubinflux,
222 author = {Sokol, Serguei},
223 year = {2020},
224 title = {influx_s},
225 publisher = {GitHub},
226 journal = {GitHub repository},
227 url = {https://github.com/sgsokol/influx},
228 }
229 </citation>
230 <citation type="doi">10.1093/bioinformatics/btr716</citation>
231 </citations>
232 </tool> 204 </tool>