changeset 2:40edef7d7f74 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/DIMet commit 30fe10acdf65c6917856a0eae21dc91abd2f609f
author iuc
date Thu, 15 Feb 2024 12:50:27 +0000
parents b97f326c055d
children b856fcb1346e
files dimet_timecourse_analysis.xml macros.xml test-data/CorrectedIsotopologues_5.csv test-data/FracContribution_C_5.csv test-data/abundance--cell-Control-L-Cycloserine-pearson.tsv test-data/abundance--med-Control-L-Cycloserine-pearson.tsv test-data/example5_metadata.csv test-data/isotop_prop--cell--MDV-Control-L-Cycloserine--T0-pearson.tsv test-data/isotop_prop--cell--MDV-Control-L-Cycloserine--T2h-pearson.tsv test-data/isotop_prop--cell--MDV-T2h-T0--Control-pearson.tsv test-data/isotop_prop--cell--MDV-T2h-T0--L-Cycloserine-pearson.tsv test-data/isotop_prop--med--MDV-Control-L-Cycloserine--T0-pearson.tsv test-data/isotop_prop--med--MDV-Control-L-Cycloserine--T2h-pearson.tsv test-data/isotop_prop--med--MDV-T2h-T0--Control-pearson.tsv test-data/isotop_prop--med--MDV-T2h-T0--L-Cycloserine-pearson.tsv test-data/rawAbundances_5.csv
diffstat 16 files changed, 665 insertions(+), 91 deletions(-) [+]
line wrap: on
line diff
--- a/dimet_timecourse_analysis.xml	Tue Jan 23 14:56:42 2024 +0000
+++ b/dimet_timecourse_analysis.xml	Thu Feb 15 12:50:27 2024 +0000
@@ -39,7 +39,7 @@
          '++analysis.method.impute_values=${impute_values}'
          '++analysis.dataset.subfolder='
          '++analysis.dataset.label='
-         '++analysis.dataset.conditions=${conds}'
+         '++analysis.dataset.conditions=${conditions}'
          #if $metadata_path:
              '++analysis.dataset.metadata=metadata'
          #end if
@@ -64,7 +64,7 @@
     ]]></command>
     <inputs>
         <expand macro="input_parameters_diff_analysis"/>
-        <expand macro="conditions"/>
+        <expand macro="factor_list"/>
         <expand macro="correction_method"/>
         <param name="qualityDistanceOverSpan" type="float" min="-1.0" max="-0.1" value="-0.3" label="quality Distance Over Span" help="Default value is -0.3."/>
     </inputs>
@@ -80,8 +80,14 @@
             <param name="metadata_path" ftype="tabular" value="example2_metadata.csv"/>
             <param name="correction_method" value="bonferroni"/>
             <param name="qualityDistanceOverSpan" value="-0.3"/>
+            <param name="statistical_test_type" value="parametric"/>
             <param name="stat_test" value="Tt"/>
-            <param name="conditions" value='Control,L-Cycloserine'/>
+            <repeat name="plot_factor_list">
+                <param name="condition" value="Control"/>
+            </repeat>
+            <repeat name="plot_factor_list">
+                <param name="condition" value="L-Cycloserine"/>
+            </repeat>
             <output_collection name="report" type="list" count="4">
                 <element file="abundance--cell-Control-T2h-Control-T0-Tt.tsv"  name="abundance--cell-Control-T2h-Control-T0-Tt.tsv" ftype="tabular"/>
                 <element file="abundance--cell-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv"  name="abundance--cell-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv" ftype="tabular"/>
@@ -259,11 +265,15 @@
 The output consists of tables with the computed metrics, one by each pair of timepoints compared.
 The number of output tables = number-of-conditions x (number-of-timepoints)-1 x number-of-compartments.
 
+For more information about the implemented statistical tests, please visit:  https://github.com/cbib/DIMet/wiki/2-Statistical-tests
+
+The output files are explained in https://github.com/cbib/DIMet/wiki/3-Output
+
 **Available data for testing**
 
-You can test our tool with the data from our manuscript https://zenodo.org/record/8378887 (the pertinent
+You can test our tool with the data from our manuscript https://zenodo.org/record/10579862 (the pertinent
 files for you are located in the subfolders inside the data folder).
-You can also use the minimal data examples from https://zenodo.org/record/8380706
+You can also use the minimal data examples from https://zenodo.org/record/10579891
 
  ]]>
     </help>
--- a/macros.xml	Tue Jan 23 14:56:42 2024 +0000
+++ b/macros.xml	Thu Feb 15 12:50:27 2024 +0000
@@ -1,42 +1,46 @@
 <macros>
-    <token name="@TOOL_VERSION@">0.1.4</token>
+    <token name="@TOOL_VERSION@">0.2.1</token>
     <token name="@VERSION_SUFFIX@">1</token>
     <token name="@EXECUTABLE@">pca</token>
-    <xml name="factor_repeat">
-        <repeat name="rep_factorName" title="Factor" min="1">
-            <param name="factorName" type="text" value="FactorName" label="Specify a factor name, e.g. effects_drug_x or cancer_markers"
-                help="Only letters, numbers and underscores will be retained in this field">
-                <sanitizer>
-                    <valid initial="string.letters,string.digits"><add value="_" /></valid>
-                </sanitizer>
-            </param>
-            <repeat name="rep_factorLevel" title="Factor level" min="2" default="2">
-                <param name="factorLevel" type="text" value="FactorLevel" label="Specify a factor level, typical values could be 'tumor', 'normal', 'treated' or 'control'"
-                    help="Only letters, numbers and underscores will be retained in this field">
-                    <sanitizer>
-                        <valid initial="string.letters,string.digits"><add value="_" /></valid>
-                    </sanitizer>
-                </param>
-                <yield/>
-            </repeat>
-        </repeat>
-    </xml>
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@TOOL_VERSION@">dimet</requirement>
         </requirements>
     </xml>
+    <xml name="statistical_test_for_multigroup">
+        <param name="stat_test" type="select" value="KW"  display="radio" label="Select statistical to apply" help="Please enter at max 1 statistical test by file">
+            <option value="KW">Kruskal-Wallis</option>
+        </param>
+    </xml>
     <xml name="statistical_test">
-        <param name="stat_test" type="select" value="Tt"  display="radio" label="Select statistical to apply" help="Please enter at max 1 statistical test by file">
-            <option value="Tt">t-test</option>
-            <option value="MW">Mann Whitney</option>
-            <option value="KW">Kruskall Wallis</option>
-            <option value="ranksum">Wilcoxon's rank sum test</option>
-            <option value="Wcox">Wilcoxon signed-rank test</option>
-            <option value="BrMu">Brunner-Munzel test</option>
-            <option value="prm-scipy">permutations test</option>
-            <option value="disfit">distribution fitting (of the z-score of the ratios), disfit needs several hundreds of metabolites to be trustful.</option>
-        </param>
+        <conditional name="statistics">
+            <param name="statistical_test_type" type="select" label="Choose which type of statistical test to perform" help="Choose which type of statistical test to perform">
+                <option value="parametric">parametric</option>
+                <option value="non-parametric-rank" selected="true">non-parametric (rank based)</option>
+                <option value="non-parametric-distribution">non-parametric (distribution based)</option>
+            </param>
+            <when value="parametric">
+                <param name="stat_test" type="select" display="radio" label="Select statistical to apply" help="Please enter at max 1 statistical test by file">
+                    <option value="Tt" selected="true">t-test</option>
+                </param>
+            </when>
+            <when value="non-parametric-rank">
+                <param name="stat_test" type="select" display="radio" label="Select statistical to apply" help="Please enter at max 1 statistical test by file">
+                    <option value="MW">Mann Whitney</option>
+                    <option value="KW">Kruskal-Wallis</option>
+                    <option value="ranksum" selected="true">Wilcoxon's rank sum test</option>
+                    <option value="Wcox">Wilcoxon signed-rank test</option>
+                    <option value="BrMu">Brunner-Munzel test</option>
+                </param>
+            </when>
+            <when value="non-parametric-distribution">
+                <param name="stat_test" type="select" display="radio" label="Select statistical to apply" help="Please enter at max 1 statistical test by file">
+                    <option value="prm-scipy" selected="true">permutations test</option>
+                    <option value="disfit">distribution fitting (of the z-score of the ratios), disfit needs several hundreds of metabolites to be trustful.</option>
+                </param>
+            </when>
+        </conditional>
+
     </xml>
     <xml name="citations">
         <citations>
@@ -86,14 +90,14 @@
     </xml>
     <xml name="input_parameters_metabologram">
         <conditional name="data_input">
-            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues count files" help="Select between raw abundance, mean enrichment or isotopologue files">
+            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues quantification files" help="Select between raw abundance and mean enrichment files">
                 <option value="abundance" selected="True">abundance</option>
                 <option value="mean_enrichment">mean_enrichment</option>
             </param>
             <when value="abundance">
                 <expand macro="abundance_file_macros"/>
                 <param name="metabolites_list" type="select" optional="false" multiple="true"
