changeset 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
files README.rst influx_si.xml macros.xml test-data/e_coli.ftbl test-data/e_coli.log test-data/e_coli.zip test-data/e_coli_1-Glc_exact.ftbl test-data/e_coli_1-Glc_exact.log test-data/e_coli_U-Glc_exact.ftbl test-data/e_coli_growth.ftbl test-data/e_coli_growth.log test-data/e_coli_i.ftbl test-data/e_coli_i.log test-data/e_coli_msen.txt
diffstat 14 files changed, 190 insertions(+), 4198 deletions(-) [+]
line wrap: on
line diff
--- a/README.rst	Wed Sep 13 19:52:44 2023 +0000
+++ b/README.rst	Wed Dec 13 08:56:04 2023 +0000
@@ -2,19 +2,22 @@
 Metabolic flux estimation
 -------------------------
 
-`influx_si` can be used for metabolic flux estimation based on labeling data from MS and/or NMR measurements. `influx_s` is used for stationary labeling and `influx_i` for instationary one (hence the '_s' and '_i' in the names). Tha name `influx_si` is used as common for both tools.
+`influx_si` can be used for estimation of metabolic fluxes and concentrations   based on labeling data from MS and/or NMR measurements. `influx_s` is used for stationary labeling and `influx_i` for instationary one (hence the '_s' and '_i' in the names). The name `influx_si` is used as common for both tools.
 
-The input for `influx_si` in one or several FTBL files, each describing a given labeling experiment and options to use during estimation. In addition, for `influx_i` a file with time course data has to be provided for each FTBL file.
+The input for `influx_si` is an MTF (Multiple TSV Files) collection describing metabolic network, label transition, labeling data and options to use during estimation.
+
+The output is a zip archive with files generated by `influx_si`. File ending with `.tvar.sim` which contains the estimated fluxes and concentrations. Other files ending with `.sim` contain simulated measurements. File ending with `.stat` has results of chi2 test assessing quality of fit.
 
-The output is a zip archive with files generated by `influx_si`. Among the most important is file ending with `_res.kvh` which contains the main information about estimated parameters, their statistics and so on.
-If, in your FTBL file, you have requested ploting information, it can be found in respective .pdf file.
+If, in your `.opt` file, you have requested plotting information (`plot_smeas.R` or `plot_ilab.R`), it can be found in the respective `.pdf` file.
+
+For detailed documentation about `influx_si` and accompanying tools see https://influx-si.readthedocs.io
 
-For detailed documentation about `influx_si` and accompanying tools see https://metasys.insa-toulouse.fr/software/influx/doc/
+For getting a standalone version of `influx_si <https://anaconda.org/bioconda/influx_si>`_, you can install it e.g. with `conda <https://docs.conda.io/en/latest/miniconda.html>`_ package manager: ::
 
-For getting a standalone version of `influx_si` see https://metasys.insa-toulouse.fr/software/influx/
+ conda install -c conda-forge -c bioconda influx_si
 
 Author: Serguei Sokol
 
 License: GPL2
 
