changeset 0:9b03a930b08b draft

"planemo upload commit 8e69ff6919990050909511d8bdfb520c19a4af72"
author workflow4metabolomics
date Mon, 04 May 2020 03:24:12 -0400
parents
children 4e3d4318113b
files README.rst influx_si.xml test-data/e_coli.ftbl test-data/e_coli.log 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 12 files changed, 4220 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README.rst	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,20 @@
+
+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.
+
+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 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.
+
+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` see https://metasys.insa-toulouse.fr/software/influx/
+
+Author: Serguei Sokol
+
+License: GPL2
+
+© INRAE 2020
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/influx_si.xml	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,213 @@
+<tool id="influx_si" name="influx_si" version="@TOOL_VERSION@+galaxy0" python_template_version="3.5">
+   <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.name' &&
+         #end for
+       #end for
+       
+       influx_$si.s_i
+            $opt.noopt
+            $opt.noscale
+            #if $opt.meth != 'None':
+               $opt.meth
+            #end if
+            $opt.fullsys
+            $opt.emu
+            $opt.irand
+            #if $opt.sens:
+             --sens='$opt.sens'
+            #end if
+            #if $opt.cupx:
+             --cupx='$opt.cupx'
+            #end if
+            #if $opt.cupn:
+             --cupn='$opt.cupn'
+            #end if
+            #if $opt.cupp:
+             --cupp='$opt.cupp'
+            #end if
+            #if $opt.clownr:
+             --clownr='$opt.clownr'
+            #end if
+            #if $opt.cinout:
+             --cinout='$opt.cinout'
+            #end if
+            #if $opt.clowp:
+             --clowp='$opt.clowp'
+            #end if
+            #if $opt.np:
+             --np='$opt.np'
+            #end if
+            $opt.ln
+            $opt.sln
+            $opt.tikhreg
+            $opt.lim
+            #if $opt.zc:
+             --zc='$opt.zc'
+            #end if
+            $opt.ffguess
+            #if $opt.iseries:
+             --iseries='$opt.iseries'
+            #end if
+            #if $opt.seed:
+             --seed='$opt.seed'
+            #end if
+            #if $opt.excl_outliers:
+             --excl_outliers '$opt.excl_outliers'
+            #end if
+            $opt.nocalc
+            $opt.addnoise
+            $opt.TIMEIT
+            #if $opt.tblimit:
+             --tblimit='$opt.tblimit'
+            #end if
+
+         #if $si.s_i == 'i' and $si.time_order:
+           --time_order='$si.time_order'
+         #end if
+         '${"' '".join([str($in_m.name) 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" ]
+    ]]></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" display="radio" 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>
+      <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">
+            <element name="e_coli.log" ftype="txt" file="e_coli.log" compare="sim_size" delta="100" />
+         </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" file="e_coli_growth.log" compare="sim_size" delta="100" />
+         </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" file="e_coli_i.log" compare="sim_size" delta="100" />
+         </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" file="e_coli_1-Glc_exact.log" compare="sim_size" delta="100" />
+         </output_collection>
+      </test>
+   </tests>
+   <help><![CDATA[
+   Usage: influx_s [options] /path/to/FTBL_file1 [FTBL_file2 [...]]
+
+   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>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli.ftbl	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,720 @@
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli.log	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,38 @@
+"/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_1-Glc_exact.ftbl	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,713 @@
+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
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_1-Glc_exact.log	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,40 @@
+"/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_U-Glc_exact.ftbl	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,711 @@
+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
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_growth.ftbl	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,822 @@
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_growth.log	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,45 @@
+"/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_i.ftbl	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,789 @@
+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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_i.log	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,47 @@
+"/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
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/e_coli_msen.txt	Mon May 04 03:24:12 2020 -0400
@@ -0,0 +1,62 @@
+# 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