-                       label="Select Metabolite(s) for factor 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
+                       label="Select Metabolite(s) for condition 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
                     <validator type="length" min="1" message="Please enter at max 2 compartments"/>
                     <options from_dataset="abundance_file">
                         <column name="metabolite_or_isotopologue" index="0"/>
@@ -115,7 +119,7 @@
             <when value="mean_enrichment">
                 <expand macro="enrichment_file_macros"/>
                 <param name="metabolites_list" type="select" optional="false" multiple="true"
-                       label="Select Metabolite(s) for factor 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
+                       label="Select Metabolite(s) for condition 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
                     <validator type="length" min="1" message="Please enter at max 2 compartments"/>
                     <options from_dataset="me_or_frac_contrib_file">
                         <column name="metabolite_or_isotopologue" index="0"/>
@@ -139,9 +143,33 @@
         <param name="path_kegg_transcripts" type="data" format="tabular" label="Pathways kegg transcripts file" help="A file with the pathways and respective gene symbols, which must match with those present in the transcriptomics data. The names of the columns must be the pathways' names, see the minimal data example downloaded from zenodo as explained above. (see help below for more details)"/>
         <expand macro="metadata_file_macros"/>
     </xml>
+    <xml name="input_parameters_bivar_analysis">
+        <conditional name="data_input">
+            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues quantification files" help="Select between raw abundance, mean enrichment or isotopologue files">
+                <option value="abundance" selected="True">abundance</option>
+                <option value="mean_enrichment">mean_enrichment</option>
+                <option value="isotop_prop">isotop_prop</option>
+                <option value="isotop_abs">isotop_abs</option>
+            </param>
+            <when value="abundance">
+                <expand macro="abundance_file_macros"/>
+
+            </when>
+            <when value="mean_enrichment">
+                <expand macro="enrichment_file_macros"/>
+            </when>
+            <when value="isotop_prop">
+                <expand macro="isotopologue_prop_file_macros"/>
+            </when>
+            <when value="isotop_abs">
+                <expand macro="isotopologue_abs_file_macros"/>
+            </when>
+        </conditional>
+        <expand macro="metadata_file_macros"/>
+    </xml>
     <xml name="input_parameters_diff_analysis">
         <conditional name="data_input">
-            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues count files" help="Select between raw abundance and mean enrichment files">
+            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues quantification files" help="Select between raw abundance, mean enrichment or isotopologue files">
                 <option value="abundance" selected="True">abundance</option>
                 <option value="mean_enrichment">mean_enrichment</option>
                 <option value="isotop_prop">isotop_prop</option>
@@ -167,6 +195,34 @@
         </conditional>
         <expand macro="metadata_file_macros"/>
     </xml>
+    <xml name="input_parameters_multi_diff_analysis">
+        <conditional name="data_input">
+            <param name="data_input_selector" type="select" label="Abundance, Enrichment or Isotopologues quantification files" help="Select between raw abundance, mean enrichment or isotopologue files">
+                <option value="abundance" selected="True">abundance</option>
+                <option value="mean_enrichment">mean_enrichment</option>
+                <option value="isotop_prop">isotop_prop</option>
+                <option value="isotop_abs">isotop_abs</option>
+            </param>
+            <when value="abundance">
+                <expand macro="abundance_file_macros"/>
+                <expand macro="statistical_test_for_multigroup"/>
+
+            </when>
+            <when value="mean_enrichment">
+                <expand macro="enrichment_file_macros"/>
+                <expand macro="statistical_test_for_multigroup"/>
+            </when>
+            <when value="isotop_prop">
+                <expand macro="isotopologue_prop_file_macros"/>
+                <expand macro="statistical_test_for_multigroup"/>
+            </when>
+            <when value="isotop_abs">
+                <expand macro="isotopologue_abs_file_macros"/>
+                <expand macro="statistical_test_for_multigroup"/>
+            </when>
+        </conditional>
+        <expand macro="metadata_file_macros"/>
+    </xml>
     <xml name="suffix">
         <param name="suffix" type="text" optional="false" label="suffix to add to output files" >
             <sanitizer invalid_char="">
@@ -177,7 +233,7 @@
         </param>      
     </xml>
     <xml name="conditions">
-        <param name="conditions" type="select" optional="false" multiple="true" label="Browse conditions from metadata file (1 min. only if two timepoints are set. 2 max.). You have to load a metadata file prior to have access to metabolite list">
+        <param name="conditions" type="select" optional="false" multiple="true" label="Browse conditions from metadata file (1 min. only if two timepoints are set. 2 max.). You have to load a metadata file prior to have access to condition list">
             <options from_dataset="metadata_path">
                 <column name="condition" index="1"/>
                 <column name="value" index="1"/>
@@ -232,7 +288,7 @@
         </param>
     </xml>
     <xml name="timepoint">
-        <param name="timepoint" type="select" optional="true" multiple="true" label="Browse timepoint from metadata file (1 min. only if two conditions are set.)">
+        <param name="timepoint" type="select" optional="false" multiple="true" label="Browse timepoint from metadata file (1 min.)">
             <options from_dataset="metadata_path">
                 <column name="timepoint" index="2"/>
                 <column name="value" index="2"/>
@@ -307,6 +363,25 @@
             </sanitizer>
         </param>
     </xml>
+    <xml name="compartments_metabologram">
+        <param name="compartments" type="select" optional="false" multiple="false"
+               label="Browse compartments from metadata file (1 max.). You have to load a metadata file prior to have access to compartments">
+            <options from_dataset="metadata_path">
+                <column name="compartment" index="4"/>
+                <column name="value" index="4"/>
+                <filter type="unique_value" name="compartment" column="4"/>
+                <filter type="remove_value" value="compartment"/>
+            </options>
+            <sanitizer>
+                <valid initial="default">
+                    <add preset="string.printable"/>
+                    <add value="\t"/>
+                    <remove value="&quot;"/>
+                    <remove value="&apos;"/>
+                </valid>
+            </sanitizer>
+        </param>
+    </xml>
     <xml name="compartments">
         <param name="compartments" type="select" optional="false" multiple="true"
                label="Browse compartments from metadata file (1 min.). You have to load a metadata file prior to have access to compartments">
@@ -328,7 +403,7 @@
     </xml>
     <xml name="abundance_metabolites_list">
         <param name="metabolites_list" type="select" optional="false" multiple="true"
-               label="Select Metabolite(s) for factor 1 to plot (1 min). You have to load a abundance file prior to have access to metabolite list">
+               label="Select Metabolite(s) for condition 1 to plot (1 min). You have to load a abundance file prior to have access to metabolite list">
             <validator type="length" min="1" message="Please enter at max 2 compartments"/>
             <options from_dataset="abundance_file">
                 <column name="metabolite_or_isotopologue" index="0"/>
@@ -348,8 +423,8 @@
     </xml>
     <xml name="enrichment_metabolites_list">
         <param name="metabolites_list" type="select" optional="false" multiple="true"
-               label="Select Metabolite(s) for factor 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
-            <validator type="length" min="1" message="Please enter at max 2 compartments"/>
+               label="Select Metabolite(s) for condition 1 to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
+            <validator type="length" min="1" message="Please enter at min 1 metabolite"/>
             <options from_dataset="me_or_frac_contrib_file">
                 <column name="ID" index="0"/>
                 <column name="value" index="0"/>
@@ -369,7 +444,7 @@
     <xml name="isotopologue_metabolites_list">
         <param name="metabolites_list" type="select" optional="false" multiple="true"
                label="Select Metabolite(s) to plot (1 Min.). You have to load a abundance file prior to have access to metabolite list">
-            <validator type="length" min="1" message="Please enter at max 2 compartments"/>
+            <validator type="length" min="1" message="Please enter at min 1 metabolite"/>
             <options from_dataset="isotop_prop_file">
                 <column name="ID" index="0"/>
                 <column name="value" index="0"/>
@@ -387,27 +462,132 @@
         </param>
     </xml>
     <xml name="deg_list">
-        <repeat name="deg_list" title="Deregulated gene set">
+        <repeat name="deg_list" title="Deregulated gene set" default="1" min="1">
             <param name="input" type="data" format="tabular" label="Deregulated genes set"/>
             <param name="idcol" type="data_column" data_ref="input" label="Column for id" use_header_names="true"/>
             <param name="valuecol" type="data_column" data_ref="input" label="Column for values" use_header_names="true"/>