-© INRAE 2020
+© INRAE/INSA/CNRS 2023
--- a/influx_si.xml	Wed Sep 13 19:52:44 2023 +0000
+++ b/influx_si.xml	Wed Dec 13 08:56:04 2023 +0000
@@ -1,232 +1,204 @@
-<tool id="influx_si" name="influx_si" version="@TOOL_VERSION@+galaxy1">
-   <description>metabolic flux analysis</description>
-   <macros>
-        <token name="@TOOL_VERSION@">5.1.0</token>
-   </macros>
-   <requirements>
-      <requirement type="package" version="@TOOL_VERSION@">influx_si</requirement>
-   </requirements>
-   <version_command>influx_s --version</version_command>
-   <command detect_errors="exit_code"><![CDATA[
-       #set $inp_all = [$input_main, ($prlexp.input_aux if $prlexp.input_aux else [])]
-       #if $si.s_i == 'i':
-         #silent $inp_all.append($si.input_ti)
-       #end if
-
-       mkdir outdir && cd outdir &&
-
-       #for $inp in $inp_all:
-         #for $i in $inp:
-           ln -s '$i' '$i.element_identifier' &&
-         #end for
-       #end for
-
-       influx_$si.s_i
-            $opt.noopt
-            $opt.noscale
-            #if $opt.meth != 'None':
-               $opt.meth
+<tool id="influx_si" name="influx_si" version="@TOOL_VERSION@+galaxy1" profile="21.09">
+    <description>
+        Estimate metabolic fluxes and concentrations by fitting simulated labeling in metabolites to NMR/MS measurements
+    </description>
+    <creator>
+        <person givenName="Serguei" familyName="Sokol" email="sokol@insa-toulouse.fr" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/cellule-mathematiques/" />
+        <organization name="INRAE" url="https://www.inrae.fr/" />
+        <organization name="TBI" url="https://www.toulouse-biotechnology-institute.fr/" />
+        <organization name="Mathematics Cell" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/cellule-mathematiques/" />
+        <organization name="MetaToul-FluxoMet" url="https://www.toulouse-biotechnology-institute.fr/en/plateformes-plateaux/metatoul/" />
+        <organization name="MetaboHub2" url="https://www.metabohub.fr/" />
+    </creator>
+    <macros>
+        <import>macros.xml</import>
+    </macros>
+    <requirements>
+        <requirement type="package" version="@TOOL_VERSION@">influx_si</requirement>
+    </requirements>
+    <command detect_errors="exit_code"><![CDATA[
+        #for $inp in $input_main:
+            unzip $inp;
+        #end for
+               
+        ret=0;
+        influx_$si.s_i
+            $noopt
+            $noscale
+            $fullsys
+            $emu
+            $irand
+            $ln
+            $sln
+            $tikhreg
+            $lim
+            $ffguess
+            $nocalc
+            $addnoise
+            $TIMEIT
+            $prof
+            #if $opt.meth:
+              --meth='$opt.meth'
             #end if
-            $opt.fullsys
-            $opt.emu
-            $opt.irand
             #if $opt.sens:
-             --sens='$opt.sens'
+              --sens='$opt.sens'
             #end if
             #if $opt.cupx:
-             --cupx='$opt.cupx'
+              --cupx='$opt.cupx'
             #end if
             #if $opt.cupn:
-             --cupn='$opt.cupn'
+              --cupn='$opt.cupn'
             #end if
             #if $opt.cupp:
-             --cupp='$opt.cupp'
+              --cupp='$opt.cupp'
             #end if
             #if $opt.clownr:
-             --clownr='$opt.clownr'
+              --clownr='$opt.clownr'
             #end if
             #if $opt.cinout:
-             --cinout='$opt.cinout'
+              --cinout='$opt.cinout'
             #end if
             #if $opt.clowp:
-             --clowp='$opt.clowp'
+              --clowp='$opt.clowp'
             #end if
             #if $opt.np:
-             --np='$opt.np'
+              --np='$opt.np'
+            #end if
+            #if $opt.zc:
+              --zc='$opt.zc'
             #end if
-            $opt.ln
-            $opt.sln
-            $opt.tikhreg
-            $opt.lim
-            #if $opt.zc:
-             --zc='$opt.zc'
+            #if $opt.fseries:
+              --fseries='$opt.fseries'
             #end if
-            $opt.ffguess
             #if $opt.iseries:
-             --iseries='$opt.iseries'
+              --iseries='$opt.iseries'
             #end if
             #if $opt.seed:
-             --seed='$opt.seed'
+              --seed='$opt.seed'
             #end if
             #if $opt.excl_outliers:
-             --excl_outliers '$opt.excl_outliers'
+              --excl_outliers $opt.excl_outliers
+            #end if
+            #if $opt.tblimit:
+              --tblimit='$opt.tblimit'
+            #end if
+            #if $si.s_i == 'i' and $si.time_order != 'None':
+              --time_order='$si.time_order'
             #end if
-            $opt.nocalc
-            $opt.addnoise
-            $opt.TIMEIT
-            #if $opt.tblimit:
-             --tblimit='$opt.tblimit'
+            #for $inp in $input_main:
+                #set base = $inp.name[:-4]
+                --prefix "$base"
+            #end for
+            #if $opt.mtf:
+                --mtf '$opt.mtf'
             #end if
+            
+            || ret=\$?;
 
-         #if $si.s_i == 'i' and $si.time_order:
-           --time_order='$si.time_order'
-         #end if
-         '${"' '".join([str($in_m.element_identifier) for $in_m in $input_main])}'
-         > 'influx_${si.s_i}.stdout.txt' 2>'influx_${si.s_i}.stderr.txt'; res="\$?" &&
-       
-       for f in *.ftbl *.log *.err *.R *.kvh *.attrs; do mv -f "\$f" "\$f".txt || true; done &&
-       
-       for f in *.pdf; do [ -e "\$f" ] && mv -f "\$f" "\$f".pdf || true; done &&
-       
-       for f in *.RData; do [ -e "\$f" ] && mv -f "\$f" "\$f".RData || true; done &&
-       [ "\$res" == "0" ]
+        #for $inp in $input_main:
+            #set base = $inp.name[:-4]
+            for f in "$base"_res/*.{err,log}; do mv -f "\$f" "\$f".txt || true; done;
+            for f in "$base"_res/*.{sim,stat}; do mv -f "\$f" "\$f".tsv || true; done;
+            for f in "$base"_res/*.pdf; do [ -e "\$f" ] && mv -f "\$f" "\$f".pdf || true; done;
+            rm -rf "$base"_res/tmp || true;
+        #end for
+        exit \$ret;
     ]]></command>
-   <inputs>
-      <param type="data" name="input_main" format="ftbl" multiple="true" label="main FTBL(s): network+data"/>
-      <conditional name="si">
-          <param name="s_i" type="select" label="labeling type" display="radio">
-              <option value="s">stationary</option>
-              <option value="i">instationary</option>
-          </param>
-          <when value="s"/>
-          <when value="i">
-              <param type="data" name="input_ti" label="time course data" format="txt,tsv" multiple="true"/>
-              <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.">
-                  <option value="None">None</option>
-                  <option value="1">1</option>
-                  <option value="2">2</option>
-                  <option value="1,2">1,2</option>
-              </param>
-          </when>
-      </conditional>
-      <section name="prlexp" title="Parallel labeling experiments" expanded="false">
-          <param optional="true" type="data" name="input_aux" format="ftbl" multiple="True" label="auxiliary FTBL(s): data only"/>
-      </section>
-      <section name="opt" title="Advanced Options" expanded="false">
-        <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" />
-        <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" />
-        <param argument="--meth" type="select" label="method for optimization" optional="true">
-          <option value="--meth=BFGS">BFGS</option>
-          <option value="--meth=Nelder-Mead">Nelder-Mead</option>
-          <option value="--meth=nlsic">nlsic</option>
-        </param>
-        <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)" />
-        <param argument="--emu" type="boolean" checked="false" truevalue="--emu" falsevalue="" label="simulate labeling in EMU approach" optional="true" />
-        <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" />
-        <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" />
-        <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" />
-        <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" />
-        <param argument="--cupp" type="float" min="0" value="" label="upper limit for metabolite pool" optional="true" help="Default: 1.e5" />
-        <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" />
-        <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" />
-        <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" />
-        <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." />
-        <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" />
-        <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" />
-        <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" />
-        <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()" />
-        <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" />
-        <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." />
-        <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)" />
-        <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." />
-        <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." />
-        <param argument="--nocalc" type="boolean" checked="false" truevalue="--nocalc" falsevalue="" label="no calculation" optional="true" help="generate an R code but not execute it." />
-        <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" />
-        <param argument="--TIMEIT" type="boolean" checked="false" truevalue="--TIMEIT" falsevalue="" label="measure timings" optional="true" help="developer option: measure cpu time or not" />
-        <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" />
-      </section>
-   </inputs>
-   <outputs>
-      <!-- TODO: this should probably not be a collection, also name_and_ext probably does not work correctly for all elements-->
-      <collection name="influx_si_output" type="list" label="influx_${si.s_i}_on_${on_string}">
-         <discover_datasets pattern="__name_and_ext__" directory="outdir" visible="false"/>
-      </collection>
-   </outputs>
-   <tests>
-      <test>
-         <param name="input_main" value="e_coli.ftbl" />
-         <conditional name="si">
-            <param name="s_i" value="s" />
-         </conditional>
-         <output_collection name="influx_si_output" type="list" count="11">
-            <element name="e_coli.log" ftype="txt">
-               <assert_contents>
-                  <has_n_lines n="38"/>
-                  <has_line_matching expression="^end.*"/>
-               </assert_contents>
-            </element>
-         </output_collection>
-      </test>
-      <test>
-         <param name="input_main" value="e_coli.ftbl,e_coli_growth.ftbl" />
-         <conditional name="si">
-            <param name="s_i" value="s" />
-         </conditional>
-         <output_collection name="influx_si_output" type="list">
-            <element name="e_coli_growth.log" ftype="txt">
-               <assert_contents>
-                  <has_n_lines n="45"/>
-                  <has_line_matching expression="^end.*"/>
-               </assert_contents>
-            </element>
-         </output_collection>
-      </test>
-      <test>
-         <param name="input_main" value="e_coli_i.ftbl" />
-         <conditional name="si">
-            <param name="s_i" value="i" />
-            <param name="input_ti" value="e_coli_msen.txt" />
-            <!--param name="time_order" value="1,2" /--> <!--How to pass single value with comma in it?-->
-         </conditional>
-         <output_collection name="influx_si_output" type="list">
-            <element name="e_coli_i.log" ftype="txt">
-               <assert_contents>
-                  <has_n_lines n="47"/>
-                  <has_line_matching expression="^end.*"/>
-               </assert_contents>
-            </element>
-         </output_collection>
-      </test>
-      <test>
-         <param name="input_main" value="e_coli_1-Glc_exact.ftbl" />
-         <param name="input_aux" value="e_coli_U-Glc_exact.ftbl" />
-         <conditional name="si">
-            <param name="s_i" value="s" />
-         </conditional>
-         <output_collection name="influx_si_output" type="list">
-            <element name="e_coli_1-Glc_exact.log" ftype="txt">
-               <assert_contents>
-                  <has_n_lines n="40"/>
-                  <has_line_matching expression="^end.*"/>
-               </assert_contents>
-            </element>
-         </output_collection>
-      </test>
-   </tests>
-   <help><![CDATA[
-   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.
-   ]]></help>
-   <citations>
-      <citation type="bibtex">
-         @misc{githubinflux,
-            author = {Sokol, Serguei},
-            year = {2020},
-            title = {influx_s},
-            publisher = {GitHub},
-            journal = {GitHub repository},
-            url = {https://github.com/sgsokol/influx},
-         }
-      </citation>
-      <citation type="doi">10.1093/bioinformatics/btr716</citation>
-   </citations>
+    <inputs>
+        <param type="data" format="zip" name="input_main" multiple="true" label="At least one MTF collection (.netw, .miso, ...)"/>
+        <conditional name="si">
+            <param name="s_i" type="select" label="labeling type" display="radio">
+                <option value="s">stationary</option>
+                <option value="i">instationary</option>
+            </param>
+            <when value="s"/>
+            <when value="i">
+                <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.">
+                    <option value="None">From .opt file or Default</option>
+                    <option value="1">1 (Default)</option>
+                    <option value="2">2</option>
+                    <option value="1,2">1,2</option>
+                </param>
+            </when>
+        </conditional>
+        <section name="opt" title="Advanced Options" expanded="false">
+            <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" />
+            <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" />
+            <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)" />
+            <param argument="--emu" type="boolean" checked="false" truevalue="--emu" falsevalue="" label="--emu" help="simulate labeling in EMU approach" />
+            <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" />
+            <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" />
+            <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" />
+            <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" />
+            <param argument="--lim" type="boolean" checked="false" truevalue="--lim" falsevalue="" label="--lim" help="The same as --ln but with a function limSolve::lsei()" />
+            <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." />
+            <param argument="--nocalc" type="boolean" checked="false" truevalue="--nocalc" falsevalue="" label="--nocalc" help="generate an R code but not execute it." />
+            <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" />
+            <param argument="--TIMEIT" type="boolean" checked="false" truevalue="--TIMEIT" falsevalue="" label="--TIMEIT" help="developer option: measure cpu time or not" />
+            <param argument="--prof" type="boolean" checked="false" truevalue="--prof" falsevalue="" label="--prof" help="developer option: do time profiling or not" />
+
+            <param argument="--meth" type="select" label="--meth" optional="true" help="method for optimization, one of nlsic|BFGS|Nelder-Mead|pso. Default: nlsic">
+                <option value="BFGS">BFGS</option>
+                <option value="Nelder-Mead">Nelder-Mead</option>
+                <option value="nlsic">nlsic</option>
+                <option value="pso">pso</option>
+            </param>
+            <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" />
+            <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" />
+            <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" />
+            <param argument="--cupp" type="float" min="0" value="" label="--cupp" optional="true" help="upper limit for metabolite pool. Default: 1.e5" />
+            <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" />
+            <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" />
+            <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" />
+            <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." />
+            <param argument="--zc" type="float" min="0" value="" label="--zc" optional="true" help="Apply zero crossing strategy with non negative threshold for net fluxes" />
+            <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)" />
+            <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)" />
+            <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." />
+            <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." />
+            <param argument="--tblimit" type="integer" min="0" value="0" label="--tblimit" optional="true" help="developer option: set trace back limit for python error messages" />
+            <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."/>
+        </section>
+    </inputs>
+    <outputs>
+        <collection name="influx_si_output" type="list:list" label="influx_${si.s_i}_on_${on_string}">
+            <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"/>
+        </collection>
+    </outputs>
+    <tests>
+        <test>
+            <param name="input_main" value="e_coli.zip" />
+            <conditional name="si">
+                <param name="s_i" value="s" />
+            </conditional>
+            <output_collection name="influx_si_output" type="list:list" count="1">
+                <element name="e_coli" count="7">
+                    <element name="e_coli.log">
+                        <assert_contents>
+                            <has_n_lines n="38"/>
+                            <has_line_matching expression="^end.*"/>
+                        </assert_contents>
+                    </element>
+                </element>
+            </output_collection>
+        </test>
+    </tests>
+    <help><![CDATA[
+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.
+
+Detailed documentation is available on https://influx-si.readthedocs.io
+]]></help>
+    <citations>
+        <citation type="bibtex">
+            @misc{githubinflux,
+                author = {Sokol, Serguei},
+                year = {2023},
+                title = {influx_s},
+                publisher = {GitHub},
+                journal = {GitHub repository},
+                url = {https://github.com/sgsokol/influx},
+            }
+        </citation>
+        <citation type="doi">10.1093/bioinformatics/btr716</citation>
+    </citations>
 </tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml	Wed Dec 13 08:56:04 2023 +0000
@@ -0,0 +1,4 @@
+<?xml version="1.0"?>
+<macros>
+    <token name="@TOOL_VERSION@">7.0.1</token>
+</macros>
--- a/test-data/e_coli.ftbl	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,720 +0,0 @@
-PROJECT
-	NAME	VERSION	FORMAT	DATE	COMMENT
-	K12_MG1655.ftbl	1		101109	modele E coli K12 MG1655 WT avec voies centrales completes et voies biomasse simplifiees
-
-NETWORK
-	FLUX_NAME	EDUCT_1	EDUCT_2	PRODUCT_1	PRODUCT_2
-
-// Glycolyse.
-// PPP
-// TCA
-// voies anaplerotiques: pepc. enz malique
-// voie glyoxylate
-// avec pool interne unique de CO2 provenant soit du metabolisme soit de l'exterieur (CO2upt laisse libre)
-// saisie differentielle des substrats marques
-
-
-//## Uptake substrats
-
-	Glucupt_1	Gluc_1		Glc6P		// fehlt bei wolfgang
-		#ABCDEF		#ABCDEF		// fehlt bei wolfgang
-
-	Glucupt_U	Gluc_U		Glc6P		// fehlt bei wolfgang
-		#ABCDEF		#ABCDEF		// fehlt bei wolfgang
-
-//	CO2upt	CO2_ext		CO2		// entree de CO2 non marque
-//		#A		#A		// ce flux est a laisser libre
-
-//	FTHF0	FTHF_0		FTHF		// prise en charge de FTHF non marque
-//		#A		#A
-
-//	FTHF1	FTHF_1		FTHF		// prise en charge de FTHF marque
-//		#a		#a
-
-
-//## Embden Meyerhof Parnas Pathway
-
-	pgi	Glc6P		Fru6P
-		#ABCDEF		#ABCDEF
-
-	pfk	Fru6P		FruBP
-		#ABCDEF		#ABCDEF
-
-	ald	FruBP		GA3P	GA3P
-		#ABCDEF		#CBA	#DEF
-
-//	tpi	DHAP		GA3P
-//		#ABC		#CBA
-
-	pgk	GA3P		PGA
-		#ABC		#ABC
-
-	eno	PGA		PEP
-		#ABC		#ABC
-
-	pyk	PEP		Pyr
-		#ABC		#ABC
-
-
-//## Methylglyoxal Pathway
-
-//	mgs	DHAP		Pyr
-//		#ABC		#ABC
-
-
-//## Pentose Phosphate Pathway
-
-	zwf	Glc6P		Gnt6P
-		#ABCDEF		#ABCDEF
-
-	gnd	Gnt6P		CO2	Rib5P
-		#ABCDEF		#A	#BCDEF
-
-	edd	Gnt6P		Pyr	GA3P
-		#ABCDEF		#ABC	#DEF
-
-//	ta	Ery4P	Fru6P	GA3P	Sed7P
-//		#ABCD	#abcdef	#def	#abcABCD
-
-//	tk1	GA3P	Sed7P	Rib5P	Rib5P
-//		#ABC	#abcdefg	#abABC	#cdefg
-
-//	tk2	GA3P	Fru6P	Rib5P	Ery4P
-//		#ABC	#abcdef	#abABC	#cdef
-
-	ta	GA3P	Sed7P	Ery4P	Fru6P
-		#ABC	#abcdefg	#defg	#abcABC
-
-	tk1	Rib5P	Rib5P	GA3P	Sed7P
-		#ABCDE	#abcde	#CDE	#ABabcde
-
-	tk2	Rib5P	Ery4P	GA3P	Fru6P
-		#ABCDE	#abcd	#CDE	#ABabcd
-
-
-//## Tricarboxylic Acid Cycle
-
-	pdh	Pyr		AcCoA	CO2
-		#ABC		#BC	#A
-
-	citsynth	AcCoA	OAA	ICit
-		#AB	#abcd	#dcbaBA
-
-	idh	ICit		AKG	CO2
-		#ABCDEF		#ABCEF	#D
-
-	akgdh	AKG		Suc	CO2
-		#ABCDE		#BCDE	#A
-
-	fum_a	Suc		Mal
-		#ABCD		#ABCD
-
-	fum_b	Suc		Mal
-		#ABCD		#DCBA
-
-	maldh	Mal		OAA
-		#ABCD		#ABCD
-
-
-//## Glyoxylate Shunt
-
-//	gs1	ICit		GlyOx	Suc
-//		#ABCDEF		#AB	#DCEF
-
-//	gs2	GlyOx	AcCoA	OAA
-//		#AB	#ab	#ABba
-
-
-//## Anaplerotic Reactions
-
-	ppc	PEP	CO2	OAA			// PEPcarboxylase
-		#ABC	#a	#ABCa
-
-	mae	Mal		Pyr	CO2		// enzyme malique
-		#ABCD		#ABC	#D
-
-//	pck	OAA		PEP	CO2		// PEP carboxykinase
-//		#ABCD		#ABC	#D
-
-
-//## Biosynthetic Pathways
-
-	// Glucose-6-Phosphate Family
-
-	bs_glc6P	Glc6P		BM_Glc6P
-		#ABCDEF		#ABCDEF
-
-	// Fructose-6-Phosphate Family
-
-	bs_fru6P	Fru6P		BM_Fru6P		// sortie de Fru6P pour biomasse
-		#ABCDEF		#ABCDEF
-
-	// Phosphoglycerate Family
-
-	bs_pga	PGA		BM_PGA
-		#ABC		#ABC
-
-	bs_pga_aux	BM_PGA		PGA_Aux
-		#ABC		#ABC
-
-	bs_pga1	BM_PGA		Ser
-		#ABC		#ABC
-
-	bs_pga1_aux	Ser		Ser_Aux
-		#ABC		#ABC
-
-	bs_pga2	Ser		Cys			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga2_aux	Cys		Cys_Aux			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga3	Ser		Gly	FTHF		// formation de gly pour biomasse
-		#ABC		#AB	#C		// ce flux est reversible
-
-	bs_pga3_aux	Gly		Gly_Aux		// pour conserver Gly comme metabolite intracellulaire
-		#AB		#AB
-
-	// TrioseP Family
-
-	bs_DHAP	GA3P		Glp			// formation glycerolP pour lipides
-		#ABC		#ABC
-
-	// Pyruvate Family
-
-	bs_pyr	Pyr		BM_Pyr
-		#ABC		#ABC
-
-	bs_pyr1	BM_Pyr		Ala
-		#ABC		#ABC
-
-	bs_pyr1_aux	Ala		Ala_Aux		// pour conserver Ala comme metabolite intracellulaire
-		#ABC		#ABC
-
-	bs_pyr2	BM_Pyr	BM_Pyr	AKV	CO2		// AKV et Val ont le meme squelette C
-		#ABC	#abc	#ABbcC	#a		// cette reaction permet d'utiliser eventuellement les donnees obtenues sur Val
-
-	bs_pyr4	AKV		Val		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr4_aux	Val		Val_Aux		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr3	AKV	BM_AcCoA	Leu	CO2
-		#ABCDE	#ab	#abBCDE	#A
-
-	bs_pyr3_aux	Leu		Leu_Aux		// pour conserver Leu comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-
-	// Erythrose-4-Phosphate Family
-
-	bs_e4p	Ery4P		BM_Ery4P		// pour utiliser les donnees sur Ery4P
-		#ABCD		#ABCD
-
-//	bs_e4p_aux	BM_Ery4P		Ery4P_aux		// pour utiliser les donnees sur Ery4P
-//		#ABCD		#ABCD
-
-
-	// Ribose-5-Phosphate Family
-
-	bs_rib5p	Rib5P		BM_Rib5P	// pour utiliser les donnees sur Rib5P
-		#ABCDE		#ABCDE
-
-	bs_rib5p1	BM_Rib5P	FTHF	His		// pour utiliser les donnees sur Rib5P
-		#ABCDE	#a	#EDCBAa
-
-	bs_rib5p1_aux	His		His_Aux		// sortie pour conserver His comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-	bs_rib5p2	BM_Rib5P		Ri5P_Aux		// sortie de Ri5P pour autres besoins que His
-		#ABCDE		#ABCDE			// ce flux est important pour ne pas imposer de fausses contraintes sur FTHF si on considerait His comme seule sortie
-
-
-	// Aromatic Amino Acids
-
-	bs_pep	PEP		BM_PEP
-		#ABC		#ABC
-
-	bs_pep1	BM_PEP	BM_Ery4P	DAHP
-		#ABC	#abcd	#ABCabcd
-
-	bs_pep2	BM_PEP	DAHP	Chor
-		#ABC	#abcdefg	#ABCabcdefg
-
-	bs_pep3a	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep3b	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep3_aux	Phe		Phe_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep4a	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep4b	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep4_aux	Tyr		Tyr_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep5	BM_PEP		PEP_Aux
-		#ABC		#ABC
-
-	bs_pep6	Chor	BM_Rib5P	Trp	PyrCO2
-		#ABCDEFGHIJ	#abcde	#edcbaJEFGHI	#ABCD
-
-	bs_pep6_aux	Trp		Trp_Aux
-		#ABCDEFGHIJK		#ABCDEFGHIJK
-
-	bs_pep7	PyrCO2		Pyr	CO2
-		#ABCD		#ABC	#D
-
-
-	// Acetyl-CoA
-
-	bs_accoa	AcCoA		BM_AcCoA
-		#AB		#AB
-
-	bs_accoa_aux	BM_AcCoA		AcCoA_Aux
-		#AB		#AB
-
-
-	// Alpha-Ketoglutarate Family
-
-	bs_akg	AKG		BM_AKG			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg1	BM_AKG		Glu			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg2	Glu		Pro			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg3	Glu		Gln			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg4	Glu	CO2	Arg			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE	#a	#ABCDEa
-
-	bs_akg4_aux	Arg		Arg_Aux			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDEF		#ABCDEF
-
-
-	// Oxaloacetate Family
-
-	bs_oaa	OAA		BM_OAA
-		#ABCD		#ABCD
-
-	bs_oaa1	BM_OAA		Asp
-		#ABCD		#ABCD
-
-	bs_oaa1_aux	Asp		Asp_Aux
-		#ABCD		#ABCD
-
-	bs_oaa2	Thr	BM_Pyr	Ile	CO2
-		#ABCD	#abc	#ABbCDc	#a
-
-	bs_oaa2_aux	Ile		Ile_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa3a	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#ABCDcb	#a
-
-	bs_oaa3b	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#abcDCB	#A
-
-	bs_oaa3_aux	Lys		Lys_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa4	BM_OAA		OAA_Aux
-		#ABCD		#ABCD
-
-	bs_oaa5	BM_OAA		Thr
-		#ABCD		#ABCD
-
-	bs_oaa5_aux	Thr		Thr_Aux
-		#ABCD		#ABCD
-
-	bs_oaa6	BM_OAA	FTHF	Met
-		#ABCD	#a	#ABCDa
-
-	bs_oaa6_aux	Met		Met_Aux
-		#ABCDE		#ABCDE
-
-	bs_oaa7	BM_OAA		Asn
-		#ABCD		#ABCD
-
-	bs_oaa7_aux	Asn		Asn_Aux
-		#ABCD		#ABCD
-
-
-//## Flux de sortie
-
-	out_co2	CO2		CO2_out			// Sortie de CO2
-		#A		#A
-
-	out_Ac	AcCoA		Acetate			// Sortie d'acetate
-		#AB		#AB
-
-	out_FTHF	FTHF		FTHF_out
-		#A		#A
-
-FLUXES
-	NET
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt_1	F	0.7 //0.807194
-		Glucupt_U	D
-//		CO2upt	F	0.669589
-//		FTHF0	F	0.00224836
-//		FTHF1	F	0.001
-
-		pgi	D
-		pfk	D
-		ald	D
-//		tpi	D
-		pgk	D
-		eno	D
-		pyk	F	1.4
-
-		zwf	F	0.2
-		gnd	F	0.15062
-		edd	D
-		ta	D
-		tk1	D
-		tk2	D
-
-		pdh	D
-		citsynth	D
-		idh	D
-		akgdh	D
-		fum_a	D
-		fum_b	D
-		maldh	D
-
-//		gs1	C	0
-//		gs2	D
-
-		ppc	D
-		mae	D
-//		pck	D
-
-		// flux de biomasse
-
-		bs_glc6P	C	0.0109	// sortie de G6P
-		bs_fru6P	C	0.0038	// sortie de F6P
-		bs_pga	C	0.0791		// sortie de PGA pour formation de biomasse
-		bs_pga_aux	D		// sortie de PGA pour formation de biomasse
-		bs_pga1	D			// conversion PGA donne ser
-		bs_pga1_aux	C	0.0109	// conversion PGA donne ser
-		bs_pga2	D
-		bs_pga2_aux	C	0.0046	// conversion PGA donne Cys
-		bs_pga3	D			// reaction de synthese de Gly
-		bs_pga3_aux	C	0.0308	// sortie de Gly
-		bs_DHAP	C	0.0068		// formation de glycerolP pour lipides
-		bs_pyr	C	0.1501	// avant : 0.1547		// sortie de Pyr pour formation de biomasse
-		bs_pyr1	D	// formation d'Ala
-		bs_pyr1_aux	D	// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Leu
-		bs_pyr2	D			// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	D
-		bs_pyr4_aux	C	0.0213	// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	D			// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	C	0.0227	// sortie de Leu
-		bs_e4p	D		// sortie d'Ery4p pour biomasse
-//		bs_e4p_aux	C	0	// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0.0476	// synthese d'His
-		bs_rib5p1	D		// synthese d'His
-		bs_rib5p1_aux	C	0.0048	// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_pep	C	0.0381		// sortie de PEP
-		bs_pep1	D			// sortie de PEP
-		bs_pep2	D
-		bs_pep3a	D
-		bs_pep3b	D
-		bs_pep3_aux	C	0.0093
-		bs_pep4a	D
-		bs_pep4b	D
-		bs_pep4_aux	C	0.0069
-		bs_pep5	C	0.0027
-		bs_pep6	D
-		bs_pep6_aux	D
-		bs_pep7	D
-		bs_accoa	C	0.1565	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_akg	C	0.0571		// sortie d'AKG
-		bs_akg1	D
-		bs_akg2	C	0.0111
-		bs_akg3	C	0.0132
-		bs_akg4	D
-		bs_akg4_aux	D
-		bs_oaa	C	0.0947		// sortie d'OAA pour formation de biomasse
-		bs_oaa1	D			// sortie d'OAA pour Asp
-		bs_oaa1_aux	C	0.0121	// sortie d'Asp
-		bs_oaa2	D			// synthese d'Ile
-		bs_oaa2_aux	C	0.0146	// sortie d'Ile
-		bs_oaa3a	D
-		bs_oaa3b	D
-		bs_oaa3_aux	C	0.0173
-		bs_oaa4	D
-		bs_oaa5	D
-		bs_oaa5_aux	C	0.0128
-		bs_oaa6	D
-		bs_oaa6_aux	C	0.0077
-		bs_oaa7	D
-		bs_oaa7_aux	C	0.0121
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	F	0.213		// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-	XCH
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt_1	D
-		Glucupt_U	D
-//		CO2upt	D
-//		FTHF0	D
-//		FTHF1	D
-
-		pgi	C	0.752386	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		pfk	C	0
-		ald	F	0.413926
-//		tpi	F	0.5
-		pgk	C	0.984718	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		eno	F	0.800962
-		pyk	C	0.0109591	// 2010-10-01 ssg: was F => unresolved if co2 uptake is unlimited
-
-		zwf	C	0
-		gnd	C	0
-		edd	C	0
-		ta	F	0.359468
-		tk1	F	0.166316
-		tk2	F	2.11559e-03
-
-		pdh	C	0.0322745	// 2010-10-02 ssg: was F, otherwise unsolvable in monte-carlo
-		citsynth	C	0
-		idh	C	0
-		akgdh	C	0
-		fum_a	F	0.395958
-		fum_b	D
-		maldh	C	0.647115	//********************************************** C pour analyse de sensibilite, F pour minimisation
-
-//		gs1	C	0
-//		gs2	C	0
-
-		ppc	F	0.256772
-		mae	C	0
-//		pck	C	0
-
-		bs_glc6P	D		// sortie de G6P
-		bs_fru6P	D		// sortie de F6P
-		bs_pga	C	0		// conversion PGA donne Ser
-		bs_pga_aux	D		// conversion PGA donne Ser
-		bs_pga1	C	0		// conversion PGA donne Ser
-		bs_pga1_aux	D		// conversion PGA donne Ser
-		bs_pga2	C	0		// ser donne Cys. correspond a la sortie de PGA pour biomasse autre que formation Gly
-		bs_pga2_aux	D
-		bs_pga3	C	0.011799		// reaction de synthese de Gly. cette reaction est reversible
-		bs_pga3_aux	D		// sortie de Gly
-		bs_DHAP	D			// formation de glycerolP pour lipides
-		bs_pyr	C	0		// formation d'Ala
-		bs_pyr1	C	0		// formation d'Ala
-		bs_pyr1_aux	D		// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Ile
-		bs_pyr2	C	0		// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	C	0
-		bs_pyr4_aux	D		// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	C	0		// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	D		// sortie de Leu
-		bs_e4p	C	0		// sortie d'Ery4p
-//		bs_e4p_aux	D		// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0	// synthese d'His
-		bs_rib5p1	C	0	// synthese d'His
-		bs_rib5p1_aux	D		// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_accoa	C	0	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_pep	C	0		// sortie de PEP
-		bs_pep1	C	0		// sortie de PEP
-		bs_pep2	C	0
-		bs_pep3a	C	0
-		bs_pep3b	C	0
-		bs_pep3_aux	D
-		bs_pep4a	C	0
-		bs_pep4b	C	0
-		bs_pep4_aux	D
-		bs_pep5	D
-		bs_pep6	C	0
-		bs_pep6_aux	D
-		bs_pep7	C	0
-		bs_akg	C	0		// sortie d'AKG
-		bs_akg1	C	0
-		bs_akg2	D
-		bs_akg3	D
-		bs_akg4	C	0
-		bs_akg4_aux	D
-		bs_oaa	C	0
-		bs_oaa1	C	0		// sortie d'OAA autres que Met
-		bs_oaa1_aux	D		// sortie d'OAA autres que Met
-		bs_oaa2	C	0		// synthese de Met
-		bs_oaa2_aux	D		// sortie de Met
-		bs_oaa3a	C	0
-		bs_oaa3b	C	0
-		bs_oaa3_aux	D
-		bs_oaa4	D
-		bs_oaa5	C	0
-		bs_oaa5_aux	D
-		bs_oaa6	C	0
-		bs_oaa6_aux	D
-		bs_oaa7	C	0
-		bs_oaa7_aux	D
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	D			// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-EQUALITIES
-	NET
-		VALUE	FORMULA
-
-		0	fum_a-fum_b		// scrambling reaction
-		1	Glucupt_1+Glucupt_U
-		0	bs_oaa3a-bs_oaa3b
-		0	bs_pep3a-bs_pep3b
-		0	bs_pep4a-bs_pep4b
-
-	XCH
-		VALUE	FORMULA
-
-		0	fum_a-fum_b
-
-INEQUALITIES
-	NET
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-		1	<=	pyk
-		0.0001	<=	edd
-		0.0001	<=	gnd
-		0.0001	<=	zwf
-		0.0001	<=	ppc
-		0.0001	<=	mae
-//		2	>=	CO2upt // 2010-08-18 too high value makes jacobian rank deficient
-	XCH
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-
-
-FLUX_MEASUREMENTS
-	FLUX_NAME	VALUE	DEVIATION	//		Val	Dev
-	out_Ac	0.213	0.0001
-
-LABEL_INPUT
-	META_NAME	ISOTOPOMER	VALUE
-
-	Gluc_U	#111111	1
-		#000000	0.
-	Gluc_1	#100000	1.
-		#000000	0.
-//	CO2_ext	#0	0.989
-//		#1	0.011
-
-//	FTHF_0	#0	1
-//	FTHF_1	#1	1
-
-
-LABEL_MEASUREMENTS
-	META_NAME	CUM_GROUP	VALUE	DEVIATION	CUM_CONSTRAINTS
-											// Example
-
-PEAK_MEASUREMENTS
-	META_NAME	PEAK_NO	VALUE_S	VALUE_D-	VALUE_D+	VALUE_DD	VALUE_T	DEVIATION_S	DEVIATION_D-	DEVIATION_D+	DEVIATION_DD/T
-
-
-MASS_SPECTROMETRY
-	META_NAME	FRAGMENT	WEIGHT	VALUE	DEVIATION
-
-// Deviation fixee a 0.02				// correction inoc 0.062
-
-
-
-	Suc	1,2,3,4	1	0.371605319	0.01
-			2	0.360829749	0.01
-			3	0.208425325	0.01
-			4	0.059139607	0.01
-//	Mal	1,2,3,4	0	0.164619329483	0.02
-//			1	0.110072868518	0.02
-//			2	0.637801316225333	0.02
-//			3	0.0863461044204333	0.02
-//			4	0.00116038135315367	0.02
-	ICit	1,2,3,4,5,6	0	0.131864539419667	0.02
-			1	0.225857638569	0.02
-			2	0.256421170949333	0.02
-			3	0.209230210478667	0.02
-			4	0.116863585449667	0.02
-			5	0.0457727744643333	0.02
-			6	0.0139900806697867	0.02
-	PEP	1,2,3	0	0.421359839367667	0.01
-			1	0.358998301162333	0.01
-			2	0.0348521859365667	0.01
-			3	0.184789673534	0.01
-	PGA	1,2,3	0	0.434335785072667	0.01
-			1	0.352829683224667	0.01
-			2	0.0323479804176	0.01
-			3	0.180486551285333	0.01
-	FruBP	1,2,3,4,5,6	0	0.0738121029259333	0.01
-			1	0.454450017158667	0.01
-			2	0.160823529969333	0.01
-			3	0.0944468077710667	0.01
-			4	0.105281338489667	0.01
-			5	0.0155016033633	0.01
-			6	0.0956846003217333	0.01
-	Glc6P	1,2,3,4,5,6	0	0.0160587173349	0.01
-			1	0.673510772480667	0.01
-			2	0.0930110047641	0.01
-			3	0.0280359937297	0.01
-			4	0.0397315614067667	0.01
-			5	0.0145524520950667	0.01
-			6	0.135099498189	0.01
-	Fru6P	1,2,3,4,5,6	0	0.0235029951295	0.01
-			1	0.624253565357667	0.01
-			2	0.113068441282333	0.01
-			3	0.0456605631765	0.01
-			4	0.0516089447155667	0.01
-			5	0.0185881765378333	0.01
-			6	0.123317313800333	0.01
-	Rib5P	1,2,3,4,5	0	0.341615670498667	0.01
-			1	0.25454117519	0.01
-			2	0.159027180368333	0.01
-			3	0.113789577528667	0.01
-			4	0.0615266612553333	0.01
-			5	0.0694997351590667	0.01
-	Gnt6P	1,2,3,4,5,6	0	0.0249552273874	0.01
-			1	0.672556163913	0.01
-			2	0.0866890773125333	0.01
-			3	0.0313987199704333	0.01
-			4	0.0314691889898667	0.01
-			5	0.0138168327362333	0.01
-			6	0.139114789690333	0.01
-//	Ery4P	1,2,3,4	0	0.178453461108	0.01
-//			1	0.412398433968333	0.01
-//			2	0.273694508221667	0.01
-//			3	0.116142498670667	0.01
-//			4	0.0193110980315	0.01
-
-OPTIONS
-	OPT_NAME	OPT_VALUE
-	//MATLAB_FOR_FLUX_EQ_CONSTR_MATR	1
-	//optctrl_history	1 // nlsic
-	//optctrl_trace	3 // BFGS
-	//optctrl_reltol	1.e-10 // BFGS
-	//optctrl_maxit	1000 // BFGS
-	commandArgs	--TIMEIT
-	posttreat_R	plot_smeas.R
--- a/test-data/e_coli.log	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-"/home/sokol/miniconda3/envs/__influx_si@5.0.3/bin/influx_s" "e_coli.ftbl"
-code gen: 2020-03-26 18:33:45
-executing: "/usr/local/miniconda3/envs/__influx_si@5.0.3/bin/python3.8" "/home/STORAGE/local/miniconda3/envs/__influx_si@5.0.3/bin/ftbl2optR.py" "--tblimit" "0" "--ropts" "TIMEIT=TRUE" "e_coli.ftbl"
-executing: R --vanilla --slave < e_coli.R
-calcul  : 2020-03-26 18:33:49
-load    : 2020-03-26 18:33:51.07 cpu=1.016
-rinit   : 2020-03-26 18:33:51.07 cpu=1.018
-r_flux  : 2020-03-26 18:33:51.07 cpu=1.018
-Afl qr(): 2020-03-26 18:33:51.14 cpu=1.083
-dfl_dffg: 2020-03-26 18:33:51.20 cpu=1.123
-spAbr   : 2020-03-26 18:33:51.20 cpu=1.125
-weight 1: 2020-03-26 18:33:51.20 cpu=1.125
-weight 2: 2020-03-26 18:33:51.44 cpu=1.191
-weight 3: 2020-03-26 18:33:51.59 cpu=1.258
-weight 4: 2020-03-26 18:33:51.65 cpu=1.311
-weight 5: 2020-03-26 18:33:51.67 cpu=1.338
-weight 6: 2020-03-26 18:33:51.68 cpu=1.348
-measure : 2020-03-26 18:33:51.80 cpu=1.435
-ineq    : 2020-03-26 18:33:51.94 cpu=1.515
-preopt  : 2020-03-26 18:33:52.02 cpu=1.595
-labargs : 2020-03-26 18:33:52.04 cpu=1.618
-run    1: 2020-03-26 18:33:56.49 cpu=4.72
-Starting point
-res esti: 2020-03-26 18:33:56.50 cpu=4.722
-kvh init: 2020-03-26 18:33:56.52 cpu=4.742
-check ja: 2020-03-26 18:33:56.57 cpu=4.763
-optim   : 2020-03-26 18:33:56.66 cpu=4.814
-it=0	res=33.60668
-it=1	res=8.537147	normstep=0.372971	btk=1
-it=2	res=7.844899	normstep=0.1372184	btk=1
-it=3	res=7.843106	normstep=0.005504594	btk=1
-it=4	res=7.843096	normstep=0.0004985717	btk=1
-it=5	res=7.843096	normstep=2.725573e-05	btk=1
-it=6	res=7.843096	normstep=3.688583e-06	btk=1
-postopt : 2020-03-26 18:33:57.15 cpu=5.321
-linstats: 2020-03-26 18:33:57.38 cpu=5.528
-rend    : 2020-03-26 18:33:57.76 cpu=5.753
-end     : 2020-03-26 18:33:58
Binary file test-data/e_coli.zip has changed
--- a/test-data/e_coli_1-Glc_exact.ftbl	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,713 +0,0 @@
-PROJECT
-	NAME	VERSION	FORMAT	DATE	COMMENT
-	K12_MG1655.ftbl	1		101109	modele E coli K12 MG1655 WT avec voies centrales completes et voies biomasse simplifiees
-
-NETWORK
-	FLUX_NAME	EDUCT_1	EDUCT_2	PRODUCT_1	PRODUCT_2
-
-// Glycolyse.
-// PPP
-// TCA
-// voies anaplerotiques: pepc. enz malique
-// voie glyoxylate
-// avec pool interne unique de CO2 provenant soit du metabolisme soit de l'exterieur (CO2upt laisse libre)
-// saisie differentielle des substrats marques
-
-
-// Uptake substrats
-
-	Glucupt	Gluc		Glc6P
-		#ABCDEF		#ABCDEF	
-//	CO2upt	CO2_ext		CO2		// entree de CO2 non marque
-//		#A		#A		// ce flux est a laisser libre
-
-//	FTHF0	FTHF_0		FTHF		// prise en charge de FTHF non marque
-//		#A		#A
-
-//	FTHF1	FTHF_1		FTHF		// prise en charge de FTHF marque
-//		#a		#a
-
-
-// Embden Meyerhof Parnas Pathway
-
-	pgi	Glc6P		Fru6P
-		#ABCDEF		#ABCDEF
-
-	pfk	Fru6P		FruBP
-		#ABCDEF		#ABCDEF
-
-	ald	FruBP		GA3P	GA3P
-		#ABCDEF		#CBA	#DEF
-
-//	tpi	DHAP		GA3P
-//		#ABC		#CBA
-
-	pgk	GA3P		PGA
-		#ABC		#ABC
-
-	eno	PGA		PEP
-		#ABC		#ABC
-
-	pyk	PEP		Pyr
-		#ABC		#ABC
-
-
-// Methylglyoxal Pathway
-
-//	mgs	DHAP		Pyr
-//		#ABC		#ABC
-
-
-// Pentose Phosphate Pathway
-
-	zwf	Glc6P		Gnt6P
-		#ABCDEF		#ABCDEF
-
-	gnd	Gnt6P		CO2	Rib5P
-		#ABCDEF		#A	#BCDEF
-
-	edd	Gnt6P		Pyr	GA3P
-		#ABCDEF		#ABC	#DEF
-
-//	ta	Ery4P	Fru6P	GA3P	Sed7P
-//		#ABCD	#abcdef	#def	#abcABCD
-
-//	tk1	GA3P	Sed7P	Rib5P	Rib5P
-//		#ABC	#abcdefg	#abABC	#cdefg
-
-//	tk2	GA3P	Fru6P	Rib5P	Ery4P
-//		#ABC	#abcdef	#abABC	#cdef
-
-	ta	GA3P	Sed7P	Ery4P	Fru6P
-		#ABC	#abcdefg	#defg	#abcABC
-
-	tk1	Rib5P	Rib5P	GA3P	Sed7P
-		#ABCDE	#abcde	#CDE	#ABabcde
-
-	tk2	Rib5P	Ery4P	GA3P	Fru6P
-		#ABCDE	#abcd	#CDE	#ABabcd
-
-
-// Tricarboxylic Acid Cycle
-
-	pdh	Pyr		AcCoA	CO2
-		#ABC		#BC	#A
-
-	citsynth	AcCoA	OAA	ICit
-		#AB	#abcd	#dcbaBA
-
-	idh	ICit		AKG	CO2
-		#ABCDEF		#ABCEF	#D
-
-	akgdh	AKG		Suc	CO2
-		#ABCDE		#BCDE	#A
-
-	fum_a	Suc		Mal
-		#ABCD		#ABCD
-
-	fum_b	Suc		Mal
-		#ABCD		#DCBA
-
-	maldh	Mal		OAA
-		#ABCD		#ABCD
-
-
-// Glyoxylate Shunt
-
-//	gs1	ICit		GlyOx	Suc
-//		#ABCDEF		#AB	#DCEF
-
-//	gs2	GlyOx	AcCoA	OAA
-//		#AB	#ab	#ABba
-
-
-// Anaplerotic Reactions
-
-	ppc	PEP	CO2	OAA			// PEPcarboxylase
-		#ABC	#a	#ABCa
-
-	mae	Mal		Pyr	CO2		// enzyme malique
-		#ABCD		#ABC	#D
-
-//	pck	OAA		PEP	CO2		// PEP carboxykinase
-//		#ABCD		#ABC	#D
-
-
-// Biosynthetic Pathways
-
-	// Glucose-6-Phosphate Family
-
-	bs_glc6P	Glc6P		BM_Glc6P
-		#ABCDEF		#ABCDEF
-
-	// Fructose-6-Phosphate Family
-
-	bs_fru6P	Fru6P		BM_Fru6P		// sortie de Fru6P pour biomasse
-		#ABCDEF		#ABCDEF
-
-	// Phosphoglycerate Family
-
-	bs_pga	PGA		BM_PGA
-		#ABC		#ABC
-
-	bs_pga_aux	BM_PGA		PGA_Aux
-		#ABC		#ABC
-
-	bs_pga1	BM_PGA		Ser
-		#ABC		#ABC
-
-	bs_pga1_aux	Ser		Ser_Aux
-		#ABC		#ABC
-
-	bs_pga2	Ser		Cys			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga2_aux	Cys		Cys_Aux			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga3	Ser		Gly	FTHF		// formation de gly pour biomasse
-		#ABC		#AB	#C		// ce flux est reversible
-
-	bs_pga3_aux	Gly		Gly_Aux		// pour conserver Gly comme metabolite intracellulaire
-		#AB		#AB
-
-	// TrioseP Family
-
-	bs_DHAP	GA3P		Glp			// formation glycerolP pour lipides
-		#ABC		#ABC
-
-	// Pyruvate Family
-
-	bs_pyr	Pyr		BM_Pyr
-		#ABC		#ABC
-
-	bs_pyr1	BM_Pyr		Ala
-		#ABC		#ABC
-
-	bs_pyr1_aux	Ala		Ala_Aux		// pour conserver Ala comme metabolite intracellulaire
-		#ABC		#ABC
-
-	bs_pyr2	BM_Pyr	BM_Pyr	AKV	CO2		// AKV et Val ont le meme squelette C
-		#ABC	#abc	#ABbcC	#a		// cette reaction permet d'utiliser eventuellement les donnees obtenues sur Val
-
-	bs_pyr4	AKV		Val		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr4_aux	Val		Val_Aux		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr3	AKV	BM_AcCoA	Leu	CO2
-		#ABCDE	#ab	#abBCDE	#A
-
-	bs_pyr3_aux	Leu		Leu_Aux		// pour conserver Leu comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-
-	// Erythrose-4-Phosphate Family
-
-	bs_e4p	Ery4P		BM_Ery4P		// pour utiliser les donnees sur Ery4P
-		#ABCD		#ABCD
-
-//	bs_e4p_aux	BM_Ery4P		Ery4P_aux		// pour utiliser les donnees sur Ery4P
-//		#ABCD		#ABCD
-
-
-	// Ribose-5-Phosphate Family
-
-	bs_rib5p	Rib5P		BM_Rib5P	// pour utiliser les donnees sur Rib5P
-		#ABCDE		#ABCDE
-
-	bs_rib5p1	BM_Rib5P	FTHF	His		// pour utiliser les donnees sur Rib5P
-		#ABCDE	#a	#EDCBAa
-
-	bs_rib5p1_aux	His		His_Aux		// sortie pour conserver His comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-	bs_rib5p2	BM_Rib5P		Ri5P_Aux		// sortie de Ri5P pour autres besoins que His
-		#ABCDE		#ABCDE			// ce flux est important pour ne pas imposer de fausses contraintes sur FTHF si on considerait His comme seule sortie
-
-
-	// Aromatic Amino Acids
-
-	bs_pep	PEP		BM_PEP
-		#ABC		#ABC
-
-	bs_pep1	BM_PEP	BM_Ery4P	DAHP
-		#ABC	#abcd	#ABCabcd
-
-	bs_pep2	BM_PEP	DAHP	Chor
-		#ABC	#abcdefg	#ABCabcdefg
-
-	bs_pep3a	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep3b	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep3_aux	Phe		Phe_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep4a	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep4b	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep4_aux	Tyr		Tyr_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep5	BM_PEP		PEP_Aux
-		#ABC		#ABC
-
-	bs_pep6	Chor	BM_Rib5P	Trp	PyrCO2
-		#ABCDEFGHIJ	#abcde	#edcbaJEFGHI	#ABCD
-
-	bs_pep6_aux	Trp		Trp_Aux
-		#ABCDEFGHIJK		#ABCDEFGHIJK
-
-	bs_pep7	PyrCO2		Pyr	CO2
-		#ABCD		#ABC	#D
-
-
-	// Acetyl-CoA
-
-	bs_accoa	AcCoA		BM_AcCoA
-		#AB		#AB
-
-	bs_accoa_aux	BM_AcCoA		AcCoA_Aux
-		#AB		#AB
-
-
-	// Alpha-Ketoglutarate Family
-
-	bs_akg	AKG		BM_AKG			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg1	BM_AKG		Glu			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg2	Glu		Pro			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg3	Glu		Gln			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg4	Glu	CO2	Arg			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE	#a	#ABCDEa
-
-	bs_akg4_aux	Arg		Arg_Aux			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDEF		#ABCDEF
-
-
-	// Oxaloacetate Family
-
-	bs_oaa	OAA		BM_OAA
-		#ABCD		#ABCD
-
-	bs_oaa1	BM_OAA		Asp
-		#ABCD		#ABCD
-
-	bs_oaa1_aux	Asp		Asp_Aux
-		#ABCD		#ABCD
-
-	bs_oaa2	Thr	BM_Pyr	Ile	CO2
-		#ABCD	#abc	#ABbCDc	#a
-
-	bs_oaa2_aux	Ile		Ile_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa3a	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#ABCDcb	#a
-
-	bs_oaa3b	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#abcDCB	#A
-
-	bs_oaa3_aux	Lys		Lys_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa4	BM_OAA		OAA_Aux
-		#ABCD		#ABCD
-
-	bs_oaa5	BM_OAA		Thr
-		#ABCD		#ABCD
-
-	bs_oaa5_aux	Thr		Thr_Aux
-		#ABCD		#ABCD
-
-	bs_oaa6	BM_OAA	FTHF	Met
-		#ABCD	#a	#ABCDa
-
-	bs_oaa6_aux	Met		Met_Aux
-		#ABCDE		#ABCDE
-
-	bs_oaa7	BM_OAA		Asn
-		#ABCD		#ABCD
-
-	bs_oaa7_aux	Asn		Asn_Aux
-		#ABCD		#ABCD
-
-
-// Flux de sortie
-
-	out_co2	CO2		CO2_out			// Sortie de CO2
-		#A		#A
-
-	out_Ac	AcCoA		Acetate			// Sortie d'acetate
-		#AB		#AB
-
-	out_FTHF	FTHF		FTHF_out
-		#A		#A
-
-FLUXES
-	NET
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt	C	1
-//		CO2upt	F	0.669589
-//		FTHF0	F	0.00224836
-//		FTHF1	F	0.001
-
-		pgi	D
-		pfk	D
-		ald	D
-//		tpi	D
-		pgk	D
-		eno	D
-		pyk	F	1.54425507
-
-		zwf	F	0.14233479
-		gnd	F	0.14223479
-		edd	D
-		ta	D
-		tk1	D
-		tk2	D
-
-		pdh	D
-		citsynth	D
-		idh	D
-		akgdh	D
-		fum_a	D
-		fum_b	D
-		maldh	D
-
-//		gs1	C	0
-//		gs2	D
-
-		ppc	D
-		mae	D
-//		pck	D
-
-		// flux de biomasse
-
-		bs_glc6P	C	0.0109	// sortie de G6P
-		bs_fru6P	C	0.0038	// sortie de F6P
-		bs_pga	C	0.0791		// sortie de PGA pour formation de biomasse
-		bs_pga_aux	D		// sortie de PGA pour formation de biomasse
-		bs_pga1	D			// conversion PGA donne ser
-		bs_pga1_aux	C	0.0109	// conversion PGA donne ser
-		bs_pga2	D
-		bs_pga2_aux	C	0.0046	// conversion PGA donne Cys
-		bs_pga3	D			// reaction de synthese de Gly
-		bs_pga3_aux	C	0.0308	// sortie de Gly
-		bs_DHAP	C	0.0068		// formation de glycerolP pour lipides
-		bs_pyr	C	0.1501	// avant : 0.1547		// sortie de Pyr pour formation de biomasse
-		bs_pyr1	D	// formation d'Ala
-		bs_pyr1_aux	D	// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Leu
-		bs_pyr2	D			// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	D
-		bs_pyr4_aux	C	0.0213	// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	D			// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	C	0.0227	// sortie de Leu
-		bs_e4p	D		// sortie d'Ery4p pour biomasse
-//		bs_e4p_aux	C	0	// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0.0476	// synthese d'His
-		bs_rib5p1	D		// synthese d'His
-		bs_rib5p1_aux	C	0.0048	// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_pep	C	0.0381		// sortie de PEP
-		bs_pep1	D			// sortie de PEP
-		bs_pep2	D
-		bs_pep3a	D
-		bs_pep3b	D
-		bs_pep3_aux	C	0.0093
-		bs_pep4a	D
-		bs_pep4b	D
-		bs_pep4_aux	C	0.0069
-		bs_pep5	C	0.0027
-		bs_pep6	D
-		bs_pep6_aux	D
-		bs_pep7	D
-		bs_accoa	C	0.1565	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_akg	C	0.0571		// sortie d'AKG
-		bs_akg1	D
-		bs_akg2	C	0.0111
-		bs_akg3	C	0.0132
-		bs_akg4	D
-		bs_akg4_aux	D
-		bs_oaa	C	0.0947		// sortie d'OAA pour formation de biomasse
-		bs_oaa1	D			// sortie d'OAA pour Asp
-		bs_oaa1_aux	C	0.0121	// sortie d'Asp
-		bs_oaa2	D			// synthese d'Ile
-		bs_oaa2_aux	C	0.0146	// sortie d'Ile
-		bs_oaa3a	D
-		bs_oaa3b	D
-		bs_oaa3_aux	C	0.0173
-		bs_oaa4	D
-		bs_oaa5	D
-		bs_oaa5_aux	C	0.0128
-		bs_oaa6	D
-		bs_oaa6_aux	C	0.0077
-		bs_oaa7	D
-		bs_oaa7_aux	C	0.0121
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	F	0.213000005
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-	XCH
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt	C	0
-//		CO2upt	D
-//		FTHF0	D
-//		FTHF1	D
-
-		pgi	C	0.752386	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		pfk	C	0
-		ald	F	0.420281957
-//		tpi	F	0.5
-		pgk	C	0.984718	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		eno	F	0.999
-		pyk	C	0.0109591	// 2010-10-01 ssg: was F => unresolved if co2 uptake is unlimited
-
-		zwf	C	0
-		gnd	C	0
-		edd	C	0
-		ta	F	0.361648085
-		tk1	F	0.151671492
-		tk2	F	0
-
-		pdh	C	0.0322745	// 2010-10-02 ssg: was F, otherwise unsolvable in monte-carlo
-		citsynth	C	0
-		idh	C	0
-		akgdh	C	0
-		fum_a	F	0.3013683
-		fum_b	D
-		maldh	C	0.647115	//********************************************** C pour analyse de sensibilite, F pour minimisation
-
-//		gs1	C	0
-//		gs2	C	0
-
-		ppc	F	0.147615337
-		mae	C	0
-//		pck	C	0
-
-		bs_glc6P	D		// sortie de G6P
-		bs_fru6P	D		// sortie de F6P
-		bs_pga	C	0		// conversion PGA donne Ser
-		bs_pga_aux	D		// conversion PGA donne Ser
-		bs_pga1	C	0		// conversion PGA donne Ser
-		bs_pga1_aux	D		// conversion PGA donne Ser
-		bs_pga2	C	0		// ser donne Cys. correspond a la sortie de PGA pour biomasse autre que formation Gly
-		bs_pga2_aux	D
-		bs_pga3	C	0.011799		// reaction de synthese de Gly. cette reaction est reversible
-		bs_pga3_aux	D		// sortie de Gly
-		bs_DHAP	D			// formation de glycerolP pour lipides
-		bs_pyr	C	0		// formation d'Ala
-		bs_pyr1	C	0		// formation d'Ala
-		bs_pyr1_aux	D		// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Ile
-		bs_pyr2	C	0		// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	C	0
-		bs_pyr4_aux	D		// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	C	0		// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	D		// sortie de Leu
-		bs_e4p	C	0		// sortie d'Ery4p
-//		bs_e4p_aux	D		// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0	// synthese d'His
-		bs_rib5p1	C	0	// synthese d'His
-		bs_rib5p1_aux	D		// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_accoa	C	0	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_pep	C	0		// sortie de PEP
-		bs_pep1	C	0		// sortie de PEP
-		bs_pep2	C	0
-		bs_pep3a	C	0
-		bs_pep3b	C	0
-		bs_pep3_aux	D
-		bs_pep4a	C	0
-		bs_pep4b	C	0
-		bs_pep4_aux	D
-		bs_pep5	D
-		bs_pep6	C	0
-		bs_pep6_aux	D
-		bs_pep7	C	0
-		bs_akg	C	0		// sortie d'AKG
-		bs_akg1	C	0
-		bs_akg2	D
-		bs_akg3	D
-		bs_akg4	C	0
-		bs_akg4_aux	D
-		bs_oaa	C	0
-		bs_oaa1	C	0		// sortie d'OAA autres que Met
-		bs_oaa1_aux	D		// sortie d'OAA autres que Met
-		bs_oaa2	C	0		// synthese de Met
-		bs_oaa2_aux	D		// sortie de Met
-		bs_oaa3a	C	0
-		bs_oaa3b	C	0
-		bs_oaa3_aux	D
-		bs_oaa4	D
-		bs_oaa5	C	0
-		bs_oaa5_aux	D
-		bs_oaa6	C	0
-		bs_oaa6_aux	D
-		bs_oaa7	C	0
-		bs_oaa7_aux	D
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	D			// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-EQUALITIES
-	NET
-		VALUE	FORMULA
-
-		0	fum_a-fum_b		// scrambling reaction
-		0	bs_oaa3a-bs_oaa3b
-		0	bs_pep3a-bs_pep3b
-		0	bs_pep4a-bs_pep4b
-
-	XCH
-		VALUE	FORMULA
-
-		0	fum_a-fum_b
-
-INEQUALITIES
-	NET
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-		1	<=	pyk
-		0.0001	<=	edd
-		0.0001	<=	gnd
-		0.0001	<=	zwf
-		0.0001	<=	ppc
-		0.0001	<=	mae
-//		2	>=	CO2upt // 2010-08-18 too high value makes jacobian rank deficient
-	XCH
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-
-
-FLUX_MEASUREMENTS
-	FLUX_NAME	VALUE	DEVIATION	//		Val	Dev
-	out_Ac	0.213	0.0001
-
-LABEL_INPUT
-	META_NAME	ISOTOPOMER	VALUE
-
-	Gluc	#100000	0.8
-		#000000	0.2
-//	CO2_ext	#0	0.989
-//		#1	0.011
-
-//	FTHF_0	#0	1
-//	FTHF_1	#1	1
-
-
-LABEL_MEASUREMENTS
-	META_NAME	CUM_GROUP	VALUE	DEVIATION	CUM_CONSTRAINTS
-											// Example
-
-PEAK_MEASUREMENTS
-	META_NAME	PEAK_NO	VALUE_S	VALUE_D-	VALUE_D+	VALUE_DD	VALUE_T	DEVIATION_S	DEVIATION_D-	DEVIATION_D+	DEVIATION_DD/T
-
-
-MASS_SPECTROMETRY
-	META_NAME	FRAGMENT	WEIGHT	VALUE	DEVIATION
-
-// Deviation fixee a 0.02				// correction inoc 0.062
-
-
-
-	Suc	1,2,3,4	1	0.371605319	0.01
-			2	0.360829749	0.01
-			3	0.208425325	0.01
-			4	0.059139607	0.01
-//	Mal	1,2,3,4	0	0.164619329483	0.02
-//			1	0.110072868518	0.02
-//			2	0.637801316225333	0.02
-//			3	0.0863461044204333	0.02
-//			4	0.00116038135315367	0.02
-	ICit	1,2,3,4,5,6	0	0.131864539419667	0.02
-			1	0.225857638569	0.02
-			2	0.256421170949333	0.02
-			3	0.209230210478667	0.02
-			4	0.116863585449667	0.02
-			5	0.0457727744643333	0.02
-			6	0.0139900806697867	0.02
-	PEP	1,2,3	0	0.421359839367667	0.01
-			1	0.358998301162333	0.01
-			2	0.0348521859365667	0.01
-			3	0.184789673534	0.01
-	PGA	1,2,3	0	0.434335785072667	0.01
-			1	0.352829683224667	0.01
-			2	0.0323479804176	0.01
-			3	0.180486551285333	0.01
-	FruBP	1,2,3,4,5,6	0	0.0738121029259333	0.01
-			1	0.454450017158667	0.01
-			2	0.160823529969333	0.01
-			3	0.0944468077710667	0.01
-			4	0.105281338489667	0.01
-			5	0.0155016033633	0.01
-			6	0.0956846003217333	0.01
-	Glc6P	1,2,3,4,5,6	0	0.0160587173349	0.01
-			1	0.673510772480667	0.01
-			2	0.0930110047641	0.01
-			3	0.0280359937297	0.01
-			4	0.0397315614067667	0.01
-			5	0.0145524520950667	0.01
-			6	0.135099498189	0.01
-	Fru6P	1,2,3,4,5,6	0	0.0235029951295	0.01
-			1	0.624253565357667	0.01
-			2	0.113068441282333	0.01
-			3	0.0456605631765	0.01
-			4	0.0516089447155667	0.01
-			5	0.0185881765378333	0.01
-			6	0.123317313800333	0.01
-	Rib5P	1,2,3,4,5	0	0.341615670498667	0.01
-			1	0.25454117519	0.01
-			2	0.159027180368333	0.01
-			3	0.113789577528667	0.01
-			4	0.0615266612553333	0.01
-			5	0.0694997351590667	0.01
-	Gnt6P	1,2,3,4,5,6	0	0.0249552273874	0.01
-			1	0.672556163913	0.01
-			2	0.0866890773125333	0.01
-			3	0.0313987199704333	0.01
-			4	0.0314691889898667	0.01
-			5	0.0138168327362333	0.01
-			6	0.139114789690333	0.01
-//	Ery4P	1,2,3,4	0	0.178453461108	0.01
-//			1	0.412398433968333	0.01
-//			2	0.273694508221667	0.01
-//			3	0.116142498670667	0.01
-//			4	0.0193110980315	0.01
-
-OPTIONS
-	OPT_NAME	OPT_VALUE
-	MATLAB_FOR_FLUX_EQ_CONSTR_MATR	1
-	//optctrl_history	1 // nlsic
-	//optctrl_trace	3 // BFGS
-	//optctrl_reltol	1.e-10 // BFGS
-	//optctrl_maxit	1000 // BFGS
-	posttreat_R	plot_smeas.R
-	prl_exp	e_coli_U-Glc_exact.ftbl
-	commandArgs	--TIMEIT --noscale
-
--- a/test-data/e_coli_1-Glc_exact.log	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-"/usr/local/miniconda3/bin/influx_s" "e_coli_1-Glc_exact.ftbl"
-code gen: 2020-03-25 16:47:11
-executing: "/usr/local/miniconda3/bin/python3.7" "/home/STORAGE/local/miniconda3/bin/ftbl2optR.py" "--tblimit" "0" "--ropts" "noscale=TRUE; TIMEIT=TRUE" "e_coli_1-Glc_exact.ftbl"
-executing: R --vanilla --slave < e_coli_1-Glc_exact.R
-calcul  : 2020-03-25 16:47:12
-load    : 2020-03-25 16:47:13.55 cpu=0.945
-rinit   : 2020-03-25 16:47:13.56 cpu=0.947
-r_flux  : 2020-03-25 16:47:13.56 cpu=0.948
-Afl qr(): 2020-03-25 16:47:13.62 cpu=1.008
-dfl_dffg: 2020-03-25 16:47:13.73 cpu=1.042
-spAbr   : 2020-03-25 16:47:13.73 cpu=1.045
-weight 1: 2020-03-25 16:47:13.73 cpu=1.046
-weight 2: 2020-03-25 16:47:13.77 cpu=1.123
-weight 3: 2020-03-25 16:47:13.84 cpu=1.251
-weight 4: 2020-03-25 16:47:13.89 cpu=1.354
-weight 5: 2020-03-25 16:47:13.91 cpu=1.402
-weight 6: 2020-03-25 16:47:13.92 cpu=1.421
-measure : 2020-03-25 16:47:14.00 cpu=1.506
-ineq    : 2020-03-25 16:47:14.15 cpu=1.649
-preopt  : 2020-03-25 16:47:14.20 cpu=1.718
-labargs : 2020-03-25 16:47:14.21 cpu=1.741
-run    1: 2020-03-25 16:47:17.10 cpu=4.779
-Starting point
-The following 4 ineqalitie(s) are active at starting point:
-n:0.0001<=edd
-n:0.0001<=mae
-f.x.tk2>=0
-f.x.eno<=0.999
-kvh init: 2020-03-25 16:47:17.10 cpu=4.781
-check ja: 2020-03-25 16:47:17.17 cpu=4.832
-optim   : 2020-03-25 16:47:17.31 cpu=4.968
-it=0	res=211.2524
-it=1	res=162.3825	normstep=1.36222	btk=1
-it=2	res=143.6255	normstep=1.508085	btk=1
-it=3	res=143.4337	normstep=0.1225691	btk=1
-it=4	res=143.4337	normstep=2.429788e-08	btk=1
-postopt : 2020-03-25 16:47:17.64 cpu=5.279
-linstats: 2020-03-25 16:47:17.83 cpu=5.426
-rend    : 2020-03-25 16:47:18.17 cpu=5.792
-end     : 2020-03-25 16:47:18
--- a/test-data/e_coli_U-Glc_exact.ftbl	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,711 +0,0 @@
-PROJECT
-	NAME	VERSION	FORMAT	DATE	COMMENT
-	K12_MG1655.ftbl	1		101109	modele E coli K12 MG1655 WT avec voies centrales completes et voies biomasse simplifiees
-
-NETWORK
-	FLUX_NAME	EDUCT_1	EDUCT_2	PRODUCT_1	PRODUCT_2
-
-// Glycolyse.
-// PPP
-// TCA
-// voies anaplerotiques: pepc. enz malique
-// voie glyoxylate
-// avec pool interne unique de CO2 provenant soit du metabolisme soit de l'exterieur (CO2upt laisse libre)
-// saisie differentielle des substrats marques
-
-
-// Uptake substrats
-
-	Glucupt	Gluc		Glc6P
-		#ABCDEF		#ABCDEF	
-//	CO2upt	CO2_ext		CO2		// entree de CO2 non marque
-//		#A		#A		// ce flux est a laisser libre
-
-//	FTHF0	FTHF_0		FTHF		// prise en charge de FTHF non marque
-//		#A		#A
-
-//	FTHF1	FTHF_1		FTHF		// prise en charge de FTHF marque
-//		#a		#a
-
-
-// Embden Meyerhof Parnas Pathway
-
-	pgi	Glc6P		Fru6P
-		#ABCDEF		#ABCDEF
-
-	pfk	Fru6P		FruBP
-		#ABCDEF		#ABCDEF
-
-	ald	FruBP		GA3P	GA3P
-		#ABCDEF		#CBA	#DEF
-
-//	tpi	DHAP		GA3P
-//		#ABC		#CBA
-
-	pgk	GA3P		PGA
-		#ABC		#ABC
-
-	eno	PGA		PEP
-		#ABC		#ABC
-
-	pyk	PEP		Pyr
-		#ABC		#ABC
-
-
-// Methylglyoxal Pathway
-
-//	mgs	DHAP		Pyr
-//		#ABC		#ABC
-
-
-// Pentose Phosphate Pathway
-
-	zwf	Glc6P		Gnt6P
-		#ABCDEF		#ABCDEF
-
-	gnd	Gnt6P		CO2	Rib5P
-		#ABCDEF		#A	#BCDEF
-
-	edd	Gnt6P		Pyr	GA3P
-		#ABCDEF		#ABC	#DEF
-
-//	ta	Ery4P	Fru6P	GA3P	Sed7P
-//		#ABCD	#abcdef	#def	#abcABCD
-
-//	tk1	GA3P	Sed7P	Rib5P	Rib5P
-//		#ABC	#abcdefg	#abABC	#cdefg
-
-//	tk2	GA3P	Fru6P	Rib5P	Ery4P
-//		#ABC	#abcdef	#abABC	#cdef
-
-	ta	GA3P	Sed7P	Ery4P	Fru6P
-		#ABC	#abcdefg	#defg	#abcABC
-
-	tk1	Rib5P	Rib5P	GA3P	Sed7P
-		#ABCDE	#abcde	#CDE	#ABabcde
-
-	tk2	Rib5P	Ery4P	GA3P	Fru6P
-		#ABCDE	#abcd	#CDE	#ABabcd
-
-
-// Tricarboxylic Acid Cycle
-
-	pdh	Pyr		AcCoA	CO2
-		#ABC		#BC	#A
-
-	citsynth	AcCoA	OAA	ICit
-		#AB	#abcd	#dcbaBA
-
-	idh	ICit		AKG	CO2
-		#ABCDEF		#ABCEF	#D
-
-	akgdh	AKG		Suc	CO2
-		#ABCDE		#BCDE	#A
-
-	fum_a	Suc		Mal
-		#ABCD		#ABCD
-
-	fum_b	Suc		Mal
-		#ABCD		#DCBA
-
-	maldh	Mal		OAA
-		#ABCD		#ABCD
-
-
-// Glyoxylate Shunt
-
-//	gs1	ICit		GlyOx	Suc
-//		#ABCDEF		#AB	#DCEF
-
-//	gs2	GlyOx	AcCoA	OAA
-//		#AB	#ab	#ABba
-
-
-// Anaplerotic Reactions
-
-	ppc	PEP	CO2	OAA			// PEPcarboxylase
-		#ABC	#a	#ABCa
-
-	mae	Mal		Pyr	CO2		// enzyme malique
-		#ABCD		#ABC	#D
-
-//	pck	OAA		PEP	CO2		// PEP carboxykinase
-//		#ABCD		#ABC	#D
-
-
-// Biosynthetic Pathways
-
-	// Glucose-6-Phosphate Family
-
-	bs_glc6P	Glc6P		BM_Glc6P
-		#ABCDEF		#ABCDEF
-
-	// Fructose-6-Phosphate Family
-
-	bs_fru6P	Fru6P		BM_Fru6P		// sortie de Fru6P pour biomasse
-		#ABCDEF		#ABCDEF
-
-	// Phosphoglycerate Family
-
-	bs_pga	PGA		BM_PGA
-		#ABC		#ABC
-
-	bs_pga_aux	BM_PGA		PGA_Aux
-		#ABC		#ABC
-
-	bs_pga1	BM_PGA		Ser
-		#ABC		#ABC
-
-	bs_pga1_aux	Ser		Ser_Aux
-		#ABC		#ABC
-
-	bs_pga2	Ser		Cys			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga2_aux	Cys		Cys_Aux			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga3	Ser		Gly	FTHF		// formation de gly pour biomasse
-		#ABC		#AB	#C		// ce flux est reversible
-
-	bs_pga3_aux	Gly		Gly_Aux		// pour conserver Gly comme metabolite intracellulaire
-		#AB		#AB
-
-	// TrioseP Family
-
-	bs_DHAP	GA3P		Glp			// formation glycerolP pour lipides
-		#ABC		#ABC
-
-	// Pyruvate Family
-
-	bs_pyr	Pyr		BM_Pyr
-		#ABC		#ABC
-
-	bs_pyr1	BM_Pyr		Ala
-		#ABC		#ABC
-
-	bs_pyr1_aux	Ala		Ala_Aux		// pour conserver Ala comme metabolite intracellulaire
-		#ABC		#ABC
-
-	bs_pyr2	BM_Pyr	BM_Pyr	AKV	CO2		// AKV et Val ont le meme squelette C
-		#ABC	#abc	#ABbcC	#a		// cette reaction permet d'utiliser eventuellement les donnees obtenues sur Val
-
-	bs_pyr4	AKV		Val		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr4_aux	Val		Val_Aux		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr3	AKV	BM_AcCoA	Leu	CO2
-		#ABCDE	#ab	#abBCDE	#A
-
-	bs_pyr3_aux	Leu		Leu_Aux		// pour conserver Leu comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-
-	// Erythrose-4-Phosphate Family
-
-	bs_e4p	Ery4P		BM_Ery4P		// pour utiliser les donnees sur Ery4P
-		#ABCD		#ABCD
-
-//	bs_e4p_aux	BM_Ery4P		Ery4P_aux		// pour utiliser les donnees sur Ery4P
-//		#ABCD		#ABCD
-
-
-	// Ribose-5-Phosphate Family
-
-	bs_rib5p	Rib5P		BM_Rib5P	// pour utiliser les donnees sur Rib5P
-		#ABCDE		#ABCDE
-
-	bs_rib5p1	BM_Rib5P	FTHF	His		// pour utiliser les donnees sur Rib5P
-		#ABCDE	#a	#EDCBAa
-
-	bs_rib5p1_aux	His		His_Aux		// sortie pour conserver His comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-	bs_rib5p2	BM_Rib5P		Ri5P_Aux		// sortie de Ri5P pour autres besoins que His
-		#ABCDE		#ABCDE			// ce flux est important pour ne pas imposer de fausses contraintes sur FTHF si on considerait His comme seule sortie
-
-
-	// Aromatic Amino Acids
-
-	bs_pep	PEP		BM_PEP
-		#ABC		#ABC
-
-	bs_pep1	BM_PEP	BM_Ery4P	DAHP
-		#ABC	#abcd	#ABCabcd
-
-	bs_pep2	BM_PEP	DAHP	Chor
-		#ABC	#abcdefg	#ABCabcdefg
-
-	bs_pep3a	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep3b	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep3_aux	Phe		Phe_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep4a	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep4b	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep4_aux	Tyr		Tyr_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep5	BM_PEP		PEP_Aux
-		#ABC		#ABC
-
-	bs_pep6	Chor	BM_Rib5P	Trp	PyrCO2
-		#ABCDEFGHIJ	#abcde	#edcbaJEFGHI	#ABCD
-
-	bs_pep6_aux	Trp		Trp_Aux
-		#ABCDEFGHIJK		#ABCDEFGHIJK
-
-	bs_pep7	PyrCO2		Pyr	CO2
-		#ABCD		#ABC	#D
-
-
-	// Acetyl-CoA
-
-	bs_accoa	AcCoA		BM_AcCoA
-		#AB		#AB
-
-	bs_accoa_aux	BM_AcCoA		AcCoA_Aux
-		#AB		#AB
-
-
-	// Alpha-Ketoglutarate Family
-
-	bs_akg	AKG		BM_AKG			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg1	BM_AKG		Glu			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg2	Glu		Pro			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg3	Glu		Gln			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg4	Glu	CO2	Arg			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE	#a	#ABCDEa
-
-	bs_akg4_aux	Arg		Arg_Aux			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDEF		#ABCDEF
-
-
-	// Oxaloacetate Family
-
-	bs_oaa	OAA		BM_OAA
-		#ABCD		#ABCD
-
-	bs_oaa1	BM_OAA		Asp
-		#ABCD		#ABCD
-
-	bs_oaa1_aux	Asp		Asp_Aux
-		#ABCD		#ABCD
-
-	bs_oaa2	Thr	BM_Pyr	Ile	CO2
-		#ABCD	#abc	#ABbCDc	#a
-
-	bs_oaa2_aux	Ile		Ile_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa3a	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#ABCDcb	#a
-
-	bs_oaa3b	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#abcDCB	#A
-
-	bs_oaa3_aux	Lys		Lys_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa4	BM_OAA		OAA_Aux
-		#ABCD		#ABCD
-
-	bs_oaa5	BM_OAA		Thr
-		#ABCD		#ABCD
-
-	bs_oaa5_aux	Thr		Thr_Aux
-		#ABCD		#ABCD
-
-	bs_oaa6	BM_OAA	FTHF	Met
-		#ABCD	#a	#ABCDa
-
-	bs_oaa6_aux	Met		Met_Aux
-		#ABCDE		#ABCDE
-
-	bs_oaa7	BM_OAA		Asn
-		#ABCD		#ABCD
-
-	bs_oaa7_aux	Asn		Asn_Aux
-		#ABCD		#ABCD
-
-
-// Flux de sortie
-
-	out_co2	CO2		CO2_out			// Sortie de CO2
-		#A		#A
-
-	out_Ac	AcCoA		Acetate			// Sortie d'acetate
-		#AB		#AB
-
-	out_FTHF	FTHF		FTHF_out
-		#A		#A
-
-FLUXES
-	NET
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt	C	1
-//		CO2upt	F	0.669589
-//		FTHF0	F	0.00224836
-//		FTHF1	F	0.001
-
-		pgi	D
-		pfk	D
-		ald	D
-//		tpi	D
-		pgk	D
-		eno	D
-		pyk	F	1.54425507
-
-		zwf	F	0.14233479
-		gnd	F	0.14223479
-		edd	D
-		ta	D
-		tk1	D
-		tk2	D
-
-		pdh	D
-		citsynth	D
-		idh	D
-		akgdh	D
-		fum_a	D
-		fum_b	D
-		maldh	D
-
-//		gs1	C	0
-//		gs2	D
-
-		ppc	D
-		mae	D
-//		pck	D
-
-		// flux de biomasse
-
-		bs_glc6P	C	0.0109	// sortie de G6P
-		bs_fru6P	C	0.0038	// sortie de F6P
-		bs_pga	C	0.0791		// sortie de PGA pour formation de biomasse
-		bs_pga_aux	D		// sortie de PGA pour formation de biomasse
-		bs_pga1	D			// conversion PGA donne ser
-		bs_pga1_aux	C	0.0109	// conversion PGA donne ser
-		bs_pga2	D
-		bs_pga2_aux	C	0.0046	// conversion PGA donne Cys
-		bs_pga3	D			// reaction de synthese de Gly
-		bs_pga3_aux	C	0.0308	// sortie de Gly
-		bs_DHAP	C	0.0068		// formation de glycerolP pour lipides
-		bs_pyr	C	0.1501	// avant : 0.1547		// sortie de Pyr pour formation de biomasse
-		bs_pyr1	D	// formation d'Ala
-		bs_pyr1_aux	D	// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Leu
-		bs_pyr2	D			// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	D
-		bs_pyr4_aux	C	0.0213	// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	D			// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	C	0.0227	// sortie de Leu
-		bs_e4p	D		// sortie d'Ery4p pour biomasse
-//		bs_e4p_aux	C	0	// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0.0476	// synthese d'His
-		bs_rib5p1	D		// synthese d'His
-		bs_rib5p1_aux	C	0.0048	// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_pep	C	0.0381		// sortie de PEP
-		bs_pep1	D			// sortie de PEP
-		bs_pep2	D
-		bs_pep3a	D
-		bs_pep3b	D
-		bs_pep3_aux	C	0.0093
-		bs_pep4a	D
-		bs_pep4b	D
-		bs_pep4_aux	C	0.0069
-		bs_pep5	C	0.0027
-		bs_pep6	D
-		bs_pep6_aux	D
-		bs_pep7	D
-		bs_accoa	C	0.1565	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_akg	C	0.0571		// sortie d'AKG
-		bs_akg1	D
-		bs_akg2	C	0.0111
-		bs_akg3	C	0.0132
-		bs_akg4	D
-		bs_akg4_aux	D
-		bs_oaa	C	0.0947		// sortie d'OAA pour formation de biomasse
-		bs_oaa1	D			// sortie d'OAA pour Asp
-		bs_oaa1_aux	C	0.0121	// sortie d'Asp
-		bs_oaa2	D			// synthese d'Ile
-		bs_oaa2_aux	C	0.0146	// sortie d'Ile
-		bs_oaa3a	D
-		bs_oaa3b	D
-		bs_oaa3_aux	C	0.0173
-		bs_oaa4	D
-		bs_oaa5	D
-		bs_oaa5_aux	C	0.0128
-		bs_oaa6	D
-		bs_oaa6_aux	C	0.0077
-		bs_oaa7	D
-		bs_oaa7_aux	C	0.0121
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	F	0.213000005
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-	XCH
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt	C	0
-//		CO2upt	D
-//		FTHF0	D
-//		FTHF1	D
-
-		pgi	C	0.752386	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		pfk	C	0
-		ald	F	0.420281957
-//		tpi	F	0.5
-		pgk	C	0.984718	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		eno	F	0.999
-		pyk	C	0.0109591	// 2010-10-01 ssg: was F => unresolved if co2 uptake is unlimited
-
-		zwf	C	0
-		gnd	C	0
-		edd	C	0
-		ta	F	0.361648085
-		tk1	F	0.151671492
-		tk2	F	0
-
-		pdh	C	0.0322745	// 2010-10-02 ssg: was F, otherwise unsolvable in monte-carlo
-		citsynth	C	0
-		idh	C	0
-		akgdh	C	0
-		fum_a	F	0.3013683
-		fum_b	D
-		maldh	C	0.647115	//********************************************** C pour analyse de sensibilite, F pour minimisation
-
-//		gs1	C	0
-//		gs2	C	0
-
-		ppc	F	0.147615337
-		mae	C	0
-//		pck	C	0
-
-		bs_glc6P	D		// sortie de G6P
-		bs_fru6P	D		// sortie de F6P
-		bs_pga	C	0		// conversion PGA donne Ser
-		bs_pga_aux	D		// conversion PGA donne Ser
-		bs_pga1	C	0		// conversion PGA donne Ser
-		bs_pga1_aux	D		// conversion PGA donne Ser
-		bs_pga2	C	0		// ser donne Cys. correspond a la sortie de PGA pour biomasse autre que formation Gly
-		bs_pga2_aux	D
-		bs_pga3	C	0.011799		// reaction de synthese de Gly. cette reaction est reversible
-		bs_pga3_aux	D		// sortie de Gly
-		bs_DHAP	D			// formation de glycerolP pour lipides
-		bs_pyr	C	0		// formation d'Ala
-		bs_pyr1	C	0		// formation d'Ala
-		bs_pyr1_aux	D		// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Ile
-		bs_pyr2	C	0		// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	C	0
-		bs_pyr4_aux	D		// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	C	0		// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	D		// sortie de Leu
-		bs_e4p	C	0		// sortie d'Ery4p
-//		bs_e4p_aux	D		// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0	// synthese d'His
-		bs_rib5p1	C	0	// synthese d'His
-		bs_rib5p1_aux	D		// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_accoa	C	0	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_pep	C	0		// sortie de PEP
-		bs_pep1	C	0		// sortie de PEP
-		bs_pep2	C	0
-		bs_pep3a	C	0
-		bs_pep3b	C	0
-		bs_pep3_aux	D
-		bs_pep4a	C	0
-		bs_pep4b	C	0
-		bs_pep4_aux	D
-		bs_pep5	D
-		bs_pep6	C	0
-		bs_pep6_aux	D
-		bs_pep7	C	0
-		bs_akg	C	0		// sortie d'AKG
-		bs_akg1	C	0
-		bs_akg2	D
-		bs_akg3	D
-		bs_akg4	C	0
-		bs_akg4_aux	D
-		bs_oaa	C	0
-		bs_oaa1	C	0		// sortie d'OAA autres que Met
-		bs_oaa1_aux	D		// sortie d'OAA autres que Met
-		bs_oaa2	C	0		// synthese de Met
-		bs_oaa2_aux	D		// sortie de Met
-		bs_oaa3a	C	0
-		bs_oaa3b	C	0
-		bs_oaa3_aux	D
-		bs_oaa4	D
-		bs_oaa5	C	0
-		bs_oaa5_aux	D
-		bs_oaa6	C	0
-		bs_oaa6_aux	D
-		bs_oaa7	C	0
-		bs_oaa7_aux	D
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	D			// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-EQUALITIES
-	NET
-		VALUE	FORMULA
-
-		0	fum_a-fum_b		// scrambling reaction
-		0	bs_oaa3a-bs_oaa3b
-		0	bs_pep3a-bs_pep3b
-		0	bs_pep4a-bs_pep4b
-
-	XCH
-		VALUE	FORMULA
-
-		0	fum_a-fum_b
-
-INEQUALITIES
-	NET
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-		1	<=	pyk
-		0.0001	<=	edd
-		0.0001	<=	gnd
-		0.0001	<=	zwf
-		0.0001	<=	ppc
-		0.0001	<=	mae
-//		2	>=	CO2upt // 2010-08-18 too high value makes jacobian rank deficient
-	XCH
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-
-
-FLUX_MEASUREMENTS
-	FLUX_NAME	VALUE	DEVIATION	//		Val	Dev
-	out_Ac	0.213	0.0001
-
-LABEL_INPUT
-	META_NAME	ISOTOPOMER	VALUE
-
-	Gluc	#111111	0.2
-		#000000	0.8
-//	CO2_ext	#0	0.989
-//		#1	0.011
-
-//	FTHF_0	#0	1
-//	FTHF_1	#1	1
-
-
-LABEL_MEASUREMENTS
-	META_NAME	CUM_GROUP	VALUE	DEVIATION	CUM_CONSTRAINTS
-											// Example
-
-PEAK_MEASUREMENTS
-	META_NAME	PEAK_NO	VALUE_S	VALUE_D-	VALUE_D+	VALUE_DD	VALUE_T	DEVIATION_S	DEVIATION_D-	DEVIATION_D+	DEVIATION_DD/T
-
-
-MASS_SPECTROMETRY
-	META_NAME	FRAGMENT	WEIGHT	VALUE	DEVIATION
-
-// Deviation fixee a 0.02				// correction inoc 0.062
-
-
-
-	Suc	1,2,3,4	1	0.371605319	0.01
-			2	0.360829749	0.01
-			3	0.208425325	0.01
-			4	0.059139607	0.01
-//	Mal	1,2,3,4	0	0.164619329483	0.02
-//			1	0.110072868518	0.02
-//			2	0.637801316225333	0.02
-//			3	0.0863461044204333	0.02
-//			4	0.00116038135315367	0.02
-	ICit	1,2,3,4,5,6	0	0.131864539419667	0.02
-			1	0.225857638569	0.02
-			2	0.256421170949333	0.02
-			3	0.209230210478667	0.02
-			4	0.116863585449667	0.02
-			5	0.0457727744643333	0.02
-			6	0.0139900806697867	0.02
-	PEP	1,2,3	0	0.421359839367667	0.01
-			1	0.358998301162333	0.01
-			2	0.0348521859365667	0.01
-			3	0.184789673534	0.01
-	PGA	1,2,3	0	0.434335785072667	0.01
-			1	0.352829683224667	0.01
-			2	0.0323479804176	0.01
-			3	0.180486551285333	0.01
-	FruBP	1,2,3,4,5,6	0	0.0738121029259333	0.01
-			1	0.454450017158667	0.01
-			2	0.160823529969333	0.01
-			3	0.0944468077710667	0.01
-			4	0.105281338489667	0.01
-			5	0.0155016033633	0.01
-			6	0.0956846003217333	0.01
-	Glc6P	1,2,3,4,5,6	0	0.0160587173349	0.01
-			1	0.673510772480667	0.01
-			2	0.0930110047641	0.01
-			3	0.0280359937297	0.01
-			4	0.0397315614067667	0.01
-			5	0.0145524520950667	0.01
-			6	0.135099498189	0.01
-	Fru6P	1,2,3,4,5,6	0	0.0235029951295	0.01
-			1	0.624253565357667	0.01
-			2	0.113068441282333	0.01
-			3	0.0456605631765	0.01
-			4	0.0516089447155667	0.01
-			5	0.0185881765378333	0.01
-			6	0.123317313800333	0.01
-	Rib5P	1,2,3,4,5	0	0.341615670498667	0.01
-			1	0.25454117519	0.01
-			2	0.159027180368333	0.01
-			3	0.113789577528667	0.01
-			4	0.0615266612553333	0.01
-			5	0.0694997351590667	0.01
-	Gnt6P	1,2,3,4,5,6	0	0.0249552273874	0.01
-			1	0.672556163913	0.01
-			2	0.0866890773125333	0.01
-			3	0.0313987199704333	0.01
-			4	0.0314691889898667	0.01
-			5	0.0138168327362333	0.01
-			6	0.139114789690333	0.01
-//	Ery4P	1,2,3,4	0	0.178453461108	0.01
-//			1	0.412398433968333	0.01
-//			2	0.273694508221667	0.01
-//			3	0.116142498670667	0.01
-//			4	0.0193110980315	0.01
-
-OPTIONS
-	OPT_NAME	OPT_VALUE
-	MATLAB_FOR_FLUX_EQ_CONSTR_MATR	1
-	//optctrl_history	1 // nlsic
-	//optctrl_trace	3 // BFGS
-	//optctrl_reltol	1.e-10 // BFGS
-	//optctrl_maxit	1000 // BFGS
-	posttreat_R	plot_smeas.R
-
--- a/test-data/e_coli_growth.ftbl	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,822 +0,0 @@
-PROJECT
-	NAME	VERSION	FORMAT	DATE	COMMENT
-	Nissle.ftbl	1		100910	modele E coli Nissle WT avec voies centrales completes et voies biomasse
-	Nissle.ftbl	2		121025	growth fluxes+pooled penthoses
-	Nissle.ftbl	3		121123	concentration measurements
-
-NETWORK
-	FLUX_NAME	EDUCT_1	EDUCT_2	PRODUCT_1	PRODUCT_2
-
-// Glycolyse.
-// PPP
-// TCA
-// voies anaplerotiques: pepc. enz malique
-// voie glyoxylate
-// avec pool interne unique de CO2 provenant soit du metabolisme soit de l'exterieur (CO2upt laisse libre)
-// saisie differentielle des substrats marques
-
-
-// Uptake substrats
-
-	Glucupt_1	Gluc_1		Glc
-		#ABCDEF		#ABCDEF
-
-	Glucupt_U	Gluc_U		Glc
-		#ABCDEF		#ABCDEF
-
-	Glucupt	Glc		Glc6P
-		#ABCDEF		#ABCDEF
-
-	CO2upt	CO2_ext		CO2		// entree de CO2 non marque
-		#A		#A		// ce flux est a laisser libre
-
-//	FTHF0	FTHF_0		FTHF		// prise en charge de FTHF non marque
-//		#A		#A
-
-//	FTHF1	FTHF_1		FTHF		// prise en charge de FTHF marque
-//		#a		#a
-
-
-// Embden Meyerhof Parnas Pathway
-
-	pgi	Glc6P		Fru6P
-		#ABCDEF		#ABCDEF
-
-	pfk	Fru6P		FruBP
-		#ABCDEF		#ABCDEF
-
-	ald	FruBP		GA3P	GA3P
-		#ABCDEF		#CBA	#DEF
-
-//	tpi	DHAP		GA3P
-//		#ABC		#CBA
-
-	pgk	GA3P		PGA
-		#ABC		#ABC
-
-	eno	PGA		PEP
-		#ABC		#ABC
-
-	pyk	PEP		Pyr
-		#ABC		#ABC
-
-
-// Methylglyoxal Pathway
-
-//	mgs	DHAP		Pyr
-//		#ABC		#ABC
-
-
-// Pentose Phosphate Pathway
-
-	zwf	Glc6P		Gnt6P
-		#ABCDEF		#ABCDEF
-
-	gnd	Gnt6P		CO2 	Rub5P
-		#ABCDEF		#A	#BCDEF
-
-	rib	Rub5P		Rib5P
-		#ABCDE		#ABCDE
-
-	xul	Rub5P		Xul5P
-		#ABCDE		#ABCDE
-
-	edd	Gnt6P		Pyr	GA3P
-		#ABCDEF		#ABC	#DEF
-
-//	ta	GA3P	Sed7P	Ery4P	Fru6P
-//		#ABC	#abcdefg	#defg	#abcABC
-
-//	tk1	Rib5P	Rib5P	GA3P	Sed7P
-//		#ABCDE	#abcde	#CDE	#ABabcde
-
-//	tk2	Rib5P	Ery4P	GA3P	Fru6P
-//		#ABCDE	#abcd	#CDE	#ABabcd
-
-	HR1	GA3P	E2	Xul5P
-		#CDE	#AB	#ABCDE
-
-	HR2	Fru6P		Ery4P	E2
-		#ABCDEF		#CDEF	#AB
-
-	HR3	Fru6P		GA3P	E3
-		#ABCDEF		#DEF	#ABC
-
-	HR4	Sed7P		Rib5P	E2
-		#abABCDE		#ABCDE	#ab
-
-	HR5	Ery4P	E3	Sed7P
-		#ABCD	#abc	#abcABCD
-
-
-// Tricarboxylic Acid Cycle
-
-	pdh	Pyr		AcCoA	CO2
-		#ABC		#BC	#A
-
-	citsynth	AcCoA	OAA	Cit
-		#AB	#abcd	#dcbaBA
-
-	idh	Cit		AKG	CO2
-		#ABCDEF		#ABCEF	#D
-
-	akgdh	AKG		Suc	CO2
-		#ABCDE		#BCDE	#A
-
-	fum_a	Suc		Mal
-		#ABCD		#ABCD
-
-	fum_b	Suc		Mal
-		#ABCD		#DCBA
-
-	maldh	Mal		OAA
-		#ABCD		#ABCD
-
-
-// Glyoxylate Shunt
-
-//	gs1	Cit		GlyOx	Suc
-//		#ABCDEF		#AB	#DCEF
-
-//	gs2	GlyOx	AcCoA	OAA
-//		#AB	#ab	#ABba
-
-
-// Anaplerotic Reactions
-
-	ppc	PEP	CO2	OAA			// PEPcarboxylase
-		#ABC	#a	#ABCa
-
-//	mae	Mal		Pyr	CO2		// enzyme malique
-//		#ABCD		#ABC	#D
-
-//	pck	OAA		PEP	CO2		// PEP carboxykinase
-//		#ABCD		#ABC	#D
-
-
-// Biosynthetic Pathways
-
-	// Glucose-6-Phosphate Family
-
-	bs_glc6P	Glc6P		BM_Glc6P
-		#ABCDEF		#ABCDEF
-
-	// Fructose-6-Phosphate Family
-
-	bs_fru6P	Fru6P		BM_Fru6P
-		#ABCDEF		#ABCDEF
-
-	// Phosphoglycerate Family
-
-	bs_pga	PGA		BM_PGA
-		#ABC		#ABC
-
-//	bs_pga_aux	BM_PGA		PGA_Aux
-//		#ABC		#ABC
-
-//	bs_pga1	BM_PGA		Ser
-//		#ABC		#ABC
-
-//	bs_pga1_aux	Ser		Ser_Aux
-//		#ABC		#ABC
-
-//	bs_pga2	Ser		Cys
-//		#ABC		#ABC
-
-//	bs_pga2_aux	Cys		Cys_Aux
-//		#ABC		#ABC
-
-//	bs_pga3	Ser		Gly	FTHF
-//		#ABC		#AB	#C
-
-//	bs_pga3_aux	Gly		Gly_Aux
-//		#AB		#AB
-
-	// TrioseP Family
-
-	bs_DHAP	GA3P		Glp
-		#ABC		#ABC
-
-	// Pyruvate Family
-
-	bs_pyr	Pyr		BM_Pyr
-		#ABC		#ABC
-
-//	bs_pyr1	BM_Pyr		Ala
-//		#ABC		#ABC
-
-//	bs_pyr1_aux	Ala		Ala_Aux
-//		#ABC		#ABC
-
-//	bs_pyr2	BM_Pyr	BM_Pyr	AKV	CO2
-//		#ABC	#abc	#ABbcC	#a
-
-//	bs_pyr4	AKV		Val
-//		#ABCDE		#ABCDE
-
-//	bs_pyr4_aux	Val		Val_Aux
-//		#ABCDE		#ABCDE
-
-//	bs_pyr3	AKV	BM_AcCoA	Leu	CO2
-//		#ABCDE	#ab	#abBCDE	#A
-
-//	bs_pyr3_aux	Leu		Leu_Aux
-//		#ABCDEF		#ABCDEF
-
-	// Erythrose-4-Phosphate Family
-
-	bs_e4p	Ery4P		BM_Ery4P
-		#ABCD		#ABCD
-
-//	bs_e4p_aux	BM_Ery4P		Ery4P_aux
-//		#ABCD		#ABCD
-
-	// Ribose-5-Phosphate Family
-
-	bs_rib5P	Rib5P		BM_Rib5P
-		#ABCDE		#ABCDE
-
-//	bs_rib5P1	BM_Rib5P	FTHF	His
-//		#ABCDE	#a	#EDCBAa
-
-//	bs_rib5P1_aux	His		His_Aux
-//		#ABCDEF		#ABCDEF
-
-//	bs_rib5P2	BM_Rib5P		Ri5P_Aux
-//		#ABCDE		#ABCDE
-
-
-	// Aromatic Amino Acids
-
-	bs_pep	PEP		BM_PEP
-		#ABC		#ABC
-
-//	bs_pep1	BM_PEP	BM_Ery4P	DAHP
-//		#ABC	#abcd	#ABCabcd
-
-//	bs_pep2	BM_PEP	DAHP	Chor
-//		#ABC	#abcdefg	#ABCabcdefg
-
-//	bs_pep3a	Chor		Phe	CO2
-//		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-//	bs_pep3b	Chor		Phe	CO2
-//		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-//	bs_pep3_aux	Phe		Phe_Aux
-//		#ABCEFGHIJ		#ABCEFGHIJ
-
-//	bs_pep4a	Chor		Tyr	CO2
-//		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-//	bs_pep4b	Chor		Tyr	CO2
-//		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-//	bs_pep4_aux	Tyr		Tyr_Aux
-//		#ABCEFGHIJ		#ABCEFGHIJ
-
-//	bs_pep5	BM_PEP		PEP_Aux
-//		#ABC		#ABC
-
-//	bs_pep6	Chor	BM_Rib5P	Trp	PyrCO2
-//		#ABCDEFGHIJ	#abcde	#edcbaJEFGHI	#ABCD
-
-//	bs_pep6_aux	Trp		Trp_Aux
-//		#ABCDEFGHIJK		#ABCDEFGHIJK
-
-//	bs_pep7	PyrCO2		Pyr	CO2
-//		#ABCD		#ABC	#D
-
-	// Acetyl-CoA
-
-	bs_accoa	AcCoA		BM_AcCoA
-		#AB		#AB
-
-//	bs_accoa_aux	BM_AcCoA		AcCoA_Aux
-//		#AB		#AB
-
-	// Alpha-Ketoglutarate Family
-
-	bs_akg	AKG		BM_AKG
-		#ABCDE		#ABCDE
-
-//	bs_akg1	BM_AKG		Glu
-//		#ABCDE		#ABCDE
-
-//	bs_akg2	Glu		Pro
-//		#ABCDE		#ABCDE
-
-//	bs_akg3	Glu		Gln
-//		#ABCDE		#ABCDE
-
-//	bs_akg4	Glu	CO2	Arg
-//		#ABCDE	#a	#ABCDEa
-
-//	bs_akg4_aux	Arg		Arg_Aux
-//		#ABCDEF		#ABCDEF
-
-//	bs_akg2_aux	Pro		Pro_Aux
-//		#ABCDE		#ABCDE
-
-
-	// Oxaloacetate Family
-
-	bs_oaa	OAA		BM_OAA
-		#ABCD		#ABCD
-
-//	bs_oaa1	BM_OAA		Asp
-//		#ABCD		#ABCD
-
-//	bs_oaa1_aux	Asp		Asp_Aux
-//		#ABCD		#ABCD
-
-//	bs_oaa2	Thr	BM_Pyr	Ile	CO2
-//		#ABCD	#abc	#ABbCDc	#a
-
-//	bs_oaa2_aux	Ile		Ile_Aux
-//		#ABCDEF		#ABCDEF
-
-//	bs_oaa3a	BM_OAA	BM_Pyr	Lys	CO2
-//		#ABCD	#abc	#ABCDcb	#a
-
-//	bs_oaa3b	BM_OAA	BM_Pyr	Lys	CO2
-//		#ABCD	#abc	#abcDCB	#A
-
-//	bs_oaa3_aux	Lys		Lys_Aux
-//		#ABCDEF		#ABCDEF
-
-//	bs_oaa4	BM_OAA		OAA_Aux
-//		#ABCD		#ABCD
-
-//	bs_oaa5	BM_OAA		Thr
-//		#ABCD		#ABCD
-
-//	bs_oaa5_aux	Thr		Thr_Aux
-//		#ABCD		#ABCD
-
-//	bs_oaa6	BM_OAA	FTHF	Met
-//		#ABCD	#a	#ABCDa
-
-//	bs_oaa6_aux	Met		Met_Aux
-//		#ABCDE		#ABCDE
-
-//	bs_oaa7	BM_OAA		Asn
-//		#ABCD		#ABCD
-
-//	bs_oaa7_aux	Asn		Asn_Aux
-//		#ABCD		#ABCD
-
-
-// Extracellular fluxes
-
-	out_co2	CO2		CO2_out			// CO2 output
-		#A		#A
-
-	out_Ac	AcCoA		Acetate			// Acetate output
-		#AB		#AB
-
-//	out_FTHF	FTHF		FTHF_out
-//		#A		#A
-
-FLUXES
-	NET
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-	// INPUT
-		Glucupt_1	F	0.8128
-		Glucupt_U	D
-		Glucupt	D
-		CO2upt	C	0.77	// fixed arbitrary
-//		FTHF0	F	0.00224836
-//		FTHF1	F	0.001
-
-	// Glycolysis
-		pgi	F	0.1
-		pfk	D
-		ald	D
-//		tpi	D
-		pgk	D	0.1
-		eno	D
-		pyk	D	1.21144
-
-	// PPP + EDP
-		zwf	D	0.4
-		gnd	D
-		edd	F	0.1
-		rib	D
-		xul	D
-//		ta	D
-//		tk1	D
-//		tk2	D
-		HR1	D
-		HR2	D
-		HR3	D
-		HR4	D
-		HR5	D
-
-	// TCA
-		pdh	D
-		citsynth	D
-		idh	D
-		akgdh	D
-		fum_a	D
-		fum_b	D
-		maldh	D
-//		gs1	C	0
-//		gs2	D
-		ppc	D
-//		mae	D
-//		pck	D
-
-	// Biosynthetic pathways
-		bs_glc6P	C	0.0132	// sortie de G6P
-		bs_fru6P	C	0.0045	// sortie de F6P
-		bs_pga	C	0.0958	// sortie de PGA
-//		bs_pga_aux	D
-//		bs_pga1	D
-//		bs_pga1_aux	C	0.0132	// sortie de Ser
-//		bs_pga2	D
-//		bs_pga2_aux	C	0.0056	// sortie de Cys
-//		bs_pga3	D
-//		bs_pga3_aux	C	0.0373	// sortie de Gly
-		bs_DHAP	C	0.0083
-		bs_pyr	C	0.1818	// sortie de Pyr
-//		bs_pyr1	D
-//		bs_pyr1_aux	D		// sortie d'Ala
-//		bs_pyr2	D
-//		bs_pyr4	D
-//		bs_pyr4_aux	C	0.0258	// sortie de Val
-//		bs_pyr3	D
-//		bs_pyr3_aux	C	0.0275	// sortie de Leu
-		bs_e4p	C	0.0247	// sortie d'E4P
-		bs_rib5P	C	0.0576	// sortie de R5P
-//		bs_rib5P1	D
-//		bs_rib5P1_aux	C	0.0058	// sortie d'His
-//		bs_rib5P2	D
-		bs_pep	C	0.0461	// sortie de PEP
-//		bs_pep1	D
-//		bs_pep2	D
-//		bs_pep3a	D
-//		bs_pep3b	D
-//		bs_pep3_aux	C	0.0113	// sortie de Phe
-//		bs_pep4a	D
-//		bs_pep4b	D
-//		bs_pep4_aux	C	0.0084	// sortie de Tyr
-//		bs_pep5	C	0.0033	// sorties autres que ac. amines
-//		bs_pep6	D
-//		bs_pep6_aux	D
-//		bs_pep7	D
-		bs_accoa	C	0.1895	// sortie d'AcCoA
-//		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_akg	C	0.0692	// sortie d'AcCoA
-//		bs_akg1	D
-//		bs_akg2	D		// sortie de Pro
-//		bs_akg3	C	0.0160	// sortie de Gln
-//		bs_akg4	D
-//		bs_akg2_aux	C	0.013475
-//		bs_akg4_aux	D
-		bs_oaa	C	0.1146
-//		bs_oaa1	D
-//		bs_oaa1_aux	C	0.0147	// sortie d'Asp
-//		bs_oaa2	D
-//		bs_oaa2_aux	C	0.0177	// sortie d'Ile
-//		bs_oaa3a	D
-//		bs_oaa3b	D
-//		bs_oaa3_aux	C	0.0209	// sortie de Lys
-//		bs_oaa4	D
-//		bs_oaa5	D
-//		bs_oaa5_aux	C	0.0155	// sortie de Thr
-//		bs_oaa6	D
-//		bs_oaa6_aux	C	0.0094	// sortie de Met
-//		bs_oaa7	D
-//		bs_oaa7_aux	C	0.0147	// sortie d'Asn
-
-	// Extracellular fluxes
-
-		out_co2	D	0.1		// sortie de CO2
-		out_Ac	F	0.48		// sortie d'acetate
-//		out_FTHF	D		// sortie de FTHF
-
-
-	XCH
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-	// INPUT
-		Glucupt_1	D
-		Glucupt_U	D
-		Glucupt	C	0
-		CO2upt	D
-//		FTHF0	D
-//		FTHF1	D
-
-	// Glycolysis
-		pgi	F	0.4
-		pfk	F	0.01
-		ald	F	0.4
-//		tpi	F	0.5
-		pgk	F	0.99
-		eno	F	0.99
-		pyk	F	0.4
-
-	// PPP + EDP
-		zwf	C	0
-		gnd	C	0
-		edd	C	0
-		rib	C	0.99	// fixed arbitrary big
-		xul	F	0
-//		ta	F	0.35468
-//		tk1	F	0.0960538
-//		tk2	F	0.0521646
-		HR1	C	0.24	// fixed arbitrary
-		HR2	F	0.0151117
-		HR3	F	0.14
-		HR4	C	0.04	// fixed arbitrary
-		HR5	F	0.02
-
-	// TCA
-		pdh	C	0.01
-		citsynth	C	0
-		idh	C	0
-		akgdh	C	0
-		fum_a	C	0.01	// fixed arbitrary
-		fum_b	D
-//		maldh	F	0.99
-		maldh	C	0.42	// fixed arbitrary
-//		gs1	C	0
-//		gs2	C	0
-		ppc	F	0.2
-//		mae	C	0
-//		pck	C	0
-
-	// Biosynthetic pathways
-		bs_glc6P	D
-		bs_fru6P	D
-		bs_pga	D
-//		bs_pga_aux	D
-//		bs_pga1	C	0
-//		bs_pga1_aux	D
-//		bs_pga2	C	0
-//		bs_pga2_aux	D
-//		bs_pga3	C	0.00824415
-//		bs_pga3_aux	D
-		bs_DHAP	D
-		bs_pyr	D
-//		bs_pyr1	C	0
-//		bs_pyr1_aux	D
-//		bs_pyr2	C	0
-//		bs_pyr4	C	0
-//		bs_pyr4_aux	D
-//		bs_pyr3	C	0
-//		bs_pyr3_aux	D
-		bs_e4p	D	0
-//		bs_e4p_aux	D
-		bs_rib5P	D	0
-//		bs_rib5P1	C	0
-//		bs_rib5P1_aux	D
-//		bs_rib5P2	D
-		bs_accoa	D	0
-//		bs_accoa_aux	D
-		bs_pep	D	0
-//		bs_pep1	C	0
-//		bs_pep2	C	0
-//		bs_pep3a	C	0
-//		bs_pep3b	C	0
-//		bs_pep3_aux	D
-//		bs_pep4a	C	0
-//		bs_pep4b	C	0
-//		bs_pep4_aux	D
-//		bs_pep5	D
-//		bs_pep6	C	0
-//		bs_pep6_aux	D
-//		bs_pep7	C	0
-		bs_akg	D	0
-//		bs_akg1	C	0
-//		bs_akg2	C	0
-//		bs_akg3	D
-//		bs_akg4	C	0
-//		bs_akg4_aux	D
-//		bs_akg2_aux	D
-		bs_oaa	D	0
-//		bs_oaa1	C	0
-//		bs_oaa1_aux	D
-//		bs_oaa2	C	0
-//		bs_oaa2_aux	D
-//		bs_oaa3a	C	0
-//		bs_oaa3b	C	0
-//		bs_oaa3_aux	D
-//		bs_oaa4	D
-//		bs_oaa5	C	0
-//		bs_oaa5_aux	D
-//		bs_oaa6	C	0
-//		bs_oaa6_aux	D
-//		bs_oaa7	C	0
-//		bs_oaa7_aux	D
-
-		// Flux de sortie
-		out_co2	C	0	// sortie de CO2
-		out_Ac	C	0	// sortie d'acetate
-//		out_FTHF	D	// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-EQUALITIES
-	NET
-		VALUE	FORMULA
-
-		0	fum_a-fum_b		// scrambling reaction
-		1	Glucupt_1+Glucupt_U
-//		0	bs_oaa3a-bs_oaa3b
-//		0	bs_pep3a-bs_pep3b
-//		0	bs_pep4a-bs_pep4b
-
-	XCH
-		VALUE	FORMULA
-
-		0	fum_a-fum_b
-
-INEQUALITIES
-	NET
-		VALUE	COMP	FORMULA
-//		1	<=	pyk
-		0	<=	edd
-		0	<=	gnd
-		0	<=	zwf
-		0	<=	ppc
-		0	<=	idh
-		0	<=	akgdh
-//		0	<=	mae
-
-	XCH
-		VALUE	COMP	FORMULA
-
-FLUX_MEASUREMENTS
-	FLUX_NAME	VALUE	DEVIATION
-	out_Ac	0.497	0.04
-
-LABEL_INPUT
-	META_NAME	ISOTOPOMER	VALUE
-
-	Gluc_U	#111111	0.952
-		#011111	0.008
-		#101111	0.008
-		#110111	0.008
-		#111011	0.008
-		#111101	0.008
-		#111110	0.008
-
-	Gluc_1	#100000	0.9465
-		#110000	0.0107
-		#101000	0.0107
-		#100100	0.0107
-		#100010	0.0107
-		#100001	0.0107
-
-	CO2_ext	#0	0.9893
-		#1	0.0107
-
-//	FTHF_0	#0	1
-//	FTHF_1	#1	1
-
-
-LABEL_MEASUREMENTS
-	META_NAME	CUM_GROUP	VALUE	DEVIATION	CUM_CONSTRAINTS
-
-	AcCoA	1	0.495	0.02	#00
-		2	0.303	0.02	#01	// CH3 specific enrichment
-		3	0.012	0.02	#10
-		4	0.190	0.02	#11
-
-PEAK_MEASUREMENTS
-
-	META_NAME	PEAK_NO	VALUE_S	VALUE_D-	VALUE_D+	VALUE_DD	VALUE_T	DEVIATION_S	DEVIATION_D-	DEVIATION_D+	DEVIATION_DD/T
-
-METAB_MEASUREMENTS
-	META_NAME	VALUE	DEVIATION
-	// source: p.millard 2010/12/03 Nissle_Glc_conc.xlsx sent by email
-	Suc	15.8893144279264*1.e-3/10.7	1.e-2
-	Mal	6.47828321758155*1.e-3/10.7	1.e-2
-	PEP	0.588638938013844*1.e-3/10.7	1.e-2
-	PGA	5.35922289028553*1.e-3/10.7	1.e-2
-	Cit	17.4452511107891*1.e-3/10.7	1.e-2
-	Gnt6P	1.54945619497337*1.e-3/10.7	1.e-2
-	FruBP	5.27278870110121*1.e-3/10.7	1.e-2
-	Fru6P	1.07071770798187*1.e-3/10.7	1.e-2
-	Glc6P	5.24845556085526*1.e-3/10.7	1.e-2
-	Rub5P+Rib5P+Xul5P	1.66034545348219*1.e-3/10.7	1.e-2
-
-MASS_SPECTROMETRY
-	META_NAME	FRAGMENT	WEIGHT	VALUE	DEVIATION
-	Mal	1,2,3,4	1	0.587391867374382	0.0493159626907812
-			2	0.216493214407424	0.0306546571894417
-			3	0.159494782909672	0.03
-			4	0.0366201353085213	0.03
-	PEP	1,2,3	0	0.462166666666667	0.01
-			1	0.340003333333333	0.01
-			2	0.0273166666666667	0.01
-			3	0.170513333333333	0.01
-	PGA	1,2,3	0	0.447066666666667	0.0180848260520618
-			1	0.34127	0.018075350619006
-			2	0.02441	0.01
-			3	0.187253333333333	0.01
-	Gnt6P	1,2,3,4,5,6	0	0.0195533333333333	0.01
-			1	0.72562	0.0120547874307264
-			2	0.0571233333333333	0.01
-			3	0.0135033333333333	0.01
-			4	0.01331	0.01
-			5	0.0131033333333333	0.01
-			6	0.157793333333333	0.01
-	Sed7P	1,2,3,4,5,6,7	0	0.272433333333333	0.0122309539012022
-			1	0.23752	0.01
-			2	0.180446666666667	0.01
-			3	0.12744	0.01
-			4	0.06321	0.01
-			5	0.0839233333333333	0.01
-			6	0.01751	0.01
-			7	0.0175266666666667	0.01
-	FruBP	1,2,3,4,5,6	0	0.0853733333333333	0.02
-			1	0.482283333333333	0.02
-			2	0.140086666666667	0.02
-			3	0.0953466666666667	0.02
-			4	0.09712	0.02
-			5	0.0120166666666667	0.02
-			6	0.0877666666666667	0.02
-	Rib5P+Xul5P+Rub5P	1,2,3,4,5	0	0.433956666666667	0.0115292555411585
-			1	0.215956666666667	0.01
-			2	0.09658	0.01
-			3	0.129033333333333	0.01
-			4	0.0272733333333333	0.01
-			5	0.0971933333333333	0.01
-	Glc6P	1,2,3,4,5,6	0	0.0167633333333333	0.01
-			1	0.716826666666667	0.01
-			2	0.0578233333333333	0.01
-			3	0.0122433333333333	0.01
-			4	0.01151	0.01
-			5	0.01089	0.01
-			6	0.173946666666667	0.01
-	Fru6P	1,2,3,4,5,6	0	0.04716	0.01
-			1	0.623343333333333	0.0106878170518274
-			2	0.0820266666666667	0.01
-			3	0.03604	0.01
-			4	0.0315766666666667	0.01
-			5	0.0149133333333333	0.01
-			6	0.164943333333333	0.0111688555068697
-
-	Cit	1,2,3,4,5,6	1	0.322208057034832	0.03
-			2	0.288291305558056	0.03
-			3	0.212855540659154	0.03
-			4	0.117626468347467	0.03
-			5	0.0484839619377435	0.03
-			6	0.0105346664627478	0.03
-
-OPTIONS
-	OPT_NAME	OPT_VALUE
-	MATLAB_FOR_FLUX_EQ_CONSTR_MATR	1
-	include_growth_flux	1
-	mu	0.8
-	optctrl_maxit	50
-	commandArgs	--TIMEIT
-	//optctrl_btdesc	0.1
-	posttreat_R	plot_smeas.R
-METABOLITE_POOLS
-	META_NAME	META_SIZE	// size is in units of metab_scale option defined before
-	// source: p.millard 2010/12/03 Nissle_Glc_conc.xlsx sent by email
-	//Fum	-2.47158569399681*1.e-3/10.7
-	Suc	-15.8893144279264*1.e-3/10.7
-	Mal	-6.47828321758155*1.e-3/10.7
-	PEP	-0.588638938013844*1.e-3/10.7
-	//Aco	-0.871035781090548*1.e-3/10.7
-	PGA	-5.35922289028553*1.e-3/10.7
-	Cit	-17.4452511107891*1.e-3/10.7
-	//1-3diPG	-7.31670971749174*1.e-3/10.7
-	Gnt6P	-1.54945619497337*1.e-3/10.7
-	//Sed7P	-11.5512490274248*1.e-3/10.7 conc
-	//PRPP	-2.74943425027474*1.e-3/10.7
-	//CMP	-0.433742769835568*1.e-3/10.7
-	//UMP	-4.69421895911195*1.e-3/10.7
-	//cAMP	-0.109838817225867*1.e-3/10.7
-	FruBP	-5.27278870110121*1.e-3/10.7
-	//AMP	-0.801372321192278*1.e-3/10.7
-	//GMP	-0.394103922207334*1.e-3/10.7
-	//dCDP	-4.41071909173208*1.e-3/10.7
-	//CDP	-0.204009683016196*1.e-3/10.7
-	//UDP	-0.528949008341637*1.e-3/10.7
-	//ADP	-2.0246124170601*1.e-3/10.7
-	//GDP	-1.02724694822302*1.e-3/10.7
-	//CTP	-1.39055711133101*1.e-3/10.7
-	//UTP	-1.73433655893259*1.e-3/10.7
-	//ATP	-6.32820169657847*1.e-3/10.7
-	//UDP-Glc	-9.93608536663137*1.e-3/10.7 conc
-	//ADP-Glc	-0*1.e-3/10.7
-	//GDP-Man	-5.52555199979534*1.e-3/10.7
-	//G1P	-72.1756241692542*1.e-3/10.7 conc
-	//F1P	-0.0942291270750201*1.e-3/10.7
-	Fru6P	-1.07071770798187*1.e-3/10.7
-	Glc6P	-5.24845556085526*1.e-3/10.7
-	//M6P	-0.642830603277483*1.e-3/10.7
-	//Rib1P	-0.0558080128279041*1.e-3/10.7
-	Rub5P	-1.66034545348219/3*1.e-3/10.7
-//	Rib5P	-1.66034545348219/3*1.e-3/10.7
-	Rib5P	1.e-7	// fixed arbitrary low
-	Xul5P	-4*1.66034545348219/3*1.e-3/10.7
-	//dADP	-5.86959266616353*1.e-3/10.7 conc
-	//dATP	-13.1542008577561*1.e-3/10.7 conc
-	//dTDP	-9.52423600696743*1.e-3/10.7 conc
-	//dTTP	-19.9757914243397*1.e-3/10.7 conc
--- a/test-data/e_coli_growth.log	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-"/usr/local/miniconda3/bin/influx_s" "e_coli.ftbl" "e_coli_growth.ftbl"
-code gen: 2020-03-25 14:32:15
-executing: "/usr/local/miniconda3/bin/python3.7" "/home/STORAGE/local/miniconda3/bin/ftbl2optR.py" "--tblimit" "0" "--ropts" "TIMEIT=TRUE" "e_coli_growth.ftbl"
-calcul  : 2020-03-25 14:32:22
-load    : 2020-03-25 14:32:24.17 cpu=1.207
-rinit   : 2020-03-25 14:32:24.17 cpu=1.21
-r_flux  : 2020-03-25 14:32:24.17 cpu=1.21
-Afl qr(): 2020-03-25 14:32:24.21 cpu=1.248
-dfl_dffg: 2020-03-25 14:32:24.45 cpu=1.258
-spAbr   : 2020-03-25 14:32:24.45 cpu=1.262
-weight 1: 2020-03-25 14:32:24.45 cpu=1.263
-weight 2: 2020-03-25 14:32:24.45 cpu=1.265
-weight 3: 2020-03-25 14:32:24.45 cpu=1.267
-weight 4: 2020-03-25 14:32:24.46 cpu=1.272
-weight 5: 2020-03-25 14:32:24.47 cpu=1.274
-weight 6: 2020-03-25 14:32:24.47 cpu=1.275
-weight 7: 2020-03-25 14:32:24.47 cpu=1.277
-measure : 2020-03-25 14:32:24.56 cpu=1.343
-ineq    : 2020-03-25 14:32:24.60 cpu=1.368
-preopt  : 2020-03-25 14:32:24.66 cpu=1.413
-labargs : 2020-03-25 14:32:24.66 cpu=1.416
-run    1: 2020-03-25 14:32:24.66 cpu=1.417
-Starting point
-res esti: 2020-03-25 14:32:24.67 cpu=1.419
-The following 1 ineqalitie(s) are active at starting point:
-f.x.xul>=0
-kvh init: 2020-03-25 14:32:24.80 cpu=1.438
-check ja: 2020-03-25 14:32:24.85 cpu=1.454
-optim   : 2020-03-25 14:32:24.94 cpu=1.515
-it=0	res=45.2102
-it=1	res=12.83995	normstep=1.515861	btk=1
-it=2	res=12.25994	normstep=1.259661	btk=1
-it=3	res=8.098585	normstep=0.5463658	btk=1
-it=4	res=7.960851	normstep=0.0589933	btk=1
-it=5	res=7.959322	normstep=0.03050743	btk=1
-it=6	res=7.959081	normstep=0.004902886	btk=1
-it=7	res=7.959029	normstep=0.003060732	btk=1
-it=8	res=7.959017	normstep=0.001367668	btk=1
-it=9	res=7.959014	normstep=0.0006590508	btk=1
-it=10	res=7.959014	normstep=0.0003104052	btk=1
-it=15	res=7.959014	normstep=7.292328e-06	btk=1
-postopt : 2020-03-25 14:32:26.48 cpu=3.125
-linstats: 2020-03-25 14:32:26.77 cpu=3.377
-rend    : 2020-03-25 14:32:27.07 cpu=3.706
-end     : 2020-03-25 14:32:27
--- a/test-data/e_coli_i.ftbl	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,789 +0,0 @@
-PROJECT
-	NAME	VERSION	FORMAT	DATE	COMMENT
-	K12_MG1655.ftbl	1		101109	modele E coli K12 MG1655 WT avec voies centrales completes et voies biomasse simplifiees
-
-NETWORK
-	FLUX_NAME	EDUCT_1	EDUCT_2	PRODUCT_1	PRODUCT_2
-
-// Glycolyse.
-// PPP
-// TCA
-// voies anaplerotiques: pepc. enz malique
-// voie glyoxylate
-// avec pool interne unique de CO2 provenant soit du metabolisme soit de l'exterieur (CO2upt laisse libre)
-// saisie differentielle des substrats marques
-
-
-// Uptake substrats
-
-	Glucupt_1	Gluc_1		Glc6P		// fehlt bei wolfgang
-		#ABCDEF		#ABCDEF		// fehlt bei wolfgang
-
-	Glucupt_U	Gluc_U		Glc6P		// fehlt bei wolfgang
-		#ABCDEF		#ABCDEF		// fehlt bei wolfgang
-
-//	CO2upt	CO2_ext		CO2		// entree de CO2 non marque
-//		#A		#A		// ce flux est a laisser libre
-
-//	FTHF0	FTHF_0		FTHF		// prise en charge de FTHF non marque
-//		#A		#A
-
-//	FTHF1	FTHF_1		FTHF		// prise en charge de FTHF marque
-//		#a		#a
-
-
-// Embden Meyerhof Parnas Pathway
-
-	pgi	Glc6P		Fru6P
-		#ABCDEF		#ABCDEF
-
-	pfk	Fru6P		FruBP
-		#ABCDEF		#ABCDEF
-
-	ald	FruBP		GA3P	GA3P
-		#ABCDEF		#CBA	#DEF
-
-//	tpi	DHAP		GA3P
-//		#ABC		#CBA
-
-	pgk	GA3P		PGA
-		#ABC		#ABC
-
-	eno	PGA		PEP
-		#ABC		#ABC
-
-	pyk	PEP		Pyr
-		#ABC		#ABC
-
-
-// Methylglyoxal Pathway
-
-//	mgs	DHAP		Pyr
-//		#ABC		#ABC
-
-
-// Pentose Phosphate Pathway
-
-	zwf	Glc6P		Gnt6P
-		#ABCDEF		#ABCDEF
-
-	gnd	Gnt6P		CO2	Rib5P
-		#ABCDEF		#A	#BCDEF
-
-	edd	Gnt6P		Pyr	GA3P
-		#ABCDEF		#ABC	#DEF
-
-//	ta	Ery4P	Fru6P	GA3P	Sed7P
-//		#ABCD	#abcdef	#def	#abcABCD
-
-//	tk1	GA3P	Sed7P	Rib5P	Rib5P
-//		#ABC	#abcdefg	#abABC	#cdefg
-
-//	tk2	GA3P	Fru6P	Rib5P	Ery4P
-//		#ABC	#abcdef	#abABC	#cdef
-
-	ta	GA3P	Sed7P	Ery4P	Fru6P
-		#ABC	#abcdefg	#defg	#abcABC
-
-	tk1	Rib5P	Rib5P	GA3P	Sed7P
-		#ABCDE	#abcde	#CDE	#ABabcde
-
-	tk2	Rib5P	Ery4P	GA3P	Fru6P
-		#ABCDE	#abcd	#CDE	#ABabcd
-
-
-// Tricarboxylic Acid Cycle
-
-	pdh	Pyr		AcCoA	CO2
-		#ABC		#BC	#A
-
-	citsynth	AcCoA	OAA	ICit
-		#AB	#abcd	#dcbaBA
-
-	idh	ICit		AKG	CO2
-		#ABCDEF		#ABCEF	#D
-
-	akgdh	AKG		Suc	CO2
-		#ABCDE		#BCDE	#A
-
-	fum_a	Suc		Mal
-		#ABCD		#ABCD
-
-	fum_b	Suc		Mal
-		#ABCD		#DCBA
-
-	maldh	Mal		OAA
-		#ABCD		#ABCD
-
-
-// Glyoxylate Shunt
-
-//	gs1	ICit		GlyOx	Suc
-//		#ABCDEF		#AB	#DCEF
-
-//	gs2	GlyOx	AcCoA	OAA
-//		#AB	#ab	#ABba
-
-
-// Anaplerotic Reactions
-
-	ppc	PEP	CO2	OAA			// PEPcarboxylase
-		#ABC	#a	#ABCa
-
-	mae	Mal		Pyr	CO2		// enzyme malique
-		#ABCD		#ABC	#D
-
-//	pck	OAA		PEP	CO2		// PEP carboxykinase
-//		#ABCD		#ABC	#D
-
-
-// Biosynthetic Pathways
-
-	// Glucose-6-Phosphate Family
-
-	bs_glc6P	Glc6P		BM_Glc6P
-		#ABCDEF		#ABCDEF
-
-	// Fructose-6-Phosphate Family
-
-	bs_fru6P	Fru6P		BM_Fru6P		// sortie de Fru6P pour biomasse
-		#ABCDEF		#ABCDEF
-
-	// Phosphoglycerate Family
-
-	bs_pga	PGA		BM_PGA
-		#ABC		#ABC
-
-	bs_pga_aux	BM_PGA		PGA_Aux
-		#ABC		#ABC
-
-	bs_pga1	BM_PGA		Ser
-		#ABC		#ABC
-
-	bs_pga1_aux	Ser		Ser_Aux
-		#ABC		#ABC
-
-	bs_pga2	Ser		Cys			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga2_aux	Cys		Cys_Aux			// ce flux sert de sortie pour PGA hors formation de Gly
-		#ABC		#ABC
-
-	bs_pga3	Ser		Gly	FTHF		// formation de gly pour biomasse
-		#ABC		#AB	#C		// ce flux est reversible
-
-	bs_pga3_aux	Gly		Gly_Aux		// pour conserver Gly comme metabolite intracellulaire
-		#AB		#AB
-
-	// TrioseP Family
-
-	bs_DHAP	GA3P		Glp			// formation glycerolP pour lipides
-		#ABC		#ABC
-
-	// Pyruvate Family
-
-	bs_pyr	Pyr		BM_Pyr
-		#ABC		#ABC
-
-	bs_pyr1	BM_Pyr		Ala
-		#ABC		#ABC
-
-	bs_pyr1_aux	Ala		Ala_Aux		// pour conserver Ala comme metabolite intracellulaire
-		#ABC		#ABC
-
-	bs_pyr2	BM_Pyr	BM_Pyr	AKV	CO2		// AKV et Val ont le meme squelette C
-		#ABC	#abc	#ABbcC	#a		// cette reaction permet d'utiliser eventuellement les donnees obtenues sur Val
-
-	bs_pyr4	AKV		Val		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr4_aux	Val		Val_Aux		// permet de tenir compte de la sortie de Val
-		#ABCDE		#ABCDE
-
-	bs_pyr3	AKV	BM_AcCoA	Leu	CO2
-		#ABCDE	#ab	#abBCDE	#A
-
-	bs_pyr3_aux	Leu		Leu_Aux		// pour conserver Leu comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-
-	// Erythrose-4-Phosphate Family
-
-	bs_e4p	Ery4P		BM_Ery4P		// pour utiliser les donnees sur Ery4P
-		#ABCD		#ABCD
-
-//	bs_e4p_aux	BM_Ery4P		Ery4P_aux		// pour utiliser les donnees sur Ery4P
-//		#ABCD		#ABCD
-
-
-	// Ribose-5-Phosphate Family
-
-	bs_rib5p	Rib5P		BM_Rib5P	// pour utiliser les donnees sur Rib5P
-		#ABCDE		#ABCDE
-
-	bs_rib5p1	BM_Rib5P	FTHF	His		// pour utiliser les donnees sur Rib5P
-		#ABCDE	#a	#EDCBAa
-
-	bs_rib5p1_aux	His		His_Aux		// sortie pour conserver His comme metabolite intracellulaire
-		#ABCDEF		#ABCDEF
-
-	bs_rib5p2	BM_Rib5P		Ri5P_Aux		// sortie de Ri5P pour autres besoins que His
-		#ABCDE		#ABCDE			// ce flux est important pour ne pas imposer de fausses contraintes sur FTHF si on considerait His comme seule sortie
-
-
-	// Aromatic Amino Acids
-
-	bs_pep	PEP		BM_PEP
-		#ABC		#ABC
-
-	bs_pep1	BM_PEP	BM_Ery4P	DAHP
-		#ABC	#abcd	#ABCabcd
-
-	bs_pep2	BM_PEP	DAHP	Chor
-		#ABC	#abcdefg	#ABCabcdefg
-
-	bs_pep3a	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep3b	Chor		Phe	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep3_aux	Phe		Phe_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep4a	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEFGHIJ	#D
-
-	bs_pep4b	Chor		Tyr	CO2
-		#ABCDEFGHIJ		#ABCEJIHGF	#D
-
-	bs_pep4_aux	Tyr		Tyr_Aux
-		#ABCEFGHIJ		#ABCEFGHIJ
-
-	bs_pep5	BM_PEP		PEP_Aux
-		#ABC		#ABC
-
-	bs_pep6	Chor	BM_Rib5P	Trp	PyrCO2
-		#ABCDEFGHIJ	#abcde	#edcbaJEFGHI	#ABCD
-
-	bs_pep6_aux	Trp		Trp_Aux
-		#ABCDEFGHIJK		#ABCDEFGHIJK
-
-	bs_pep7	PyrCO2		Pyr	CO2
-		#ABCD		#ABC	#D
-
-
-	// Acetyl-CoA
-
-	bs_accoa	AcCoA		BM_AcCoA
-		#AB		#AB
-
-	bs_accoa_aux	BM_AcCoA		AcCoA_Aux
-		#AB		#AB
-
-
-	// Alpha-Ketoglutarate Family
-
-	bs_akg	AKG		BM_AKG			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg1	BM_AKG		Glu			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg2	Glu		Pro			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg3	Glu		Gln			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE		#ABCDE
-
-	bs_akg4	Glu	CO2	Arg			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDE	#a	#ABCDEa
-
-	bs_akg4_aux	Arg		Arg_Aux			// Les donnees sur Glu peuvent etre assimilee a AKG
-		#ABCDEF		#ABCDEF
-
-
-	// Oxaloacetate Family
-
-	bs_oaa	OAA		BM_OAA
-		#ABCD		#ABCD
-
-	bs_oaa1	BM_OAA		Asp
-		#ABCD		#ABCD
-
-	bs_oaa1_aux	Asp		Asp_Aux
-		#ABCD		#ABCD
-
-	bs_oaa2	Thr	BM_Pyr	Ile	CO2
-		#ABCD	#abc	#ABbCDc	#a
-
-	bs_oaa2_aux	Ile		Ile_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa3a	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#ABCDcb	#a
-
-	bs_oaa3b	BM_OAA	BM_Pyr	Lys	CO2
-		#ABCD	#abc	#abcDCB	#A
-
-	bs_oaa3_aux	Lys		Lys_Aux
-		#ABCDEF		#ABCDEF
-
-	bs_oaa4	BM_OAA		OAA_Aux
-		#ABCD		#ABCD
-
-	bs_oaa5	BM_OAA		Thr
-		#ABCD		#ABCD
-
-	bs_oaa5_aux	Thr		Thr_Aux
-		#ABCD		#ABCD
-
-	bs_oaa6	BM_OAA	FTHF	Met
-		#ABCD	#a	#ABCDa
-
-	bs_oaa6_aux	Met		Met_Aux
-		#ABCDE		#ABCDE
-
-	bs_oaa7	BM_OAA		Asn
-		#ABCD		#ABCD
-
-	bs_oaa7_aux	Asn		Asn_Aux
-		#ABCD		#ABCD
-
-
-// Flux de sortie
-
-	out_co2	CO2		CO2_out			// Sortie de CO2
-		#A		#A
-
-	out_Ac	AcCoA		Acetate			// Sortie d'acetate
-		#AB		#AB
-
-	out_FTHF	FTHF		FTHF_out
-		#A		#A
-
-FLUXES
-	NET
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt_1	F	0.7	//0.807194
-		Glucupt_U	D
-//		CO2upt	F	0.669589
-//		FTHF0	F	0.00224836
-//		FTHF1	F	0.001
-
-		pgi	D
-		pfk	D
-		ald	D
-//		tpi	D
-		pgk	D
-		eno	D
-		pyk	F	1.4
-
-		zwf	F	0.2
-		gnd	F	0.15062
-		edd	D
-		ta	D
-		tk1	D
-		tk2	D
-
-		pdh	D
-		citsynth	D
-		idh	D
-		akgdh	D
-		fum_a	D
-		fum_b	D
-		maldh	D
-
-//		gs1	C	0
-//		gs2	D
-
-		ppc	D
-		mae	D
-//		pck	D
-
-		// flux de biomasse
-
-		bs_glc6P	C	0.0109	// sortie de G6P
-		bs_fru6P	C	0.0038	// sortie de F6P
-		bs_pga	C	0.0791		// sortie de PGA pour formation de biomasse
-		bs_pga_aux	D		// sortie de PGA pour formation de biomasse
-		bs_pga1	D			// conversion PGA donne ser
-		bs_pga1_aux	C	0.0109	// conversion PGA donne ser
-		bs_pga2	D
-		bs_pga2_aux	C	0.0046	// conversion PGA donne Cys
-		bs_pga3	D			// reaction de synthese de Gly
-		bs_pga3_aux	C	0.0308	// sortie de Gly
-		bs_DHAP	C	0.0068		// formation de glycerolP pour lipides
-		bs_pyr	C	0.1501	// avant : 0.1547		// sortie de Pyr pour formation de biomasse
-		bs_pyr1	D	// formation d'Ala
-		bs_pyr1_aux	D	// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Leu
-		bs_pyr2	D			// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	D
-		bs_pyr4_aux	C	0.0213	// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	D			// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	C	0.0227	// sortie de Leu
-		bs_e4p	D		// sortie d'Ery4p pour biomasse
-//		bs_e4p_aux	C	0	// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0.0476	// synthese d'His
-		bs_rib5p1	D		// synthese d'His
-		bs_rib5p1_aux	C	0.0048	// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_pep	C	0.0381		// sortie de PEP
-		bs_pep1	D			// sortie de PEP
-		bs_pep2	D
-		bs_pep3a	D
-		bs_pep3b	D
-		bs_pep3_aux	C	0.0093
-		bs_pep4a	D
-		bs_pep4b	D
-		bs_pep4_aux	C	0.0069
-		bs_pep5	C	0.0027
-		bs_pep6	D
-		bs_pep6_aux	D
-		bs_pep7	D
-		bs_accoa	C	0.1565	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_akg	C	0.0571		// sortie d'AKG
-		bs_akg1	D
-		bs_akg2	C	0.0111
-		bs_akg3	C	0.0132
-		bs_akg4	D
-		bs_akg4_aux	D
-		bs_oaa	C	0.0947		// sortie d'OAA pour formation de biomasse
-		bs_oaa1	D			// sortie d'OAA pour Asp
-		bs_oaa1_aux	C	0.0121	// sortie d'Asp
-		bs_oaa2	D			// synthese d'Ile
-		bs_oaa2_aux	C	0.0146	// sortie d'Ile
-		bs_oaa3a	D
-		bs_oaa3b	D
-		bs_oaa3_aux	C	0.0173
-		bs_oaa4	D
-		bs_oaa5	D
-		bs_oaa5_aux	C	0.0128
-		bs_oaa6	D
-		bs_oaa6_aux	C	0.0077
-		bs_oaa7	D
-		bs_oaa7_aux	C	0.0121
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	F	0.213		// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-	XCH
-		NAME	FCD	VALUE(F/C)	ED_WEIGHT	LOW(F)	INC(F)	UP(F)
-
-		Glucupt_1	D
-		Glucupt_U	D
-//		CO2upt	D
-//		FTHF0	D
-//		FTHF1	D
-
-		pgi	C	0.752386	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		pfk	C	0
-		ald	F	0.413926
-//		tpi	F	0.5
-		pgk	C	0.984718	// 2011-02-22 ssg: was F => often unresolved with --irand option
-		eno	F	0.800962
-		pyk	C	0.0109591	// 2010-10-01 ssg: was F => unresolved if co2 uptake is unlimited
-
-		zwf	C	0
-		gnd	C	0
-		edd	C	0
-		ta	F	0.359468
-		tk1	F	0.166316
-		tk2	F	2.11559e-03
-
-		pdh	C	0.0322745	// 2010-10-02 ssg: was F, otherwise unsolvable in monte-carlo
-		citsynth	C	0
-		idh	C	0
-		akgdh	C	0
-		fum_a	F	0.395958
-		fum_b	D
-		maldh	C	0.647115	//********************************************** C pour analyse de sensibilite, F pour minimisation
-
-//		gs1	C	0
-//		gs2	C	0
-
-		ppc	F	0.256772
-		mae	C	0
-//		pck	C	0
-
-		bs_glc6P	D		// sortie de G6P
-		bs_fru6P	D		// sortie de F6P
-		bs_pga	C	0		// conversion PGA donne Ser
-		bs_pga_aux	D		// conversion PGA donne Ser
-		bs_pga1	C	0		// conversion PGA donne Ser
-		bs_pga1_aux	D		// conversion PGA donne Ser
-		bs_pga2	C	0		// ser donne Cys. correspond a la sortie de PGA pour biomasse autre que formation Gly
-		bs_pga2_aux	D
-		bs_pga3	C	0.011799		// reaction de synthese de Gly. cette reaction est reversible
-		bs_pga3_aux	D		// sortie de Gly
-		bs_DHAP	D			// formation de glycerolP pour lipides
-		bs_pyr	C	0		// formation d'Ala
-		bs_pyr1	C	0		// formation d'Ala
-		bs_pyr1_aux	D		// sortie d'Ala. correspond aux sorties de Pyr qui ne sont pas associees a Val et Ile
-		bs_pyr2	C	0		// synthese d'AKV. consomme 2 Pyr
-		bs_pyr4	C	0
-		bs_pyr4_aux	D		// sortie correspondant a l'utilisation de Val pour la biomasse
-		bs_pyr3	C	0		// synthese de Leu (AKV+AcCoA consommes)
-		bs_pyr3_aux	D		// sortie de Leu
-		bs_e4p	C	0		// sortie d'Ery4p
-//		bs_e4p_aux	D		// sortie d'Ery4p pour Trp
-		bs_rib5p	C	0	// synthese d'His
-		bs_rib5p1	C	0	// synthese d'His
-		bs_rib5p1_aux	D		// sortie d'His
-		bs_rib5p2	D		// sortie de Rib5P autre que His
-		bs_accoa	C	0	// sortie d'AcCoA pour biomasse
-		bs_accoa_aux	D		// sortie d'AcCoA pour biomasse en dehors de synthese Leu
-		bs_pep	C	0		// sortie de PEP
-		bs_pep1	C	0		// sortie de PEP
-		bs_pep2	C	0
-		bs_pep3a	C	0
-		bs_pep3b	C	0
-		bs_pep3_aux	D
-		bs_pep4a	C	0
-		bs_pep4b	C	0
-		bs_pep4_aux	D
-		bs_pep5	D
-		bs_pep6	C	0
-		bs_pep6_aux	D
-		bs_pep7	C	0
-		bs_akg	C	0		// sortie d'AKG
-		bs_akg1	C	0
-		bs_akg2	D
-		bs_akg3	D
-		bs_akg4	C	0
-		bs_akg4_aux	D
-		bs_oaa	C	0
-		bs_oaa1	C	0		// sortie d'OAA autres que Met
-		bs_oaa1_aux	D		// sortie d'OAA autres que Met
-		bs_oaa2	C	0		// synthese de Met
-		bs_oaa2_aux	D		// sortie de Met
-		bs_oaa3a	C	0
-		bs_oaa3b	C	0
-		bs_oaa3_aux	D
-		bs_oaa4	D
-		bs_oaa5	C	0
-		bs_oaa5_aux	D
-		bs_oaa6	C	0
-		bs_oaa6_aux	D
-		bs_oaa7	C	0
-		bs_oaa7_aux	D
-
-		// Flux de sortie
-
-		out_co2	D			// sortie de CO2
-		out_Ac	D			// sortie d'acetate
-		out_FTHF	D		// sortie de FTHF. a laisser libre pour ne pas imposer de contraintes sur FTHF
-
-
-EQUALITIES
-	NET
-		VALUE	FORMULA
-
-		0	fum_a-fum_b		// scrambling reaction
-		1	Glucupt_1+Glucupt_U
-		0	bs_oaa3a-bs_oaa3b
-		0	bs_pep3a-bs_pep3b
-		0	bs_pep4a-bs_pep4b
-
-	XCH
-		VALUE	FORMULA
-
-		0	fum_a-fum_b
-
-INEQUALITIES
-	NET
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-		1	<=	pyk
-		0.0001	<=	edd
-		0.0001	<=	gnd
-		0.0001	<=	zwf
-		0.0001	<=	ppc
-		0.0001	<=	mae
-//		2	>=	CO2upt // 2010-08-18 too high value makes jacobian rank deficient
-	XCH
-		VALUE	COMP	FORMULA
-// Inequalities for Input and Output Fluxes are generated automatically
-	METAB
-		VALUE	COMP	FORMULA
-//		1.2	>=	AKG
-
-
-FLUX_MEASUREMENTS
-	FLUX_NAME	VALUE	DEVIATION	//		Val	Dev
-	out_Ac	0.213	0.0001
-
-LABEL_INPUT
-	META_NAME	ISOTOPOMER	VALUE
-
-	Gluc_U	#111111	1
-		#000000	0.
-	Gluc_1	#100000	1.
-		#000000	0.
-//	CO2_ext	#0	0.989
-//		#1	0.011
-
-//	FTHF_0	#0	1
-//	FTHF_1	#1	1
-
-
-LABEL_MEASUREMENTS
-	META_NAME	CUM_GROUP	VALUE	DEVIATION	CUM_CONSTRAINTS
-											// Example
-
-PEAK_MEASUREMENTS
-	META_NAME	PEAK_NO	VALUE_S	VALUE_D-	VALUE_D+	VALUE_DD	VALUE_T	DEVIATION_S	DEVIATION_D-	DEVIATION_D+	DEVIATION_DD/T
-
-
-MASS_SPECTROMETRY
-	META_NAME	FRAGMENT	WEIGHT	VALUE	DEVIATION
-
-// Deviation fixee a 0.02				// correction inoc 0.062
-
-
-
-	Suc	1,2,3,4	1	0.371605319	0.01
-			2	0.360829749	0.01
-			3	0.208425325	0.01
-			4	0.059139607	0.01
-//	Mal	1,2,3,4	0	0.164619329483	0.02
-//			1	0.110072868518	0.02
-//			2	0.637801316225333	0.02
-//			3	0.0863461044204333	0.02
-//			4	0.00116038135315367	0.02
-	ICit	1,2,3,4,5,6	0	0.131864539419667	0.02
-			1	0.225857638569	0.02
-			2	0.256421170949333	0.02
-			3	0.209230210478667	0.02
-			4	0.116863585449667	0.02
-			5	0.0457727744643333	0.02
-			6	0.0139900806697867	0.02
-	PEP	1,2,3	0	0.421359839367667	0.01
-			1	0.358998301162333	0.01
-			2	0.0348521859365667	0.01
-			3	0.184789673534	0.01
-	PGA	1,2,3	0	0.434335785072667	0.01
-			1	0.352829683224667	0.01
-			2	0.0323479804176	0.01
-			3	0.180486551285333	0.01
-	FruBP	1,2,3,4,5,6	0	0.0738121029259333	0.01
-			1	0.454450017158667	0.01
-			2	0.160823529969333	0.01
-			3	0.0944468077710667	0.01
-			4	0.105281338489667	0.01
-			5	0.0155016033633	0.01
-			6	0.0956846003217333	0.01
-	Glc6P	1,2,3,4,5,6	0	0.0160587173349	0.01
-			1	0.673510772480667	0.01
-			2	0.0930110047641	0.01
-			3	0.0280359937297	0.01
-			4	0.0397315614067667	0.01
-			5	0.0145524520950667	0.01
-			6	0.135099498189	0.01
-	Fru6P	1,2,3,4,5,6	0	0.0235029951295	0.01
-			1	0.624253565357667	0.01
-			2	0.113068441282333	0.01
-			3	0.0456605631765	0.01
-			4	0.0516089447155667	0.01
-			5	0.0185881765378333	0.01
-			6	0.123317313800333	0.01
-	Rib5P	1,2,3,4,5	0	0.341615670498667	0.01
-			1	0.25454117519	0.01
-			2	0.159027180368333	0.01
-			3	0.113789577528667	0.01
-			4	0.0615266612553333	0.01
-			5	0.0694997351590667	0.01
-	Gnt6P	1,2,3,4,5,6	0	0.0249552273874	0.01
-			1	0.672556163913	0.01
-			2	0.0866890773125333	0.01
-			3	0.0313987199704333	0.01
-			4	0.0314691889898667	0.01
-			5	0.0138168327362333	0.01
-			6	0.139114789690333	0.01
-//	Ery4P	1,2,3,4	0	0.178453461108	0.01
-//			1	0.412398433968333	0.01
-//			2	0.273694508221667	0.01
-//			3	0.116142498670667	0.01
-//			4	0.0193110980315	0.01
-METABOLITE_POOLS
-	META_NAME	META_SIZE
-	AKG	-1
-	AKV	1
-	AcCoA	1
-	Ala	1
-	Arg	1
-	Asn	1
-	Asp	1
-	BM_AKG	1
-	BM_AcCoA	1
-	BM_Ery4P	1
-	BM_OAA	1
-	BM_PEP	1
-	BM_PGA	1
-	BM_Pyr	1
-	BM_Rib5P	1
-	CO2	1
-	Chor	1
-	Cys	1
-	DAHP	1
-	Ery4P	-1
-	FTHF	1
-	Fru6P	-1
-	FruBP	-1
-	GA3P	-1
-	Glc6P	1
-	Glu	1
-	Gly	1
-	Gnt6P	-1
-	His	1
-	ICit	-1
-	Ile	1
-	Leu	1
-	Lys	1
-	Mal	1
-	Met	1
-	OAA	-1
-	PEP	-1
-	PGA	-1
-	Phe	1
-	Pyr	-1
-	PyrCO2	1
-	Rib5P	-1
-	Sed7P	-1
-	Ser	1
-	Suc	-1
-	Thr	1
-	Trp	1
-	Tyr	1
-	Val	1
-METAB_MEASUREMENTS
-	META_NAME	VALUE	DEVIATION
-	Fru6P	0.4263681348074568	0.01
-	GA3P	0.469998855791378	0.01
-	FruBP	1.860001398406723	0.01
-	PEP	0.1099999780931608	0.01
-	Rib5P	0.01933825682263468	0.01
-	Sed7P	0.05727159999541005	0.01
-
-OPTIONS
-	OPT_NAME	OPT_VALUE
-	dt	1
-	nsubdiv_dt	4
-	//tmax	10
-	file_labcin	e_coli_msen.txt
-	commandArgs	--noscale --TIMEIT --time_order=2 --zc=0 --clowp 1.e-9
-	optctrl_errx	1.e-3
-	optctrl_maxit	50
-	optctrl_btmaxit	16
-	optctrl_btstart	1
-	optctrl_btfrac	0.5
-	//optctrl_history	1
-	optctrl_adaptbt	1
-	optctrl_monotone	1
-	posttreat_R	plot_imass.R
--- a/test-data/e_coli_i.log	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-"/usr/local/miniconda3/bin/influx_i" "e_coli_i.ftbl"
-code gen: 2020-03-25 15:40:11
-executing: "/usr/local/miniconda3/bin/python3.7" "/home/STORAGE/local/miniconda3/bin/ftbl2optR.py" "--tblimit" "0" "--ropts" "noscale=TRUE; clowp=1e-09; zc=0.0; time_order='2'; TIMEIT=TRUE" "--case_i" "e_coli_i.ftbl"
-executing: R --vanilla --slave < e_coli_i.R
-calcul  : 2020-03-25 15:40:14
-load    : 2020-03-25 15:40:18.59 cpu=1.02
-rinit   : 2020-03-25 15:40:18.61 cpu=1.031
-r_flux  : 2020-03-25 15:40:18.61 cpu=1.031
-Afl qr(): 2020-03-25 15:40:18.68 cpu=1.101
-dfl_dffg: 2020-03-25 15:40:18.91 cpu=1.139
-spAbr   : 2020-03-25 15:40:18.91 cpu=1.143
-weight 1: 2020-03-25 15:40:18.91 cpu=1.143
-weight 2: 2020-03-25 15:40:18.95 cpu=1.225
-weight 3: 2020-03-25 15:40:19.02 cpu=1.348
-weight 4: 2020-03-25 15:40:19.07 cpu=1.456
-weight 5: 2020-03-25 15:40:19.10 cpu=1.506
-weight 6: 2020-03-25 15:40:19.17 cpu=1.574
-measure : 2020-03-25 15:40:19.25 cpu=1.602
-ineq    : 2020-03-25 15:40:19.33 cpu=1.683
-preopt  : 2020-03-25 15:40:19.57 cpu=2.056
-labargs : 2020-03-25 15:40:19.58 cpu=2.069
-cl expor: 2020-03-25 15:40:20.32 cpu=2.089
-cl sourc: 2020-03-25 15:40:21.20 cpu=2.204
-run    1: 2020-03-25 15:40:24.75 cpu=5.386
-Starting point
-zc ineq : 2020-03-25 15:40:24.75 cpu=5.387
-kvh init: 2020-03-25 15:40:24.78 cpu=5.432
-check ja: 2020-03-25 15:40:25.27 cpu=5.625
-optim   : 2020-03-25 15:40:26.47 cpu=5.632
-it=0	res=237.7947
-it=1	res=70.06248	normstep=30.47659	btk=1
-it=2	res=36.43491	normstep=31.35182	btk=1
-it=3	res=21.83319	normstep=0.2793447	btk=1
-it=4	res=21.7384	normstep=0.03332941	btk=1
-it=5	res=21.72383	normstep=0.03867587	btk=1
-it=6	res=21.6348	normstep=0.08885869	btk=1
-it=7	res=21.37745	normstep=0.4890457	btk=0.5
-it=8	res=21.24931	normstep=0.6490092	btk=1
-it=9	res=20.96647	normstep=0.3171006	btk=1
-it=10	res=20.96366	normstep=0.1287473	btk=1
-it=15	res=20.96358	normstep=5.449035e-05	btk=1
-secondzc: 2020-03-25 15:40:41.08 cpu=8.101
-After the first optimization, no zero crossing inequality was activated. So no reoptimization
-postopt : 2020-03-25 15:40:41.09 cpu=8.111
-linstats: 2020-03-25 15:40:41.87 cpu=8.697
-rend    : 2020-03-25 15:40:42.16 cpu=9.089
-end     : 2020-03-25 15:40:43
--- a/test-data/e_coli_msen.txt	Wed Sep 13 19:52:44 2023 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-# simulated measurement with noise (e_coli_mse.txt+noise with sd from e_coli_ie.ftbl)
-row_col	1	2	3	4	5	6	7	8	9	10 # see if ignored
-m:Rib5P:1,2,3,4,5:0:693	0.8301287113482	0.705273440788489	0.630962344759146	0.599912176047555	0.573404157056382	0.549013957980969	0.544210331911793	0.508277982602693	0.499016033193777	0.485286541644114
-m:Rib5P:1,2,3,4,5:1:694	0.139499223890491	0.222339755290909	0.243819119211992	0.251856352480698	0.277951849850555	0.26624702204022	0.253318961326116	0.242251579900221	0.257243898371434	0.245894214016595
-m:Rib5P:1,2,3,4,5:2:695	0.0290070095454754	0.0533324485991101	0.0672401633923346	0.0862872836178193	0.0903657887685621	0.111438208430907	0.106264456513264	0.127665879867143	0.129695750051211	0.143194872657798
-m:Rib5P:1,2,3,4,5:3:696	0.00160408414038381	0.0229950078431453	0.0242885112480173	0.0236262011871506	0.0384713977458625	0.0395862886561061	0.0399422126310299	0.0434575340902056	0.057575220004768	0.053327058437221
-m:Rib5P:1,2,3,4,5:4:697	0.00284213879991028	0.00136220262120975	0.00945113487347922	0.0262298815476012	0.0339069314888829	0.045111483933521	0.0308238334730582	0.0483697721397453	0.0489364990171572	0.056352033597862
-m:Rib5P:1,2,3,4,5:5:698	0.00381673478018765	0.0136152393183676	0.0187948292708048	0.029237436783619	0.0340531521955641	0.0266101321627734	0.0399368276378717	0.046845505348588	0.0373560862314168	0.0462793762301527
-
-m:Glc6P:1,2,3,4,5,6:0:679	0.493952162617383	0.241788346718873	0.129931016363475	0.0728422136538586	0.0555639355367493	0.0401826943349669	0.0314283807166068	0.0372888457858936	0.0241841875922507	0.030958811289491
-m:Glc6P:1,2,3,4,5,6:1:680	0.404262494562378	0.601528892652349	0.673997202888538	0.700284514239992	0.714448890273421	0.702861007777799	0.685523754578573	0.704662941393205	0.68684504474593	0.682856315908778
-m:Glc6P:1,2,3,4,5,6:2:681	-0.00971071210181876	0.00551823887717201	0.00739665415406503	0.0281297328224873	0.0374856512913617	0.0452870902703815	0.0460785142653824	0.0814776167048646	0.0659155729271299	0.0785432369222522
-m:Glc6P:1,2,3,4,5,6:3:682	0.0174215229553926	0.0170559578191188	0.025304157357846	0.0430017639175836	0.0348874311624526	0.0489484715084225	0.0351411534788991	0.0269856593772156	0.0192927092252581	0.0385779418075484
-m:Glc6P:1,2,3,4,5,6:4:683	0.0043659263104226	0.00877723557364165	0.00725821330054203	0.0126022050427868	0.0289095437215765	0.0282667499900472	0.0428080102047586	0.02592897485848	0.0333262720524978	0.0333836437820453
-m:Glc6P:1,2,3,4,5,6:5:684	-0.00295242877114927	0.0228561008765114	0.00107949443140708	0.00576924101393923	0.00359462341126682	-0.00291644895745689	-0.000650092439870991	-0.00722996134202132	-0.0148852807485112	0.00354062643070811
-m:Glc6P:1,2,3,4,5,6:6:685	0.0949417468382319	0.129448731101592	0.11756999828035	0.116834010941517	0.156652332757322	0.142614492470288	0.136775707360364	0.142247844825291	0.128888546346649	0.132781514945108
-
-m:ICit:1,2,3,4,5,6:0:657	0.964808884433423	1.00382002410753	0.976023042393462	0.894194434705964	0.766995156890106	0.690445464992781	0.63176893227039	0.528124368350999	0.442923129524696	0.395459161361152
-m:ICit:1,2,3,4,5,6:1:658	0.0143600676195567	0.0436548728034513	0.0534942728405111	0.0639987878375545	0.134065776629187	0.146919412024849	0.227799495903936	0.272494318035825	0.294024445522389	0.247190260186848
-m:ICit:1,2,3,4,5,6:2:659	0.0166297755006583	-0.0125797291227997	0.0127788142463291	0.0221526869422438	0.0870629846959751	0.124622112755198	0.0805533586113773	0.124589240328517	0.174587994783957	0.20637931969854
-m:ICit:1,2,3,4,5,6:3:660	-0.0164071602748031	-0.021607873341015	0.0405857166794395	0.0067533469595018	0.00856287955464007	0.032691842098317	0.03648172445535	0.0897097881203855	0.0377806396555514	0.108435276435524
-m:ICit:1,2,3,4,5,6:4:661	-0.0311946635661311	0.0112912100867262	-0.00328434976694734	-0.0291273953557248	0.00347615542802288	0.0135048730050441	0.0071339543400162	0.004515912946923	0.00749482343750274	0.0493479770558265
-m:ICit:1,2,3,4,5,6:5:662	-0.0151243019611019	-0.010343521441609	-0.0179127774136863	-0.0106202857696235	0.00503762224320454	0.0053007176644241	0.00856924745879578	-0.0046437475961502	-0.0137565134141504	-0.00931041072969327
-m:ICit:1,2,3,4,5,6:6:663	-0.00200369348784026	-0.00117170585835455	0.0284291904473502	0.0128473467258485	0.0142796581015085	-0.0119617502140488	0.00832215559537679	0.0333737729365706	-0.0233735989156783	-0.0163687999125459
-
-m:PEP:1,2,3:0:664	0.959305356621255	0.899429291001306	0.793091742198796	0.727694639632051	0.661797176142203	0.610886177732735	0.582532494113683	0.530442722689088	0.529050805368866	0.534367517591899
-m:PEP:1,2,3:1:665	0.0208665230365796	0.0529703549691902	0.105744546377435	0.182105641800708	0.218798900635198	0.25211771929553	0.260661349516476	0.293792896551455	0.303805124775345	0.330443567281624
-m:PEP:1,2,3:2:666	0.00810159190910743	0.00857003057280515	0.0164616569826104	-0.00580284991874017	-0.0063738169583666	0.00439384742710785	0.00782240375778176	0.00823428016898976	0.0225480831085196	0.00540316722852868
-m:PEP:1,2,3:3:667	0.0160174417665648	0.0673268207131409	0.0737601703050139	0.0784050704969314	0.117536949383343	0.125388990412662	0.152013381581937	0.13491538119973	0.150036045107799	0.152979924474585
-
-m:Gnt6P:1,2,3,4,5,6:0:699	0.980348768364065	0.887065707402045	0.775412601358149	0.682721033571734	0.638019427572899	0.537217635545053	0.46397661247481	0.40841020722789	0.354996545552177	0.328852241202942
-m:Gnt6P:1,2,3,4,5,6:1:700	0.0280915336431533	0.0900207235146178	0.178718976529483	0.238199954663426	0.297651174309232	0.377668812920342	0.406206528759584	0.43139141657629	0.463288334282323	0.498910430969407
-m:Gnt6P:1,2,3,4,5,6:2:701	-0.0118658948310887	0.00587644250607669	-0.000171197622197317	0.0283613357792838	-0.00121861221678132	0.0190972740079335	0.0203873738550575	0.043882002295937	0.00895785739811282	0.029492638878724
-m:Gnt6P:1,2,3,4,5,6:3:702	0.00419604783069589	0.017811925924337	0.00288410451231084	-0.00278521719286527	-0.00346833577593073	0.00824367096436317	0.0308084876487389	0.00684988634924229	0.00342583492597715	0.0231271068836901
-m:Gnt6P:1,2,3,4,5,6:4:703	0.0117131384422775	0.00130463713177113	0.00810930185180439	0.0119236165114781	0.0058578264597987	0.00992587860273877	0.00960534666262163	0.0178935788593294	0.00634540914627665	0.0161416252798136
-m:Gnt6P:1,2,3,4,5,6:5:704	0.020546992817452	-0.0124359940415735	-0.00492561472492338	0.00338433309336889	0.00879451474297676	-0.00775625913406869	-0.0155108586142624	-0.00491469372051669	0.0102530236644356	0.000435656001570747
-m:Gnt6P:1,2,3,4,5,6:6:705	0.0123813174021481	0.026469487723487	0.0383202157383438	0.0457935417210038	0.0641838950995448	0.0775084104251395	0.0719800594322437	0.0689150899176442	0.104305456142958	0.100296931509246
-
-m:Suc:1,2,3,4:1:648	-0.00740536579943663	-0.0071005977123083	0.0116361522025203	0.0155529939694648	0.0614369267187886	0.080653519229227	0.126488314467457	0.175267908031439	0.213998958328793	0.253963529986229
-m:Suc:1,2,3,4:2:649	0.00035329920798099	0.000375561367706547	0.0213616438244359	0.00541204837458218	0.0402702326634204	0.0498260948480971	0.0767447890046914	0.0924200973134789	0.12505390376649	0.124911685829664
-m:Suc:1,2,3,4:3:650	0.00871527066853332	-0.00316297484652509	0.0104909186040306	-0.00900495372166635	0.00261827267948352	0.0085349378032622	0.0109475170837865	0.0232501338991491	0.0206200755625722	0.0296011617670213
-m:Suc:1,2,3,4:4:651	-0.00993736466764629	0.00196472438489081	-0.00484695474256728	0.0153408517532834	0.0041592776106311	-0.00430377880030445	-0.00244362524377602	0.0109534229782509	0.0137604488833386	0.00586316823546521
-m:PGA:1,2,3:0:668	0.971624233727786	0.88105488804591	0.813066699228851	0.740599622946611	0.655913445307991	0.631749494323584	0.576140697543343	0.557971599084521	0.51860388489637	0.51803381029278
-m:PGA:1,2,3:1:669	0.00220541233021583	0.0757210734343468	0.12052269067551	0.162191306191376	0.223937545869529	0.241442753352368	0.258583425386211	0.30259748123379	0.315427978552718	0.321801842964539
-m:PGA:1,2,3:2:670	-0.00600635453904946	0.0103004820964093	0.000507682594582335	-0.012889899397529	0.0102382227596737	0.00870989588467711	0.0150594342872339	0.0101818907371649	0.0215484107926831	0.0184451709580988
-m:PGA:1,2,3:3:671	0.0222666463570966	0.0396053154740378	0.0652581947362937	0.108004619157695	0.110623893009565	0.138973931054194	0.131470119271174	0.137869954971786	0.136658102046298	0.135855362678781
-
-m:FruBP:1,2,3,4,5,6:0:672	0.915100660678142	0.710538255628495	0.539707264234807	0.410485596290365	0.316133497140404	0.260353766957447	0.203404008159282	0.182459522045085	0.164876978870191	0.148857194981653
-m:FruBP:1,2,3,4,5,6:1:673	0.0678013467712298	0.226304674965867	0.336541856973518	0.416051058082716	0.464564802241236	0.485336774391881	0.490207230868459	0.513759561323935	0.497418644493142	0.480282911481621
-m:FruBP:1,2,3,4,5,6:2:674	-0.00198367254664417	0.0125753789563416	0.00042629691833386	0.0251359606878703	0.0458213984942464	0.0537112170700128	0.0582455692688059	0.0732956046933924	0.0761912369338422	0.0857605693669639
-m:FruBP:1,2,3,4,5,6:3:675	-0.000392113325137966	0.0132767242245432	0.0467756022636571	0.0803441546018749	0.0732686847392194	0.100607368009337	0.100554195366947	0.0912022225582722	0.102199914711651	0.0936825194012971
-m:FruBP:1,2,3,4,5,6:4:676	-0.0120394479858482	-0.00593961237618397	-0.000971488795492516	0.00796387425034388	0.00873461737604841	0.0545832171869149	0.0565000883937298	0.0405511217315538	0.0519562886079823	0.0725381260214016
-m:FruBP:1,2,3,4,5,6:5:677	-0.00525294722682946	0.00537247522397268	-0.00380859480830061	0.00270832479079256	-0.00087264218392774	0.00494152714714406	0.00135371023071657	0.00927633370606465	0.00936073842733687	0.00788049093123055
-m:FruBP:1,2,3,4,5,6:6:678	0.00402818220901069	0.035673399588083	0.0542952441027104	0.0750899278339439	0.0689359253522637	0.0907137663313326	0.0662239468820011	0.0837284613547794	0.0741911443336369	0.0691637252843734
-
-m:Fru6P:1,2,3,4,5,6:0:686	0.543315183156242	0.271442215154307	0.15342041555599	0.104226528529691	0.0601207158756622	0.0667835627698116	0.032169592051183	0.0444987186974436	0.0312424656505585	0.0371738310019649
-m:Fru6P:1,2,3,4,5,6:1:687	0.381498556157925	0.566820512279315	0.64753590777845	0.669325655114947	0.672155048267478	0.658521355463491	0.672620087099418	0.658937533256872	0.65065211800828	0.629670055679612
-m:Fru6P:1,2,3,4,5,6:2:688	-0.0102984598677217	0.00689221621662103	0.0339321967612094	0.0465421546157055	0.0571543647969092	0.0732789089821859	0.0959460289039786	0.0715783489999898	0.0926230588187283	0.0957791120020438
-m:Fru6P:1,2,3,4,5,6:3:689	0.0250657939547482	0.023460916637709	0.0473358002097497	0.0321217800543612	0.0458500181495104	0.0259668014922916	0.0305191527374548	0.0469266856851943	0.0580452840754031	0.0385375322919084
-m:Fru6P:1,2,3,4,5,6:4:690	-0.00136306896214337	0.0137397725510333	0.0170177475023465	0.0417372012671271	0.0258510180458119	0.0385973494576826	0.0622003922899037	0.0620209065758034	0.0670552727027324	0.0510832683047673
-m:Fru6P:1,2,3,4,5,6:5:691	0.0126114174874434	0.0168366636261353	0.00613625694852706	0.00646155542199223	0.00416011463957945	-0.0185323336578468	0.00502015745762575	0.0152813542807671	0.00415755701611636	0.0088205581757464
-m:Fru6P:1,2,3,4,5,6:6:692	0.0772794502106592	0.105015237675548	0.105838420467053	0.117576197845624	0.106974963083314	0.126498375256686	0.113727482281553	0.12301912138022	0.114583839516509	0.122447416359013