+            <param name="timepoint" type="select" optional="false" multiple="false" label="Browse timepoint from metadata file (1 min.)">
+                <options from_dataset="metadata_path">
+                    <column name="timepoint" index="2"/>
+                    <column name="value" index="2"/>
+                    <filter type="unique_value" name="timepoint" column="2"/>
+                    <filter type="remove_value" value="timepoint"/>
+                    <filter type="sort_by" name="timepoint" column="1"/>
+                </options>
+                <sanitizer>
+                    <valid initial="default">
+                        <add preset="string.printable"/>
+                        <add value="\t"/>
+                        <remove value="&quot;"/>
+                        <remove value="&apos;"/>
+                    </valid>
+                </sanitizer>
+            </param>
+            <repeat name="factor_list" title="Conditions" default="2" min="2" max="2" help="Specify conditions to compare from metadata file (for each comparison, the first specified condition is the reference). You have to load a metadata file prior to have access to condition list">
+                <param name="condition" label="Condition" type="select" optional="false" multiple="false">
+                    <options from_dataset="metadata_path">
+                        <column name="condition" index="1"/>
+                        <column name="value" index="1"/>
+                        <filter type="unique_value" name="condition" column="condition"/>
+                        <filter type="remove_value" value="condition"/>
+                    </options>
+                    <sanitizer>
+                        <valid initial="default">
+                            <add preset="string.printable"/>
+                            <add value="\t"/>
+                            <remove value="&quot;"/>
+                            <remove value="&apos;"/>
+                        </valid>
+                    </sanitizer>
+                </param>
+            </repeat>
+
         </repeat>
     </xml>
+    <xml name="plot_abundance_factor_list">
+        <repeat name="plot_abundance_factor_list" title="Conditions" min="1" help="Specify conditions to compare from metadata file (1 min. only if two timepoints are set. 2 max.). You have to load a metadata file prior to have access to condition list">
+            <param name="condition" label="Condition" type="select" optional="false" multiple="false">
+                <options from_dataset="metadata_path">
+                    <column name="condition" index="1"/>
+                    <column name="value" index="1"/>
+                    <filter type="unique_value" name="condition" column="condition"/>
+                    <filter type="remove_value" value="condition"/>
+                </options>
+                <sanitizer>
+                    <valid initial="default">
+                        <add preset="string.printable"/>
+                        <add value="\t"/>
+                        <remove value="&quot;"/>
+                        <remove value="&apos;"/>
+                    </valid>
+                </sanitizer>
+            </param>
+        </repeat>
+    </xml>
+    <xml name="plot_factor_list">
+        <repeat name="plot_factor_list" title="Conditions" min="2" help="Specify conditions to compare from metadata file (1 min. only if two timepoints are set. 2 max.). You have to load a metadata file prior to have access to condition list">
+            <param name="condition" label="Condition" type="select" optional="false" multiple="false">
+                <options from_dataset="metadata_path">
+                    <column name="condition" index="1"/>
+                    <column name="value" index="1"/>
+                    <filter type="unique_value" name="condition" column="condition"/>
+                    <filter type="remove_value" value="condition"/>
+                </options>
+                <sanitizer>
+                    <valid initial="default">
+                        <add preset="string.printable"/>
+                        <add value="\t"/>
+                        <remove value="&quot;"/>
+                        <remove value="&apos;"/>
+                    </valid>
+                </sanitizer>
+            </param>
+        </repeat>
+    </xml>
+    <xml name="factor_list">
+        <repeat name="factor_list" title="Conditions" min="2" max="2" help="Specify conditions to compare from metadata file (for each comparison, the first specified condition is the reference). You have to load a metadata file prior to have access to condition list">
+            <param name="condition" label="Condition" type="select" optional="false" multiple="false">
+                <options from_dataset="metadata_path">
+                    <column name="condition" index="1"/>
+                    <column name="value" index="1"/>
+                    <filter type="unique_value" name="condition" column="condition"/>
+                    <filter type="remove_value" value="condition"/>
+                </options>
+                <sanitizer>
+                    <valid initial="default">
+                        <add preset="string.printable"/>
+                        <add value="\t"/>
+                        <remove value="&quot;"/>
+                        <remove value="&apos;"/>
+                    </valid>
+                </sanitizer>
+            </param>
+        </repeat>
+    </xml>
+    <xml name="palette">
+        <param name="palette" type="select" value="pastel" display="radio" label="Select palette colormap to apply to abundance plot." help="For more information see https://seaborn.pydata.org/tutorial/color_palettes.html">
+            <option value="pastel" selected="true">pastel</option>
+            <option value="deep">deep</option>
+            <option value="muted">muted</option>
+            <option value="bright">bright</option>
+            <option value="dark">dark</option>
+            <option value="colorblind">colorblind</option>
+        </param>
+    </xml>
     <token name="@INIT_PCA@"><![CDATA[
     #import json
     #import re
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
     #if $abundance_file:
-        ln -s '$abundance_file' data/raw/abundance.csv &&
+        ln -s '$abundance_file' data/abundance.csv &&
     #end if
     #if $me_or_frac_contrib_file:
-        ln -s '$me_or_frac_contrib_file' data/raw/me_or_frac_contrib.csv &&
+        ln -s '$me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
     #end if
 
     ]]></token>
@@ -420,68 +600,102 @@
     ]]></token>
     <token name="@INIT_ABUNDANCE_PLOT@"><![CDATA[
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
     #if $abundance_file:
-        ln -s '$abundance_file' data/raw/abundance.csv &&
+        ln -s '$abundance_file' data/abundance.csv &&
     #end if
     ]]></token>
     <token name="@INIT_ENRICHMENT_PLOT@"><![CDATA[
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
     #if $me_or_frac_contrib_file:
-        ln -s '$me_or_frac_contrib_file' data/raw/me_or_frac_contrib.csv &&
+        ln -s '$me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
     #end if
     ]]></token>
     <token name="@INIT_ISOTOPOLOGUE_PLOT@"><![CDATA[
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
+
+    #if $metadata_path:
+        ln -s '$metadata_path' data/metadata.csv &&
+    #end if
+    #if $isotop_prop_file:
+        ln -s '$isotop_prop_file' data/isotop_prop.csv &&
+    #end if
+    ]]></token>
+    <token name="@INIT_BI_ANALYSIS@"><![CDATA[
+
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
-    #if $isotop_prop_file:
-        ln -s '$isotop_prop_file' data/raw/isotop_prop.csv &&
+    #set conditions_MDV_comparison  = {}
+    #silent $conditions_MDV_comparison['isotopologue_proportions']='pearson'
+    #set timepoints_MDV_comparison  = {}
+    #silent $timepoints_MDV_comparison['isotopologue_proportions']='pearson'
+    #set conditions_metabolite_time_profiles  = {}
+    #silent $conditions_metabolite_time_profiles['abundances']='pearson'
+    #silent $conditions_metabolite_time_profiles['mean_enrichment']='pearson'
+
+    #set $impute_values  = {}
+    #if str( $data_input.data_input_selector ) == "abundance":
+        #if $data_input.abundance_file:
+            ln -s '$data_input.abundance_file' data/abundance.csv &&
+            #silent $impute_values['abundances']='min'
+        #end if
+    #elif str( $data_input.data_input_selector ) == "mean_enrichment":
+        #if $data_input.me_or_frac_contrib_file:
+            ln -s '$data_input.me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
+            #silent $impute_values['mean_enrichment']='min'
+        #end if
+    #elif str( $data_input.data_input_selector ) == "isotop_prop":
+        #if $data_input.isotop_prop_file:
+            ln -s '$data_input.isotop_prop_file' data/isotop_prop.csv &&
+            #silent $impute_values['isotopologue_proportions']='min'
+        #end if
+    #else
+        #if $data_input.isotop_abs_file:
+            ln -s '$data_input.isotop_abs_file' data/isotop_abs.csv &&
+            #silent $impute_values['isotopologues']='min'
+        #end if
     #end if
     ]]></token>
     <token name="@INIT_DIFF_ANALYSIS@"><![CDATA[
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
 
     #set $impute_values  = {}
     #if str( $data_input.data_input_selector ) == "abundance":
         #if $data_input.abundance_file:
-            ln -s '$data_input.abundance_file' data/raw/abundance.csv &&
+            ln -s '$data_input.abundance_file' data/abundance.csv &&
             #silent $impute_values['abundances']='min'
         #end if
     #elif str( $data_input.data_input_selector ) == "mean_enrichment":
         #if $data_input.me_or_frac_contrib_file:
-            ln -s '$data_input.me_or_frac_contrib_file' data/raw/me_or_frac_contrib.csv &&
+            ln -s '$data_input.me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
             #silent $impute_values['mean_enrichment']='min'
         #end if
     #elif str( $data_input.data_input_selector ) == "isotop_prop":
         #if $data_input.isotop_prop_file:
-            ln -s '$data_input.isotop_prop_file' data/raw/isotop_prop.csv &&
+            ln -s '$data_input.isotop_prop_file' data/isotop_prop.csv &&
             #silent $impute_values['isotopologue_proportions']='min'
         #end if
     #else
         #if $data_input.isotop_abs_file:
-            ln -s '$data_input.isotop_abs_file' data/raw/isotop_abs.csv &&
+            ln -s '$data_input.isotop_abs_file' data/isotop_abs.csv &&
             #silent $impute_values['isotopologues']='min'
         #end if
     #end if
@@ -493,69 +707,66 @@
     #import csv
     #import subprocess
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
-    mkdir -p data/integration_files &&
+    mkdir -p data &&
 
     #if $path_kegg_metabolites:
-        ln -s '$path_kegg_metabolites' data/integration_files/pathways_kegg_metabolites.csv &&
+        ln -s '$path_kegg_metabolites' data/pathways_kegg_metabolites.csv &&
     #end if
     #if $path_kegg_transcripts:
-        ln -s '$path_kegg_transcripts' data/integration_files/pathways_kegg_transcripts.csv &&
+        ln -s '$path_kegg_transcripts' data/pathways_kegg_transcripts.csv &&
     #end if
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
 
     #set $impute_values  = {}
     #if str( $data_input.data_input_selector ) == "abundance":
         #if $data_input.abundance_file:
-            ln -s '$data_input.abundance_file' data/raw/abundance.csv &&
+            ln -s '$data_input.abundance_file' data/abundance.csv &&
             #silent $impute_values['abundances']='min'
         #end if
     #else:
         #if $data_input.me_or_frac_contrib_file:
-            ln -s '$data_input.me_or_frac_contrib_file' data/raw/me_or_frac_contrib.csv &&
+            ln -s '$data_input.me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
             #silent $impute_values['mean_enrichment']='min'
         #end if
     #end if
 
     #for $i, $s in enumerate($deg_list)
         #set $cpt = str($i+1)
-        ln -s '${s.input}' data/integration_files/DEG_comparison'${cpt}'.csv &&
+        ln -s '${s.input}' data/DEG_comparison'${cpt}'.csv &&
     #end for
 
 
     ]]></token>
     <token name="@INIT_DIFF_MULTIGROUP_ANALYSIS@"><![CDATA[
 
-    mkdir -p data/raw &&
-    mkdir -p data/processed &&
+    mkdir -p data &&
 
     #if $metadata_path:
-        ln -s '$metadata_path' data/raw/metadata.csv &&
+        ln -s '$metadata_path' data/metadata.csv &&
     #end if
 
     #set $impute_values  = {}
     #if str( $data_input.data_input_selector ) == "abundance":
         #if $data_input.abundance_file:
-            ln -s '$data_input.abundance_file' data/raw/abundance.csv &&
+            ln -s '$data_input.abundance_file' data/abundance.csv &&
             #silent $impute_values['abundances']='min'
         #end if
     #elif str( $data_input.data_input_selector ) == "mean_enrichment":
         #if $data_input.me_or_frac_contrib_file:
-            ln -s '$data_input.me_or_frac_contrib_file' data/raw/me_or_frac_contrib.csv &&
+            ln -s '$data_input.me_or_frac_contrib_file' data/me_or_frac_contrib.csv &&
             #silent $impute_values['mean_enrichment']='min'
         #end if
     #elif str( $data_input.data_input_selector ) == "isotop_prop":
         #if $data_input.isotop_prop_file:
-            ln -s '$data_input.isotop_prop_file' data/raw/isotop_prop.csv &&
+            ln -s '$data_input.isotop_prop_file' data/isotop_prop.csv &&
             #silent $impute_values['isotopologue_proportions']='min'
         #end if
     #else
         #if $data_input.isotop_abs_file:
-            ln -s '$data_input.isotop_abs_file' data/raw/isotop_abs.csv &&
+            ln -s '$data_input.isotop_abs_file' data/isotop_abs.csv &&
             #silent $impute_values['isotopologues']='min'
         #end if
     #end if
@@ -619,6 +830,20 @@
         $conds.append(re.sub('"', '', str($co)))
     #end for
     ]]></token>
+    <token name="@INIT_PLOT_CONDITIONS@"><![CDATA[
+    #set $conditions = list()
+    #for $i, $s in enumerate($plot_factor_list)
+        #set $cpt = str($i+1)
+        $conditions.append(re.sub('"', '', str($s.condition)))
+    #end for
+    ]]></token>
+    <token name="@INIT_ABUNDANCE_PLOT_CONDITIONS@"><![CDATA[
+    #set $conditions = list()
+    #for $i, $s in enumerate($plot_abundance_factor_list)
+        #set $cpt = str($i+1)
+        $conditions.append(re.sub('"', '', str($s.condition)))
+    #end for
+    ]]></token>
     <token name="@INIT_TIMEPOINTS@"><![CDATA[
 
     #import re
@@ -641,7 +866,10 @@
     #for $cp in $compartments:
         #silent $metabolites[re.sub('"', '', str($cp))]=list()
         #for $met in $metabolites_list:
-            $metabolites[re.sub('"', '', str($cp))].append(re.sub('"', '\'', str($met)))
+            #set tmp_met=re.sub('\,', '%%',str($met))
+            #set tmp_met_bis=str(re.split('_m', str($tmp_met))[0])
+            #set tmp_met_ter=re.sub('%%', '\,',str($tmp_met_bis))
+            $metabolites[re.sub('"', '', str($cp))].append(re.sub('"', '\'', str(tmp_met_ter)))
         #end for
     #end for
     ]]></token>
@@ -681,10 +909,43 @@
     ]]></token>
     <token name="@INIT_CONDITIONS_TIMECOURSE@"><![CDATA[
     #import re
-    #set $conds = list()
-    #for $co in $conditions:
-        $conds.append(re.sub('"', '', str($co)))
+    #set $conditions = list()
+    #for $i, $s in enumerate($factor_list)
+        #set $cpt = str($i+1)
+        $conditions.append(re.sub('"', '', str($s.condition)))
+    #end for
+
+    ]]></token>
+    <token name="@INIT_BIVAR_COMPARISONS@"><![CDATA[
+    #import re
+    #set $conditions = list()
+    #for $i, $s in enumerate($plot_factor_list)
+        #set $cpt = str($i+1)
+        $conditions.append(re.sub('"', '', str($s.condition)))
     #end for
+    ]]></token>
+    <token name="@INIT_COMPARISONS_METABOLOGRAM@"><![CDATA[
+    #import re
+    #set $conditions = list()
+    #set $timepoints = list()
+    #set $comparisons = list()
+    #for $i, $s in enumerate($deg_list)
+        #set $cpt = str($i+1)
+        #set $comparisons_bis = list()
+        #for $j, $t in enumerate($s.factor_list)
+            #set $sub_comparisons = list()
+            #if str($t.condition) not in $conditions:
+                $conditions.append(re.sub('"', '', str($t.condition)))
+            #end if
+            $sub_comparisons.append(re.sub('"', '', str($t.condition)))
+            $sub_comparisons.append(re.sub('"', '', str($s.timepoint)))
+            $comparisons_bis.append($sub_comparisons)
+        #end for
+        $timepoints.append(re.sub('"', '', str($s.timepoint)))
+        $comparisons.append($comparisons_bis)
+    #end for
+
+
 
     ]]></token>
     <token name="@INIT_COMPARISONS@"><![CDATA[
@@ -753,6 +1014,75 @@
         #end if
     #end if
     ]]></token>
+    <token name="@INIT_DIFF_ANALYSIS_COMPARISONS@"><![CDATA[
+    #import re
+    #set $conditions = list()
+    #for $i, $s in enumerate($factor_list)
+        #set $cpt = str($i+1)
+        $conditions.append(re.sub('"', '', str($s.condition)))
+    #end for
+
+    #set $timepoints = list()
+    #for $tp in $timepoint:
+        $timepoints.append(re.sub('"', '', str($tp)))
+    #end for
+
+    #set $comparisons = list()
+    #if len($conditions) > 1:
+        #if len($timepoints) > 0:
+            #for $tp in $timepoint:
+                #set $ctrl_found=False
+                #set $ctrl=""
+                #set $comparisons_bis = list()
+
+                #for $co in $conditions:
+                    #set $sub_comparisons = list()
+                    #if str($co) in ["'Control'", "'control'", "'ctrl'"]:
+                        #set $ctrl_found=True
+                        #set $ctrl=str($co)
+                    #else:
+                        $sub_comparisons.append(re.sub('"', '', str($co)))
+                        $sub_comparisons.append(re.sub('"', '', str($tp)))
+
+                    #end if
+                    $comparisons_bis.append($sub_comparisons)
+                #end for
+
+                #if $ctrl_found:
+                    $sub_comparisons.append(str($ctrl))
+                    $sub_comparisons.append(str($tp))
+                    $comparisons_bis.append($sub_comparisons)
+                #end if
+
+                $comparisons.append($comparisons_bis)
+            #end for
+         #else
+            #for $co in $conditions:
+                $comparisons.append(re.sub('"', '', str($co)))
+            #end for
+        #end if
+
+    #else
+        #if len($conditions) > 0:
+            #if len($timepoints) > 1:
+                #for $co in $conditions:
+                    #set $comparisons_bis = list()
+                    #for $tp in $timepoint:
+                        #set $sub_comparisons = list()
+                        $sub_comparisons.append(re.sub('"', '', str($co)))
+                        $sub_comparisons.append(re.sub('"', '', str($tp)))
+                        $comparisons_bis.append($sub_comparisons)
+                    #end for
+                    $comparisons.append($comparisons_bis)
+                #end for
+            #end if
+        #else
+            #for $tp in $timepoint:
+                $comparisons.append(re.sub('"', '', str($tp)))
+            #end for
+        #end if
+    #end if
+    ]]></token>
     <token name="@INIT_TRANSCRIPTS@"><![CDATA[
     #import re
     #import os
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CorrectedIsotopologues_5.csv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,52 @@
+ID	MCF001089_TD01	MCF001089_TD02	MCF001089_TD07	MCF001089_TD08	MCF001089_TD19	MCF001089_TD20	MCF001089_TD25	MCF001089_TD26	MCF001089_TD37	MCF001089_TD38	MCF001089_TD43	MCF001089_TD44	MCF001089_TD55	MCF001089_TD56	MCF001089_TD61	MCF001089_TD62
+Fructose_1,6-bisphosphate_m+0		1	0	1	0.5			0.9								
+Fructose_1,6-bisphosphate_m+1		0	0	0	0		0.001	0								
+Fructose_1,6-bisphosphate_m+2		0	0	0	0			0								
+Fructose_1,6-bisphosphate_m+3		0	0	0	0			0								
+Fructose_1,6-bisphosphate_m+4		0	1	0	0.5		0.001	0.1								
+Fructose_1,6-bisphosphate_m+5		0	0	0	0			0								
+Fructose_1,6-bisphosphate_m+6		0	0	0	0			0								
+Fumaric_acid_m+0	1		1	0.9979		1		1								
+Fumaric_acid_m+1	0		0	0		0		0								
+Fumaric_acid_m+2	0		0	0.0043		0		0.0009								
+Fumaric_acid_m+3	0.0004		0.0006	0		0		0.0013								
+Fumaric_acid_m+4	0.0003		0.0004	0.0004	0.0003	0.0005		0.0003								
+Glycine_m+0	0.5	0.5	0.25	0.3	0.001	0.001	0.2	0	0.7			0.6		0.25		0.3
+Glycine_m+1	0.2	0.2	0.55	0.6	0.2	0.2	0.3	0.5	0.3			0.4		0.55		0.6
+Glycine_m+2	0.001	0.001	0	0.1	0.5	0.5	0.5	0.5	0			0		0		0.1
+L-Alanine_m+0	0.7	0.77	1	1	0	0	0.7	0.77								
+L-Alanine_m+1	0.3	0.23	0	0	0.01	0.01	0.3	0.23								
+L-Alanine_m+2	0.01	0.01	0	0.0002	0.211	0.211	0	0								
+L-Alanine_m+3	0	0	0.0055	0.0069	0.699	0.699	0	0	0	0	0	0.0037	0	0	0	0
+L-Arginine_m+0	0.07	0.07	0	0	0.0001	0.0001	0	0	1	0	0	0	0	0	0	0
+L-Arginine_m+1	0.06	0.06	0	0	0.02	0.02	0	1	0	0	0	0	0	0	0	1
+L-Arginine_m+2	0.05	0.05	0	0	0.03	0.03	0	0	0	0	0	0	1	0	0	0
+L-Arginine_m+3	0.04	0.04	1	1	0.04	0.04	1	0	0	1	1	1	0	1	1	0
+L-Arginine_m+4	0.03	0.03	0	0	0.05	0.05	0	0	0	0	0	0	0	0	0	0
+L-Arginine_m+5	0.02	0.02	0	0	0.06	0.06	0	0	0	0	0	0	0	0	0	0
+L-Arginine_m+6	0.0001	0.0001	0	0	0.07	0.07	0	0	0	0	0	0	0	0	0	0
+L-Aspartic_acid_m+0	0.9863	0.9866	0.745	0.7303	0	0.001	0.7523	0.7437								
+L-Aspartic_acid_m+1	0.0004	0	0.0716	0.0701	0.0014	0.0021	0.0635	0.063								
+L-Aspartic_acid_m+2	0.0117	0.0131	0.1214	0.1303	0.0159	0.0141	0.1137	0.1193								
+L-Aspartic_acid_m+3	0.0016	0.0008	0.055	0.0573	0.2	0.18	0.0589	0.0596								
+L-Aspartic_acid_m+4	0	0	0.007	0.012	0	0	0.0117	0.0143								
+L-Glutamic_acid_m+0	0.5	0.5	0.5577	0.5714	0.001	0.001	0.5577	0.5556								
+L-Glutamic_acid_m+1	0.23	0.23	0.0737	0.0687	0.04	0.04	0.0715	0.0688								
+L-Glutamic_acid_m+2	0.13	0.13	0.2485	0.2455	0.1	0.1	0.2477	0.2507								
+L-Glutamic_acid_m+3	0.1	0.1	0.0619	0.057	0.13	0.13	0.0628	0.0625								
+L-Glutamic_acid_m+4	0.04	0.04	0.0487	0.0477	0.23	0.23	0.0508	0.0506								
+L-Glutamic_acid_m+5	0.001	0.001	0.0094	0.0096	0.5	0.5	0.0095	0.0118								
+L-Glutamine_m+0	1		0.4		0.4	0.2		0.6673								
+L-Glutamine_m+1	0		0.0347		0.34	0		0.0526								
+L-Glutamine_m+2	0.01		0.1482		0.009	0.0104		0.1919								
+L-Glutamine_m+3	0		0.2371		0	0		0.043								
+L-Glutamine_m+4	0		0.0263		0	0.36		0.0374								
+L-Glutamine_m+5	0		0.0053		0	0.04		0.0078								
+L-Lactic_acid_m+0	0	0	0.9878	0.9883	0.9878	0.9883	0	0	0.0155	0.0168	0.0173	0.0191	0.0147	0.0135	0.0229	0.0165
+L-Lactic_acid_m+1	0	0	0.0122	0.0117	0.0122	0.0117	0	0	0.0002	0.0002	0.0002	0.0002	0.0002	0.0002	0.0001	0.0002
+L-Lactic_acid_m+2	0.0115	0.0121	0.0001	0	0.0001	0	0.0115	0.0121	0.0121	0.012	0.0121	0.012	0.012	0.0121	0.0118	0.0119
+L-Lactic_acid_m+3	0.9885	0.9879	0	0.0001	0	0.0001	0.9885	0.9879	0.9723	0.9709	0.9704	0.9687	0.9731	0.9742	0.9651	0.9713
+Pyruvic_acid_m+0	0.08	0.07	0.3	0.2	0.57	0.6	0.01	0.3	0.1	0.1	0.3	0.2	0.57	0.6	0.01	0.3
+Pyruvic_acid_m+1	0.12	0.13	0.3	0.6	0.23	0.2	0.15	0.2	0.1	0.1	0.3	0.6	0.23	0.2	0.15	0.2
+Pyruvic_acid_m+2	0.2	0.23	0.3	0.15	0.0001	0.0001	0.35	0.2	0.2	0.23	0.3	0.15	0.1	0.1	0.35	0.2
+Pyruvic_acid_m+3	0.6	0.57	0.1	0.15	0.0005	0.0005	0.25	0.3	0.6	0.57	0.1	0.15	0.1	0.1	0.25	0.3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/FracContribution_C_5.csv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,26 @@
+ID	MCF001089_TD01	MCF001089_TD02	MCF001089_TD07	MCF001089_TD08	MCF001089_TD19	MCF001089_TD20	MCF001089_TD25	MCF001089_TD26	MCF001089_TD37	MCF001089_TD38	MCF001089_TD43	MCF001089_TD44	MCF001089_TD55	MCF001089_TD56	MCF001089_TD61	MCF001089_TD62
+Fructose_1,6-bisphosphate		0.0	0.0	0.0	0.0			0.0								
+Fumaric_acid	0.0	0.0	0.0	0.00189664357263286	0.0	0.0		0.000500041300531799								
+Glycine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+Hexose	0.00762749174596484	0.00167577130357252	0.00509338901447358	0.00252875218461319	0.00575687494289638	0.00521882313638746	0.0041732481389427	0.00462441914606014	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+Hexose-phosphate	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+Ile_Leu	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Alanine	0.000300183098510707	0.0	0.0180323570915377	0.0208864367091383	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Arginine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Asparagine									0.0	0.0	0.0	0.0	0.00275043348149139	0.0	0.0	0.0
+L-Aspartic_acid	0.00711429300863751	0.00711565170397871	0.126874713735778	0.137607007753336	0.00887214703655263	0.00814181833419956	0.128546005517517	0.134463940877588								
+L-Glutamic_acid	0.0186189922849795	0.0189512529072842	0.199700486213809	0.193976641844404	0.0186857662222136	0.0202828476474173	0.20124661989943	0.203786827442622								
+L-Glutamine	0.00160200012909904	0.0	0.114887862236339	0.139366599094848	0.00227741586424723	0.0022177382266197	0.125412764443405	0.150842877169667								
+L-Histidine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Lactic_acid	0.996169569495619	0.995975477500888	0.99592721423554	0.996105017845211	0.99599115961227	0.99599772879137	0.996132991391358	0.996246688151202	0.980373866526704	0.979007295796873	0.978534478509106	0.976787596299441	0.981176728749348	0.982344821248399	0.973048888977137	0.979345434097336
+L-Lysine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Malic_acid	3.53420625487163e-05	8.4896366324339e-05	0.00753337452964479	0.0113698929771914	0.0	0.0	0.00614506153792491	0.00843804328368624								
+L-Methionine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Phenylalanine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Proline	0.00610056503723104	0.00513475924422191	0.016636816203803	0.0146250924721546	0.00333324651935455	0.00398908903111498	0.0133985852742358	0.0146846667756098	0.000911540747703803	0.00221029683948302	0.00846057868350799	0.0	0.0	0.0	0.0022582830613801	0.0
+L-Serine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Threonine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Tryptophan	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Tyrosine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+L-Valine	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0	0.0
+Pyruvic_acid	1.0	1.0	1.0	1.0	1.0	1.0	1.0	1.0	4.56717332815963e-05	0.0	0.00288745573738021	0.00271907830075352	0.00013907509437508	5.51743930058195e-05	0.00358424038619463	0.00376914936570372
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell-Control-L-Cycloserine-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,25 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Glycine	-1.0	1.0	1.0	cell	[4.255576 3.417613]	[2.87226  3.424984]
+Hexose	-1.0	1.0	1.0	cell	[4.618336 3.491236]	[2.947138 3.203724]
+Hexose-phosphate	-1.0	1.0	1.0	cell	[4.108111 2.697149]	[2.413296 2.655447]
+L-Alanine	-1.0	1.0	1.0	cell	[3.302788 3.14283 ]	[2.43315  3.200548]
+L-Lysine	-1.0	1.0	1.0	cell	[5.576418 3.786704]	[3.432559 3.499267]
+L-Proline	-1.0	1.0	1.0	cell	[4.05992  3.613014]	[2.83203  3.879342]
+L-Serine	-1.0	1.0	1.0	cell	[5.329834 4.292357]	[3.623779 4.074288]
+L-Threonine	-1.0	1.0	1.0	cell	[4.997154 3.623269]	[3.434891 3.45371 ]
+Ile_Leu	1.0	1.0	1.0	cell	[4.900535 3.337393]	[3.030205 2.922865]
+L-Arginine	1.0	1.0	1.0	cell	[5.002539 3.168993]	[3.358616 2.794746]
+L-Aspartic_acid	1.0	1.0	1.0	cell	[2.926178 0.604969]	[1.310091 0.508822]
+L-Glutamic_acid	1.0	1.0	1.0	cell	[3.916821 2.30352 ]	[2.203319 2.192284]
+L-Glutamine	1.0	1.0	1.0	cell	[3.10904  1.458991]	[1.569472 1.216207]
+L-Histidine	1.0	1.0	1.0	cell	[5.046696 3.143408]	[3.188606 2.910277]
+L-Lactic_acid	1.0	1.0	1.0	cell	[4.388836 3.17085 ]	[2.580271 2.467079]
+L-Malic_acid	1.0	1.0	1.0	cell	[3.984239 2.221886]	[3.288748 2.652708]
+L-Methionine	1.0	1.0	1.0	cell	[5.30659 3.77877]	[3.589049 3.574521]
+L-Phenylalanine	1.0	1.0	1.0	cell	[4.846542 3.17885 ]	[3.031899 2.794881]
+L-Tryptophan	1.0	1.0	1.0	cell	[4.92931  2.874653]	[2.759392 2.666666]
+L-Tyrosine	1.0	1.0	1.0	cell	[5.003738 3.325451]	[3.166826 2.956651]
+L-Valine	1.0	1.0	1.0	cell	[5.655527 4.449566]	[4.032882 3.998557]
+Pyruvic_acid	1.0	1.0	1.0	cell	[1.408848 2.63986 ]	[1.01521  2.037201]
+Fructose_1,6-bisphosphate				cell	[    nan 0.71992]	[nan nan]
+Fumaric_acid				cell	[3.692766 1.743812]	[2.397314      nan]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--med-Control-L-Cycloserine-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,20 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Hexose	-1.0	1.0	1.0	med	[17.323478 16.30882 ]	[17.234918 19.00465 ]
+Ile_Leu	-1.0	1.0	1.0	med	[16.69374  15.713286]	[17.497952 18.300431]
+L-Alanine	-1.0	1.0	1.0	med	[6.016043 5.722255]	[6.847528 7.781428]
+L-Asparagine	-1.0	1.0	1.0	med	[10.236824  8.224644]	[ 9.877881 10.424269]
+L-Histidine	-1.0	1.0	1.0	med	[27.655594 25.868636]	[27.272808 28.447726]
+L-Lactic_acid	-1.0	1.0	1.0	med	[25.499578 24.518913]	[24.102561 26.366482]
+L-Methionine	-1.0	1.0	1.0	med	[17.685546 16.454068]	[18.42993  18.993209]
+L-Phenylalanine	-1.0	1.0	1.0	med	[16.550902 15.608278]	[17.382841 18.270953]
+L-Proline	-1.0	1.0	1.0	med	[3.778766 2.810272]	[4.090356 5.553318]
+L-Serine	-1.0	1.0	1.0	med	[18.049649 16.621876]	[18.097065 19.327089]
+L-Threonine	-1.0	1.0	1.0	med	[23.81829  22.118877]	[24.1371   24.713005]
+L-Tyrosine	-1.0	1.0	1.0	med	[18.565282 17.161201]	[18.880702 19.863464]
+L-Valine	-1.0	1.0	1.0	med	[22.789674 21.740482]	[23.848366 24.293696]
+Glycine	1.0	1.0	1.0	med	[4.11994 3.84192]	[5.444741 4.334016]
+Hexose-phosphate	1.0	1.0	1.0	med	[7.225669 5.373172]	[8.029712 6.894561]
+L-Arginine	1.0	1.0	1.0	med	[52.762527 50.409341]	[52.519447 51.499051]
+L-Lysine	1.0	1.0	1.0	med	[68.280981 66.313756]	[68.367814 67.499031]
+L-Tryptophan	1.0	1.0	1.0	med	[14.618856 12.939212]	[13.272943 12.897328]
+Pyruvic_acid	1.0	1.0	1.0	med	[26.166366 26.254509]	[27.261571 27.575891]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example5_metadata.csv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,17 @@
+name_to_plot	condition	timepoint	timenum	compartment	original_name
+Ctrl_cell_T0-1	Control	T0	0	cell	MCF001089_TD01
+Ctrl_cell_T0-2	Control	T0	0	cell	MCF001089_TD02
+Ctrl_cell_T2h-1	Control	T2h	2	cell	MCF001089_TD07
+Ctrl_cell_T2h-2	Control	T2h	2	cell	MCF001089_TD08
+L-Cyc_cell_T0-1	L-Cycloserine	T0	0	cell	MCF001089_TD19
+L-Cyc_cell_T0-2	L-Cycloserine	T0	0	cell	MCF001089_TD20
+L-Cyc_cell_T2h-1	L-Cycloserine	T2h	2	cell	MCF001089_TD25
+L-Cyc_cell_T2h-2	L-Cycloserine	T2h	2	cell	MCF001089_TD26
+Ctrl_med_T0-1	Control	T0	0	med	MCF001089_TD37
+Ctrl_med_T0-2	Control	T0	0	med	MCF001089_TD38
+Ctrl_med_T2h-1	Control	T2h	2	med	MCF001089_TD43
+Ctrl_med_T2h-2	Control	T2h	2	med	MCF001089_TD44
+L-Cyc_med_T0-1	L-Cycloserine	T0	0	med	MCF001089_TD55
+L-Cyc_med_T0-2	L-Cycloserine	T0	0	med	MCF001089_TD56
+L-Cyc_med_T2h-1	L-Cycloserine	T2h	2	med	MCF001089_TD61
+L-Cyc_med_T2h-2	L-Cycloserine	T2h	2	med	MCF001089_TD62
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--cell--MDV-Control-L-Cycloserine--T0-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,11 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+L-Arginine	-0.979871	0.000109	0.001092	cell	[0.07   0.06   0.05   0.04   0.03   0.02   0.0001]	[0.0001 0.02   0.03   0.04   0.05   0.06   0.07  ]
+Glycine	-0.973056	0.148117	0.493723	cell	[0.5   0.2   0.001]	[0.001 0.2   0.5  ]
+L-Glutamic_acid	-0.739657	0.092845	0.464226	cell	[0.5   0.23  0.13  0.1   0.04  0.001]	[0.001 0.04  0.1   0.13  0.23  0.5  ]
+Pyruvic_acid	-0.67551	0.32449	0.657105	cell	[0.074833 0.1249   0.214476 0.584808]	[5.84808e-01 2.14476e-01 1.00000e-04 5.00000e-04]
+L-Alanine	-0.671448	0.328552	0.657105	cell	[7.34166e-01 2.62679e-01 1.00000e-02 1.00000e-04]	[1.00e-04 1.00e-02 2.11e-01 6.99e-01]
+L-Lactic_acid	-0.344007	0.655993	0.937133	cell	[1.0000e-04 1.0000e-04 1.1796e-02 9.8820e-01]	[9.8805e-01 1.1947e-02 1.0000e-04 1.0000e-04]
+L-Aspartic_acid	-0.278038	0.650607	0.937133	cell	[9.8645e-01 2.0000e-04 1.2380e-02 1.1310e-03 1.0000e-04]	[3.16000e-04 1.71500e-03 1.49730e-02 1.89737e-01 1.00000e-04]
+Fructose_1,6-bisphosphate				cell	[nan nan nan nan nan nan nan]	[nan nan nan nan nan nan nan]
+Fumaric_acid				cell	[nan nan nan nan nan]	[     nan      nan      nan      nan 0.000387]
+L-Glutamine				cell	[nan nan nan nan nan nan]	[2.82843e-01 5.83100e-03 9.67500e-03 1.00000e-04 6.00000e-03 2.00000e-03]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--cell--MDV-Control-L-Cycloserine--T2h-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,11 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.407405	0.592595	1.0	cell	[0.244949 0.424264 0.212132 0.122474]	[0.054772 0.173205 0.264575 0.273861]
+L-Lactic_acid	-0.344007	0.655993	1.0	cell	[9.8805e-01 1.1947e-02 1.0000e-04 1.0000e-04]	[1.0000e-04 1.0000e-04 1.1796e-02 9.8820e-01]
+Glycine	-0.187368	0.880008	1.0	cell	[0.273861 0.574456 0.003162]	[0.004472 0.387298 0.5     ]
+L-Arginine	0.645497	0.117387	0.293467	cell	[1.e-04 1.e-04 1.e-04 1.e+00 1.e-04 1.e-04 1.e-04]	[0.0001 0.01   0.0001 0.01   0.0001 0.0001 0.0001]
+L-Alanine	0.932835	0.067165	0.223885	cell	[1.00e+00 1.00e-04 1.41e-04 6.16e-03]	[7.34166e-01 2.62679e-01 1.00000e-04 1.00000e-04]
+L-Aspartic_acid	0.99977	4e-06	2.1e-05	cell	[0.737613 0.070846 0.125771 0.056138 0.009165]	[0.747988 0.06325  0.116466 0.059249 0.012935]
+L-Glutamic_acid	0.999941	0.0	0.0	cell	[0.564508 0.071156 0.246995 0.059399 0.048197 0.009499]	[0.556649 0.070137 0.249195 0.06265  0.0507   0.010588]
+Fructose_1,6-bisphosphate				cell	[0.01   0.0001 0.0001 0.0001 0.01   0.0001 0.0001]	[     nan 0.000316      nan      nan 0.01          nan      nan]
+Fumaric_acid				cell	[9.98949e-01 1.00000e-04 6.56000e-04 2.45000e-04 4.00000e-04]	[nan nan nan nan nan]
+L-Glutamine				cell	[nan nan nan nan nan nan]	[nan nan nan nan nan nan]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--cell--MDV-T2h-T0--Control-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,11 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.710557	0.289443	0.723607	cell	[0.244949 0.424264 0.212132 0.122474]	[0.074833 0.1249   0.214476 0.584808]
+L-Lactic_acid	-0.344007	0.655993	1.0	cell	[9.8805e-01 1.1947e-02 1.0000e-04 1.0000e-04]	[1.0000e-04 1.0000e-04 1.1796e-02 9.8820e-01]
+L-Arginine	0.025903	0.956041	1.0	cell	[1.e-04 1.e-04 1.e-04 1.e+00 1.e-04 1.e-04 1.e-04]	[0.07   0.06   0.05   0.04   0.03   0.02   0.0001]
+Glycine	0.368192	0.759953	1.0	cell	[0.273861 0.574456 0.003162]	[0.5   0.2   0.001]
+L-Glutamic_acid	0.895139	0.015917	0.079587	cell	[0.564508 0.071156 0.246995 0.059399 0.048197 0.009499]	[0.5   0.23  0.13  0.1   0.04  0.001]
+L-Alanine	0.934368	0.065632	0.218775	cell	[1.00e+00 1.00e-04 1.41e-04 6.16e-03]	[7.34166e-01 2.62679e-01 1.00000e-02 1.00000e-04]
+L-Aspartic_acid	0.99186	0.00088	0.008805	cell	[0.737613 0.070846 0.125771 0.056138 0.009165]	[9.8645e-01 2.0000e-04 1.2380e-02 1.1310e-03 1.0000e-04]
+Fructose_1,6-bisphosphate				cell	[0.01   0.0001 0.0001 0.0001 0.01   0.0001 0.0001]	[nan nan nan nan nan nan nan]
+Fumaric_acid				cell	[9.98949e-01 1.00000e-04 6.56000e-04 2.45000e-04 4.00000e-04]	[nan nan nan nan nan]
+L-Glutamine				cell	[nan nan nan nan nan nan]	[nan nan nan nan nan nan]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--cell--MDV-T2h-T0--L-Cycloserine-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,11 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.995621	0.004379	0.043786	cell	[0.054772 0.173205 0.264575 0.273861]	[5.84808e-01 2.14476e-01 1.00000e-04 5.00000e-04]
+L-Alanine	-0.666339	0.333661	0.834151	cell	[7.34166e-01 2.62679e-01 1.00000e-04 1.00000e-04]	[1.00e-04 1.00e-02 2.11e-01 6.99e-01]
+L-Glutamic_acid	-0.600809	0.207224	0.834151	cell	[0.556649 0.070137 0.249195 0.06265  0.0507   0.010588]	[0.001 0.04  0.1   0.13  0.23  0.5  ]
+L-Lactic_acid	-0.344007	0.655993	0.938087	cell	[1.0000e-04 1.0000e-04 1.1796e-02 9.8820e-01]	[9.8805e-01 1.1947e-02 1.0000e-04 1.0000e-04]
+L-Aspartic_acid	-0.273092	0.656661	0.938087	cell	[0.747988 0.06325  0.116466 0.059249 0.012935]	[3.16000e-04 1.71500e-03 1.49730e-02 1.89737e-01 1.00000e-04]
+L-Arginine	-0.243607	0.598601	0.938087	cell	[0.0001 0.01   0.0001 0.01   0.0001 0.0001 0.0001]	[0.0001 0.02   0.03   0.04   0.05   0.06   0.07  ]
+Glycine	0.912581	0.268172	0.834151	cell	[0.004472 0.387298 0.5     ]	[0.001 0.2   0.5  ]
+Fructose_1,6-bisphosphate				cell	[     nan 0.000316      nan      nan 0.01          nan      nan]	[nan nan nan nan nan nan nan]
+Fumaric_acid				cell	[nan nan nan nan nan]	[     nan      nan      nan      nan 0.000387]
+L-Glutamine				cell	[nan nan nan nan nan nan]	[2.82843e-01 5.83100e-03 9.67500e-03 1.00000e-04 6.00000e-03 2.00000e-03]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--med--MDV-Control-L-Cycloserine--T0-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,6 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.566976	0.433024	0.855516	med	[0.1      0.1      0.214476 0.584808]	[0.584808 0.214476 0.1      0.1     ]
+L-Arginine	0.3	0.51331	0.855516	med	[0.01   0.0001 0.0001 0.01   0.0001 0.0001 0.0001]	[0.0001 0.0001 0.01   0.01   0.0001 0.0001 0.0001]
+L-Lactic_acid	0.999998	2e-06	1e-05	med	[1.6137e-02 2.0000e-04 1.2050e-02 9.7160e-01]	[1.4087e-02 2.0000e-04 1.2050e-02 9.7365e-01]
+Glycine				med	[nan nan nan]	[nan nan nan]
+L-Alanine				med	[0.0001]	[0.0001]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--med--MDV-Control-L-Cycloserine--T2h-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,6 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.407405	0.592595	0.987658	med	[0.244949 0.424264 0.212132 0.122474]	[0.054772 0.173205 0.264575 0.273861]
+L-Arginine	0.645497	0.117387	0.293467	med	[1.e-04 1.e-04 1.e-04 1.e+00 1.e-04 1.e-04 1.e-04]	[0.0001 0.01   0.0001 0.01   0.0001 0.0001 0.0001]
+L-Lactic_acid	0.999999	1e-06	5e-06	med	[1.8178e-02 2.0000e-04 1.2050e-02 9.6955e-01]	[1.94380e-02 1.41000e-04 1.18500e-02 9.68195e-01]
+Glycine				med	[nan nan nan]	[nan nan nan]
+L-Alanine				med	[0.000608]	[0.0001]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--med--MDV-T2h-T0--Control-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,6 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.764727	0.235273	0.392122	med	[0.244949 0.424264 0.212132 0.122474]	[0.1      0.1      0.214476 0.584808]
+L-Arginine	0.645497	0.117387	0.293467	med	[1.e-04 1.e-04 1.e-04 1.e+00 1.e-04 1.e-04 1.e-04]	[0.01   0.0001 0.0001 0.01   0.0001 0.0001 0.0001]
+L-Lactic_acid	0.999998	2e-06	1e-05	med	[1.8178e-02 2.0000e-04 1.2050e-02 9.6955e-01]	[1.6137e-02 2.0000e-04 1.2050e-02 9.7160e-01]
+Glycine				med	[nan nan nan]	[nan nan nan]
+L-Alanine				med	[0.000608]	[0.0001]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/isotop_prop--med--MDV-T2h-T0--L-Cycloserine-pearson.tsv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,6 @@
+metabolite	correlation_coefficient	pvalue	padj	compartment	gmean_arr_1	gmean_arr_2
+Pyruvic_acid	-0.974457	0.025543	0.063858	med	[0.054772 0.173205 0.264575 0.273861]	[0.584808 0.214476 0.1      0.1     ]
+L-Arginine	0.3	0.51331	0.855516	med	[0.0001 0.01   0.0001 0.01   0.0001 0.0001 0.0001]	[0.0001 0.0001 0.01   0.01   0.0001 0.0001 0.0001]
+L-Lactic_acid	0.999985	1.5e-05	7.4e-05	med	[1.94380e-02 1.41000e-04 1.18500e-02 9.68195e-01]	[1.4087e-02 2.0000e-04 1.2050e-02 9.7365e-01]
+Glycine				med	[nan nan nan]	[nan nan nan]
+L-Alanine				med	[0.0001]	[0.0001]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rawAbundances_5.csv	Thu Feb 15 12:50:27 2024 +0000
@@ -0,0 +1,26 @@
+ID	MCF001089_TD01	MCF001089_TD02	MCF001089_TD07	MCF001089_TD08	MCF001089_TD19	MCF001089_TD20	MCF001089_TD25	MCF001089_TD26	MCF001089_TD37	MCF001089_TD38	MCF001089_TD43	MCF001089_TD44	MCF001089_TD55	MCF001089_TD56	MCF001089_TD61	MCF001089_TD62
+Fructose_1,6-bisphosphate		81.46798666666666	31.66305777777778	488.62223666666665	30.88032133333333			108.58193666666666								
+Fumaric_acid	1765.8621555555562	2350.101706666667	565.6100944444463	1636.1451616666689	1112.7411533333332	1571.7939723809532		2082.227511666667								
+Glycine	31339.848144444444	19953.502358333335	15011.070372222222	26867.879408333334	20173.435886666666	14121.041376190477	15741.494772222224	25731.819858333336	21082398.016666666	20528546.116666667	19650482.416666664	19152242.516666666	35768152.41666667	21132662.81666667	21540901.71666667	22233782.916666664
+Hexose	15263.525582222223	10653.204421666667	7620.2662477777785	12194.176071666667	9284.639177333334	7131.811518095239	6702.562494444444	11674.364736666666	23812934.643333334	24242428.643333334	22336054.643333334	22906432.643333334	23957348.643333334	23850557.643333334	26889340.643333334	25837975.643333334
+Hexose-phosphate	556790.6730444445	410704.96478333336	215369.08985555556	457681.9897833334	337548.2038266667	233788.3998761905	229354.86985555556	416586.1147833334	1792538.5666666667	1790949.5666666667	1218328.5666666667	1457111.5666666667	2069691.5666666667	1915534.5666666667	1684708.5666666667	1734938.5666666667
+Ile_Leu	723695.6614222223	871117.5290666667	433211.3440444445	674932.9420666667	545783.4088533333	441641.19203809527	354037.3863777778	633452.6395666667	2111708660.1333334	2203285239.133333	2037012929.1333334	2023660803.1333334	2311992779.133333	2210982973.133333	2389754947.133333	2339735205.133333
+L-Alanine	14581.8738	7816.563399999999	7056.1678999999995	14626.51065	9781.123839999998	6324.36291142857	8061.856666666667	13276.4346	1548485.77	1701510.73	1309197.7400000002	1820745.4700000002	1935085.62	1763954.77	1931224.9000000004	2282473.1300000004
+L-Arginine	5680.366466666666	7466.331200000001	4182.386200000001	4069.3133000000003	5139.229840000001	3719.8487428571434	2943.6414666666674	4496.78815	76704557.1	76562817.1	74284491.1	72162535.1	76269336.1	76291863.1	74652772.1	74944609.1
+L-Asparagine									3617749.87	3435790.2	2756887.13	2910381.68	3513705.7	3293797.9	3311566.8	3892175.2
+L-Aspartic_acid	71486.78267333333	55376.312	8361.739503333332	20235.678005	34321.611392	23119.754611428572	7664.626003333333	15616.709855000001								
+L-Glutamic_acid	139191.37992666668	104355.48684499999	46972.50566333334	106954.896995	82261.28531600001	55875.258682857144	47872.660330000006	95053.066995								
+L-Glutamine	18606.32958888889	9863.261441666667	4512.041427777778	8956.960391666667	8701.497033333335	5374.547080952381	4094.7460777777783	6858.299791666668								
+L-Histidine	16420.387355555555	15111.119316666667	8215.772844444444	11717.067916666667	12255.282253333333	8082.469038095238	7269.836411111111	11350.365116666668	66137818.63333333	67607708.63333334	63420421.63333333	61687625.63333333	64943662.63333333	66958084.63333333	67970373.63333334	69607422.63333334
+L-Lactic_acid	1073607.0293955556	1722584.2720466666	973301.2546977778	991816.0770466666	879872.2496373333	726504.4068838095	614361.0746977777	951194.5220466666	9322737799.093334	9302697744.093334	9196079213.093334	8719390692.093334	8901197393.093334	8704911808.093334	9400722189.093334	9863466762.093334
+L-Lysine	11537.73680888889	13806.366056666666	8333.777904444445	8813.939856666668	9173.407525333334	6579.528718095239	6643.038094444445	9442.279106666667	117443154.71333334	121027940.71333334	115723826.71333334	115850611.09333333	119744345.59333333	119004184.71333334	118584270.71333334	117133694.71333334
+L-Malic_acid	83435.18658666659	84111.08978999997	28512.006359999974	76546.89803999996	79766.01795199995	59945.28643999999	37016.17602666664	84042.47953999996								
+L-Methionine	50953.09172444445	49086.99679333334	28047.987862222224	45217.35266333333	38660.34303466667	29593.68731047619	25367.68152888889	44736.38582833333	111550662.21666667	114041484.58666667	102236906.58666667	107705253.05666667	118873593.96666667	116214414.89666668	118851523.58666667	123449681.58666667
+L-Phenylalanine	246751.26231111115	294311.09893333336	140657.68205555558	222115.47443333335	189439.93394666666	150023.76081904763	115791.1377888889	208570.64043333335	636990553.8666667	649933157.8666667	607515203.8666667	606053781.8666667	685784788.8666667	665904616.8666667	714741480.8666667	705881485.8666667
+L-Proline	6399.387268888889	4826.820016666667	3510.949071111111	6967.536411666666	4196.610013333333	3581.472580952381	4106.875117777778	6867.035166666667	6433495.033333333	6609824.833333334	5540393.533333333	4245151.533333333	7152407.533333333	6966378.033333333	9268074.033333333	9909521.833333334
+L-Serine	34591.22677111111	27843.714578333333	20292.688385555557	30783.493578333335	24105.163262666665	18470.518616190475	18382.152052222224	30617.729578333332	85713015.15666667	86442185.15666667	80830195.15666667	77735867.15666667	87723164.15666667	84905739.15666667	90456917.15666667	93913089.15666667
+L-Threonine	162184.6072	122218.556075	79915.61493	130398.02227	113231.489568	82710.40769142858	75580.73975333333	125274.2576	285717399.29	278341478.49	261018102.39	262753775.69	287841134.94	283733608.09	296904540.79	288355169.29
+L-Tryptophan	4101.068422222223	4813.902566666667	2571.5729777777774	2610.923316666667	2975.5369333333333	2079.1386666666667	2157.056777777778	2678.538611666667	23656601.733333334	24177093.733333334	23401859.733333334	19146747.733333334	22572464.733333334	20887438.733333334	20532655.733333334	21681238.733333334
+L-Tyrosine	216327.26993777775	233028.43495333332	117722.98240222223	189134.5396533333	158752.20572266664	127191.96683047619	98779.61883555555	178181.92245333333	526242843.90666664	541860987.9066666	489041215.90666664	498219681.90666664	554116402.9066666	532238404.90666664	568375310.9066666	574309133.9066666
+L-Valine	204800.46126444443	179839.41518833334	124299.92819888888	183414.65549833333	153570.35555866666	121953.23554190475	102920.69711555555	178884.87684833334	577225423.9966667	578990937.1966666	545903388.7966666	557138987.7966666	606569154.8966666	603361959.6966666	611454433.5966667	621103613.1966666
+Pyruvic_acid	629.5377555555556	1468.3793166666667	1214.9325444444444	2671.4148166666664	750.1246533333333	639.8964666666667	960.6392111111111	2012.0523166666667	1917193228.8333335	1800847679.2333333	1898133517.2333333	1831205498.1333334	1954504808.4333334	1917436849.8333335	1873057071.1333334	2047218329.5333335