Repository 'dimet_isotopologues_plot'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/dimet_isotopologues_plot

Changeset 0:a3349c105bd0 (2023-10-10)
Next changeset 1:9f4451d9d542 (2024-01-23)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/DIMet commit abca848510cb4ac8d09d95634147626ea578cdf0
added:
dimet_isotopologues_plot.xml
macros.xml
test-data/AMINOACIDS-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg
test-data/AbundanceCorrected.csv
test-data/CENTRAL_CARBON_METABOLISM-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg
test-data/CorrectedIsotopologues_reduced.csv
test-data/DEG_comparison_1.csv
test-data/FracContribution_C.csv
test-data/Isotopologues_cell-Fructose_1,6-bisphosphate.svg
test-data/Isotopologues_cell-L-Aspartic_acid.svg
test-data/Isotopologues_cell-L-Glutamic_acid.svg
test-data/Isotopologues_cell-L-Glutamine.svg
test-data/Isotopologues_cell-L-Lactic_acid.svg
test-data/Isotopologues_cell-L-Lysine.svg
test-data/Isotopologues_cell-L-Proline.svg
test-data/Isotopologues_cell-L-Serine.svg
test-data/Isotopologues_med-L-Lactic_acid.svg
test-data/Isotopologues_med-L-Lysine.svg
test-data/Isotopologues_med-L-Proline.svg
test-data/Isotopologues_med-L-Serine.svg
test-data/abundance--cell--multigroup.tsv
test-data/abundance--cell-Control-T0-L-Cycloserine-T0-Tt.tsv
test-data/abundance--cell-Control-T2h-Control-T0-Tt.tsv
test-data/abundance--cell-Control-T2h-L-Cycloserine-T2h-Tt.tsv
test-data/abundance--cell-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv
test-data/abundance--med-Control-T0-L-Cycloserine-T0-Tt.tsv
test-data/abundance--med-Control-T2h-Control-T0-Tt.tsv
test-data/abundance--med-Control-T2h-L-Cycloserine-T2h-Tt.tsv
test-data/abundance--med-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv
test-data/abundances--T0--cell--label-n_pc.svg
test-data/abundances--T0--cell--label-y_pc.svg
test-data/abundances--T0--cell_pc.csv
test-data/abundances--T0--cell_var.csv
test-data/abundances--T0--cell_var.svg
test-data/abundances--T0--med--label-n_pc.svg
test-data/abundances--T0--med--label-y_pc.svg
test-data/abundances--T0--med_pc.csv
test-data/abundances--T0--med_var.csv
test-data/abundances--T0--med_var.svg
test-data/abundances--T2h--cell--label-n_pc.svg
test-data/abundances--T2h--cell--label-y_pc.svg
test-data/abundances--T2h--cell_pc.csv
test-data/abundances--T2h--cell_var.csv
test-data/abundances--T2h--cell_var.svg
test-data/abundances--T2h--med--label-n_pc.svg
test-data/abundances--T2h--med--label-y_pc.svg
test-data/abundances--T2h--med_pc.csv
test-data/abundances--T2h--med_var.csv
test-data/abundances--T2h--med_var.svg
test-data/abundances--cell--label-n_pc.svg
test-data/abundances--cell--label-y_pc.svg
test-data/abundances--cell_pc.csv
test-data/abundances--cell_var.csv
test-data/abundances--cell_var.svg
test-data/abundances--med--label-n_pc.svg
test-data/abundances--med--label-y_pc.svg
test-data/abundances--med_pc.csv
test-data/abundances--med_var.csv
test-data/abundances--med_var.svg
test-data/bars_endo_Fru1P-total_abundance.svg
test-data/example1_metadata.csv
test-data/example2_metadata.csv
test-data/example3_metadata.csv
test-data/legend-abundances-cell.svg
test-data/legend.svg
test-data/legend_isotopologues_stackedbars.svg
test-data/mean_enrichment-cell-Fumaric_acid.svg
test-data/mean_enrichment-cell-Glycine.svg
test-data/mean_enrichment-cell-L-Proline.svg
test-data/mean_enrichment-med-Fumaric_acid.svg
test-data/mean_enrichment-med-Glycine.svg
test-data/mean_enrichment-med-L-Proline.svg
test-data/pathways_kegg_metabolites.csv
test-data/pathways_kegg_transcripts.csv
test-data/rawAbundances.csv
test-data/rawAbundances3.csv
b
diff -r 000000000000 -r a3349c105bd0 dimet_isotopologues_plot.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dimet_isotopologues_plot.xml Tue Oct 10 11:54:46 2023 +0000
[
b'@@ -0,0 +1,252 @@\n+<tool id="dimet_@EXECUTABLE@" name="dimet @TOOL_LABEL@" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05">\n+    <description>\n+        Figures of isotopologues proportions by metabolite, as stacked barplots (by DIMet)\n+    </description>\n+    <macros>\n+        <token name="@TOOL_LABEL@">isotopologues plot</token>\n+        <token name="@EXECUTABLE@">isotopologues_plot</token>\n+        <import>macros.xml</import>\n+    </macros>\n+    <expand macro="requirements"/>\n+    <command detect_errors="exit_code"><![CDATA[\n+    @INIT_CONFIG@\n+    @INIT_ISOTOPOLOGUE_PLOT@\n+    @INIT_CONDITIONS@\n+    @INIT_TIMEPOINTS@\n+    HYDRA_FULL_ERROR=1 python -m dimet\n+        -cp \'$__new_file_path__/config\'\n+        \'++hydra.run.dir=isotopologue_proportions_plot\'\n+        \'++figure_path=figures\'\n+        \'++table_path=tables\'\n+        \'++analysis={\n+            dataset:{\n+                _target_:dimet.data.DatasetConfig,\n+                name: "Galaxy DIMet run"\n+            },\n+            method:{\n+                _target_: dimet.method.IsotopologueProportionsPlotConfig,\n+                label: isotopologue_proportions_plot,\n+                name: "Generate isotopologues proportion plots",\n+                barcolor: timepoint,\n+                axisx: condition,\n+                max_nb_carbons_possible: \'${output_options.max_nb_carbons_possible}\',\n+                appearance_separated_time: \'${output_options.appearance_separated_time}\', ## adds a space between timepoints, conditions stay comparative\n+                split_plots_by_condition: \'${output_options.split_plots_by_condition}\', ## prints each condition in independent plots\n+                x_ticks_text_size: ${output_options.x_ticks_text_size},\n+                y_ticks_text_size: ${output_options.y_ticks_text_size},\n+                as_grid: ${output_options.as_grid},\n+                figure_format:${output_options.figure_format},\n+                sharey:${output_options.sharey}\n+            },\n+            label: isotopologue_proportions_plot\n+        }\'\n+        \'++analysis.dataset.label=\'\n+        \'++analysis.timepoints=${timepoints}\'\n+        \'++analysis.inner_numbers_size=\'${output_options.inner_numbers_size}\'\'\n+        \'++analysis.width_each_stack=\'${output_options.width_each_stack}\'\'\n+        \'++analysis.method.height_each_stack=\'${output_options.height_each_stack}\'\'\n+        \'++analysis.dataset.subfolder=\'\n+        \'++analysis.dataset.conditions=${conds}\'\n+        \'++x_text=\'metabolites\'\'\n+\n+        #if $metadata_path:\n+            \'++analysis.dataset.metadata=metadata\'\n+        #end if\n+        #if $isotop_prop_file:\n+            \'++analysis.dataset.isotopologue_proportions=isotop_prop\'\n+        #end if\n+    @REMOVE_CONFIG@\n+    ]]></command>\n+    <inputs>\n+        <expand macro="input_parameters_isotopologue"/>\n+        <expand macro="conditions"/>\n+        <expand macro="timepoint"/>\n+        <section name="output_options" title="Output options">\n+            <param name="figure_format" type="select" value="pdf" display="radio" label="Select output figure format" help="Please enter at max 1 format">\n+                <option value="pdf">Pdf</option>\n+                <option value="svg">Svg</option>\n+            </param>\n+            <param name="appearance_separated_time" type="boolean" value="false" label="appearance separated time"\n+                   help="Default value is false."/>\n+            <param name="split_plots_by_condition" type="boolean" value="false" label="split plots by condition"\n+                   help="Default value is false."/>\n+            <param name="as_grid" type="boolean" value="false" label="plot as grid"\n+                   help="Default value is false."/>\n+            <param name="sharey" type="boolean" value="false" label="share y axis"\n+                   help="Default value is false."/>\n+            <param name="x_ticks_text_size" type="integer" min="1" max="24" value="18" label="xticks text size"\n+                '..b'on**   **timepoint** **timenum**  **compartment**   **original_name**\n+    -------------------- --------------- ------------- ------------ ---------------- -----------------\n+    Control_cell_T0-1    Control         T0            0            cell             MCF001089_TD01\n+    Control_cell_T0-2    Control         T0            0            cell             MCF001089_TD02\n+    Control_cell_T0-3    Control         T0            0            cell             MCF001089_TD03\n+    Tumoral_cell_T0-1    Tumoral         T0            0            cell             MCF001089_TD04\n+    Tumoral_cell_T0-2    Tumoral         T0            0            cell             MCF001089_TD05\n+    Tumoral_cell_T0-3    Tumoral         T0            0            cell             MCF001089_TD06\n+    Tumoral_cell_T24-1   Tumoral         T24           24           cell             MCF001089_TD07\n+    Tumoral_cell_T24-2   Tumoral         T24           24           cell             MCF001089_TD08\n+    Tumoral_cell_T24-3   Tumoral         T24           24           cell             MCF001090_TD01\n+    Control_med_T24-1    Control         T24           24           med              MCF001090_TD02\n+    Control_med_T24-2    Control         T24           24           med              MCF001090_TD03\n+    Tumoral_med_T24-1    Tumoral         T24           24           med              MCF001090_TD04\n+    Tumoral_med_T24-2    Tumoral         T24           24           med              MCF001090_TD05\n+    Control_med_T0-1     Control         T0            0            med              MCF001090_TD06\n+    Tumoral_med_T0-1     Tumoral         T0            0            med              MCF001090_TD07\n+    Tumoral_med_T0-2     Tumoral         T0            0            med              MCF001090_TD08\n+    ==================== =============== ============= ============ ================ =================\n+\n+\n+The column **original_name** must have the names of the samples as given in your data.\n+\n+The column **name_to_plot** must have the names as you want them to be (or set identical to original_name if you prefer). To set names that\n+are meaningful is a better choice, as we will take them to display the results.\n+\n+The column **timenum** must contain only the numeric part of the timepoint, for example 2,0, 10, 100 (this means, without letters ("T", "t", "s", "h" etc)\n+nor any other symbol). Make sure these time numbers are in the same units (but do not write the units here!).\n+\n+The column **compartment** is an abbreviation, coined by you, for the compartments. This will be used for the results\' files names: the longer the\n+compartments names are, the longer the output files\' names! Please pick short and clear abbreviations to fill this column.\n+\n+\n+**Running the analysis**\n+\n+\n+You can precise how you want your analysis to be executed, with the parameters:\n+\n+- **conditions**: the conditions present in your data, exactly in the ORDER you want them to appear in the x axis of each figure.\n+\n+- **timepoints**: timepoints to include for the figures.\n+\n+- **width_each_stack** : the desired width (in inches) for the the individual metabolite figure.\n+\n+- **inner_numbers_size**: by default, the arithmetic mean over the biological replicates for a given isotopologue is displayed in the middle of each bar portion, the default font size is 13.5.  Set to 0 if you do not want to show these values.\n+\n+There exist hints on use that will guide you, next to the parameters.\n+\n+The output consist of stacked-bar figures, one by each metabolite, and one legend .pdf file, common to all the produced figures.\n+\n+**Available data for testing**\n+\n+You can test our tool with the data from our manuscript https://zenodo.org/record/8378887 (the pertinent\n+files for you are located in the subfolders inside the data folder).\n+Tou can also use the minimal data examples from https://zenodo.org/record/8380706\n+\n+ ]]>\n+    </help>\n+    <expand macro="citations"/>\n+</tool>\n\\ No newline at end of file\n'
b
diff -r 000000000000 -r a3349c105bd0 macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Tue Oct 10 11:54:46 2023 +0000
[
b'@@ -0,0 +1,778 @@\n+<macros>\n+    <token name="@TOOL_VERSION@">0.1.4</token>\n+    <token name="@VERSION_SUFFIX@">0</token>\n+    <token name="@EXECUTABLE@">pca</token>\n+    <xml name="factor_repeat">\n+        <repeat name="rep_factorName" title="Factor" min="1">\n+            <param name="factorName" type="text" value="FactorName" label="Specify a factor name, e.g. effects_drug_x or cancer_markers"\n+                help="Only letters, numbers and underscores will be retained in this field">\n+                <sanitizer>\n+                    <valid initial="string.letters,string.digits"><add value="_" /></valid>\n+                </sanitizer>\n+            </param>\n+            <repeat name="rep_factorLevel" title="Factor level" min="2" default="2">\n+                <param name="factorLevel" type="text" value="FactorLevel" label="Specify a factor level, typical values could be \'tumor\', \'normal\', \'treated\' or \'control\'"\n+                    help="Only letters, numbers and underscores will be retained in this field">\n+                    <sanitizer>\n+                        <valid initial="string.letters,string.digits"><add value="_" /></valid>\n+                    </sanitizer>\n+                </param>\n+                <yield/>\n+            </repeat>\n+        </repeat>\n+    </xml>\n+    <xml name="requirements">\n+        <requirements>\n+            <requirement type="package" version="@TOOL_VERSION@">dimet</requirement>\n+        </requirements>\n+    </xml>\n+    <xml name="statistical_test">\n+        <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">\n+            <option value="Tt">t-test</option>\n+            <option value="MW">Mann Whitney</option>\n+            <option value="KW">Kruskall Wallis</option>\n+            <option value="ranksum">Wilcoxon\'s rank sum test</option>\n+            <option value="Wcox">Wilcoxon signed-rank test</option>\n+            <option value="BrMu">Brunner-Munzel test</option>\n+            <option value="prm-scipy">permutations test</option>\n+            <option value="disfit">distribution fitting (of the z-score of the ratios), disfit needs several hundreds of metabolites to be trustful.</option>\n+        </param>\n+    </xml>\n+    <xml name="citations">\n+        <citations>\n+            <citation type="bibtex">\n+                @software{Galvis_Rodriguez_DIMet,\n+                    author = {Galvis Rodriguez, Johanna  and Guyon, Joris and Dartigues, Benjamin and Specque, Florian and Daubon, Thomas and Karkar, Slim and Nikolski, Macha},\n+                    license = {MIT},\n+                    title = {{DIMet}},\n+                    url = {https://github.com/cbib/DIMet}\n+                    }\n+\n+            </citation>\n+        </citations>\n+\n+    </xml>\n+    <xml name="metadata_file_macros">\n+        <param name="metadata_path" type="data" format="tabular" label="metadata file" help="The metadata, a unique file with the description of the samples in your measures\' files. This is compulsory, see section Metadata File Information."/>\n+    </xml>\n+    <xml name="abundance_file_macros">\n+        <param name="abundance_file" type="data" format="tabular" label="Metabolite abundance file" help="The total abundances file must be organized as a matrix: - The first column must contain Metabolite IDs that are unique (not repeated) within the file. - The rest of the columns correspond to the samples - The rows correspond to the metabolites - The values must be tab separated, with the first row containing the sample/column labels. (see help below for more details)"/>\n+    </xml>\n+    <xml name="enrichment_file_macros">\n+        <param name="me_or_frac_contrib_file" type="data" format="tabular" label="Metabolite enrichment file" help="The mean enrichment file must be organized as a matrix: - The first column must contain Metabolite IDs that are unique (not repeated) within the file. - The rest of the columns corres'..b'           #set $ctrl=str($co)\n+                 $sub_comparisons.append(re.sub(\'"\', \'\', str($co)))\n+                 $sub_comparisons.append(re.sub(\'"\', \'\', str($tp)))\n+            #else:\n+                $sub_comparisons.append(re.sub(\'"\', \'\', str($co)))\n+                $sub_comparisons.append(re.sub(\'"\', \'\', str($tp)))\n+\n+            #end if\n+            $comparisons.append($sub_comparisons)\n+        #end for\n+    #end for\n+    ]]></token>\n+    <token name="@INIT_CONDITIONS_TIMECOURSE@"><![CDATA[\n+    #import re\n+    #set $conds = list()\n+    #for $co in $conditions:\n+        $conds.append(re.sub(\'"\', \'\', str($co)))\n+    #end for\n+\n+    ]]></token>\n+    <token name="@INIT_COMPARISONS@"><![CDATA[\n+    #import re\n+    #set $conds = list()\n+    #for $co in $conditions:\n+        $conds.append(re.sub(\'"\', \'\', str($co)))\n+    #end for\n+    #set $timepoints = list()\n+    #for $tp in $timepoint:\n+        $timepoints.append(re.sub(\'"\', \'\', str($tp)))\n+    #end for\n+\n+    #set $comparisons = list()\n+    #if len($conds) > 1:\n+        #if len($timepoints) > 0:\n+            #for $tp in $timepoint:\n+                #set $ctrl_found=False\n+                #set $ctrl=""\n+                #set $comparisons_bis = list()\n+                #for $co in $conditions:\n+                    #set $sub_comparisons = list()\n+                    #if str($co) in ["\'Control\'", "\'control\'", "\'ctrl\'"]:\n+                        #set $ctrl_found=True\n+                        #set $ctrl=str($co)\n+                    #else:\n+                        $sub_comparisons.append(re.sub(\'"\', \'\', str($co)))\n+                        $sub_comparisons.append(re.sub(\'"\', \'\', str($tp)))\n+\n+                    #end if\n+                    $comparisons_bis.append($sub_comparisons)\n+                #end for\n+\n+                #if $ctrl_found:\n+                    $sub_comparisons.append(str($ctrl))\n+                    $sub_comparisons.append(str($tp))\n+                    $comparisons_bis.append($sub_comparisons)\n+                #end if\n+\n+                $comparisons.append($comparisons_bis)\n+            #end for\n+         #else\n+            #for $co in $conditions:\n+                $comparisons.append(re.sub(\'"\', \'\', str($co)))\n+            #end for\n+        #end if\n+\n+    #else\n+        #if len($conds) > 0:\n+            #if len($timepoints) > 1:\n+                #for $co in $conditions:\n+                    #set $comparisons_bis = list()\n+                    #for $tp in $timepoint:\n+                        #set $sub_comparisons = list()\n+                        $sub_comparisons.append(re.sub(\'"\', \'\', str($co)))\n+                        $sub_comparisons.append(re.sub(\'"\', \'\', str($tp)))\n+                        $comparisons_bis.append($sub_comparisons)\n+                    #end for\n+                    $comparisons.append($comparisons_bis)\n+                #end for\n+            #end if\n+        #else\n+            #for $tp in $timepoint:\n+                $comparisons.append(re.sub(\'"\', \'\', str($tp)))\n+            #end for\n+        #end if\n+    #end if\n+    ]]></token>\n+    <token name="@INIT_TRANSCRIPTS@"><![CDATA[\n+    #import re\n+    #import os\n+    #import subprocess\n+    #set $transcripts  = list()\n+\n+    #for $i, $s in enumerate($deg_list)\n+        #set $cpt = str($i+1)\n+        $transcripts.append(re.sub(\'"\', \'\', "DEG_comparison"+str($i+1)))\n+        #set $deg_one_values = os.fsdecode(subprocess.check_output(\'head -n1 \' + str($s.input) + \'| cut -f\' + str($s.valuecol), shell=True))\n+        #set $deg_one_id = os.fsdecode(subprocess.check_output(\'head -n1 \' + str($s.input) + \'| cut -f\' + str($s.idcol), shell=True))\n+    #end for\n+    ]]></token>\n+    <token name="@INIT_PATHWAYS@"><![CDATA[\n+    #set $pathways  = {}\n+    #if $path_kegg_metabolites:\n+        #silent $pathways[\'metabolites\']=\'pathways_kegg_metabolites\'\n+    #end if\n+    #if $path_kegg_transcripts:\n+        #silent $pathways[\'transcripts\']=\'pathways_kegg_transcripts\'\n+    #end if\n+    ]]></token>\n+</macros>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/AMINOACIDS-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/AMINOACIDS-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1542 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:25.308103</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 504 \n+L 504 504 \n+L 504 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 258.3 99.288 \n+C 244.73414 99.288 231.226619 101.066299 218.123004 104.577402 \n+C 205.019389 108.088504 192.432384 113.302212 180.684004 120.085142 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff8c8c; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 180.684004 120.085142 \n+C 168.935624 126.868072 158.126918 135.161884 148.534405 144.754395 \n+C 138.941893 154.346907 130.64808 165.155612 123.865149 176.903992 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff2626; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 123.865149 176.903992 \n+C 117.082218 188.652371 111.868509 201.239376 108.357405 214.34299 \n+C 104.846301 227.446605 103.068001 240.954125 103.068 254.519985 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff4848; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 103.068 254.519985 \n+C 103.067999 268.085846 104.846296 281.593366 108.357398 294.696982 \n+C 111.868499 307.800597 117.082206 320.387603 123.865135 332.135983 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff0000; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 123.865135 332.135983 \n+C 130.648064 343.884364 138.941874 354.693071 148.534385 364.285584 \n+C 158.126895 373.878098 168.9356 382.171911 180.683979 388.954843 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #808080; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 180.683979 388.954843 \n+C 192.432358 395.737775 205.019362 400.951486 218.122976 404.462591 \n+C 231.226591 407.973696 244.73411 409.751997 258.299971 409.752 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff9e9e; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 258.299971 409.752 \n+C 266.432075 409.752002 274.551622 409.112981 282.583607 407.840841 \n+C 290.615592 406.568701 298.535208 404.667371 306.269299 402.154414 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff5252; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 306.269299 402.154414 \n+C 314.003391 399.641457 321.52807 396.524634 328.773828 392.832737 \n+C 336.019587 389.140841 342.964046 384.885272 349.543058 380.105342 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 25'..b'"/>\n+    <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+    <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+    <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+    <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+    <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+    <use xlink:href="#DejaVuSans-2d" x="361.421875"/>\n+    <use xlink:href="#DejaVuSans-54" x="388.380859"/>\n+    <use xlink:href="#DejaVuSans-30" x="449.464844"/>\n+    <use xlink:href="#DejaVuSans-2d" x="513.087891"/>\n+    <use xlink:href="#DejaVuSans-4c" x="549.171875"/>\n+    <use xlink:href="#DejaVuSans-2d" x="603.134766"/>\n+    <use xlink:href="#DejaVuSans-43" x="639.21875"/>\n+    <use xlink:href="#DejaVuSans-79" x="709.042969"/>\n+    <use xlink:href="#DejaVuSans-63" x="768.222656"/>\n+    <use xlink:href="#DejaVuSans-6c" x="823.203125"/>\n+    <use xlink:href="#DejaVuSans-6f" x="850.986328"/>\n+    <use xlink:href="#DejaVuSans-73" x="912.167969"/>\n+    <use xlink:href="#DejaVuSans-65" x="964.267578"/>\n+    <use xlink:href="#DejaVuSans-72" x="1025.791016"/>\n+    <use xlink:href="#DejaVuSans-69" x="1066.904297"/>\n+    <use xlink:href="#DejaVuSans-6e" x="1094.6875"/>\n+    <use xlink:href="#DejaVuSans-65" x="1158.066406"/>\n+    <use xlink:href="#DejaVuSans-2d" x="1219.589844"/>\n+    <use xlink:href="#DejaVuSans-54" x="1246.548828"/>\n+    <use xlink:href="#DejaVuSans-30" x="1307.632812"/>\n+    <use xlink:href="#DejaVuSans-2d" x="1371.255859"/>\n+    <use xlink:href="#DejaVuSans-2d" x="1407.339844"/>\n+    <use xlink:href="#DejaVuSans-44" x="1443.423828"/>\n+    <use xlink:href="#DejaVuSans-45" x="1520.425781"/>\n+    <use xlink:href="#DejaVuSans-47" x="1583.609375"/>\n+    <use xlink:href="#DejaVuSans-5f" x="1661.099609"/>\n+    <use xlink:href="#DejaVuSans-63" x="1711.099609"/>\n+    <use xlink:href="#DejaVuSans-6f" x="1766.080078"/>\n+    <use xlink:href="#DejaVuSans-6d" x="1827.261719"/>\n+    <use xlink:href="#DejaVuSans-70" x="1924.673828"/>\n+    <use xlink:href="#DejaVuSans-61" x="1988.150391"/>\n+    <use xlink:href="#DejaVuSans-72" x="2049.429688"/>\n+    <use xlink:href="#DejaVuSans-69" x="2090.542969"/>\n+    <use xlink:href="#DejaVuSans-73" x="2118.326172"/>\n+    <use xlink:href="#DejaVuSans-6f" x="2170.425781"/>\n+    <use xlink:href="#DejaVuSans-6e" x="2231.607422"/>\n+    <use xlink:href="#DejaVuSans-31" x="2294.986328"/>\n+   </g>\n+   <!-- AMINOACIDS -->\n+   <g transform="translate(213.45375 32.96925) scale(0.12 -0.12)">\n+    <defs>\n+     <path id="DejaVuSans-4d" d="M 628 4666 \n+L 1569 4666 \n+L 2759 1491 \n+L 3956 4666 \n+L 4897 4666 \n+L 4897 0 \n+L 4281 0 \n+L 4281 4097 \n+L 3078 897 \n+L 2444 897 \n+L 1241 4097 \n+L 1241 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     <path id="DejaVuSans-49" d="M 628 4666 \n+L 1259 4666 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     <path id="DejaVuSans-4f" d="M 2522 4238 \n+Q 1834 4238 1429 3725 \n+Q 1025 3213 1025 2328 \n+Q 1025 1447 1429 934 \n+Q 1834 422 2522 422 \n+Q 3209 422 3611 934 \n+Q 4013 1447 4013 2328 \n+Q 4013 3213 3611 3725 \n+Q 3209 4238 2522 4238 \n+z\n+M 2522 4750 \n+Q 3503 4750 4090 4092 \n+Q 4678 3434 4678 2328 \n+Q 4678 1225 4090 567 \n+Q 3503 -91 2522 -91 \n+Q 1538 -91 948 565 \n+Q 359 1222 359 2328 \n+Q 359 3434 948 4092 \n+Q 1538 4750 2522 4750 \n+z\n+" transform="scale(0.015625)"/>\n+    </defs>\n+    <use xlink:href="#DejaVuSans-41"/>\n+    <use xlink:href="#DejaVuSans-4d" x="68.408203"/>\n+    <use xlink:href="#DejaVuSans-49" x="154.6875"/>\n+    <use xlink:href="#DejaVuSans-4e" x="184.179688"/>\n+    <use xlink:href="#DejaVuSans-4f" x="258.984375"/>\n+    <use xlink:href="#DejaVuSans-41" x="335.945312"/>\n+    <use xlink:href="#DejaVuSans-43" x="402.603516"/>\n+    <use xlink:href="#DejaVuSans-49" x="472.427734"/>\n+    <use xlink:href="#DejaVuSans-44" x="501.919922"/>\n+    <use xlink:href="#DejaVuSans-53" x="578.921875"/>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p7d219f3c34">\n+   <rect x="64.26" y="60.48" width="388.08" height="388.08"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/AbundanceCorrected.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/AbundanceCorrected.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+ID T0_A_1 T0_A_2 T24_A_1 T24_A_2
+Fru1P 8649509.40162 9221146.82622 7263530.71345 6382941.54406
+Cit 6104076.527709001 6622207.696758 17362710.7065 15099558.4283
+Glutamate 8642056.8426 17149266.2103 47245553.7829 42301398.0359
+Aspartate 4153600.4715071535 23560016.546284568 20479103.26962672 28642684.62216362
b
diff -r 000000000000 -r a3349c105bd0 test-data/CENTRAL_CARBON_METABOLISM-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CENTRAL_CARBON_METABOLISM-Control-T0-L-Cycloserine-T0--DEG_comparison1-abundances-cell.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1654 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:25.255483</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 504 \n+L 504 504 \n+L 504 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 258.3 99.288 \n+C 244.73414 99.288 231.226619 101.066299 218.123004 104.577402 \n+C 205.019389 108.088504 192.432384 113.302212 180.684004 120.085142 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff9696; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 180.684004 120.085142 \n+C 168.935624 126.868072 158.126918 135.161884 148.534405 144.754395 \n+C 138.941893 154.346907 130.64808 165.155612 123.865149 176.903992 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff5656; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 123.865149 176.903992 \n+C 117.082218 188.652371 111.868509 201.239376 108.357405 214.34299 \n+C 104.846301 227.446605 103.068001 240.954125 103.068 254.519985 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff5656; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 103.068 254.519985 \n+C 103.067999 268.085846 104.846296 281.593366 108.357398 294.696982 \n+C 111.868499 307.800597 117.082206 320.387603 123.865135 332.135983 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff7070; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 123.865135 332.135983 \n+C 130.648064 343.884364 138.941874 354.693071 148.534385 364.285584 \n+C 158.126895 373.878098 168.9356 382.171911 180.683979 388.954843 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff7676; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 180.683979 388.954843 \n+C 192.432358 395.737775 205.019362 400.951486 218.122976 404.462591 \n+C 231.226591 407.973696 244.73411 409.751997 258.299971 409.752 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #808080; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 258.299971 409.752 \n+C 265.692135 409.752001 273.074868 409.223979 280.391791 408.171966 \n+C 287.708714 407.119952 294.941155 405.546632 302.033885 403.46402 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+C 258.3 254.52 258.3 254.52 258.3 254.52 \n+z\n+" style="fill: #ff1e1e; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 302.033885 403.46402 \n+C 309.126615 401.381408 316.061534 398.794818 322.785684 395.724003 \n+C 329.509833 392.653188 336.006054 389.105984 342.224739 385.109479 \n+L 258.3 254.52 \n+C 258.3 254.52 258.3 254'..b'xlink:href="#DejaVuSans-30" x="1307.632812"/>\n+    <use xlink:href="#DejaVuSans-2d" x="1371.255859"/>\n+    <use xlink:href="#DejaVuSans-2d" x="1407.339844"/>\n+    <use xlink:href="#DejaVuSans-44" x="1443.423828"/>\n+    <use xlink:href="#DejaVuSans-45" x="1520.425781"/>\n+    <use xlink:href="#DejaVuSans-47" x="1583.609375"/>\n+    <use xlink:href="#DejaVuSans-5f" x="1661.099609"/>\n+    <use xlink:href="#DejaVuSans-63" x="1711.099609"/>\n+    <use xlink:href="#DejaVuSans-6f" x="1766.080078"/>\n+    <use xlink:href="#DejaVuSans-6d" x="1827.261719"/>\n+    <use xlink:href="#DejaVuSans-70" x="1924.673828"/>\n+    <use xlink:href="#DejaVuSans-61" x="1988.150391"/>\n+    <use xlink:href="#DejaVuSans-72" x="2049.429688"/>\n+    <use xlink:href="#DejaVuSans-69" x="2090.542969"/>\n+    <use xlink:href="#DejaVuSans-73" x="2118.326172"/>\n+    <use xlink:href="#DejaVuSans-6f" x="2170.425781"/>\n+    <use xlink:href="#DejaVuSans-6e" x="2231.607422"/>\n+    <use xlink:href="#DejaVuSans-31" x="2294.986328"/>\n+   </g>\n+   <!-- CENTRAL_CARBON_METABOLISM -->\n+   <g transform="translate(153.696562 32.96925) scale(0.12 -0.12)">\n+    <defs>\n+     <path id="DejaVuSans-4e" d="M 628 4666 \n+L 1478 4666 \n+L 3547 763 \n+L 3547 4666 \n+L 4159 4666 \n+L 4159 0 \n+L 3309 0 \n+L 1241 3903 \n+L 1241 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     <path id="DejaVuSans-52" d="M 2841 2188 \n+Q 3044 2119 3236 1894 \n+Q 3428 1669 3622 1275 \n+L 4263 0 \n+L 3584 0 \n+L 2988 1197 \n+Q 2756 1666 2539 1819 \n+Q 2322 1972 1947 1972 \n+L 1259 1972 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+L 2053 4666 \n+Q 2853 4666 3247 4331 \n+Q 3641 3997 3641 3322 \n+Q 3641 2881 3436 2590 \n+Q 3231 2300 2841 2188 \n+z\n+M 1259 4147 \n+L 1259 2491 \n+L 2053 2491 \n+Q 2509 2491 2742 2702 \n+Q 2975 2913 2975 3322 \n+Q 2975 3731 2742 3939 \n+Q 2509 4147 2053 4147 \n+L 1259 4147 \n+z\n+" transform="scale(0.015625)"/>\n+     <path id="DejaVuSans-42" d="M 1259 2228 \n+L 1259 519 \n+L 2272 519 \n+Q 2781 519 3026 730 \n+Q 3272 941 3272 1375 \n+Q 3272 1813 3026 2020 \n+Q 2781 2228 2272 2228 \n+L 1259 2228 \n+z\n+M 1259 4147 \n+L 1259 2741 \n+L 2194 2741 \n+Q 2656 2741 2882 2914 \n+Q 3109 3088 3109 3444 \n+Q 3109 3797 2882 3972 \n+Q 2656 4147 2194 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2241 4666 \n+Q 2963 4666 3353 4366 \n+Q 3744 4066 3744 3513 \n+Q 3744 3084 3544 2831 \n+Q 3344 2578 2956 2516 \n+Q 3422 2416 3680 2098 \n+Q 3938 1781 3938 1306 \n+Q 3938 681 3513 340 \n+Q 3088 0 2303 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+    </defs>\n+    <use xlink:href="#DejaVuSans-43"/>\n+    <use xlink:href="#DejaVuSans-45" x="69.824219"/>\n+    <use xlink:href="#DejaVuSans-4e" x="133.007812"/>\n+    <use xlink:href="#DejaVuSans-54" x="207.8125"/>\n+    <use xlink:href="#DejaVuSans-52" x="268.896484"/>\n+    <use xlink:href="#DejaVuSans-41" x="334.378906"/>\n+    <use xlink:href="#DejaVuSans-4c" x="402.787109"/>\n+    <use xlink:href="#DejaVuSans-5f" x="458.5"/>\n+    <use xlink:href="#DejaVuSans-43" x="508.5"/>\n+    <use xlink:href="#DejaVuSans-41" x="578.324219"/>\n+    <use xlink:href="#DejaVuSans-52" x="646.732422"/>\n+    <use xlink:href="#DejaVuSans-42" x="716.214844"/>\n+    <use xlink:href="#DejaVuSans-4f" x="783.068359"/>\n+    <use xlink:href="#DejaVuSans-4e" x="861.779297"/>\n+    <use xlink:href="#DejaVuSans-5f" x="936.583984"/>\n+    <use xlink:href="#DejaVuSans-4d" x="986.583984"/>\n+    <use xlink:href="#DejaVuSans-45" x="1072.863281"/>\n+    <use xlink:href="#DejaVuSans-54" x="1136.046875"/>\n+    <use xlink:href="#DejaVuSans-41" x="1189.380859"/>\n+    <use xlink:href="#DejaVuSans-42" x="1257.789062"/>\n+    <use xlink:href="#DejaVuSans-4f" x="1324.642578"/>\n+    <use xlink:href="#DejaVuSans-4c" x="1403.353516"/>\n+    <use xlink:href="#DejaVuSans-49" x="1459.066406"/>\n+    <use xlink:href="#DejaVuSans-53" x="1488.558594"/>\n+    <use xlink:href="#DejaVuSans-4d" x="1552.035156"/>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pa5f6097314">\n+   <rect x="64.26" y="60.48" width="388.08" height="388.08"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/CorrectedIsotopologues_reduced.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/CorrectedIsotopologues_reduced.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,46 @@
+"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 1 1 1 1
+"Fructose_1,6-bisphosphate_m+1" 0 0 0 0 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 0 0 0 0
+"Fructose_1,6-bisphosphate_m+5" 0 0 0 0 0
+"Fructose_1,6-bisphosphate_m+6" 0 0 0 0 0
+"L-Aspartic_acid_m+0" 0.9863 0.9866 0.745 0.7303 0.982 0.9831 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.0004 0.0008 0.0589 0.0596
+"L-Aspartic_acid_m+4" 0 0.0001 0.007 0.012 0.0003 0 0.0117 0.0143
+"L-Glutamic_acid_m+0" 0.9491 0.9486 0.5577 0.5714 0.9508 0.9458 0.5577 0.5556
+"L-Glutamic_acid_m+1" 0.0103 0.0095 0.0737 0.0687 0.0084 0.0109 0.0715 0.0688
+"L-Glutamic_acid_m+2" 0.0399 0.0409 0.2485 0.2455 0.0387 0.0408 0.2477 0.2507
+"L-Glutamic_acid_m+3" 0 0.0004 0.0619 0.057 0.0006 0.001 0.0628 0.0625
+"L-Glutamic_acid_m+4" 0.0008 0.0006 0.0487 0.0477 0.0015 0.0015 0.0508 0.0506
+"L-Glutamic_acid_m+5" 0 0 0.0094 0.0096 0 0 0.0095 0.0118
+"L-Glutamine_m+0" 1 1 0.7483 0.7005 0.997 0.9986 0.7153 0.6673
+"L-Glutamine_m+1" 0 0 0.0347 0.0402 0 0 0.0424 0.0526
+"L-Glutamine_m+2" 0.01 0.0104 0.1482 0.1693 0.009 0.0104 0.1757 0.1919
+"L-Glutamine_m+3" 0 0 0.0371 0.049 0 0 0.0363 0.043
+"L-Glutamine_m+4" 0 0 0.0263 0.0341 0 0 0.0268 0.0374
+"L-Glutamine_m+5" 0 0 0.0053 0.007 0 0 0.0034 0.0078
+"L-Lactic_acid_m+0" 0 0 0 0 0 0 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 0 0 0 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.0122 0.0117 0.012 0.012 0.0116 0.0113 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.9878 0.9883 0.988 0.988 0.9884 0.9887 0.9723 0.9709 0.9704 0.9687 0.9731 0.9742 0.9651 0.9713
+"L-Lysine_m+0" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+"L-Lysine_m+1" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Lysine_m+2" 0.0015 0.0004 0.0006 0.001 0.0006 0.0009 0.0018 0.0008 0 0 0 0 0 0 0 0
+"L-Lysine_m+3" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Lysine_m+4" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Lysine_m+5" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Lysine_m+6" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Proline_m+0" 0.9717 0.9719 0.9461 0.95 0.9813 0.9779 0.9602 0.9617 0.9939 0.9872 0.9545 1 1 1 0.9869 1
+"L-Proline_m+1" 0.0296 0.0306 0.0279 0.0284 0.0208 0.0244 0.0167 0.0061 0.0076 0.0147 0.0488 0 0 0 0.0149 0.0013
+"L-Proline_m+2" 0 0 0.0248 0.0213 0 0 0.0214 0.0302 0 0 0 0 0 0 0 0
+"L-Proline_m+3" 0 0 0 0 0 0 0 0.001 0 0 0.0001 0 0 0 0 0
+"L-Proline_m+4" 0 0 0.0021 0.0011 0 0 0.0025 0.0009 0 0 0 0 0 0 0 0
+"L-Proline_m+5" 0.0012 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Serine_m+0" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+"L-Serine_m+1" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Serine_m+2" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+"L-Serine_m+3" 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
b
diff -r 000000000000 -r a3349c105bd0 test-data/DEG_comparison_1.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/DEG_comparison_1.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,22 @@
+"Column_1" "external_gene_name" "log2FoldChange"
+"m" "ALDOA" 4
+"n" "GPI" -4
+"o" "PCK1" 3.5
+"p" "PGAM1" -2
+"y" "PKM" 0
+"r" "IDH1" 1
+"I" "MDH2" 1
+"k" "PC" -3
+"k" "SDHA" 4
+"k" "SUCLG1" -4
+"k" "SUCLG2" 3.5
+"k" "ADSS1" -2
+"k" "AGXT" 0
+"k" "ASL" 1
+"k" "ASNS" 1
+"k" "ASPA" -3
+"k" "GAD1" 0.7
+"k" "GLS" -1.8
+"k" "GLUD1" 2
+"k" "GAD1" -0.5
+"k" "GLUD2" 2.7
b
diff -r 000000000000 -r a3349c105bd0 test-data/FracContribution_C.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/FracContribution_C.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -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
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-Fructose_1,6-bisphosphate.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-Fructose_1,6-bisphosphate.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1245 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="336.29625pt" height="446.2421pt" viewBox="0 0 336.29625 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.918792</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 336.29625 446.2421 \n+L 336.29625 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 84.448125 285.90585 \n+L 251.848125 285.90585 \n+L 251.848125 31.43625 \n+L 84.448125 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 92.057216 31.43625 \n+L 125.655799 31.43625 \n+L 125.655799 31.43625 \n+L 92.057216 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 131.584961 31.43625 \n+L 165.183544 31.43625 \n+L 165.183544 31.43625 \n+L 131.584961 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 171.112706 31.43625 \n+L 204.711289 31.43625 \n+L 204.711289 31.43625 \n+L 171.112706 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 210.640451 31.43625 \n+L 244.239034 31.43625 \n+L 244.239034 31.43625 \n+L 210.640451 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 92.057216 31.43625 \n+L 125.655799 31.43625 \n+L 125.655799 31.43625 \n+L 92.057216 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 131.584961 31.43625 \n+L 165.183544 31.43625 \n+L 165.183544 31.43625 \n+L 131.584961 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 171.112706 31.43625 \n+L 204.711289 31.43625 \n+L 204.711289 31.43625 \n+L 171.112706 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 210.640451 31.43625 \n+L 244.239034 31.43625 \n+L 244.239034 31.43625 \n+L 210.640451 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 92.057216 31.43625 \n+L 125.655799 31.43625 \n+L 125.655799 31.43625 \n+L 92.057216 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 131.584961 31.43625 \n+L 165.183544 31.43625 \n+L 165.183544 31.43625 \n+L 131.584961 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 171.112706 31.43625 \n+L 204.711289 31.43625 \n+L 204.711289 31.43625 \n+L 171.112706 31.43625 \n+z\n+" clip-path="url(#p5148d65379)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path d="M 2'..b'use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(175.505122 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(215.032867 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- Fructose_1,6-bisphosphate -->\n+    <g transform="translate(7.2 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-46" d="M 628 4666 \n+L 3309 4666 \n+L 3309 4134 \n+L 1259 4134 \n+L 1259 2759 \n+L 3109 2759 \n+L 3109 2228 \n+L 1259 2228 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-2c" d="M 750 794 \n+L 1409 794 \n+L 1409 256 \n+L 897 -744 \n+L 494 -744 \n+L 750 256 \n+L 750 794 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-68" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 4863 \n+L 1159 4863 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-46"/>\n+     <use xlink:href="#DejaVuSans-72" x="50.269531"/>\n+     <use xlink:href="#DejaVuSans-75" x="91.382812"/>\n+     <use xlink:href="#DejaVuSans-63" x="154.761719"/>\n+     <use xlink:href="#DejaVuSans-74" x="209.742188"/>\n+     <use xlink:href="#DejaVuSans-6f" x="248.951172"/>\n+     <use xlink:href="#DejaVuSans-73" x="310.132812"/>\n+     <use xlink:href="#DejaVuSans-65" x="362.232422"/>\n+     <use xlink:href="#DejaVuSans-5f" x="423.755859"/>\n+     <use xlink:href="#DejaVuSans-31" x="473.755859"/>\n+     <use xlink:href="#DejaVuSans-2c" x="537.378906"/>\n+     <use xlink:href="#DejaVuSans-36" x="569.166016"/>\n+     <use xlink:href="#DejaVuSans-2d" x="632.789062"/>\n+     <use xlink:href="#DejaVuSans-62" x="668.873047"/>\n+     <use xlink:href="#DejaVuSans-69" x="732.349609"/>\n+     <use xlink:href="#DejaVuSans-73" x="760.132812"/>\n+     <use xlink:href="#DejaVuSans-70" x="812.232422"/>\n+     <use xlink:href="#DejaVuSans-68" x="875.708984"/>\n+     <use xlink:href="#DejaVuSans-6f" x="939.087891"/>\n+     <use xlink:href="#DejaVuSans-73" x="1000.269531"/>\n+     <use xlink:href="#DejaVuSans-70" x="1052.369141"/>\n+     <use xlink:href="#DejaVuSans-68" x="1115.845703"/>\n+     <use xlink:href="#DejaVuSans-61" x="1179.224609"/>\n+     <use xlink:href="#DejaVuSans-74" x="1240.503906"/>\n+     <use xlink:href="#DejaVuSans-65" x="1279.712891"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p5148d65379">\n+   <rect x="84.448125" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Aspartic_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Aspartic_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1338 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="253.695312pt" height="446.2421pt" viewBox="0 0 253.695312 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.724759</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 253.695312 446.2421 \n+L 253.695312 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.448973 \n+L 79.963778 31.448973 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.47442 \n+L 119.491523 31.47442 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 33.853711 \n+L 159.019268 33.853711 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 34.744355 \n+L 198.547013 34.744355 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.448973 \n+L 113.562362 31.448973 \n+L 113.562362 31.754337 \n+L 79.963778 31.754337 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.47442 \n+L 153.090107 31.47442 \n+L 153.090107 31.627102 \n+L 119.491523 31.627102 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 33.853711 \n+L 192.617852 33.853711 \n+L 192.617852 48.142179 \n+L 159.019268 48.142179 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 34.744355 \n+L 232.145597 34.744355 \n+L 232.145597 49.821679 \n+L 198.547013 49.821679 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.754337 \n+L 113.562362 31.754337 \n+L 113.562362 34.90976 \n+L 79.963778 34.90976 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.627102 \n+L 153.090107 31.627102 \n+L 153.090107 35.444146 \n+L 119.491523 35.444146 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 48.142179 \n+L 192.617852 48.142179 \n+L 192.617852 80.167178 \n+L 159.019268 80.167178 \n+z\n+" clip-path="url(#p7ea1366424)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <'..b'jaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-36" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_19">\n+    <!-- 98.3 -->\n+    <g style="fill: #ffffff" transform="translate(121.818159 165.993413) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-33" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_20">\n+    <!-- 73.8 -->\n+    <g style="fill: #ffffff" transform="translate(161.345904 197.140492) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-37"/>\n+     <use xlink:href="#DejaVuSans-33" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_21">\n+    <!-- 74.8 -->\n+    <g style="fill: #ffffff" transform="translate(200.873649 195.823612) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-37"/>\n+     <use xlink:href="#DejaVuSans-34" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_22">\n+    <!-- L-Aspartic_acid -->\n+    <g transform="translate(65.614063 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-41" d="M 2188 4044 \n+L 1331 1722 \n+L 3047 1722 \n+L 2188 4044 \n+z\n+M 1831 4666 \n+L 2547 4666 \n+L 4325 0 \n+L 3669 0 \n+L 3244 1197 \n+L 1141 1197 \n+L 716 0 \n+L 50 0 \n+L 1831 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-64" d="M 2906 2969 \n+L 2906 4863 \n+L 3481 4863 \n+L 3481 0 \n+L 2906 0 \n+L 2906 525 \n+Q 2725 213 2448 61 \n+Q 2172 -91 1784 -91 \n+Q 1150 -91 751 415 \n+Q 353 922 353 1747 \n+Q 353 2572 751 3078 \n+Q 1150 3584 1784 3584 \n+Q 2172 3584 2448 3432 \n+Q 2725 3281 2906 2969 \n+z\n+M 947 1747 \n+Q 947 1113 1208 752 \n+Q 1469 391 1925 391 \n+Q 2381 391 2643 752 \n+Q 2906 1113 2906 1747 \n+Q 2906 2381 2643 2742 \n+Q 2381 3103 1925 3103 \n+Q 1469 3103 1208 2742 \n+Q 947 2381 947 1747 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-41" x="87.796875"/>\n+     <use xlink:href="#DejaVuSans-73" x="156.205078"/>\n+     <use xlink:href="#DejaVuSans-70" x="208.304688"/>\n+     <use xlink:href="#DejaVuSans-61" x="271.78125"/>\n+     <use xlink:href="#DejaVuSans-72" x="333.060547"/>\n+     <use xlink:href="#DejaVuSans-74" x="374.173828"/>\n+     <use xlink:href="#DejaVuSans-69" x="413.382812"/>\n+     <use xlink:href="#DejaVuSans-63" x="441.166016"/>\n+     <use xlink:href="#DejaVuSans-5f" x="496.146484"/>\n+     <use xlink:href="#DejaVuSans-61" x="546.146484"/>\n+     <use xlink:href="#DejaVuSans-63" x="607.425781"/>\n+     <use xlink:href="#DejaVuSans-69" x="662.40625"/>\n+     <use xlink:href="#DejaVuSans-64" x="690.189453"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p7ea1366424">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Glutamic_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Glutamic_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1443 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="259.314687pt" height="446.2421pt" viewBox="0 0 259.314687 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.790495</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 259.314687 446.2421 \n+L 259.314687 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 33.853711 \n+L 159.019268 33.853711 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 34.146351 \n+L 198.547013 34.146351 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.614379 \n+L 79.963778 31.614379 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.817954 \n+L 119.491523 31.817954 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 33.853711 \n+L 192.617852 33.853711 \n+L 192.617852 46.119146 \n+L 159.019268 46.119146 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 34.146351 \n+L 232.145597 34.146351 \n+L 232.145597 47.04796 \n+L 198.547013 47.04796 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.614379 \n+L 113.562362 31.614379 \n+L 113.562362 31.665273 \n+L 79.963778 31.665273 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.817954 \n+L 153.090107 31.817954 \n+L 153.090107 32.02153 \n+L 119.491523 32.02153 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 46.119146 \n+L 192.617852 46.119146 \n+L 192.617852 61.247364 \n+L 159.019268 61.247364 \n+z\n+" clip-path="url(#pd86c287e42)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="'..b'9.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_25">\n+    <!-- 55.7 -->\n+    <g style="fill: #ffffff" transform="translate(200.873649 220.169991) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-35"/>\n+     <use xlink:href="#DejaVuSans-35" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-37" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_26">\n+    <!-- L-Glutamic_acid -->\n+    <g transform="translate(59.994687 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-47" d="M 3809 666 \n+L 3809 1919 \n+L 2778 1919 \n+L 2778 2438 \n+L 4434 2438 \n+L 4434 434 \n+Q 4069 175 3628 42 \n+Q 3188 -91 2688 -91 \n+Q 1594 -91 976 548 \n+Q 359 1188 359 2328 \n+Q 359 3472 976 4111 \n+Q 1594 4750 2688 4750 \n+Q 3144 4750 3555 4637 \n+Q 3966 4525 4313 4306 \n+L 4313 3634 \n+Q 3963 3931 3569 4081 \n+Q 3175 4231 2741 4231 \n+Q 1884 4231 1454 3753 \n+Q 1025 3275 1025 2328 \n+Q 1025 1384 1454 906 \n+Q 1884 428 2741 428 \n+Q 3075 428 3337 486 \n+Q 3600 544 3809 666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-64" d="M 2906 2969 \n+L 2906 4863 \n+L 3481 4863 \n+L 3481 0 \n+L 2906 0 \n+L 2906 525 \n+Q 2725 213 2448 61 \n+Q 2172 -91 1784 -91 \n+Q 1150 -91 751 415 \n+Q 353 922 353 1747 \n+Q 353 2572 751 3078 \n+Q 1150 3584 1784 3584 \n+Q 2172 3584 2448 3432 \n+Q 2725 3281 2906 2969 \n+z\n+M 947 1747 \n+Q 947 1113 1208 752 \n+Q 1469 391 1925 391 \n+Q 2381 391 2643 752 \n+Q 2906 1113 2906 1747 \n+Q 2906 2381 2643 2742 \n+Q 2381 3103 1925 3103 \n+Q 1469 3103 1208 2742 \n+Q 947 2381 947 1747 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-47" x="93.671875"/>\n+     <use xlink:href="#DejaVuSans-6c" x="171.162109"/>\n+     <use xlink:href="#DejaVuSans-75" x="198.945312"/>\n+     <use xlink:href="#DejaVuSans-74" x="262.324219"/>\n+     <use xlink:href="#DejaVuSans-61" x="301.533203"/>\n+     <use xlink:href="#DejaVuSans-6d" x="362.8125"/>\n+     <use xlink:href="#DejaVuSans-69" x="460.224609"/>\n+     <use xlink:href="#DejaVuSans-63" x="488.007812"/>\n+     <use xlink:href="#DejaVuSans-5f" x="542.988281"/>\n+     <use xlink:href="#DejaVuSans-61" x="592.988281"/>\n+     <use xlink:href="#DejaVuSans-63" x="654.267578"/>\n+     <use xlink:href="#DejaVuSans-69" x="709.248047"/>\n+     <use xlink:href="#DejaVuSans-64" x="737.03125"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pd86c287e42">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Glutamine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Glutamine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1361 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.488099</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 33.001238 \n+L 159.019268 33.001238 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 32.86128 \n+L 198.547013 32.86128 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 33.001238 \n+L 192.617852 33.001238 \n+L 192.617852 40.68622 \n+L 159.019268 40.68622 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 32.86128 \n+L 232.145597 32.86128 \n+L 232.145597 41.029754 \n+L 198.547013 41.029754 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 40.68622 \n+L 192.617852 40.68622 \n+L 192.617852 51.641136 \n+L 159.019268 51.641136 \n+z\n+" clip-path="url(#p51bf3677ba)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    '..b'</g>\n+   <g id="text_18">\n+    <!-- 99.8 -->\n+    <g style="fill: #ffffff" transform="translate(121.818159 165.948881) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-39" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_19">\n+    <!-- 72.4 -->\n+    <g style="fill: #ffffff" transform="translate(161.345904 198.826353) scale(0.13 -0.13)">\n+     <defs>\n+      <path id="DejaVuSans-37" d="M 525 4666 \n+L 3525 4666 \n+L 3525 4397 \n+L 1831 0 \n+L 1172 0 \n+L 2766 4134 \n+L 525 4134 \n+L 525 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-37"/>\n+     <use xlink:href="#DejaVuSans-32" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-34" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_20">\n+    <!-- 69.1 -->\n+    <g style="fill: #ffffff" transform="translate(200.873649 203.025101) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-36"/>\n+     <use xlink:href="#DejaVuSans-39" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-31" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_21">\n+    <!-- L-Glutamine -->\n+    <g transform="translate(82.507812 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-47" d="M 3809 666 \n+L 3809 1919 \n+L 2778 1919 \n+L 2778 2438 \n+L 4434 2438 \n+L 4434 434 \n+Q 4069 175 3628 42 \n+Q 3188 -91 2688 -91 \n+Q 1594 -91 976 548 \n+Q 359 1188 359 2328 \n+Q 359 3472 976 4111 \n+Q 1594 4750 2688 4750 \n+Q 3144 4750 3555 4637 \n+Q 3966 4525 4313 4306 \n+L 4313 3634 \n+Q 3963 3931 3569 4081 \n+Q 3175 4231 2741 4231 \n+Q 1884 4231 1454 3753 \n+Q 1025 3275 1025 2328 \n+Q 1025 1384 1454 906 \n+Q 1884 428 2741 428 \n+Q 3075 428 3337 486 \n+Q 3600 544 3809 666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-47" x="93.671875"/>\n+     <use xlink:href="#DejaVuSans-6c" x="171.162109"/>\n+     <use xlink:href="#DejaVuSans-75" x="198.945312"/>\n+     <use xlink:href="#DejaVuSans-74" x="262.324219"/>\n+     <use xlink:href="#DejaVuSans-61" x="301.533203"/>\n+     <use xlink:href="#DejaVuSans-6d" x="362.8125"/>\n+     <use xlink:href="#DejaVuSans-69" x="460.224609"/>\n+     <use xlink:href="#DejaVuSans-6e" x="488.007812"/>\n+     <use xlink:href="#DejaVuSans-65" x="551.386719"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p51bf3677ba">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Lactic_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Lactic_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1165 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.600877</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 282.903109 \n+L 79.963778 282.903109 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 282.852215 \n+L 119.491523 282.852215 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 282.864938 \n+L 159.019268 282.864938 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 282.992173 \n+L 198.547013 282.992173 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 282.903109 \n+L 113.562362 282.903109 \n+L 113.562362 285.90585 \n+L 79.963778 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 282.852215 \n+L 153.090107 282.852215 \n+L 153.090107 285.90585 \n+L 119.491523 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 282.864938 \n+L 192.617852 282.864938 \n+L 192.617852 285.90585 \n+L 159.019268 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 282.992173 \n+L 232.145597 282.992173 \n+L 232.145597 285.90585 \n+L 198.547013 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 285.90585 \n+L 113.562362 285.90585 \n+L 113.562362 285.90585 \n+L 79.963778 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 285.90585 \n+L 153.090107 285.90585 \n+L 153.090107 285.90585 \n+L 119.491523 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 285.90585 \n+L 192.617852 285.90585 \n+L 192.617852 285.90585 \n+L 159.019268 285.90585 \n+z\n+" clip-path="url(#p51cfedc081)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: m'..b' 97 \n+z\n+M 1959 2075 \n+Q 2384 2075 2632 2365 \n+Q 2881 2656 2881 3163 \n+Q 2881 3666 2632 3958 \n+Q 2384 4250 1959 4250 \n+Q 1534 4250 1286 3958 \n+Q 1038 3666 1038 3163 \n+Q 1038 2656 1286 2365 \n+Q 1534 2075 1959 2075 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-2e" d="M 684 794 \n+L 1344 794 \n+L 1344 0 \n+L 684 0 \n+L 684 794 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 98.8 -->\n+    <g transform="translate(121.818159 162.233624) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 98.8 -->\n+    <g transform="translate(161.345904 162.239986) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 98.9 -->\n+    <g transform="translate(200.873649 162.303604) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-39" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Lactic_acid -->\n+    <g transform="translate(79.070937 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-64" d="M 2906 2969 \n+L 2906 4863 \n+L 3481 4863 \n+L 3481 0 \n+L 2906 0 \n+L 2906 525 \n+Q 2725 213 2448 61 \n+Q 2172 -91 1784 -91 \n+Q 1150 -91 751 415 \n+Q 353 922 353 1747 \n+Q 353 2572 751 3078 \n+Q 1150 3584 1784 3584 \n+Q 2172 3584 2448 3432 \n+Q 2725 3281 2906 2969 \n+z\n+M 947 1747 \n+Q 947 1113 1208 752 \n+Q 1469 391 1925 391 \n+Q 2381 391 2643 752 \n+Q 2906 1113 2906 1747 \n+Q 2906 2381 2643 2742 \n+Q 2381 3103 1925 3103 \n+Q 1469 3103 1208 2742 \n+Q 947 2381 947 1747 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-4c" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-61" x="145.759766"/>\n+     <use xlink:href="#DejaVuSans-63" x="207.039062"/>\n+     <use xlink:href="#DejaVuSans-74" x="262.019531"/>\n+     <use xlink:href="#DejaVuSans-69" x="301.228516"/>\n+     <use xlink:href="#DejaVuSans-63" x="329.011719"/>\n+     <use xlink:href="#DejaVuSans-5f" x="383.992188"/>\n+     <use xlink:href="#DejaVuSans-61" x="433.992188"/>\n+     <use xlink:href="#DejaVuSans-63" x="495.271484"/>\n+     <use xlink:href="#DejaVuSans-69" x="550.251953"/>\n+     <use xlink:href="#DejaVuSans-64" x="578.035156"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p51cfedc081">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Lysine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Lysine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1145 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.855862</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p223c484e86)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path d='..b'uSans-6c" x="367.822266"/>\n+      <use xlink:href="#DejaVuSans-6f" x="395.605469"/>\n+      <use xlink:href="#DejaVuSans-67" x="456.787109"/>\n+      <use xlink:href="#DejaVuSans-75" x="520.263672"/>\n+      <use xlink:href="#DejaVuSans-65" x="583.642578"/>\n+      <use xlink:href="#DejaVuSans-20" x="645.166016"/>\n+      <use xlink:href="#DejaVuSans-43" x="676.953125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="746.777344"/>\n+      <use xlink:href="#DejaVuSans-6e" x="807.958984"/>\n+      <use xlink:href="#DejaVuSans-74" x="871.337891"/>\n+      <use xlink:href="#DejaVuSans-72" x="910.546875"/>\n+      <use xlink:href="#DejaVuSans-69" x="951.660156"/>\n+      <use xlink:href="#DejaVuSans-62" x="979.443359"/>\n+      <use xlink:href="#DejaVuSans-75" x="1042.919922"/>\n+      <use xlink:href="#DejaVuSans-74" x="1106.298828"/>\n+      <use xlink:href="#DejaVuSans-69" x="1145.507812"/>\n+      <use xlink:href="#DejaVuSans-6f" x="1173.291016"/>\n+      <use xlink:href="#DejaVuSans-6e" x="1234.472656"/>\n+      <use xlink:href="#DejaVuSans-20" x="1297.851562"/>\n+      <use xlink:href="#DejaVuSans-28" x="1329.638672"/>\n+      <use xlink:href="#DejaVuSans-25" x="1368.652344"/>\n+      <use xlink:href="#DejaVuSans-29" x="1463.671875"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="patch_31">\n+    <path d="M 72.354688 285.90585 \n+L 72.354688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_32">\n+    <path d="M 239.754688 285.90585 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_33">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_34">\n+    <path d="M 72.354688 31.43625 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_12">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(84.356195 164.002188) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(123.88394 163.951294) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(163.411685 163.964018) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(202.93943 164.091252) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Lysine -->\n+    <g transform="translate(107.981562 25.43625) scale(0.24 -0.24)">\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-4c" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-79" x="136.634766"/>\n+     <use xlink:href="#DejaVuSans-73" x="195.814453"/>\n+     <use xlink:href="#DejaVuSans-69" x="247.914062"/>\n+     <use xlink:href="#DejaVuSans-6e" x="275.697266"/>\n+     <use xlink:href="#DejaVuSans-65" x="339.076172"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p223c484e86">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Proline.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Proline.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1190 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.663629</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.588932 \n+L 79.963778 31.588932 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.588932 \n+L 113.562362 31.588932 \n+L 113.562362 31.588932 \n+L 79.963778 31.588932 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.843401 \n+L 159.019268 31.843401 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.868848 \n+L 198.547013 31.868848 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.588932 \n+L 113.562362 31.588932 \n+L 113.562362 31.588932 \n+L 79.963778 31.588932 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.843401 \n+L 192.617852 31.843401 \n+L 192.617852 31.843401 \n+L 159.019268 31.843401 \n+z\n+" clip-path="url(#p65c11a648e)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_'..b' 72.354688 285.90585 \n+L 239.754688 285.90585 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_30">\n+    <path d="M 72.354688 31.43625 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_12">\n+    <!-- 97.2 -->\n+    <g style="fill: #ffffff" transform="translate(82.290414 167.984637) scale(0.13 -0.13)">\n+     <defs>\n+      <path id="DejaVuSans-39" d="M 703 97 \n+L 703 672 \n+Q 941 559 1184 500 \n+Q 1428 441 1663 441 \n+Q 2288 441 2617 861 \n+Q 2947 1281 2994 2138 \n+Q 2813 1869 2534 1725 \n+Q 2256 1581 1919 1581 \n+Q 1219 1581 811 2004 \n+Q 403 2428 403 3163 \n+Q 403 3881 828 4315 \n+Q 1253 4750 1959 4750 \n+Q 2769 4750 3195 4129 \n+Q 3622 3509 3622 2328 \n+Q 3622 1225 3098 567 \n+Q 2575 -91 1691 -91 \n+Q 1453 -91 1209 -44 \n+Q 966 3 703 97 \n+z\n+M 1959 2075 \n+Q 2384 2075 2632 2365 \n+Q 2881 2656 2881 3163 \n+Q 2881 3666 2632 3958 \n+Q 2384 4250 1959 4250 \n+Q 1534 4250 1286 3958 \n+Q 1038 3666 1038 3163 \n+Q 1038 2656 1286 2365 \n+Q 1534 2075 1959 2075 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-37" d="M 525 4666 \n+L 3525 4666 \n+L 3525 4397 \n+L 1831 0 \n+L 1172 0 \n+L 2766 4134 \n+L 525 4134 \n+L 525 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-2e" d="M 684 794 \n+L 1344 794 \n+L 1344 0 \n+L 684 0 \n+L 684 794 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-37" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-32" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 98.0 -->\n+    <g style="fill: #ffffff" transform="translate(121.818159 166.915865) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-38" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-30" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 94.8 -->\n+    <g style="fill: #ffffff" transform="translate(161.345904 170.586589) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-34" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 96.1 -->\n+    <g style="fill: #ffffff" transform="translate(200.873649 168.818025) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-36" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-31" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Proline -->\n+    <g transform="translate(104.561563 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-50" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-72" x="148.599609"/>\n+     <use xlink:href="#DejaVuSans-6f" x="187.462891"/>\n+     <use xlink:href="#DejaVuSans-6c" x="248.644531"/>\n+     <use xlink:href="#DejaVuSans-69" x="276.427734"/>\n+     <use xlink:href="#DejaVuSans-6e" x="304.210938"/>\n+     <use xlink:href="#DejaVuSans-65" x="367.589844"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p65c11a648e">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_cell-L-Serine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_cell-L-Serine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1082 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:52.542710</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p73de52002c)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path d='..b' <use xlink:href="#DejaVuSans-75" x="1042.919922"/>\n+      <use xlink:href="#DejaVuSans-74" x="1106.298828"/>\n+      <use xlink:href="#DejaVuSans-69" x="1145.507812"/>\n+      <use xlink:href="#DejaVuSans-6f" x="1173.291016"/>\n+      <use xlink:href="#DejaVuSans-6e" x="1234.472656"/>\n+      <use xlink:href="#DejaVuSans-20" x="1297.851562"/>\n+      <use xlink:href="#DejaVuSans-28" x="1329.638672"/>\n+      <use xlink:href="#DejaVuSans-25" x="1368.652344"/>\n+      <use xlink:href="#DejaVuSans-29" x="1463.671875"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="patch_19">\n+    <path d="M 72.354688 285.90585 \n+L 72.354688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_20">\n+    <path d="M 239.754688 285.90585 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_21">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_22">\n+    <path d="M 72.354688 31.43625 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_12">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(84.356195 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(123.88394 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(163.411685 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(202.93943 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Serine -->\n+    <g transform="translate(106.991563 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-53" d="M 3425 4513 \n+L 3425 3897 \n+Q 3066 4069 2747 4153 \n+Q 2428 4238 2131 4238 \n+Q 1616 4238 1336 4038 \n+Q 1056 3838 1056 3469 \n+Q 1056 3159 1242 3001 \n+Q 1428 2844 1947 2747 \n+L 2328 2669 \n+Q 3034 2534 3370 2195 \n+Q 3706 1856 3706 1288 \n+Q 3706 609 3251 259 \n+Q 2797 -91 1919 -91 \n+Q 1588 -91 1214 -16 \n+Q 841 59 441 206 \n+L 441 856 \n+Q 825 641 1194 531 \n+Q 1563 422 1919 422 \n+Q 2459 422 2753 634 \n+Q 3047 847 3047 1241 \n+Q 3047 1584 2836 1778 \n+Q 2625 1972 2144 2069 \n+L 1759 2144 \n+Q 1053 2284 737 2584 \n+Q 422 2884 422 3419 \n+Q 422 4038 858 4394 \n+Q 1294 4750 2059 4750 \n+Q 2388 4750 2728 4690 \n+Q 3069 4631 3425 4513 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-53" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-65" x="153.523438"/>\n+     <use xlink:href="#DejaVuSans-72" x="215.046875"/>\n+     <use xlink:href="#DejaVuSans-69" x="256.160156"/>\n+     <use xlink:href="#DejaVuSans-6e" x="283.943359"/>\n+     <use xlink:href="#DejaVuSans-65" x="347.322266"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p73de52002c">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_med-L-Lactic_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_med-L-Lactic_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1175 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:53.225546</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 278.678913 \n+L 79.963778 278.678913 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 279.200576 \n+L 119.491523 279.200576 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 278.157251 \n+L 159.019268 278.157251 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 277.813717 \n+L 198.547013 277.813717 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 278.678913 \n+L 113.562362 278.678913 \n+L 113.562362 281.745272 \n+L 79.963778 281.745272 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 279.200576 \n+L 153.090107 279.200576 \n+L 153.090107 282.266935 \n+L 119.491523 282.266935 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 278.157251 \n+L 192.617852 278.157251 \n+L 192.617852 281.223609 \n+L 159.019268 281.223609 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 277.813717 \n+L 232.145597 277.813717 \n+L 232.145597 280.829181 \n+L 198.547013 280.829181 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 281.745272 \n+L 113.562362 281.745272 \n+L 113.562362 281.796166 \n+L 79.963778 281.796166 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 282.266935 \n+L 153.090107 282.266935 \n+L 153.090107 282.317829 \n+L 119.491523 282.317829 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 281.223609 \n+L 192.617852 281.223609 \n+L 192.617852 281.274503 \n+L 159.019268 281.274503 \n+z\n+" clip-path="url(#p27a80ca796)" style="fill: #5061aa; stroke: #000000'..b' 2656 1286 2365 \n+Q 1534 2075 1959 2075 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-37" d="M 525 4666 \n+L 3525 4666 \n+L 3525 4397 \n+L 1831 0 \n+L 1172 0 \n+L 2766 4134 \n+L 525 4134 \n+L 525 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-2e" d="M 684 794 \n+L 1344 794 \n+L 1344 0 \n+L 684 0 \n+L 684 794 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-37" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-32" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 97.4 -->\n+    <g transform="translate(121.818159 160.407805) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-37" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-34" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 97.0 -->\n+    <g transform="translate(161.345904 159.886142) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-37" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-30" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 96.8 -->\n+    <g transform="translate(200.873649 159.714375) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-36" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-38" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Lactic_acid -->\n+    <g transform="translate(79.070937 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-61" d="M 2194 1759 \n+Q 1497 1759 1228 1600 \n+Q 959 1441 959 1056 \n+Q 959 750 1161 570 \n+Q 1363 391 1709 391 \n+Q 2188 391 2477 730 \n+Q 2766 1069 2766 1631 \n+L 2766 1759 \n+L 2194 1759 \n+z\n+M 3341 1997 \n+L 3341 0 \n+L 2766 0 \n+L 2766 531 \n+Q 2569 213 2275 61 \n+Q 1981 -91 1556 -91 \n+Q 1019 -91 701 211 \n+Q 384 513 384 1019 \n+Q 384 1609 779 1909 \n+Q 1175 2209 1959 2209 \n+L 2766 2209 \n+L 2766 2266 \n+Q 2766 2663 2505 2880 \n+Q 2244 3097 1772 3097 \n+Q 1472 3097 1187 3025 \n+Q 903 2953 641 2809 \n+L 641 3341 \n+Q 956 3463 1253 3523 \n+Q 1550 3584 1831 3584 \n+Q 2591 3584 2966 3190 \n+Q 3341 2797 3341 1997 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-64" d="M 2906 2969 \n+L 2906 4863 \n+L 3481 4863 \n+L 3481 0 \n+L 2906 0 \n+L 2906 525 \n+Q 2725 213 2448 61 \n+Q 2172 -91 1784 -91 \n+Q 1150 -91 751 415 \n+Q 353 922 353 1747 \n+Q 353 2572 751 3078 \n+Q 1150 3584 1784 3584 \n+Q 2172 3584 2448 3432 \n+Q 2725 3281 2906 2969 \n+z\n+M 947 1747 \n+Q 947 1113 1208 752 \n+Q 1469 391 1925 391 \n+Q 2381 391 2643 752 \n+Q 2906 1113 2906 1747 \n+Q 2906 2381 2643 2742 \n+Q 2381 3103 1925 3103 \n+Q 1469 3103 1208 2742 \n+Q 947 2381 947 1747 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-4c" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-61" x="145.759766"/>\n+     <use xlink:href="#DejaVuSans-63" x="207.039062"/>\n+     <use xlink:href="#DejaVuSans-74" x="262.019531"/>\n+     <use xlink:href="#DejaVuSans-69" x="301.228516"/>\n+     <use xlink:href="#DejaVuSans-63" x="329.011719"/>\n+     <use xlink:href="#DejaVuSans-5f" x="383.992188"/>\n+     <use xlink:href="#DejaVuSans-61" x="433.992188"/>\n+     <use xlink:href="#DejaVuSans-63" x="495.271484"/>\n+     <use xlink:href="#DejaVuSans-69" x="550.251953"/>\n+     <use xlink:href="#DejaVuSans-64" x="578.035156"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p27a80ca796">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_med-L-Lysine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_med-L-Lysine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1145 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:53.103042</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #f67c4a; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p26c14954d2)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path d='..b'uSans-6c" x="367.822266"/>\n+      <use xlink:href="#DejaVuSans-6f" x="395.605469"/>\n+      <use xlink:href="#DejaVuSans-67" x="456.787109"/>\n+      <use xlink:href="#DejaVuSans-75" x="520.263672"/>\n+      <use xlink:href="#DejaVuSans-65" x="583.642578"/>\n+      <use xlink:href="#DejaVuSans-20" x="645.166016"/>\n+      <use xlink:href="#DejaVuSans-43" x="676.953125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="746.777344"/>\n+      <use xlink:href="#DejaVuSans-6e" x="807.958984"/>\n+      <use xlink:href="#DejaVuSans-74" x="871.337891"/>\n+      <use xlink:href="#DejaVuSans-72" x="910.546875"/>\n+      <use xlink:href="#DejaVuSans-69" x="951.660156"/>\n+      <use xlink:href="#DejaVuSans-62" x="979.443359"/>\n+      <use xlink:href="#DejaVuSans-75" x="1042.919922"/>\n+      <use xlink:href="#DejaVuSans-74" x="1106.298828"/>\n+      <use xlink:href="#DejaVuSans-69" x="1145.507812"/>\n+      <use xlink:href="#DejaVuSans-6f" x="1173.291016"/>\n+      <use xlink:href="#DejaVuSans-6e" x="1234.472656"/>\n+      <use xlink:href="#DejaVuSans-20" x="1297.851562"/>\n+      <use xlink:href="#DejaVuSans-28" x="1329.638672"/>\n+      <use xlink:href="#DejaVuSans-25" x="1368.652344"/>\n+      <use xlink:href="#DejaVuSans-29" x="1463.671875"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="patch_31">\n+    <path d="M 72.354688 285.90585 \n+L 72.354688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_32">\n+    <path d="M 239.754688 285.90585 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_33">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_34">\n+    <path d="M 72.354688 31.43625 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_12">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(84.356195 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(123.88394 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(163.411685 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(202.93943 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Lysine -->\n+    <g transform="translate(107.981562 25.43625) scale(0.24 -0.24)">\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-4c" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-79" x="136.634766"/>\n+     <use xlink:href="#DejaVuSans-73" x="195.814453"/>\n+     <use xlink:href="#DejaVuSans-69" x="247.914062"/>\n+     <use xlink:href="#DejaVuSans-6e" x="275.697266"/>\n+     <use xlink:href="#DejaVuSans-65" x="339.076172"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p26c14954d2">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_med-L-Proline.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_med-L-Proline.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1225 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:53.170566</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #fec877; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #ebf7a0; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.448973 \n+L 159.019268 31.448973 \n+z\n+" clip-path="url(#p85cbaf8109)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path '..b' \n+Q 1219 1581 811 2004 \n+Q 403 2428 403 3163 \n+Q 403 3881 828 4315 \n+Q 1253 4750 1959 4750 \n+Q 2769 4750 3195 4129 \n+Q 3622 3509 3622 2328 \n+Q 3622 1225 3098 567 \n+Q 2575 -91 1691 -91 \n+Q 1453 -91 1209 -44 \n+Q 966 3 703 97 \n+z\n+M 1959 2075 \n+Q 2384 2075 2632 2365 \n+Q 2881 2656 2881 3163 \n+Q 2881 3666 2632 3958 \n+Q 2384 4250 1959 4250 \n+Q 1534 4250 1286 3958 \n+Q 1038 3666 1038 3163 \n+Q 1038 2656 1286 2365 \n+Q 1534 2075 1959 2075 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-2e" d="M 684 794 \n+L 1344 794 \n+L 1344 0 \n+L 684 0 \n+L 684 794 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-39" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-31" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(123.88394 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 97.7 -->\n+    <g style="fill: #ffffff" transform="translate(161.345904 167.087632) scale(0.13 -0.13)">\n+     <defs>\n+      <path id="DejaVuSans-37" d="M 525 4666 \n+L 3525 4666 \n+L 3525 4397 \n+L 1831 0 \n+L 1172 0 \n+L 2766 4134 \n+L 525 4134 \n+L 525 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-37" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-37" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 99.3 -->\n+    <g style="fill: #ffffff" transform="translate(200.873649 164.988258) scale(0.13 -0.13)">\n+     <defs>\n+      <path id="DejaVuSans-33" d="M 2597 2516 \n+Q 3050 2419 3304 2112 \n+Q 3559 1806 3559 1356 \n+Q 3559 666 3084 287 \n+Q 2609 -91 1734 -91 \n+Q 1441 -91 1130 -33 \n+Q 819 25 488 141 \n+L 488 750 \n+Q 750 597 1062 519 \n+Q 1375 441 1716 441 \n+Q 2309 441 2620 675 \n+Q 2931 909 2931 1356 \n+Q 2931 1769 2642 2001 \n+Q 2353 2234 1838 2234 \n+L 1294 2234 \n+L 1294 2753 \n+L 1863 2753 \n+Q 2328 2753 2575 2939 \n+Q 2822 3125 2822 3475 \n+Q 2822 3834 2567 4026 \n+Q 2313 4219 1838 4219 \n+Q 1578 4219 1281 4162 \n+Q 984 4106 628 3988 \n+L 628 4550 \n+Q 988 4650 1302 4700 \n+Q 1616 4750 1894 4750 \n+Q 2613 4750 3031 4423 \n+Q 3450 4097 3450 3541 \n+Q 3450 3153 3228 2886 \n+Q 3006 2619 2597 2516 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-39"/>\n+     <use xlink:href="#DejaVuSans-39" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-2e" x="127.246094"/>\n+     <use xlink:href="#DejaVuSans-33" x="159.033203"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Proline -->\n+    <g transform="translate(104.561563 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-50" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-72" x="148.599609"/>\n+     <use xlink:href="#DejaVuSans-6f" x="187.462891"/>\n+     <use xlink:href="#DejaVuSans-6c" x="248.644531"/>\n+     <use xlink:href="#DejaVuSans-69" x="276.427734"/>\n+     <use xlink:href="#DejaVuSans-6e" x="304.210938"/>\n+     <use xlink:href="#DejaVuSans-65" x="367.589844"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p85cbaf8109">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/Isotopologues_med-L-Serine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Isotopologues_med-L-Serine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1082 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="246.954688pt" height="446.2421pt" viewBox="0 0 246.954688 446.2421" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:53.041245</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 446.2421 \n+L 246.954688 446.2421 \n+L 246.954688 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+L 239.754688 31.43625 \n+L 72.354688 31.43625 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #a4daa4; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 198.547013 31.43625 \n+L 232.145597 31.43625 \n+L 232.145597 31.43625 \n+L 198.547013 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #4199b6; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_11">\n+    <path d="M 79.963778 31.43625 \n+L 113.562362 31.43625 \n+L 113.562362 31.43625 \n+L 79.963778 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_12">\n+    <path d="M 119.491523 31.43625 \n+L 153.090107 31.43625 \n+L 153.090107 31.43625 \n+L 119.491523 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_13">\n+    <path d="M 159.019268 31.43625 \n+L 192.617852 31.43625 \n+L 192.617852 31.43625 \n+L 159.019268 31.43625 \n+z\n+" clip-path="url(#pcedc1870ca)" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_14">\n+    <path d='..b' <use xlink:href="#DejaVuSans-75" x="1042.919922"/>\n+      <use xlink:href="#DejaVuSans-74" x="1106.298828"/>\n+      <use xlink:href="#DejaVuSans-69" x="1145.507812"/>\n+      <use xlink:href="#DejaVuSans-6f" x="1173.291016"/>\n+      <use xlink:href="#DejaVuSans-6e" x="1234.472656"/>\n+      <use xlink:href="#DejaVuSans-20" x="1297.851562"/>\n+      <use xlink:href="#DejaVuSans-28" x="1329.638672"/>\n+      <use xlink:href="#DejaVuSans-25" x="1368.652344"/>\n+      <use xlink:href="#DejaVuSans-29" x="1463.671875"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="patch_19">\n+    <path d="M 72.354688 285.90585 \n+L 72.354688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_20">\n+    <path d="M 239.754688 285.90585 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_21">\n+    <path d="M 72.354688 285.90585 \n+L 239.754688 285.90585 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_22">\n+    <path d="M 72.354688 31.43625 \n+L 239.754688 31.43625 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_12">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(84.356195 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_13">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(123.88394 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_14">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(163.411685 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_15">\n+    <!-- 100 -->\n+    <g style="fill: #ffffff" transform="translate(202.93943 163.760442) scale(0.13 -0.13)">\n+     <use xlink:href="#DejaVuSans-31"/>\n+     <use xlink:href="#DejaVuSans-30" x="63.623047"/>\n+     <use xlink:href="#DejaVuSans-30" x="127.246094"/>\n+    </g>\n+   </g>\n+   <g id="text_16">\n+    <!-- L-Serine -->\n+    <g transform="translate(106.991563 25.43625) scale(0.24 -0.24)">\n+     <defs>\n+      <path id="DejaVuSans-53" d="M 3425 4513 \n+L 3425 3897 \n+Q 3066 4069 2747 4153 \n+Q 2428 4238 2131 4238 \n+Q 1616 4238 1336 4038 \n+Q 1056 3838 1056 3469 \n+Q 1056 3159 1242 3001 \n+Q 1428 2844 1947 2747 \n+L 2328 2669 \n+Q 3034 2534 3370 2195 \n+Q 3706 1856 3706 1288 \n+Q 3706 609 3251 259 \n+Q 2797 -91 1919 -91 \n+Q 1588 -91 1214 -16 \n+Q 841 59 441 206 \n+L 441 856 \n+Q 825 641 1194 531 \n+Q 1563 422 1919 422 \n+Q 2459 422 2753 634 \n+Q 3047 847 3047 1241 \n+Q 3047 1584 2836 1778 \n+Q 2625 1972 2144 2069 \n+L 1759 2144 \n+Q 1053 2284 737 2584 \n+Q 422 2884 422 3419 \n+Q 422 4038 858 4394 \n+Q 1294 4750 2059 4750 \n+Q 2388 4750 2728 4690 \n+Q 3069 4631 3425 4513 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-53" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-65" x="153.523438"/>\n+     <use xlink:href="#DejaVuSans-72" x="215.046875"/>\n+     <use xlink:href="#DejaVuSans-69" x="256.160156"/>\n+     <use xlink:href="#DejaVuSans-6e" x="283.943359"/>\n+     <use xlink:href="#DejaVuSans-65" x="347.322266"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pcedc1870ca">\n+   <rect x="72.354688" y="31.43625" width="167.4" height="254.4696"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--cell--multigroup.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell--multigroup.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,6 @@
+metabolite Ctrl_cell_T0h-1 Ctrl_cell_T0h-2 Ctrl_cell_T0h-3 Cond1_cell_T0h-1 Cond1_cell_T0h-2 Cond1_cell_T0h-3 Cond2_cell_T0h-1 Cond2_cell_T0h-2 Cond2_cell_T0h-3 Ctrl_cell_T2h-1 Ctrl_cell_T2h-2 Ctrl_cell_T2h-3 Cond1_cell_T2h-1 Cond1_cell_T2h-2 Cond1_cell_T2h-3 Cond2_cell_T2h-1 Cond2_cell_T2h-2 Cond2_cell_T2h-3 pvalue padj
+Glycine 0.002519 0.003212 0.002011 0.009304 0.010108 0.014663 2.87541 1.698859 1.731678 0.00015 0.000175 9.8e-05 4.5e-05 1.579707 5.3e-05 1.787379 2.109744 2.1255 0.018127 0.090635
+Hexose 0.001174 0.00082 0.001356 0.000516 0.000519 0.000437 1.843131 1.834915 2.0687 0.000169 0.000253 0.000164 1.865063 1.718398 1.76228 1.987815 2.449479 2.241466 0.006794 0.033971
+L-Arginine 0.000151 0.000198 0.000111 7.8e-05 0.00012 2.038458 2.026891 2.02749 1.983931 0.000108 0.000137 9.9e-05 2.034691 1.974143 1.917751 1.991686 0.167953 0.839766
+L-Glutamine 1.58483 1.81629 1.751614 0.754035 0.894641 3.490867 3.443824 2.831176
+L-Tryptophan 6.3e-05 7.3e-05 7e-05 0.000491 0.000499 4.483307 0.344618 0.318892 0.313476 4e-05 4.5e-05 3.2e-05 0.369116 0.35728 0.292317 0.331011 0.300477 0.331022 0.030637 0.153184
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--cell-Control-T0-L-Cycloserine-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell-Control-T0-L-Cycloserine-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,25 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_cell_T0-1 Ctrl_cell_T0-2 L-Cyc_cell_T0-1 L-Cyc_cell_T0-2 gmean_1 gmean_2
+L-Tyrosine 0.659969 0.044578 1.0 0.544 1.580048 0 0 1.346502 2.475187 cell 5.059224 5.449813 3.712722 2.974626 5.250888 3.323245
+L-Methionine 0.564183 0.075348 1.0 0.488153 1.47855 0 0 1.21324 2.485367 cell 5.928871 5.711734 4.498494 3.443504 5.81929 3.935808
+L-Aspartic_acid 1.159351 0.071437 1.0 0.435311 2.23357 0 0 1.126485 2.587769 cell 3.824739 2.962785 1.8363 1.23697 3.366286 1.507132
+Ile_Leu 0.693524 0.078103 1.0 0.414254 1.617229 0 0 1.080144 2.607445 cell 4.393714 5.288745 3.31357 2.6813 4.820501 2.980717
+L-Tryptophan 0.837035 0.077877 1.0 0.411565 1.786375 0 0 1.07544 2.613053 cell 3.918551 4.59966 2.843111 1.986607 4.245468 2.376582
+L-Phenylalanine 0.676734 0.082439 1.0 0.397203 1.598517 0 0 1.043392 2.62685 cell 4.492276 5.358136 3.448884 2.731286 4.906142 3.069184
+L-Histidine 0.662413 0.124722 1.0 0.342512 1.582728 0 0 0.893231 2.607882 cell 5.135867 4.726362 3.833131 2.527985 4.926862 3.112892
+L-Lysine 0.700054 0.108484 1.0 0.32716 1.624566 0 0 0.879075 2.68699 cell 4.289814 5.133306 3.410739 2.446316 4.692646 2.888554
+L-Valine 0.48785 0.113542 1.0 0.317079 1.402354 0 0 0.853637 2.692194 cell 6.655174 5.844043 4.990406 3.96298 6.236435 4.44712
+L-Glutamic_acid 0.830004 0.137338 1.0 0.265185 1.777691 0 0 0.723262 2.727386 cell 4.556485 3.416118 2.692856 1.829099 3.945312 2.219347
+L-Serine 0.556596 0.152386 1.0 0.23191 1.470794 0 0 0.638261 2.752194 cell 5.905558 4.753595 4.115334 3.153364 5.298361 3.602381
+Hexose-phosphate 0.76747 0.157597 1.0 0.22649 1.702282 0 0 0.62225 2.747362 cell 4.735898 3.493336 2.871086 1.988536 4.067442 2.389405
+L-Proline 0.519615 0.177905 1.0 0.223644 1.433572 0 0 0.601013 2.687365 cell 6.102914 4.603201 4.002188 3.415549 5.300277 3.697252
+L-Lactic_acid 0.766316 0.216319 1.0 0.194497 1.70092 0 0 0.51042 2.624306 cell 2.828561 4.538379 2.318141 1.914073 3.582887 2.10644
+Hexose 0.648059 0.202852 1.0 0.1683 1.567058 0 0 0.459334 2.729259 cell 5.122919 3.575551 3.116217 2.39366 4.279867 2.731147
+Fumaric_acid 0.623283 0.19388 1.0 0.156841 1.540376 0 0 0.437164 2.787315 cell 3.977834 5.293909 2.506594 3.54067 4.588931 2.979098
+L-Malic_acid 0.276766 0.295582 1.0 0.151833 1.211476 0 0 0.371422 2.446251 cell 8.445961 8.514381 8.074539 6.06813 8.480102 6.999811
+L-Arginine 0.574794 0.200943 1.0 0.144438 1.489464 0 0 0.403393 2.792837 cell 4.234461 5.565819 3.831068 2.772982 4.854714 3.259368
+L-Threonine 0.540842 0.220629 1.0 0.113082 1.454821 0 0 0.316715 2.800767 cell 5.715582 4.30713 3.990415 2.914815 4.961628 3.410472
+L-Glutamine 0.98619 0.263749 1.0 0.087801 1.980946 0 0 0.237703 2.707301 cell 3.806965 2.018081 1.780378 1.099664 2.77178 1.39922
+Glycine 0.567169 0.318145 1.0 -0.012773 1.481613 0 0 -0.035287 2.762706 cell 5.028385 3.20148 3.236767 2.265679 4.012265 2.708039
+Pyruvic_acid 0.472738 0.490805 1.0 -0.131405 1.387741 0 0 -0.317152 2.413541 cell 1.811325 4.224866 2.158282 1.84113 2.766334 1.993409
+L-Alanine 0.440859 0.494601 1.0 -0.237912 1.357412 0 0 -0.631111 2.652708 cell 4.684396 2.511054 3.142165 2.031688 3.42969 2.526638
+Fructose_1,6-bisphosphate 2.638184 1 1 2.0 cell 3.220864 1.220864 3.220864 1.220864
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--cell-Control-T2h-Control-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell-Control-T2h-Control-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,25 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_cell_T2h-1 Ctrl_cell_T2h-2 Ctrl_cell_T0-1 Ctrl_cell_T0-2 gmean_1 gmean_2
+L-Tryptophan -0.777998 0.034692 0.69385 0.664552 0.583176 0 0 1.541549 2.319681 cell 2.660282 2.70099 4.242539 4.979963 2.680559 4.596486
+L-Aspartic_acid -2.274085 0.039066 0.781312 0.556683 0.206744 0 0 1.374553 2.469185 cell 0.327076 0.791534 2.796261 2.166087 0.508814 2.461086
+L-Lysine -0.558396 0.071556 1.0 0.497716 0.679057 0 0 1.23415 2.479625 cell 3.776027 3.993588 5.227738 6.255652 3.883284 5.718646
+L-Arginine -0.658636 0.111701 1.0 0.440969 0.633477 0 0 1.087359 2.465839 cell 3.035924 2.953846 4.123283 5.419685 2.994604 4.72725
+L-Histidine -0.68301 0.090057 1.0 0.413676 0.622865 0 0 1.065086 2.574685 cell 2.578187 3.676926 5.152872 4.742012 3.078929 4.943175
+L-Tyrosine -0.589456 0.191484 1.0 0.235832 0.664593 0 0 0.617152 2.616914 cell 2.671781 4.292502 4.909654 5.288695 3.386536 5.095651
+L-Methionine -0.489868 0.261207 1.0 0.168943 0.71209 0 0 0.427099 2.528072 cell 3.0957 4.99071 5.623772 5.417809 3.930616 5.51983
+L-Phenylalanine -0.608451 0.19931 1.0 0.160334 0.655901 0 0 0.442554 2.760207 cell 2.526754 3.990049 4.432603 5.286961 3.175196 4.840971
+L-Malic_acid -0.842519 0.323037 1.0 0.123892 0.557669 0 0 0.2985 2.409353 cell 1.235551 3.317115 3.615615 3.644904 2.024467 3.63023
+Ile_Leu -0.554218 0.227774 1.0 0.111354 0.681026 0 0 0.309498 2.779406 cell 2.749607 4.283823 4.593321 5.529013 3.43203 5.039497
+L-Lactic_acid -0.468969 0.32893 1.0 0.109159 0.722481 0 0 0.264176 2.420103 cell 3.143658 3.203459 3.467635 5.563761 3.173418 4.39239
+Fumaric_acid -1.082458 0.257085 1.0 0.072691 0.472224 0 0 0.201376 2.770286 cell 0.878066 2.539989 2.741365 3.648352 1.493412 3.162509
+L-Glutamine -1.091499 0.265783 1.0 0.064303 0.469274 0 0 0.177439 2.759429 cell 0.883383 1.753625 3.642812 1.931064 1.244638 2.652264
+L-Glutamic_acid -0.765842 0.325511 1.0 -0.028187 0.58811 0 0 -0.078254 2.776208 cell 1.414087 3.21983 4.190295 3.141576 2.133804 3.628241
+L-Valine -0.345997 0.35338 1.0 -0.044413 0.786764 0 0 -0.120212 2.706693 cell 4.179372 6.167004 6.886065 6.046792 5.07683 6.452798
+L-Threonine -0.463814 0.368868 1.0 -0.099423 0.725067 0 0 -0.278707 2.803234 cell 2.723045 4.443183 5.526279 4.164476 3.47836 4.797297
+Pyruvic_acid 0.905946 0.398774 1.0 -0.124124 1.873772 0 0 -0.34081 2.745715 cell 1.633721 3.592255 0.84654 1.974531 2.422549 1.292873
+Hexose-phosphate -0.60704 0.407318 1.0 -0.137592 0.656542 0 0 -0.378236 2.748963 cell 1.734049 3.685036 4.483012 3.3068 2.527851 3.85025
+Hexose -0.403635 0.446592 1.0 -0.201612 0.755951 0 0 -0.558993 2.772623 cell 2.764282 4.423486 5.536905 3.864493 3.496822 4.625725
+L-Serine -0.31232 0.458611 1.0 -0.2056 0.805345 0 0 -0.560471 2.726026 cell 3.868814 5.868893 6.59484 5.308422 4.765045 5.916772
+Fructose_1,6-bisphosphate 0.0 1.526778 0 1 0.0 2.23249 cell 0.154691 2.387181 0.398015 0.60768 0.398015
+Glycine -0.316365 0.624652 -0.423447 0.803091 0 0 -1.102692 2.604084 cell 2.393939 4.284841 4.998023 3.182149 3.202756 3.988039
+L-Proline -0.168249 0.862102 -0.454948 0.889922 0 0 -1.160081 2.549919 cell 2.590021 5.13994 4.720818 3.560737 3.648637 4.09995
+L-Alanine -0.07162 0.950212 -0.89366 0.951569 0 0 -1.882381 2.106373 cell 1.96331 4.069683 4.057263 2.174882 2.826668 2.970533
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--cell-Control-T2h-L-Cycloserine-T2h-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell-Control-T2h-L-Cycloserine-T2h-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,25 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_cell_T2h-1 Ctrl_cell_T2h-2 L-Cyc_cell_T2h-1 L-Cyc_cell_T2h-2 gmean_1 gmean_2
+L-Lactic_acid 0.362066 0.35792 1.0 0.058568 1.285265 0 0 0.142099 2.42622 cell 6.256224 6.375234 3.949014 6.114125 6.315449 4.913732
+L-Arginine 0.181307 0.654333 1.0 -0.072802 1.133911 0 0 -0.192713 2.64707 cell 7.128152 6.935439 5.016926 7.663996 7.031135 6.200782
+L-Tryptophan 0.10835 0.575344 1.0 -0.075459 1.077995 0 0 -0.192682 2.553471 cell 12.591879 12.784561 10.562173 13.115644 12.687854 11.769864
+L-Lysine 0.11389 0.744288 1.0 -0.171533 1.082142 0 0 -0.462286 2.695029 cell 8.023523 8.485809 6.395727 9.090756 8.251429 7.62509
+Fumaric_acid 0.29413 0.461999 0 1 0.700935 2.383081 cell 0.888751 2.570897 3.271832 1.511584 3.271832
+Fructose_1,6-bisphosphate 0.0 1.145529 0 1 0.0 2.287469 cell 0.158501 2.44597 0.543545 0.622647 0.543545
+Pyruvic_acid 0.373873 0.661572 -0.465941 1.295827 0 0 -1.181049 2.534762 cell 1.800099 3.958089 1.423327 2.981148 2.669261 2.05989
+L-Glutamine 0.262582 0.678179 -0.482549 1.199624 0 0 -1.200459 2.487743 cell 2.308578 4.582813 2.09507 3.509037 3.252658 2.711398
+L-Aspartic_acid 0.249699 0.745614 -0.577117 1.188959 0 0 -1.388665 2.406211 cell 1.600511 3.873288 1.467077 2.989176 2.489827 2.094123
+Ile_Leu 0.191338 0.775003 -0.624008 1.141823 0 0 -1.493647 2.393636 cell 3.231426 5.034484 2.640848 4.725073 4.033431 3.53245
+L-Phenylalanine 0.185719 0.785147 -0.638734 1.137383 0 0 -1.519477 2.378888 cell 3.147058 4.969585 2.590697 4.666535 3.95469 3.477007
+L-Tyrosine 0.169586 0.805815 -0.669127 1.124736 0 0 -1.570811 2.347552 cell 3.058614 4.91399 2.566438 4.629425 3.876854 3.446902
+L-Valine 0.154185 0.813025 -0.678125 1.112793 0 0 -1.575671 2.32357 cell 3.58809 5.294519 2.970949 5.163761 4.358579 3.916793
+L-Alanine -0.026254 0.973518 -0.688817 0.981966 0 0 -1.603905 2.328493 cell 2.170343 4.498836 2.479673 4.083578 3.124743 3.182128
+L-Histidine 0.111173 0.829889 -0.704841 1.080106 0 0 -1.624902 2.305344 cell 4.258872 6.073864 3.76852 5.883774 5.086041 4.708834
+L-Malic_acid -0.25568 0.834034 -0.711875 0.837592 0 0 -1.640219 2.304084 cell 1.183028 3.176104 1.535885 3.487112 1.938407 2.314261
+Hexose 0.123989 0.851213 -0.738234 1.089743 0 0 -1.678448 2.273598 cell 3.154886 5.048543 2.774945 4.833334 3.990937 3.662272
+Hexose-phosphate 0.02248 0.937522 -0.772684 1.015704 0 0 -1.725995 2.233767 cell 1.985384 4.219151 2.114313 3.840308 2.894242 2.849493
+L-Glutamic_acid 0.071406 0.898587 -0.786571 1.05074 0 0 -1.739625 2.211657 cell 1.73196 3.943617 1.76515 3.504775 2.613463 2.487258
+L-Proline -0.102609 0.921051 -0.798521 0.931347 0 0 -1.759402 2.203325 cell 2.237976 4.441301 2.617836 4.377238 3.152701 3.385098
+L-Threonine 0.069145 0.906001 -0.827452 1.049095 0 0 -1.803085 2.179081 cell 3.176783 5.183546 3.004465 4.979868 4.057955 3.868054
+L-Serine 0.075222 0.909283 -0.832574 1.053523 0 0 -1.804475 2.167344 cell 3.54649 5.379935 3.212591 5.350965 4.368053 4.146138
+L-Methionine 0.080167 0.913957 -0.840739 1.05714 0 0 -1.816896 2.16107 cell 3.053635 4.922895 2.761825 4.870531 3.877206 3.667636
+Glycine -0.003109 0.981504 -0.842581 0.997848 0 0 -1.822182 2.162619 cell 2.737938 4.900557 2.871164 4.693346 3.66298 3.670881
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--cell-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--cell-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,25 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment L-Cyc_cell_T2h-1 L-Cyc_cell_T2h-2 L-Cyc_cell_T0-1 L-Cyc_cell_T0-2 gmean_1 gmean_2
+L-Aspartic_acid -1.364433 0.130746 0.522986 0.281466 0.388387 0 0 0.763705 2.713309 cell 0.780152 1.589563 3.493461 2.353268 1.113598 2.867237
+Pyruvic_acid 1.004811 0.273062 1.0 0.153419 2.006681 0 0 0.386767 2.520986 cell 1.764929 3.696632 1.378162 1.175646 2.55427 1.272883
+L-Proline 0.453975 0.375728 1.0 -0.027312 1.36981 0 0 -0.070115 2.567204 cell 3.208945 5.365621 3.27906 2.798417 4.149456 3.029221
+L-Alanine 0.395494 0.490938 1.0 -0.247303 1.315393 0 0 -0.66902 2.705267 cell 3.137119 5.166273 3.806139 2.461006 4.025818 3.060544
+L-Glutamine -0.367891 0.54526 -0.322082 0.774915 0 0 -0.864197 2.683155 cell 2.384944 3.994548 5.068099 3.130351 3.086547 3.98308
+L-Arginine -0.26515 0.569639 -0.353864 0.832112 0 0 -0.942768 2.66421 cell 3.571926 5.456573 6.236136 4.513805 4.414802 5.305535
+Ile_Leu -0.052032 0.999845 -0.372715 0.964577 0 0 -0.987815 2.650324 cell 3.358135 6.008459 5.176894 4.189079 4.491906 4.656868
+Glycine 0.253911 0.601429 -0.381709 1.192436 0 0 -0.98425 2.578534 cell 3.495889 5.714551 4.480139 3.136017 4.469613 3.748305
+L-Tyrosine -0.099074 0.925868 -0.397473 0.933632 0 0 -1.041848 2.621181 cell 3.260853 5.882034 5.240632 4.198784 4.379549 4.690872
+L-Valine -0.012332 0.946093 -0.416211 0.991489 0 0 -1.085262 2.607482 cell 3.532767 6.140249 5.271324 4.186062 4.657475 4.697456
+L-Malic_acid -0.310073 0.749772 -0.421482 0.806601 0 0 -1.063593 2.523462 cell 1.986311 4.509773 4.280295 3.216702 2.99296 3.710584
+L-Phenylalanine -0.117435 0.894656 -0.424837 0.921825 0 0 -1.0998 2.588757 cell 3.230833 5.81959 5.2858 4.186 4.336142 4.703866
+Hexose 0.120435 0.752117 -0.433008 1.087063 0 0 -1.088815 2.51454 cell 3.389891 5.904431 4.695803 3.606988 4.473855 4.115544
+L-Lactic_acid -0.064719 0.922245 -0.455322 0.956131 0 0 -1.16852 2.566358 cell 4.680861 7.247219 6.703809 5.535289 5.824365 6.091594
+L-Serine 0.169053 0.680458 -0.460513 1.12432 0 0 -1.121076 2.434406 cell 3.657336 6.091742 4.795994 3.674918 4.720122 4.1982
+L-Methionine -0.005852 0.938944 -0.468109 0.995952 0 0 -1.196896 2.556876 cell 3.348806 5.905682 5.10358 3.906684 4.447132 4.465207
+Hexose-phosphate 0.13795 0.760717 -0.55418 1.10034 0 0 -1.331177 2.402066 cell 2.942487 5.344553 4.330543 2.999366 3.965637 3.604009
+L-Glutamic_acid -0.007244 0.937477 -0.559258 0.994991 0 0 -1.377884 2.46377 cell 2.49992 4.96369 4.295701 2.917817 3.522617 3.540349
+L-Tryptophan -0.049313 0.852261 -0.581752 0.966396 0 0 -1.40667 2.417988 cell 5.818548 7.225218 8.026356 5.608368 6.483847 6.709304
+L-Threonine 0.007882 0.940534 -0.614186 1.005478 0 0 -1.477656 2.405876 cell 3.659188 6.065064 5.482022 4.004366 4.710967 4.685299
+L-Histidine -0.131769 0.796273 -0.655487 0.912712 0 0 -1.55048 2.365386 cell 3.449234 5.385275 5.81462 3.834795 4.309881 4.722063
+L-Lysine 0.027768 0.93853 -0.883894 1.019434 0 0 -1.871833 2.117711 cell 4.914168 6.984898 6.786001 4.867187 5.858751 5.747063
+Fructose_1,6-bisphosphate 3.516217 1 1 2.0 cell 2.794844 0.794844 2.794844 0.794844
+Fumaric_acid 1.574466 1 0 1.289051 cell 5.258464 2.81012 3.969413 5.258464 3.339839
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--med-Control-T0-L-Cycloserine-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--med-Control-T0-L-Cycloserine-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,20 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_med_T0-1 Ctrl_med_T0-2 L-Cyc_med_T0-1 L-Cyc_med_T0-2 gmean_1 gmean_2
+L-Valine -0.06551 0.004613 0.078425 0.830536 0.955607 0 0 1.806475 2.175072 med 42.7862 42.917067 44.961272 44.723542 42.851584 44.842249
+L-Lactic_acid 0.081287 0.035485 0.603247 0.64986 1.057961 0 0 1.519643 2.338416 med 35.285733 35.209883 33.69024 32.947317 35.247788 33.316708
+L-Arginine 0.006662 0.038909 0.661461 0.622566 1.004628 0 0 1.475052 2.369309 med 417.573697 416.802075 415.204388 415.327023 417.187708 415.265701
+L-Proline -0.114311 0.052379 0.890451 0.495962 0.923823 0 0 1.256673 2.533809 med 22.674872 23.296347 25.208681 24.55302 22.983509 24.878691
+Hexose-phosphate -0.152217 0.121088 1.0 0.441254 0.899867 0 0 1.07635 2.439298 med 15.686678 15.672772 18.11207 16.763028 15.679723 17.424498
+L-Tryptophan 0.139342 0.13131 1.0 0.32956 1.101403 0 0 0.861293 2.613467 med 18.793992 19.207497 17.932699 16.59403 18.99962 17.250384
+L-Phenylalanine -0.070754 0.112054 1.0 0.327323 0.95214 0 0 0.875883 2.675902 med 34.932908 35.642687 37.60881 36.51857 35.286013 37.059681
+L-Methionine -0.05948 0.121063 1.0 0.296729 0.95961 0 0 0.804505 2.711241 med 41.3005 42.222702 44.011741 43.027207 41.759055 43.51669
+L-Alanine -0.186768 0.189622 1.0 0.161521 0.878572 0 0 0.450765 2.790747 med 11.17805 12.28269 13.968797 12.733455 11.71736 13.336831
+Ile_Leu -0.067879 0.266664 1.0 0.038434 0.95404 0 0 0.108567 2.824776 med 29.783216 31.074798 32.607992 31.183365 30.422153 31.887724
+Glycine -0.40224 0.406096 1.0 0.003298 0.756683 0 0 0.00781 2.367806 med 3.275612 3.189559 5.557365 3.283422 3.232299 4.271671
+Pyruvic_acid -0.059155 0.334667 1.0 0.001586 0.959826 0 0 0.004213 2.65712 med 33.153112 31.141204 33.798324 33.157325 32.131415 33.47629
+L-Lysine -0.001834 0.946483 1.0 -0.206473 0.99873 0 0 -0.57111 2.766029 med 90.619429 93.385458 92.395033 91.823923 91.992048 92.109035
+L-Threonine -0.019183 0.467268 1.0 -0.208828 0.986792 0 0 -0.562452 2.693379 med 81.007696 78.916447 81.609826 80.445244 79.955235 81.025443
+L-Asparagine 0.051495 0.479539 1.0 -0.240516 1.036338 0 0 -0.659285 2.74113 med 30.611703 29.072045 29.73133 27.870573 29.831943 28.78592
+Hexose 0.007394 0.632326 1.0 -0.248644 1.005138 0 0 -0.634685 2.552587 med 141.526046 144.078633 142.384333 141.749648 142.796636 142.066636
+L-Serine -0.003785 0.885659 1.0 -0.258807 0.99738 0 0 -0.70402 2.720251 med 82.756733 83.460753 84.697551 81.9773 83.107998 83.326326
+L-Histidine 0.020108 0.536681 -0.307902 1.014035 0 0 -0.82449 2.677766 med 66.478417 67.955877 65.278111 67.302907 67.213087 66.282778
+L-Tyrosine -0.024305 0.567197 -0.345223 0.983294 0 0 -0.912759 2.643971 med 49.917227 51.3987 52.561198 50.485941 50.652548 51.51312
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--med-Control-T2h-Control-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--med-Control-T2h-Control-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,20 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_med_T2h-1 Ctrl_med_T2h-2 Ctrl_med_T0-1 Ctrl_med_T0-2 gmean_1 gmean_2
+L-Asparagine -0.315743 0.028245 0.508416 0.610328 0.803437 0 0 1.473213 2.413806 med 7.730141 8.16053 10.143947 9.633743 7.942421 9.885554
+L-Phenylalanine -0.084598 0.030111 0.541993 0.671736 0.943047 0 0 1.558881 2.320675 med 32.130034 32.052743 33.688915 34.373418 32.091365 34.029445
+L-Threonine -0.106792 0.033603 0.604856 0.631099 0.928651 0 0 1.495659 2.369928 med 25.045012 25.211552 27.41494 26.707211 25.128144 27.058762
+L-Valine -0.067996 0.042832 0.770972 0.607069 0.953962 0 0 1.446278 2.382394 med 39.306545 40.115539 41.561817 41.688939 39.708982 41.625329
+L-Tyrosine -0.113457 0.046722 0.840993 0.530543 0.924371 0 0 1.321767 2.491346 med 23.066568 23.499488 24.821255 25.557914 23.282022 25.186891
+L-Serine -0.118888 0.05061 0.910985 0.560837 0.920897 0 0 1.364531 2.433027 med 22.588437 21.723711 23.952968 24.156738 22.151855 24.054637
+Hexose-phosphate -0.427357 0.062717 1.0 0.581387 0.743623 0 0 1.378344 2.370787 med 5.030212 6.016094 7.400999 7.394438 5.501112 7.397718
+L-Arginine -0.065823 0.085013 1.0 0.501611 0.9554 0 0 1.222599 2.437347 med 39.86267 38.723983 41.16133 41.085269 39.289202 41.123282
+Hexose -0.087076 0.058805 1.0 0.475511 0.941429 0 0 1.21327 2.551509 med 29.894783 30.658183 31.871453 32.446292 30.274077 32.157588
+L-Histidine -0.096367 0.062761 1.0 0.459013 0.935385 0 0 1.179441 2.569515 med 27.526594 26.774502 28.706035 29.344017 27.147944 29.023273
+Glycine -0.100796 0.063723 1.0 0.454918 0.932518 0 0 1.171006 2.574101 med 26.206344 25.541879 28.11598 27.37735 25.871978 27.744207
+Ile_Leu -0.087322 0.110833 1.0 0.415844 0.941268 0 0 1.04462 2.512048 med 28.487629 28.300899 29.532249 30.812947 28.39411 30.165802
+L-Proline -0.427205 0.130273 1.0 0.377685 0.743701 0 0 0.953724 2.525185 med 5.916471 4.533309 6.870195 7.058494 5.178918 6.963708
+L-Methionine -0.104127 0.121198 1.0 0.325756 0.930368 0 0 0.863734 2.651476 med 22.963857 24.192125 25.055859 25.615333 23.569991 25.334052
+L-Lysine -0.042176 0.194447 1.0 0.300247 0.971189 0 0 0.744058 2.478156 med 54.067768 54.127004 54.871062 56.545924 54.097378 55.702198
+L-Lactic_acid -0.056578 0.275137 1.0 0.176712 0.961542 0 0 0.435423 2.464029 med 37.556173 35.609409 38.073438 37.991596 36.569839 38.032495
+L-Tryptophan -0.176081 0.342876 1.0 0.050641 0.885104 0 0 0.126694 2.501802 med 11.638726 9.52248 11.76542 12.024282 10.527561 11.894147
+L-Alanine -0.072231 0.842985 1.0 -0.299141 0.951166 0 0 -0.800552 2.67617 med 6.849088 9.525258 8.100928 8.90148 8.077087 8.491775
+Pyruvic_acid 0.004852 0.940585 -0.575253 1.003369 0 0 -1.407863 2.447382 med 39.928124 38.520261 40.329053 37.881671 39.217875 39.086211
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--med-Control-T2h-L-Cycloserine-T2h-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--med-Control-T2h-L-Cycloserine-T2h-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,20 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment Ctrl_med_T2h-1 Ctrl_med_T2h-2 L-Cyc_med_T2h-1 L-Cyc_med_T2h-2 gmean_1 gmean_2
+L-Phenylalanine -0.227241 0.001876 0.035636 0.905036 0.854267 0 0 1.896738 2.09576 med 11.714351 11.686171 13.781931 13.611089 11.700253 13.696244
+L-Tyrosine -0.210967 0.004909 0.093265 0.822767 0.863958 0 0 1.796671 2.183694 med 12.524246 12.759305 14.555976 14.70794 12.641229 14.631761
+Ile_Leu -0.219893 0.005939 0.112833 0.826897 0.858629 0 0 1.799743 2.176503 med 12.110445 12.031063 14.207566 13.910188 12.070689 14.058091
+L-Valine -0.160198 0.012825 0.24368 0.722278 0.894902 0 0 1.65598 2.292719 med 16.643609 16.986162 18.642142 18.936328 16.814013 18.788659
+L-Threonine -0.159992 0.019541 0.371286 0.7134 0.89503 0 0 1.632915 2.28892 med 16.648332 16.759038 18.937252 18.391953 16.703593 18.662611
+L-Proline -0.98264 0.022874 0.434602 0.658092 0.506053 0 0 1.551275 2.35723 med 2.305637 1.766621 3.856912 4.123851 2.018214 3.988149
+Hexose -0.2207 0.024599 0.467389 0.64383 0.858149 0 0 1.52812 2.373482 med 11.643072 11.940391 14.016554 13.468511 11.790794 13.7398
+Glycine -0.173877 0.028221 0.536206 0.613466 0.886457 0 0 1.477944 2.409171 med 15.362891 14.973364 16.840835 17.382535 15.166877 17.109541
+L-Serine -0.217541 0.030833 0.585825 0.595079 0.86003 0 0 1.446276 2.430393 med 12.143564 11.678687 13.58984 14.10908 11.908857 13.847026
+L-Histidine -0.137109 0.034656 0.658468 0.574503 0.909339 0 0 1.408935 2.45244 med 19.638732 19.102155 21.047667 21.554595 19.368585 21.299623
+L-Methionine -0.207039 0.045452 0.863579 0.525451 0.866313 0 0 1.3152 2.502993 med 12.063407 12.708642 14.023842 14.5664 12.381822 14.292547
+L-Lysine -0.025559 0.104493 1.0 0.448561 0.98244 0 0 1.10921 2.472817 med 100.041785 100.151388 102.514602 101.260598 100.096571 101.885671
+Hexose-phosphate -0.359685 0.092784 1.0 0.440559 0.779335 0 0 1.109796 2.519066 med 5.940748 7.105089 8.214885 8.459814 6.496887 8.33645
+L-Asparagine -0.341921 0.124809 1.0 0.353378 0.78899 0 0 0.914077 2.586687 med 6.281405 6.631133 7.54521 8.868092 6.453901 8.179952
+L-Lactic_acid -0.10481 0.179465 1.0 0.178872 0.929927 0 0 0.498003 2.784136 med 22.37888 21.218847 22.876883 24.002983 21.791146 23.43317
+L-Arginine -0.030855 0.279162 1.0 0.132376 0.97884 0 0 0.337068 2.546283 med 67.988605 66.046493 68.325673 68.592776 67.010514 68.459094
+L-Alanine -0.443451 0.222838 1.0 0.113513 0.735373 0 0 0.3169 2.79175 med 3.755311 5.222638 5.539538 6.547061 4.428615 6.022266
+Pyruvic_acid -0.070842 0.413764 1.0 -0.116088 0.952082 0 0 -0.307971 2.652915 med 23.31152 22.489558 23.003549 25.142473 22.896851 24.049243
+L-Tryptophan 0.004678 0.946377 1.0 -0.26993 1.003247 0 0 -0.736036 2.726765 med 14.996403 12.269638 13.157757 13.893793 13.564676 13.520767
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundance--med-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundance--med-L-Cycloserine-T2h-L-Cycloserine-T0-Tt.tsv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,20 @@
+metabolite log2FC pvalue padj distance/span FC count_nan_samples_group1 count_nan_samples_group2 distance span_allsamples compartment L-Cyc_med_T2h-1 L-Cyc_med_T2h-2 L-Cyc_med_T0-1 L-Cyc_med_T0-2 gmean_1 gmean_2
+L-Arginine -0.028306 0.009613 0.163421 0.808209 0.980571 0 0 1.770679 2.190869 med 99.783635 100.173715 101.944394 101.974504 99.978485 101.959448
+L-Proline 0.441124 0.016987 0.288782 0.718846 1.357661 0 0 1.64444 2.287611 med 7.203777 7.702354 5.559337 5.414743 7.448895 5.486564
+Hexose 0.141018 0.04318 0.734054 0.618875 1.102683 0 0 1.46312 2.364161 med 20.919801 20.101843 18.638723 18.55564 20.506744 18.597135
+Hexose-phosphate -0.21989 0.073263 1.0 0.469101 0.858631 0 0 1.183673 2.523277 med 11.042011 11.371231 13.565288 12.554904 11.205412 13.050321
+L-Lactic_acid 0.129519 0.080906 1.0 0.431162 1.093929 0 0 1.107572 2.568806 med 20.843746 21.869766 19.736174 19.30096 21.350594 19.517354
+L-Phenylalanine 0.071888 0.086895 1.0 0.411507 1.051091 0 0 1.064817 2.587604 med 37.870329 37.400886 36.336069 35.282725 37.634876 35.805524
+L-Tyrosine 0.073205 0.130892 1.0 0.338927 1.052051 0 0 0.880001 2.596432 med 35.077787 35.443998 34.197786 32.847566 35.260417 33.515877
+L-Serine 0.094869 0.119025 1.0 0.303502 1.067968 0 0 0.820491 2.703409 med 27.149162 28.186476 26.328671 25.483067 27.662957 25.902419
+L-Valine 0.026692 0.156019 1.0 0.275356 1.018673 0 0 0.72888 2.647043 med 91.228609 92.66826 90.499729 90.021217 91.945617 90.260156
+L-Histidine 0.06085 0.160307 1.0 0.217054 1.04308 0 0 0.599017 2.759755 med 40.2211 41.189815 38.43006 39.622083 40.702576 39.02152
+L-Lysine -0.018451 0.203814 1.0 0.160847 0.987293 0 0 0.441277 2.743465 med 124.61713 123.092758 125.836223 125.058407 123.852599 125.446712
+Ile_Leu 0.064692 0.208392 1.0 0.155183 1.045861 0 0 0.425368 2.741066 med 36.641515 35.874575 35.449207 33.900449 36.256017 34.66618
+L-Threonine 0.034018 0.28585 1.0 0.039028 1.02386 0 0 0.107299 2.749299 med 61.975824 60.191229 60.08393 59.226525 61.077009 59.653687
+L-Methionine 0.043433 0.307379 1.0 -0.00305 1.030563 0 0 -0.008477 2.778959 med 45.649117 47.415202 45.657594 44.636243 46.52378 45.14403
+L-Alanine 0.184452 0.318436 1.0 -0.007446 1.136385 0 0 -0.020451 2.746709 med 10.230133 12.090774 10.250584 9.344065 11.121611 9.786834
+Glycine -0.329159 0.464864 1.0 -0.047343 0.796 0 0 -0.112992 2.386685 med 3.512786 3.625778 5.832897 3.446212 3.568835 4.483458
+Pyruvic_acid 0.016539 0.811502 1.0 -0.212837 1.01153 0 0 -0.57825 2.716869 med 29.219182 31.936051 30.489745 29.911495 30.547427 30.199236
+L-Asparagine 0.077673 0.588663 -0.337812 1.055314 0 0 -0.839365 2.484712 med 13.751007 16.161935 14.590372 13.677223 14.907813 14.126421
+L-Tryptophan -0.041416 0.603384 -0.389154 0.971701 0 0 -1.010695 2.597159 med 26.14293 27.605347 28.740089 26.594652 26.864189 27.646567
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--cell--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--cell--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1087 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.244122</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 188.317452 \n+L 414.72 188.317452 \n+" clip-path="url(#pd89567ce0b)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 215.516894 307.584 \n+L 215.516894 41.472 \n+" clip-path="url(#pd89567ce0b)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m4d708d8537" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m4d708d8537" x="92.649127" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(85.278033 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m4d708d8537" x="154.083011" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(146.711917 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m4d708d8537" x="215.516894" y="307.584" style='..b'4 3186 3129 \n+Q 3597 2675 3597 1894 \n+z\n+M 3022 2063 \n+Q 3016 2534 2758 2815 \n+Q 2500 3097 2075 3097 \n+Q 1594 3097 1305 2825 \n+Q 1016 2553 972 2059 \n+L 3022 2063 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_19">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="md619f0793e" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#md619f0793e" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_20">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pd89567ce0b">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--cell--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--cell--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1172 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.195225</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 188.317452 \n+L 414.72 188.317452 \n+" clip-path="url(#pb6ed43a42b)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 215.516894 307.584 \n+L 215.516894 41.472 \n+" clip-path="url(#pb6ed43a42b)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m9ce0b0df76" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m9ce0b0df76" x="92.649127" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(85.278033 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m9ce0b0df76" x="154.083011" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(146.711917 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m9ce0b0df76" x="215.516894" y="307.584" style='..b' 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_23">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="mc337a0fdd4" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#mc337a0fdd4" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_24">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pb6ed43a42b">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--cell_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--cell_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+PC1 PC2 PC3 PC4 name_to_plot condition timepoint timenum compartment original_name
+-4.612574 -2.881005 -0.432059 0.0 Ctrl_cell_T0-1 Control T0 0 cell MCF001089_TD01
+-3.303276 3.622393 -0.061907 0.0 Ctrl_cell_T0-2 Control T0 0 cell MCF001089_TD02
+1.95919 -0.773766 1.28576 0.0 L-Cyc_cell_T0-1 L-Cycloserine T0 0 cell MCF001089_TD19
+5.95666 0.032379 -0.791794 0.0 L-Cyc_cell_T0-2 L-Cycloserine T0 0 cell MCF001089_TD20
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--cell_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--cell_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+Explained Variance % PC
+74.487179 PC1
+22.939254 PC2
+2.573566 PC3
+0.0 PC4
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--cell_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--cell_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1096 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.157274</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 66.528 307.584 \n+L 137.952 307.584 \n+L 137.952 54.144 \n+L 66.528 54.144 \n+z\n+" clip-path="url(#pc312d5c87f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 155.808 307.584 \n+L 227.232 307.584 \n+L 227.232 229.533997 \n+L 155.808 229.533997 \n+z\n+" clip-path="url(#pc312d5c87f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 245.088 307.584 \n+L 316.512 307.584 \n+L 316.512 298.827532 \n+L 245.088 298.827532 \n+z\n+" clip-path="url(#pc312d5c87f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 334.368 307.584 \n+L 405.792 307.584 \n+L 405.792 307.584 \n+L 334.368 307.584 \n+z\n+" clip-path="url(#pc312d5c87f)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="mb40aaa24df" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#mb40aaa24df" x="102.24" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(92.5525 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101 \n+Q 1578 4750 2638 4750 \n+Q 3056 4750 3426 4639 \n+Q 3797 4528 4122 4306 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-50"/>\n+       <use xlink:href="#DejaVuSans-43" x="60.302734"/>\n+       <use xlink:href="#DejaVuSans-31" x="130.126953"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <g>\n+       <use xlink:href="#mb40aaa24df" x="191.52" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+ '..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pc312d5c87f">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--med--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--med--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1112 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.654753</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 193.859104 \n+L 414.72 193.859104 \n+" clip-path="url(#p19db9a9af1)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 212.801142 307.584 \n+L 212.801142 41.472 \n+" clip-path="url(#p19db9a9af1)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="md93f66193e" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#md93f66193e" x="60.404654" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(53.03356 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#md93f66193e" x="136.602898" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(129.231804 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#md93f66193e" x="212.801142" y="307.584" style="'..b'4 3186 3129 \n+Q 3597 2675 3597 1894 \n+z\n+M 3022 2063 \n+Q 3016 2534 2758 2815 \n+Q 2500 3097 2075 3097 \n+Q 1594 3097 1305 2825 \n+Q 1016 2553 972 2059 \n+L 3022 2063 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_17">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="m4540c2ed6e" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m4540c2ed6e" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_18">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p19db9a9af1">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--med--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--med--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1193 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.612723</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 193.859104 \n+L 414.72 193.859104 \n+" clip-path="url(#p72f2c9fe88)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 212.801142 307.584 \n+L 212.801142 41.472 \n+" clip-path="url(#p72f2c9fe88)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m4f2665ef0f" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m4f2665ef0f" x="60.404654" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(53.03356 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m4f2665ef0f" x="136.602898" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(129.231804 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m4f2665ef0f" x="212.801142" y="307.584" style="'..b' -0.795609 3 0 3 \n+z\n+" style="stroke: #ff7f0e"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m4da869cf39" x="320.67625" y="84.801688" style="fill: #ff7f0e; stroke: #ff7f0e"/>\n+     </g>\n+    </g>\n+    <g id="text_20">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(338.67625 87.426688) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_21">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="ma53c8981fd" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#ma53c8981fd" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_22">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p72f2c9fe88">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--med_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--med_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+PC1 PC2 PC3 PC4 name_to_plot condition timepoint timenum compartment original_name
+-3.647549 -2.371648 -1.342906 0.0 Ctrl_med_T0-1 Control T0 0 med MCF001089_TD37
+-2.455848 3.273883 0.058928 0.0 Ctrl_med_T0-2 Control T0 0 med MCF001089_TD38
+4.873764 0.136899 -1.737705 0.0 L-Cyc_med_T0-1 L-Cycloserine T0 0 med MCF001089_TD55
+1.229634 -1.039134 3.021683 0.0 L-Cyc_med_T0-2 L-Cycloserine T0 0 med MCF001089_TD56
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--med_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--med_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+Explained Variance % PC
+58.686028 PC1
+22.949429 PC2
+18.364542 PC3
+0.0 PC4
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T0--med_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T0--med_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1070 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.575574</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 66.528 307.584 \n+L 137.952 307.584 \n+L 137.952 54.144 \n+L 66.528 54.144 \n+z\n+" clip-path="url(#p66313797f2)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 155.808 307.584 \n+L 227.232 307.584 \n+L 227.232 208.475175 \n+L 155.808 208.475175 \n+z\n+" clip-path="url(#p66313797f2)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 245.088 307.584 \n+L 316.512 307.584 \n+L 316.512 228.275352 \n+L 245.088 228.275352 \n+z\n+" clip-path="url(#p66313797f2)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 334.368 307.584 \n+L 405.792 307.584 \n+L 405.792 307.584 \n+L 334.368 307.584 \n+z\n+" clip-path="url(#p66313797f2)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="m62e1f1a97e" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m62e1f1a97e" x="102.24" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(92.5525 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101 \n+Q 1578 4750 2638 4750 \n+Q 3056 4750 3426 4639 \n+Q 3797 4528 4122 4306 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-50"/>\n+       <use xlink:href="#DejaVuSans-43" x="60.302734"/>\n+       <use xlink:href="#DejaVuSans-31" x="130.126953"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <g>\n+       <use xlink:href="#m62e1f1a97e" x="191.52" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+ '..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p66313797f2">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--cell--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--cell--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1127 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.360072</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 185.374716 \n+L 414.72 185.374716 \n+" clip-path="url(#p8feb4f512c)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 228.84551 307.584 \n+L 228.84551 41.472 \n+" clip-path="url(#p8feb4f512c)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m369870b14b" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m369870b14b" x="107.768235" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(100.397142 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m369870b14b" x="168.306873" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(160.935779 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m369870b14b" x="228.84551" y="307.584" style="'..b'094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_20">\n+     <!-- timepoint -->\n+     <g transform="translate(74.6 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="m30976c66dd" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m30976c66dd" x="76.6" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_21">\n+     <!-- T2h -->\n+     <g transform="translate(94.6 116.782938) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-68" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 4863 \n+L 1159 4863 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p8feb4f512c">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--cell--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--cell--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1216 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.313549</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 185.374716 \n+L 414.72 185.374716 \n+" clip-path="url(#p51ed853460)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 228.84551 307.584 \n+L 228.84551 41.472 \n+" clip-path="url(#p51ed853460)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m9a7ed9599c" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m9a7ed9599c" x="107.768235" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(100.397142 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m9a7ed9599c" x="168.306873" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(160.935779 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m9a7ed9599c" x="228.84551" y="307.584" style="'..b'Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_24">\n+     <!-- timepoint -->\n+     <g transform="translate(74.6 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="m023c708e71" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m023c708e71" x="76.6" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_25">\n+     <!-- T2h -->\n+     <g transform="translate(94.6 116.782938) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p51ed853460">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--cell_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--cell_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+PC1 PC2 PC3 PC4 name_to_plot condition timepoint timenum compartment original_name
+3.418013 2.018827 -0.624963 0.0 Ctrl_cell_T2h-1 Control T2h 2 cell MCF001089_TD07
+-5.121119 -1.029264 -0.970952 0.0 Ctrl_cell_T2h-2 Control T2h 2 cell MCF001089_TD08
+5.604413 -1.686558 0.356619 0.0 L-Cyc_cell_T2h-1 L-Cycloserine T2h 2 cell MCF001089_TD25
+-3.901307 0.696996 1.239296 0.0 L-Cyc_cell_T2h-2 L-Cycloserine T2h 2 cell MCF001089_TD26
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--cell_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--cell_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+Explained Variance % PC
+88.060744 PC1
+8.81805 PC2
+3.121206 PC3
+0.0 PC4
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--cell_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--cell_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1056 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.278168</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 66.528 307.584 \n+L 137.952 307.584 \n+L 137.952 54.144 \n+L 66.528 54.144 \n+z\n+" clip-path="url(#p5f41492c3f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 155.808 307.584 \n+L 227.232 307.584 \n+L 227.232 282.205534 \n+L 155.808 282.205534 \n+z\n+" clip-path="url(#p5f41492c3f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 245.088 307.584 \n+L 316.512 307.584 \n+L 316.512 298.601127 \n+L 245.088 298.601127 \n+z\n+" clip-path="url(#p5f41492c3f)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 334.368 307.584 \n+L 405.792 307.584 \n+L 405.792 307.584 \n+L 334.368 307.584 \n+z\n+" clip-path="url(#p5f41492c3f)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="m8a000d9070" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m8a000d9070" x="102.24" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(92.5525 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101 \n+Q 1578 4750 2638 4750 \n+Q 3056 4750 3426 4639 \n+Q 3797 4528 4122 4306 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-50"/>\n+       <use xlink:href="#DejaVuSans-43" x="60.302734"/>\n+       <use xlink:href="#DejaVuSans-31" x="130.126953"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <g>\n+       <use xlink:href="#m8a000d9070" x="191.52" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+ '..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p5f41492c3f">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--med--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--med--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1062 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.767663</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 180.469006 \n+L 414.72 180.469006 \n+" clip-path="url(#pad1d41484e)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 225.565425 307.584 \n+L 225.565425 41.472 \n+" clip-path="url(#pad1d41484e)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="mb02fae8d53" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#mb02fae8d53" x="72.984722" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(65.613628 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#mb02fae8d53" x="149.275074" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(141.90398 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#mb02fae8d53" x="225.565425" y="307.584" style="'..b'use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_16">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="mf06695e424" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#mf06695e424" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_17">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-68" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 4863 \n+L 1159 4863 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pad1d41484e">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--med--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--med--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1147 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.725828</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 180.469006 \n+L 414.72 180.469006 \n+" clip-path="url(#p53582d1623)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 225.565425 307.584 \n+L 225.565425 41.472 \n+" clip-path="url(#p53582d1623)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="ma497676cff" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#ma497676cff" x="72.984722" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(65.613628 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#ma497676cff" x="149.275074" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(141.90398 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#ma497676cff" x="225.565425" y="307.584" style="'..b'defs>\n+     <g>\n+      <use xlink:href="#m4c0ed3fe30" x="320.67625" y="84.801688" style="fill: #ff7f0e; stroke: #ff7f0e"/>\n+     </g>\n+    </g>\n+    <g id="text_19">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(338.67625 87.426688) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_20">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_7">\n+     <defs>\n+      <path id="m2ec08018b2" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m2ec08018b2" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_21">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p53582d1623">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--med_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--med_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+PC1 PC2 PC3 PC4 name_to_plot condition timepoint timenum compartment original_name
+-3.78242 2.157774 0.512581 0.0 Ctrl_med_T2h-1 Control T2h 2 med MCF001089_TD43
+-3.977769 -1.955737 -0.734513 0.0 Ctrl_med_T2h-2 Control T2h 2 med MCF001089_TD44
+3.226932 -0.99365 1.522596 0.0 L-Cyc_med_T2h-1 L-Cycloserine T2h 2 med MCF001089_TD61
+4.533256 0.791612 -1.300663 0.0 L-Cyc_med_T2h-2 L-Cycloserine T2h 2 med MCF001089_TD62
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--med_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--med_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+Explained Variance % PC
+80.38532 PC1
+13.282744 PC2
+6.331936 PC3
+0.0 PC4
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--T2h--med_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--T2h--med_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1151 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.687841</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 66.528 307.584 \n+L 137.952 307.584 \n+L 137.952 54.144 \n+L 66.528 54.144 \n+z\n+" clip-path="url(#pfc5496463b)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 155.808 307.584 \n+L 227.232 307.584 \n+L 227.232 265.705973 \n+L 155.808 265.705973 \n+z\n+" clip-path="url(#pfc5496463b)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 245.088 307.584 \n+L 316.512 307.584 \n+L 316.512 287.620581 \n+L 245.088 287.620581 \n+z\n+" clip-path="url(#pfc5496463b)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 334.368 307.584 \n+L 405.792 307.584 \n+L 405.792 307.584 \n+L 334.368 307.584 \n+z\n+" clip-path="url(#pfc5496463b)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="mdf35c07171" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#mdf35c07171" x="102.24" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(92.5525 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101 \n+Q 1578 4750 2638 4750 \n+Q 3056 4750 3426 4639 \n+Q 3797 4528 4122 4306 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-50"/>\n+       <use xlink:href="#DejaVuSans-43" x="60.302734"/>\n+       <use xlink:href="#DejaVuSans-31" x="130.126953"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <g>\n+       <use xlink:href="#mdf35c07171" x="191.52" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+ '..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pfc5496463b">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--cell--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--cell--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1204 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.121728</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="PathCollection_4"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 176.402911 \n+L 414.72 176.402911 \n+" clip-path="url(#pa7d907f9d8)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 232.393495 307.584 \n+L 232.393495 41.472 \n+" clip-path="url(#pa7d907f9d8)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="ma9ebdf8a58" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#ma9ebdf8a58" x="68.543372" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x926 -->\n+      <g transform="translate(61.172278 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-36" d="M 2113 2584 \n+Q 1688 2584 1439 2293 \n+Q 1191 2003 1191 1497 \n+Q 1191 994 1439 701 \n+Q 1688 409 2113 409 \n+Q 2538 409 2786 701 \n+Q 3034 994 3034 1497 \n+Q 3034 2003 2786 2293 \n+Q 2538 2584 2113 2584 \n+z\n+M 3366 4563 \n+L 3366 3988 \n+Q 3128 4100 2886 4159 \n+Q 2644 4219 2406 4219 \n+Q 1781 4219 1451 3797 \n+Q 1122 3375 1075 2522 \n+Q 1259 2794 1537 2939 \n+Q 1816 3084 2150 3084 \n+Q 2853 3084 3261 2657 \n+Q 3669 2231 3669 1497 \n+Q 3669 778 3244 343 \n+Q 2819 -91 2113 -91 \n+Q 1303 -91 875 529 \n+Q 447 1150 447 2328 \n+Q 447 3434 972 4092 \n+Q 1497 4750 2381 4750 \n+Q 2619 4750 2861 4703 \n+Q 3103 4656 3366 4563 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-36" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#ma9ebdf8a58" x="123.16008" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(115.788986 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans'..b'<defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_8">\n+     <defs>\n+      <path id="m29f07a51c2" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m29f07a51c2" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_21">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_9">\n+     <defs>\n+      <path id="m09d738a6d5" d="M -1.5 3 \n+L 0 1.5 \n+L 1.5 3 \n+L 3 1.5 \n+L 1.5 0 \n+L 3 -1.5 \n+L 1.5 -3 \n+L 0 -1.5 \n+L -1.5 -3 \n+L -3 -1.5 \n+L -1.5 0 \n+L -3 1.5 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m09d738a6d5" x="320.67625" y="128.836063" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_22">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 131.461063) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-68" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 4863 \n+L 1159 4863 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pa7d907f9d8">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--cell--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--cell--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1371 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.068925</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="PathCollection_4"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 176.402911 \n+L 414.72 176.402911 \n+" clip-path="url(#pc050c770e5)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 232.393495 307.584 \n+L 232.393495 41.472 \n+" clip-path="url(#pc050c770e5)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m9986aebc12" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m9986aebc12" x="68.543372" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x926 -->\n+      <g transform="translate(61.172278 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-36" d="M 2113 2584 \n+Q 1688 2584 1439 2293 \n+Q 1191 2003 1191 1497 \n+Q 1191 994 1439 701 \n+Q 1688 409 2113 409 \n+Q 2538 409 2786 701 \n+Q 3034 994 3034 1497 \n+Q 3034 2003 2786 2293 \n+Q 2538 2584 2113 2584 \n+z\n+M 3366 4563 \n+L 3366 3988 \n+Q 3128 4100 2886 4159 \n+Q 2644 4219 2406 4219 \n+Q 1781 4219 1451 3797 \n+Q 1122 3375 1075 2522 \n+Q 1259 2794 1537 2939 \n+Q 1816 3084 2150 3084 \n+Q 2853 3084 3261 2657 \n+Q 3669 2231 3669 1497 \n+Q 3669 778 3244 343 \n+Q 2819 -91 2113 -91 \n+Q 1303 -91 875 529 \n+Q 447 1150 447 2328 \n+Q 447 3434 972 4092 \n+Q 1497 4750 2381 4750 \n+Q 2619 4750 2861 4703 \n+Q 3103 4656 3366 4563 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-36" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m9986aebc12" x="123.16008" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(115.788986 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans'..b'63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_28">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 102.104813) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_8">\n+     <defs>\n+      <path id="m47ef6d1aa5" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m47ef6d1aa5" x="320.67625" y="114.157938" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_29">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 116.782938) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_9">\n+     <defs>\n+      <path id="m11981f5fb6" d="M -1.5 3 \n+L 0 1.5 \n+L 1.5 3 \n+L 3 1.5 \n+L 1.5 0 \n+L 3 -1.5 \n+L 1.5 -3 \n+L 0 -1.5 \n+L -1.5 -3 \n+L -3 -1.5 \n+L -1.5 0 \n+L -3 1.5 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m11981f5fb6" x="320.67625" y="128.836063" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_30">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 131.461063) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pc050c770e5">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--cell_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--cell_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,9 @@
+PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 name_to_plot condition timepoint timenum compartment original_name
+6.08216 -0.21243 2.741629 -0.415911 -0.034854 -0.297123 0.029912 0.0 Ctrl_cell_T0-1 Control T0 0 cell MCF001089_TD01
+4.441447 -3.400088 -2.014018 -0.157591 -0.036533 0.034759 0.178162 0.0 Ctrl_cell_T0-2 Control T0 0 cell MCF001089_TD02
+-4.500212 -0.722539 -0.451432 -1.053058 0.388746 -0.337473 -0.380903 0.0 Ctrl_cell_T2h-1 Control T2h 2 cell MCF001089_TD07
+2.559191 3.507152 -1.423484 -0.413442 -0.773312 0.004868 -0.038496 0.0 Ctrl_cell_T2h-2 Control T2h 2 cell MCF001089_TD08
+-0.401209 -0.824396 0.821053 0.46477 -0.229954 0.808554 -0.295096 0.0 L-Cyc_cell_T0-1 L-Cycloserine T0 0 cell MCF001089_TD19
+-4.205021 -0.692778 0.222305 1.352186 -0.581771 -0.490783 0.027384 0.0 L-Cyc_cell_T0-2 L-Cycloserine T0 0 cell MCF001089_TD20
+-5.80631 0.441183 0.660591 -0.656464 0.098959 0.278277 0.454242 0.0 L-Cyc_cell_T2h-1 L-Cycloserine T2h 2 cell MCF001089_TD25
+1.829954 1.903895 -0.556645 0.87951 1.16872 -0.001079 0.024794 0.0 L-Cyc_cell_T2h-2 L-Cycloserine T2h 2 cell MCF001089_TD26
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--cell_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--cell_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,9 @@
+Explained Variance % PC
+72.096685 PC1
+15.316109 PC2
+7.954519 PC3
+2.461762 PC4
+1.311833 PC5
+0.612223 PC6
+0.246869 PC7
+0.0 PC8
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--cell_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--cell_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1241 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.022373</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 62.064 307.584 \n+L 97.776 307.584 \n+L 97.776 54.144 \n+L 62.064 54.144 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 106.704 307.584 \n+L 142.416 307.584 \n+L 142.416 253.743596 \n+L 106.704 253.743596 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 151.344 307.584 \n+L 187.056 307.584 \n+L 187.056 279.621642 \n+L 151.344 279.621642 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 195.984 307.584 \n+L 231.696 307.584 \n+L 231.696 298.930218 \n+L 195.984 298.930218 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 240.624 307.584 \n+L 276.336 307.584 \n+L 276.336 302.97254 \n+L 240.624 302.97254 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 285.264 307.584 \n+L 320.976 307.584 \n+L 320.976 305.431865 \n+L 285.264 305.431865 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 329.904 307.584 \n+L 365.616 307.584 \n+L 365.616 306.716186 \n+L 329.904 306.716186 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 374.544 307.584 \n+L 410.256 307.584 \n+L 410.256 307.584 \n+L 374.544 307.584 \n+z\n+" clip-path="url(#pc8c9f6ba16)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="m2c8a419875" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m2c8a419875" x="79.92" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(70.2325 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101'..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pc8c9f6ba16">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--med--label-n_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--med--label-n_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1121 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.540670</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="PathCollection_4"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 178.588358 \n+L 414.72 178.588358 \n+" clip-path="url(#p44cb798893)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 228.409229 307.584 \n+L 228.409229 41.472 \n+" clip-path="url(#p44cb798893)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m9aa96e2a99" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m9aa96e2a99" x="101.021635" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(93.650541 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m9aa96e2a99" x="164.715432" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(157.344338 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m9aa96e2a99" x'..b'<defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_8">\n+     <defs>\n+      <path id="mf207b4afaf" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#mf207b4afaf" x="320.67625" y="279.201188" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_17">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 281.826188) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_9">\n+     <defs>\n+      <path id="m596cf77e44" d="M -1.5 3 \n+L 0 1.5 \n+L 1.5 3 \n+L 3 1.5 \n+L 1.5 0 \n+L 3 -1.5 \n+L 1.5 -3 \n+L 0 -1.5 \n+L -1.5 -3 \n+L -3 -1.5 \n+L -1.5 0 \n+L -3 1.5 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m596cf77e44" x="320.67625" y="293.879312" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_18">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 296.504312) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-68" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 4863 \n+L 1159 4863 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p44cb798893">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--med--label-y_pc.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--med--label-y_pc.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1280 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.489990</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1"/>\n+   <g id="PathCollection_2"/>\n+   <g id="PathCollection_3"/>\n+   <g id="PathCollection_4"/>\n+   <g id="line2d_1">\n+    <path d="M 57.6 178.588358 \n+L 414.72 178.588358 \n+" clip-path="url(#paa0345d2e3)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 228.409229 307.584 \n+L 228.409229 41.472 \n+" clip-path="url(#paa0345d2e3)" style="fill: none; stroke-dasharray: 5.55,2.4; stroke-dashoffset: 0; stroke: #808080; stroke-width: 1.5"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m767b76ee00" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m767b76ee00" x="101.021635" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x924 -->\n+      <g transform="translate(93.650541 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-34" d="M 2419 4116 \n+L 825 1625 \n+L 2419 1625 \n+L 2419 4116 \n+z\n+M 2253 4666 \n+L 3047 4666 \n+L 3047 1625 \n+L 3713 1625 \n+L 3713 1100 \n+L 3047 1100 \n+L 3047 0 \n+L 2419 0 \n+L 2419 1100 \n+L 313 1100 \n+L 313 1709 \n+L 2253 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-34" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_4">\n+      <g>\n+       <use xlink:href="#m767b76ee00" x="164.715432" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- \xe2\x88\x922 -->\n+      <g transform="translate(157.344338 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-2212"/>\n+       <use xlink:href="#DejaVuSans-32" x="83.789062"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_3">\n+     <g id="line2d_5">\n+      <g>\n+       <use xlink:href="#m767b76ee00" x'..b'7 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+    <g id="text_24">\n+     <!-- timepoint -->\n+     <g transform="translate(318.67625 267.148062) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-74"/>\n+      <use xlink:href="#DejaVuSans-69" x="39.208984"/>\n+      <use xlink:href="#DejaVuSans-6d" x="66.992188"/>\n+      <use xlink:href="#DejaVuSans-65" x="164.404297"/>\n+      <use xlink:href="#DejaVuSans-70" x="225.927734"/>\n+      <use xlink:href="#DejaVuSans-6f" x="289.404297"/>\n+      <use xlink:href="#DejaVuSans-69" x="350.585938"/>\n+      <use xlink:href="#DejaVuSans-6e" x="378.369141"/>\n+      <use xlink:href="#DejaVuSans-74" x="441.748047"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_8">\n+     <defs>\n+      <path id="m7469eb0427" d="M 0 3 \n+C 0.795609 3 1.55874 2.683901 2.12132 2.12132 \n+C 2.683901 1.55874 3 0.795609 3 0 \n+C 3 -0.795609 2.683901 -1.55874 2.12132 -2.12132 \n+C 1.55874 -2.683901 0.795609 -3 0 -3 \n+C -0.795609 -3 -1.55874 -2.683901 -2.12132 -2.12132 \n+C -2.683901 -1.55874 -3 -0.795609 -3 0 \n+C -3 0.795609 -2.683901 1.55874 -2.12132 2.12132 \n+C -1.55874 2.683901 -0.795609 3 0 3 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m7469eb0427" x="320.67625" y="279.201188" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_25">\n+     <!-- T0 -->\n+     <g transform="translate(338.67625 281.826188) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>\n+     </g>\n+    </g>\n+    <g id="PathCollection_9">\n+     <defs>\n+      <path id="m483c915a3e" d="M -1.5 3 \n+L 0 1.5 \n+L 1.5 3 \n+L 3 1.5 \n+L 1.5 0 \n+L 3 -1.5 \n+L 1.5 -3 \n+L 0 -1.5 \n+L -1.5 -3 \n+L -3 -1.5 \n+L -1.5 0 \n+L -3 1.5 \n+z\n+" style="stroke: #333333"/>\n+     </defs>\n+     <g>\n+      <use xlink:href="#m483c915a3e" x="320.67625" y="293.879312" style="fill: #333333; stroke: #333333"/>\n+     </g>\n+    </g>\n+    <g id="text_26">\n+     <!-- T2h -->\n+     <g transform="translate(338.67625 296.504312) scale(0.1 -0.1)">\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>\n+      <use xlink:href="#DejaVuSans-68" x="124.707031"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="paa0345d2e3">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--med_pc.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--med_pc.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,9 @@
+PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8 name_to_plot condition timepoint timenum compartment original_name
+0.497858 -1.288582 -1.389333 -0.555885 -0.730438 0.350857 0.921654 0.0 Ctrl_med_T0-1 Control T0 0 med MCF001089_TD37
+-0.227056 -2.04064 -1.037382 1.610458 -0.114827 -0.975457 -0.316415 0.0 Ctrl_med_T0-2 Control T0 0 med MCF001089_TD38
+5.34049 0.302402 -1.640738 -0.705883 0.986716 0.41975 -0.390784 0.0 Ctrl_med_T2h-1 Control T2h 2 med MCF001089_TD43
+5.216069 1.887248 1.805202 0.206311 -0.502121 -0.63904 0.233478 0.0 Ctrl_med_T2h-2 Control T2h 2 med MCF001089_TD44
+-2.252063 -1.884142 2.013271 -1.405819 0.885597 -0.274832 0.0741 0.0 L-Cyc_med_T0-1 L-Cycloserine T0 0 med MCF001089_TD55
+-0.416714 -0.744703 1.175838 0.374082 -0.971745 1.065475 -0.588613 0.0 L-Cyc_med_T0-2 L-Cycloserine T0 0 med MCF001089_TD56
+-3.304845 1.586019 0.211576 1.704368 0.933156 0.50291 0.37653 0.0 L-Cyc_med_T2h-1 L-Cycloserine T2h 2 med MCF001089_TD61
+-4.853738 2.182398 -1.138435 -1.227633 -0.486337 -0.449663 -0.309949 0.0 L-Cyc_med_T2h-2 L-Cycloserine T2h 2 med MCF001089_TD62
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--med_var.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--med_var.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,9 @@
+Explained Variance % PC
+62.995949 PC1
+13.724146 PC2
+10.351207 PC3
+6.560286 PC4
+3.031798 PC5
+2.187543 PC6
+1.149071 PC7
+0.0 PC8
b
diff -r 000000000000 -r a3349c105bd0 test-data/abundances--med_var.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/abundances--med_var.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1227 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:24.449467</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 345.6 \n+L 460.8 345.6 \n+L 460.8 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 57.6 307.584 \n+L 414.72 307.584 \n+L 414.72 41.472 \n+L 57.6 41.472 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 62.064 307.584 \n+L 97.776 307.584 \n+L 97.776 54.144 \n+L 62.064 54.144 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 106.704 307.584 \n+L 142.416 307.584 \n+L 142.416 252.370171 \n+L 106.704 252.370171 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 151.344 307.584 \n+L 187.056 307.584 \n+L 187.056 265.939895 \n+L 151.344 265.939895 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 195.984 307.584 \n+L 231.696 307.584 \n+L 231.696 281.19121 \n+L 195.984 281.19121 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_7">\n+    <path d="M 240.624 307.584 \n+L 276.336 307.584 \n+L 276.336 295.386725 \n+L 240.624 295.386725 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_8">\n+    <path d="M 285.264 307.584 \n+L 320.976 307.584 \n+L 320.976 298.783261 \n+L 285.264 298.783261 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_9">\n+    <path d="M 329.904 307.584 \n+L 365.616 307.584 \n+L 365.616 302.961154 \n+L 329.904 302.961154 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="patch_10">\n+    <path d="M 374.544 307.584 \n+L 410.256 307.584 \n+L 410.256 307.584 \n+L 374.544 307.584 \n+z\n+" clip-path="url(#p588769e291)" style="fill: #679698"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="mfd06e0eb9c" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#mfd06e0eb9c" x="79.92" y="307.584" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- PC1 -->\n+      <g transform="translate(70.2325 322.182437) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-43" d="M 4122 4306 \n+L 4122 3641 \n+Q 3803 3938 3442 4084 \n+Q 3081 4231 2675 4231 \n+Q 1875 4231 1450 3742 \n+Q 1025 3253 1025 2328 \n+Q 1025 1406 1450 917 \n+Q 1875 428 2675 428 \n+Q 3081 428 3442 575 \n+Q 3803 722 4122 1019 \n+L 4122 359 \n+Q 3791 134 3420 21 \n+Q 3050 -91 2638 -91 \n+Q 1578 -91 968 557 \n+Q 359 1206 359 2328 \n+Q 359 3453 968 4101'..b')"/>\n+      <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-50"/>\n+     <use xlink:href="#DejaVuSans-65" x="56.677734"/>\n+     <use xlink:href="#DejaVuSans-72" x="118.201172"/>\n+     <use xlink:href="#DejaVuSans-63" x="157.064453"/>\n+     <use xlink:href="#DejaVuSans-65" x="212.044922"/>\n+     <use xlink:href="#DejaVuSans-6e" x="273.568359"/>\n+     <use xlink:href="#DejaVuSans-74" x="336.947266"/>\n+     <use xlink:href="#DejaVuSans-20" x="376.15625"/>\n+     <use xlink:href="#DejaVuSans-76" x="407.943359"/>\n+     <use xlink:href="#DejaVuSans-61" x="467.123047"/>\n+     <use xlink:href="#DejaVuSans-72" x="528.402344"/>\n+     <use xlink:href="#DejaVuSans-69" x="569.515625"/>\n+     <use xlink:href="#DejaVuSans-61" x="597.298828"/>\n+     <use xlink:href="#DejaVuSans-62" x="658.578125"/>\n+     <use xlink:href="#DejaVuSans-69" x="722.054688"/>\n+     <use xlink:href="#DejaVuSans-6c" x="749.837891"/>\n+     <use xlink:href="#DejaVuSans-69" x="777.621094"/>\n+     <use xlink:href="#DejaVuSans-74" x="805.404297"/>\n+     <use xlink:href="#DejaVuSans-79" x="844.613281"/>\n+     <use xlink:href="#DejaVuSans-20" x="903.792969"/>\n+     <use xlink:href="#DejaVuSans-65" x="935.580078"/>\n+     <use xlink:href="#DejaVuSans-78" x="995.353516"/>\n+     <use xlink:href="#DejaVuSans-70" x="1054.533203"/>\n+     <use xlink:href="#DejaVuSans-6c" x="1118.009766"/>\n+     <use xlink:href="#DejaVuSans-61" x="1145.792969"/>\n+     <use xlink:href="#DejaVuSans-69" x="1207.072266"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1234.855469"/>\n+     <use xlink:href="#DejaVuSans-65" x="1298.234375"/>\n+     <use xlink:href="#DejaVuSans-64" x="1359.757812"/>\n+     <use xlink:href="#DejaVuSans-20" x="1423.234375"/>\n+     <use xlink:href="#DejaVuSans-62" x="1455.021484"/>\n+     <use xlink:href="#DejaVuSans-79" x="1518.498047"/>\n+     <use xlink:href="#DejaVuSans-20" x="1577.677734"/>\n+     <use xlink:href="#DejaVuSans-74" x="1609.464844"/>\n+     <use xlink:href="#DejaVuSans-68" x="1648.673828"/>\n+     <use xlink:href="#DejaVuSans-65" x="1712.052734"/>\n+     <use xlink:href="#DejaVuSans-20" x="1773.576172"/>\n+     <use xlink:href="#DejaVuSans-70" x="1805.363281"/>\n+     <use xlink:href="#DejaVuSans-72" x="1868.839844"/>\n+     <use xlink:href="#DejaVuSans-69" x="1909.953125"/>\n+     <use xlink:href="#DejaVuSans-6e" x="1937.736328"/>\n+     <use xlink:href="#DejaVuSans-63" x="2001.115234"/>\n+     <use xlink:href="#DejaVuSans-69" x="2056.095703"/>\n+     <use xlink:href="#DejaVuSans-70" x="2083.878906"/>\n+     <use xlink:href="#DejaVuSans-61" x="2147.355469"/>\n+     <use xlink:href="#DejaVuSans-6c" x="2208.634766"/>\n+     <use xlink:href="#DejaVuSans-20" x="2236.417969"/>\n+     <use xlink:href="#DejaVuSans-63" x="2268.205078"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2323.185547"/>\n+     <use xlink:href="#DejaVuSans-6d" x="2384.367188"/>\n+     <use xlink:href="#DejaVuSans-70" x="2481.779297"/>\n+     <use xlink:href="#DejaVuSans-6f" x="2545.255859"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2606.4375"/>\n+     <use xlink:href="#DejaVuSans-65" x="2669.816406"/>\n+     <use xlink:href="#DejaVuSans-6e" x="2731.339844"/>\n+     <use xlink:href="#DejaVuSans-74" x="2794.71875"/>\n+     <use xlink:href="#DejaVuSans-73" x="2833.927734"/>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p588769e291">\n+   <rect x="57.6" y="41.472" width="357.12" height="266.112"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/bars_endo_Fru1P-total_abundance.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/bars_endo_Fru1P-total_abundance.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,746 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="229.595625pt" height="410.146703pt" viewBox="0 0 229.595625 410.146703" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:52.288911</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 410.146703 \n+L 229.595625 410.146703 \n+L 229.595625 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 34.240625 355.809449 \n+L 222.395625 355.809449 \n+L 222.395625 60.56655 \n+L 34.240625 60.56655 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="patch_3">\n+    <path d="M 53.056125 355.809449 \n+L 128.318125 355.809449 \n+L 128.318125 83.341307 \n+L 53.056125 83.341307 \n+z\n+" clip-path="url(#pdc3a65a28b)" style="fill: #abc9ea; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 128.318125 355.809449 \n+L 203.580125 355.809449 \n+L 203.580125 147.74608 \n+L 128.318125 147.74608 \n+z\n+" clip-path="url(#pdc3a65a28b)" style="fill: #efb792; stroke: #000000; stroke-linejoin: miter"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="md05b645b8d" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#md05b645b8d" x="128.318125" y="355.809449" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- sgLDHA -->\n+      <g transform="translate(124.209098 402.235408) rotate(-70) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-67" d="M 2906 1791 \n+Q 2906 2416 2648 2759 \n+Q 2391 3103 1925 3103 \n+Q 1463 3103 1205 2759 \n+Q 947 2416 947 1791 \n+Q 947 1169 1205 825 \n+Q 1463 481 1925 481 \n+Q 2391 481 2648 825 \n+Q 2906 1169 2906 1791 \n+z\n+M 3481 434 \n+Q 3481 -459 3084 -895 \n+Q 2688 -1331 1869 -1331 \n+Q 1566 -1331 1297 -1286 \n+Q 1028 -1241 775 -1147 \n+L 775 -588 \n+Q 1028 -725 1275 -790 \n+Q 1522 -856 1778 -856 \n+Q 2344 -856 2625 -561 \n+Q 2906 -266 2906 331 \n+L 2906 616 \n+Q 2728 306 2450 153 \n+Q 2172 0 1784 0 \n+Q 1141 0 747 490 \n+Q 353 981 353 1791 \n+Q 353 2603 747 3093 \n+Q 1141 3584 1784 3584 \n+Q 2172 3584 2450 3431 \n+Q 2728 3278 2906 2969 \n+L 2906 3500 \n+L 3481 3500 \n+L 3481 434 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-4c" d="M 628 4666 \n+L 1259 4666 \n+L 1259 531 \n+L 3531 531 \n+L 3531 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-44" d="M 1259 4147 \n+L 1259 519 \n+L 2022 519 \n+Q 2988 519 3436 956 \n+Q 3884 1394 '..b'#DejaVuSans-6e" x="383.398438"/>\n+      <use xlink:href="#DejaVuSans-63" x="446.777344"/>\n+      <use xlink:href="#DejaVuSans-65" x="501.757812"/>\n+     </g>\n+    </g>\n+    <g id="text_8">\n+     <!-- 1e6 -->\n+     <g transform="translate(34.240625 57.56655) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-31"/>\n+      <use xlink:href="#DejaVuSans-65" x="63.623047"/>\n+      <use xlink:href="#DejaVuSans-36" x="125.146484"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="line2d_7">\n+    <path d="M 90.687125 92.056879 \n+L 90.687125 74.625736 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_8">\n+    <path d="M 79.397825 92.056879 \n+L 101.976425 92.056879 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_9">\n+    <path d="M 79.397825 74.625736 \n+L 101.976425 74.625736 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_10">\n+    <path d="M 165.949125 161.17214 \n+L 165.949125 134.320021 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_11">\n+    <path d="M 154.659825 161.17214 \n+L 177.238425 161.17214 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_12">\n+    <path d="M 154.659825 134.320021 \n+L 177.238425 134.320021 \n+" clip-path="url(#pdc3a65a28b)" style="fill: none; stroke: #000000; stroke-width: 1.7; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 34.240625 355.809449 \n+L 34.240625 60.56655 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 34.240625 355.809449 \n+L 222.395625 355.809449 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_9">\n+    <!-- Fru1P -->\n+    <g transform="translate(93.205469 26.348063) scale(0.252 -0.252)">\n+     <defs>\n+      <path id="DejaVuSans-46" d="M 628 4666 \n+L 3309 4666 \n+L 3309 4134 \n+L 1259 4134 \n+L 1259 2759 \n+L 3109 2759 \n+L 3109 2228 \n+L 1259 2228 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-72" d="M 2631 2963 \n+Q 2534 3019 2420 3045 \n+Q 2306 3072 2169 3072 \n+Q 1681 3072 1420 2755 \n+Q 1159 2438 1159 1844 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1341 3275 1631 3429 \n+Q 1922 3584 2338 3584 \n+Q 2397 3584 2469 3576 \n+Q 2541 3569 2628 3553 \n+L 2631 2963 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-46"/>\n+     <use xlink:href="#DejaVuSans-72" x="50.269531"/>\n+     <use xlink:href="#DejaVuSans-75" x="91.382812"/>\n+     <use xlink:href="#DejaVuSans-31" x="154.761719"/>\n+     <use xlink:href="#DejaVuSans-50" x="218.384766"/>\n+    </g>\n+    <!--  -->\n+    <g transform="translate(128.318125 54.56655) scale(0.252 -0.252)"/>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="pdc3a65a28b">\n+   <rect x="34.240625" y="60.56655" width="188.155" height="295.242899"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/example1_metadata.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example1_metadata.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,5 @@
+name_to_plot condition timepoint timenum compartment original_name
+sgLDHA_T0-1 sgLDHA T0 0 endo T0_A_1
+sgLDHA_T0-2 sgLDHA T0 0 endo T0_A_2
+sgLDHA_T24-1 sgLDHA T24 24 endo T24_A_1
+sgLDHA_T24-2 sgLDHA T24 24 endo T24_A_2
\ No newline at end of file
b
diff -r 000000000000 -r a3349c105bd0 test-data/example2_metadata.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example2_metadata.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -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
b
diff -r 000000000000 -r a3349c105bd0 test-data/example3_metadata.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/example3_metadata.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,19 @@
+name_to_plot condition timepoint timenum compartment original_name
+Ctrl_cell_T0h-1 Control T0h 0 cell Sample1
+Ctrl_cell_T0h-2 Control T0h 0 cell Sample2
+Ctrl_cell_T0h-3 Control T0h 0 cell Sample3
+Ctrl_cell_T2h-1 Control T2h 2 cell Sample4
+Ctrl_cell_T2h-2 Control T2h 2 cell Sample5
+Ctrl_cell_T2h-3 Control T2h 2 cell Sample6
+Cond1_cell_T0h-1 Cond1 T0h 0 cell Sample7
+Cond1_cell_T0h-2 Cond1 T0h 0 cell Sample8
+Cond1_cell_T0h-3 Cond1 T0h 0 cell Sample9
+Cond1_cell_T2h-1 Cond1 T2h 2 cell Sample10
+Cond1_cell_T2h-2 Cond1 T2h 2 cell Sample11
+Cond1_cell_T2h-3 Cond1 T2h 2 cell Sample12
+Cond2_cell_T0h-1 Cond2 T0h 0 cell Sample13
+Cond2_cell_T0h-2 Cond2 T0h 0 cell Sample14
+Cond2_cell_T0h-3 Cond2 T0h 0 cell Sample15
+Cond2_cell_T2h-1 Cond2 T2h 2 cell Sample16
+Cond2_cell_T2h-2 Cond2 T2h 2 cell Sample17
+Cond2_cell_T2h-3 Cond2 T2h 2 cell Sample18
\ No newline at end of file
b
diff -r 000000000000 -r a3349c105bd0 test-data/legend-abundances-cell.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/legend-abundances-cell.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,795 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="504pt" height="504pt" viewBox="0 0 504 504" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:25.379336</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 504 \n+L 504 504 \n+L 504 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 166.228364 448.56 \n+L 205.036364 448.56 \n+L 205.036364 60.48 \n+L 166.228364 60.48 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="QuadMesh_1"/>\n+   <g id="matplotlib.axis_1"/>\n+   <g id="matplotlib.axis_2"/>\n+  </g>\n+  <g id="axes_2">\n+   <g id="patch_3">\n+    <path d="M 379.282909 448.56 \n+L 418.090909 448.56 \n+L 418.090909 60.48 \n+L 379.282909 60.48 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="QuadMesh_2"/>\n+   <g id="matplotlib.axis_3"/>\n+   <g id="matplotlib.axis_4"/>\n+  </g>\n+  <g id="axes_3">\n+   <g id="patch_4">\n+    <path d="M 213.913636 387.679091 \n+L 240.545455 387.679091 \n+L 240.545455 121.360909 \n+L 213.913636 121.360909 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <image xlink:href="data:image/png;base64,\n+iVBORw0KGgoAAAANSUhEUgAAACUAAAFxCAYAAAD09mFWAAACgElEQVR4nO2dwY0CMRDAkiiNUQ5l08hCAeHhX/ywK7DGM8cCJzFf7893yNhz3lY42UsotW4L/GNP4ajKR+n6KNZ8vlGVj7KnUEuZT7nownjefLcVTspHUT7klY/S9VHKR9lLOCrnTjnzCaXKR9lLaFU+yl7CWQmVtPmEVspJOXfK+NpXPoryybN8lK6PUj6K8vMp5aScO2W8vvJRlN/NlI/Sl5AU4Zy6Po7yZca5U858QqvyUbo+inJSyp2S5hOOSplPuejOnZLm81mVj6J83ydU0ubr+hjWfLcVTpSTcu5UD3kQaT7hpMpHkeYT9isfRXl9ykk5d6r/yYNI8wm1ykfp+ijWfLcVTpT5esijSPMJpcpHKR+lz6co0nzCSSnz9TUIRZpPOCuhkjZf18ew5rutcFI+Sg95FOdOGa9PKeXMZ1x05Z+E8lG6Poo1n89KOSnnThnfjJaP0vVRrPluK5yUj6J88lTmUy66c6fKB5HmE/YrH6Xro1jz+UalzLfn0P0slnSnxvPcdjhQSpWPopQqH0UpVT6KUqp8lKQo7RRFKVU+ilKqfBSlVPkoSVHaKYpSqnwUpVT5KEqp8lGSorRTFKVU+ShKqfJRlFLloyRFaacoSqnyUZRS5aMopcpHSYrSTlGUUuWjKKXKR1FKlY+SFKWdoiilykdRSpWPopQqHyUpSjtFUUqVj6KUKh9FKVU+SlKUdoqilCofRSlVPopSqnyUpCjtFEUpVT6KUqp8FKVU+ShJUdopilKqfBSlVPkoSqnyUZKitFMUpVT5KEqp8lGUUuWjJEVppyhKqfJRlFLloyilykdJitJOUZRS5aMopcpHUUqVjzK/w/fDWD+7lgXsFwdaVAAAAABJRU5ErkJggg==" id="imageee62fe445d" transform="scale(1 -1) translate(0 -265.68)" x="213.84" y="-121.68" width="26.64" height="265.68"/>\n+   <g id="matplotlib.axis_5"/>\n+   <g id="matplotlib.axis_6">\n+    <g id="ytick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="md9bcdc974a" d="M 0 0 \n+L 3.5 0 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#md9bcdc974a" x="240.545455" y="369.371726" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- \xe2\x88\x921.0 -->\n+      <g transform="translate(247.545455 373.170945) scale(0.1 -0.1)">\n+       <defs>\n+        <path id="DejaVuSans-2212" d="M 678 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 678 1741 \n+L 678 2272 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-2e" d="M 684 794 \n+L 1344 794 \n+L 1344 0 \n+L 684 0 \n+L 684 794 \n+z\n+" transform="scale(0.015625)"/>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n'..b'   <g id="line2d_14">\n+      <g>\n+       <use xlink:href="#md9bcdc974a" x="453.6" y="121.360909" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_15">\n+      <!-- 4 -->\n+      <g transform="translate(460.6 125.160128) scale(0.1 -0.1)">\n+       <use xlink:href="#DejaVuSans-34"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="text_16">\n+     <!-- Transcript -->\n+     <g transform="translate(486.940625 279.0575) rotate(-90) scale(0.1 -0.1)">\n+      <defs>\n+       <path id="DejaVuSans-54" d="M -19 4666 \n+L 3928 4666 \n+L 3928 4134 \n+L 2272 4134 \n+L 2272 0 \n+L 1638 0 \n+L 1638 4134 \n+L -19 4134 \n+L -19 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-72" d="M 2631 2963 \n+Q 2534 3019 2420 3045 \n+Q 2306 3072 2169 3072 \n+Q 1681 3072 1420 2755 \n+Q 1159 2438 1159 1844 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1341 3275 1631 3429 \n+Q 1922 3584 2338 3584 \n+Q 2397 3584 2469 3576 \n+Q 2541 3569 2628 3553 \n+L 2631 2963 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-6e" d="M 3513 2113 \n+L 3513 0 \n+L 2938 0 \n+L 2938 2094 \n+Q 2938 2591 2744 2837 \n+Q 2550 3084 2163 3084 \n+Q 1697 3084 1428 2787 \n+Q 1159 2491 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1366 3272 1645 3428 \n+Q 1925 3584 2291 3584 \n+Q 2894 3584 3203 3211 \n+Q 3513 2838 3513 2113 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-63" d="M 3122 3366 \n+L 3122 2828 \n+Q 2878 2963 2633 3030 \n+Q 2388 3097 2138 3097 \n+Q 1578 3097 1268 2742 \n+Q 959 2388 959 1747 \n+Q 959 1106 1268 751 \n+Q 1578 397 2138 397 \n+Q 2388 397 2633 464 \n+Q 2878 531 3122 666 \n+L 3122 134 \n+Q 2881 22 2623 -34 \n+Q 2366 -91 2075 -91 \n+Q 1284 -91 818 406 \n+Q 353 903 353 1747 \n+Q 353 2603 823 3093 \n+Q 1294 3584 2113 3584 \n+Q 2378 3584 2631 3529 \n+Q 2884 3475 3122 3366 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-70" d="M 1159 525 \n+L 1159 -1331 \n+L 581 -1331 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2969 \n+Q 1341 3281 1617 3432 \n+Q 1894 3584 2278 3584 \n+Q 2916 3584 3314 3078 \n+Q 3713 2572 3713 1747 \n+Q 3713 922 3314 415 \n+Q 2916 -91 2278 -91 \n+Q 1894 -91 1617 61 \n+Q 1341 213 1159 525 \n+z\n+M 3116 1747 \n+Q 3116 2381 2855 2742 \n+Q 2594 3103 2138 3103 \n+Q 1681 3103 1420 2742 \n+Q 1159 2381 1159 1747 \n+Q 1159 1113 1420 752 \n+Q 1681 391 2138 391 \n+Q 2594 391 2855 752 \n+Q 3116 1113 3116 1747 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-54"/>\n+      <use xlink:href="#DejaVuSans-72" x="46.333984"/>\n+      <use xlink:href="#DejaVuSans-61" x="87.447266"/>\n+      <use xlink:href="#DejaVuSans-6e" x="148.726562"/>\n+      <use xlink:href="#DejaVuSans-73" x="212.105469"/>\n+      <use xlink:href="#DejaVuSans-63" x="264.205078"/>\n+      <use xlink:href="#DejaVuSans-72" x="319.185547"/>\n+      <use xlink:href="#DejaVuSans-69" x="360.298828"/>\n+      <use xlink:href="#DejaVuSans-70" x="388.082031"/>\n+      <use xlink:href="#DejaVuSans-74" x="451.558594"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="LineCollection_2"/>\n+   <g id="patch_7">\n+    <path d="M 426.968182 387.679091 \n+L 440.284091 387.679091 \n+L 453.6 387.679091 \n+L 453.6 121.360909 \n+L 440.284091 121.360909 \n+L 426.968182 121.360909 \n+L 426.968182 387.679091 \n+z\n+" style="fill: none"/>\n+   </g>\n+  </g>\n+ </g>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/legend.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/legend.svg Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,159 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="460.8pt" height="345.6pt" viewBox="0 0 460.8 345.6" xmlns="http://www.w3.org/2000/svg" version="1.1">
+ <metadata>
+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+   <cc:Work>
+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+    <dc:date>2023-10-08T10:14:52.311672</dc:date>
+    <dc:format>image/svg+xml</dc:format>
+    <dc:creator>
+     <cc:Agent>
+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>
+     </cc:Agent>
+    </dc:creator>
+   </cc:Work>
+  </rdf:RDF>
+ </metadata>
+ <defs>
+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>
+ </defs>
+ <g id="figure_1">
+  <g id="patch_1">
+   <path d="M 0 345.6 
+L 460.8 345.6 
+L 460.8 0 
+L 0 0 
+z
+" style="fill: #ffffff"/>
+  </g>
+  <g id="axes_1">
+   <g id="legend_1">
+    <g id="patch_2">
+     <path d="M 293.271094 119.920125 
+L 400.02 119.920125 
+Q 404.22 119.920125 404.22 115.720125 
+L 404.22 56.172 
+Q 404.22 51.972 400.02 51.972 
+L 293.271094 51.972 
+Q 289.071094 51.972 289.071094 56.172 
+L 289.071094 115.720125 
+Q 289.071094 119.920125 293.271094 119.920125 
+z
+" style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/>
+    </g>
+    <g id="patch_3">
+     <path d="M 297.471094 76.328719 
+L 339.471094 76.328719 
+L 339.471094 61.628719 
+L 297.471094 61.628719 
+z
+" style="fill: #abc9ea; stroke: #000000; stroke-linejoin: miter"/>
+    </g>
+    <g id="text_1">
+     <!-- T0 -->
+     <g transform="translate(356.271094 76.328719) scale(0.21 -0.21)">
+      <defs>
+       <path id="DejaVuSans-54" d="M -19 4666 
+L 3928 4666 
+L 3928 4134 
+L 2272 4134 
+L 2272 0 
+L 1638 0 
+L 1638 4134 
+L -19 4134 
+L -19 4666 
+z
+" transform="scale(0.015625)"/>
+       <path id="DejaVuSans-30" d="M 2034 4250 
+Q 1547 4250 1301 3770 
+Q 1056 3291 1056 2328 
+Q 1056 1369 1301 889 
+Q 1547 409 2034 409 
+Q 2525 409 2770 889 
+Q 3016 1369 3016 2328 
+Q 3016 3291 2770 3770 
+Q 2525 4250 2034 4250 
+z
+M 2034 4750 
+Q 2819 4750 3233 4129 
+Q 3647 3509 3647 2328 
+Q 3647 1150 3233 529 
+Q 2819 -91 2034 -91 
+Q 1250 -91 836 529 
+Q 422 1150 422 2328 
+Q 422 3509 836 4129 
+Q 1250 4750 2034 4750 
+z
+" transform="scale(0.015625)"/>
+      </defs>
+      <use xlink:href="#DejaVuSans-54"/>
+      <use xlink:href="#DejaVuSans-30" x="61.083984"/>
+     </g>
+    </g>
+    <g id="patch_4">
+     <path d="M 297.471094 107.152781 
+L 339.471094 107.152781 
+L 339.471094 92.452781 
+L 297.471094 92.452781 
+z
+" style="fill: #efb792; stroke: #000000; stroke-linejoin: miter"/>
+    </g>
+    <g id="text_2">
+     <!-- T24 -->
+     <g transform="translate(356.271094 107.152781) scale(0.21 -0.21)">
+      <defs>
+       <path id="DejaVuSans-32" d="M 1228 531 
+L 3431 531 
+L 3431 0 
+L 469 0 
+L 469 531 
+Q 828 903 1448 1529 
+Q 2069 2156 2228 2338 
+Q 2531 2678 2651 2914 
+Q 2772 3150 2772 3378 
+Q 2772 3750 2511 3984 
+Q 2250 4219 1831 4219 
+Q 1534 4219 1204 4116 
+Q 875 4013 500 3803 
+L 500 4441 
+Q 881 4594 1212 4672 
+Q 1544 4750 1819 4750 
+Q 2544 4750 2975 4387 
+Q 3406 4025 3406 3419 
+Q 3406 3131 3298 2873 
+Q 3191 2616 2906 2266 
+Q 2828 2175 2409 1742 
+Q 1991 1309 1228 531 
+z
+" transform="scale(0.015625)"/>
+       <path id="DejaVuSans-34" d="M 2419 4116 
+L 825 1625 
+L 2419 1625 
+L 2419 4116 
+z
+M 2253 4666 
+L 3047 4666 
+L 3047 1625 
+L 3713 1625 
+L 3713 1100 
+L 3047 1100 
+L 3047 0 
+L 2419 0 
+L 2419 1100 
+L 313 1100 
+L 313 1709 
+L 2253 4666 
+z
+" transform="scale(0.015625)"/>
+      </defs>
+      <use xlink:href="#DejaVuSans-54"/>
+      <use xlink:href="#DejaVuSans-32" x="61.083984"/>
+      <use xlink:href="#DejaVuSans-34" x="124.707031"/>
+     </g>
+    </g>
+   </g>
+  </g>
+ </g>
+</svg>
b
diff -r 000000000000 -r a3349c105bd0 test-data/legend_isotopologues_stackedbars.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/legend_isotopologues_stackedbars.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,569 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="288pt" height="517.68pt" viewBox="0 0 288 517.68" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:15:53.251670</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 517.68 \n+L 288 517.68 \n+L 288 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="legend_1">\n+    <g id="patch_2">\n+     <path d="M 119.509375 342.15285 \n+L 245.2 342.15285 \n+Q 249.2 342.15285 249.2 338.15285 \n+L 249.2 76.1216 \n+Q 249.2 72.1216 245.2 72.1216 \n+L 119.509375 72.1216 \n+Q 115.509375 72.1216 115.509375 76.1216 \n+L 115.509375 338.15285 \n+Q 115.509375 342.15285 119.509375 342.15285 \n+z\n+" style="fill: #ffffff; opacity: 0.8; stroke: #cccccc; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="patch_3">\n+     <path d="M 123.509375 95.318475 \n+L 163.509375 95.318475 \n+L 163.509375 81.318475 \n+L 123.509375 81.318475 \n+z\n+" style="fill: #410257; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_1">\n+     <!-- m+0 -->\n+     <g transform="translate(179.509375 95.318475) scale(0.2 -0.2)">\n+      <defs>\n+       <path id="DejaVuSans-6d" d="M 3328 2828 \n+Q 3544 3216 3844 3400 \n+Q 4144 3584 4550 3584 \n+Q 5097 3584 5394 3201 \n+Q 5691 2819 5691 2113 \n+L 5691 0 \n+L 5113 0 \n+L 5113 2094 \n+Q 5113 2597 4934 2840 \n+Q 4756 3084 4391 3084 \n+Q 3944 3084 3684 2787 \n+Q 3425 2491 3425 1978 \n+L 3425 0 \n+L 2847 0 \n+L 2847 2094 \n+Q 2847 2600 2669 2842 \n+Q 2491 3084 2119 3084 \n+Q 1678 3084 1418 2786 \n+Q 1159 2488 1159 1978 \n+L 1159 0 \n+L 581 0 \n+L 581 3500 \n+L 1159 3500 \n+L 1159 2956 \n+Q 1356 3278 1631 3431 \n+Q 1906 3584 2284 3584 \n+Q 2666 3584 2933 3390 \n+Q 3200 3197 3328 2828 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-2b" d="M 2944 4013 \n+L 2944 2272 \n+L 4684 2272 \n+L 4684 1741 \n+L 2944 1741 \n+L 2944 0 \n+L 2419 0 \n+L 2419 1741 \n+L 678 1741 \n+L 678 2272 \n+L 2419 2272 \n+L 2419 4013 \n+L 2944 4013 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-30" x="181.201172"/>\n+     </g>\n+    </g>\n+    <g id="patch_4">\n+     <path d="M 123.509375 114.874725 \n+L 163.509375 114.874725 \n+L 163.509375 100.874725 \n+L 123.509375 100.874725 \n+z\n+" style="fill: #5061aa; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_2">\n+     <!-- m+1 -->\n+     <g transform="translate(179.509375 114.874725) scale(0.2 -0.2)">\n+      <defs>\n+       <path id="DejaVuSans-31" d="M 794 531 \n+L 1825 531 \n+L 1825 4091 \n+L 703 3866 \n+L 703 4441 \n+L 1819 4666 \n+L 2450 4666 \n+L 2450 531 \n+L 3481 531 \n+L 3481 0 \n+L 794 0 \n+L 794 531 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="'..b'  <defs>\n+       <path id="DejaVuSans-38" d="M 2034 2216 \n+Q 1584 2216 1326 1975 \n+Q 1069 1734 1069 1313 \n+Q 1069 891 1326 650 \n+Q 1584 409 2034 409 \n+Q 2484 409 2743 651 \n+Q 3003 894 3003 1313 \n+Q 3003 1734 2745 1975 \n+Q 2488 2216 2034 2216 \n+z\n+M 1403 2484 \n+Q 997 2584 770 2862 \n+Q 544 3141 544 3541 \n+Q 544 4100 942 4425 \n+Q 1341 4750 2034 4750 \n+Q 2731 4750 3128 4425 \n+Q 3525 4100 3525 3541 \n+Q 3525 3141 3298 2862 \n+Q 3072 2584 2669 2484 \n+Q 3125 2378 3379 2068 \n+Q 3634 1759 3634 1313 \n+Q 3634 634 3220 271 \n+Q 2806 -91 2034 -91 \n+Q 1263 -91 848 271 \n+Q 434 634 434 1313 \n+Q 434 1759 690 2068 \n+Q 947 2378 1403 2484 \n+z\n+M 1172 3481 \n+Q 1172 3119 1398 2916 \n+Q 1625 2713 2034 2713 \n+Q 2441 2713 2670 2916 \n+Q 2900 3119 2900 3481 \n+Q 2900 3844 2670 4047 \n+Q 2441 4250 2034 4250 \n+Q 1625 4250 1398 4047 \n+Q 1172 3844 1172 3481 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-38" x="181.201172"/>\n+     </g>\n+    </g>\n+    <g id="patch_12">\n+     <path d="M 123.509375 271.324725 \n+L 163.509375 271.324725 \n+L 163.509375 257.324725 \n+L 123.509375 257.324725 \n+z\n+" style="fill: #de9ed6; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_10">\n+     <!-- m+9 -->\n+     <g transform="translate(179.509375 271.324725) scale(0.2 -0.2)">\n+      <defs>\n+       <path id="DejaVuSans-39" d="M 703 97 \n+L 703 672 \n+Q 941 559 1184 500 \n+Q 1428 441 1663 441 \n+Q 2288 441 2617 861 \n+Q 2947 1281 2994 2138 \n+Q 2813 1869 2534 1725 \n+Q 2256 1581 1919 1581 \n+Q 1219 1581 811 2004 \n+Q 403 2428 403 3163 \n+Q 403 3881 828 4315 \n+Q 1253 4750 1959 4750 \n+Q 2769 4750 3195 4129 \n+Q 3622 3509 3622 2328 \n+Q 3622 1225 3098 567 \n+Q 2575 -91 1691 -91 \n+Q 1453 -91 1209 -44 \n+Q 966 3 703 97 \n+z\n+M 1959 2075 \n+Q 2384 2075 2632 2365 \n+Q 2881 2656 2881 3163 \n+Q 2881 3666 2632 3958 \n+Q 2384 4250 1959 4250 \n+Q 1534 4250 1286 3958 \n+Q 1038 3666 1038 3163 \n+Q 1038 2656 1286 2365 \n+Q 1534 2075 1959 2075 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-39" x="181.201172"/>\n+     </g>\n+    </g>\n+    <g id="patch_13">\n+     <path d="M 123.509375 290.880975 \n+L 163.509375 290.880975 \n+L 163.509375 276.880975 \n+L 123.509375 276.880975 \n+z\n+" style="fill: #ce6dbd; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_11">\n+     <!-- m+10 -->\n+     <g transform="translate(179.509375 290.880975) scale(0.2 -0.2)">\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-31" x="181.201172"/>\n+      <use xlink:href="#DejaVuSans-30" x="244.824219"/>\n+     </g>\n+    </g>\n+    <g id="patch_14">\n+     <path d="M 123.509375 310.437225 \n+L 163.509375 310.437225 \n+L 163.509375 296.437225 \n+L 123.509375 296.437225 \n+z\n+" style="fill: #a55194; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_12">\n+     <!-- m+11 -->\n+     <g transform="translate(179.509375 310.437225) scale(0.2 -0.2)">\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-31" x="181.201172"/>\n+      <use xlink:href="#DejaVuSans-31" x="244.824219"/>\n+     </g>\n+    </g>\n+    <g id="patch_15">\n+     <path d="M 123.509375 329.993475 \n+L 163.509375 329.993475 \n+L 163.509375 315.993475 \n+L 123.509375 315.993475 \n+z\n+" style="fill: #7b4173; stroke: #000000; stroke-linejoin: miter"/>\n+    </g>\n+    <g id="text_13">\n+     <!-- m+12 -->\n+     <g transform="translate(179.509375 329.993475) scale(0.2 -0.2)">\n+      <use xlink:href="#DejaVuSans-6d"/>\n+      <use xlink:href="#DejaVuSans-2b" x="97.412109"/>\n+      <use xlink:href="#DejaVuSans-31" x="181.201172"/>\n+      <use xlink:href="#DejaVuSans-32" x="244.824219"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-cell-Fumaric_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-cell-Fumaric_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,927 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="553.669062pt" height="449.08425pt" viewBox="0 0 553.669062 449.08425" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:38.898410</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 449.08425 \n+L 553.669062 449.08425 \n+L 553.669062 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 85.572813 388.3005 \n+L 308.772812 388.3005 \n+L 308.772812 33.4845 \n+L 85.572813 33.4845 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="line2d_1">\n+    <path d="M 95.718267 372.1725 \n+L 298.627358 210.8925 \n+" clip-path="url(#p7572358cf6)" style="fill: none; stroke: #4878d0; stroke-width: 4.5; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 95.718267 372.1725 \n+L 298.627358 287.13111 \n+" clip-path="url(#p7572358cf6)" style="fill: none; stroke-dasharray: 18,6.75; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 4.5"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <defs>\n+     <path id="C0_0_634b5ab553" d="M 0 2.397916 \n+C 0.635935 2.397916 1.245909 2.145256 1.695582 1.695582 \n+C 2.145256 1.245909 2.397916 0.635935 2.397916 -0 \n+C 2.397916 -0.635935 2.145256 -1.245909 1.695582 -1.695582 \n+C 1.245909 -2.145256 0.635935 -2.397916 0 -2.397916 \n+C -0.635935 -2.397916 -1.245909 -2.145256 -1.695582 -1.695582 \n+C -2.145256 -1.245909 -2.397916 -0.635935 -2.397916 0 \n+C -2.397916 0.635935 -2.145256 1.245909 -1.695582 1.695582 \n+C -1.245909 2.145256 -0.635935 2.397916 0 2.397916 \n+z\n+"/>\n+    </defs>\n+    <g clip-path="url(#p7572358cf6)">\n+     <use xlink:href="#C0_0_634b5ab553" x="95.718267" y="372.1725" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7572358cf6)">\n+     <use xlink:href="#C0_0_634b5ab553" x="298.627358" y="210.8925" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7572358cf6)">\n+     <use xlink:href="#C0_0_634b5ab553" x="95.718267" y="372.1725" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7572358cf6)">\n+     <use xlink:href="#C0_0_634b5ab553" x="298.627358" y="287.13111" style="fill: none; stroke: #000000"/>\n+    </g>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m739a670c7b" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m739a670c7b" x="95.718267" y="388.3005" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(88.719517 412.017062) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"/>\n+      </g>\n+     </g>\n+ '..b'nk:href="#DejaVuSans-46"/>\n+     <use xlink:href="#DejaVuSans-75" x="52.019531"/>\n+     <use xlink:href="#DejaVuSans-6d" x="115.398438"/>\n+     <use xlink:href="#DejaVuSans-61" x="212.810547"/>\n+     <use xlink:href="#DejaVuSans-72" x="274.089844"/>\n+     <use xlink:href="#DejaVuSans-69" x="315.203125"/>\n+     <use xlink:href="#DejaVuSans-63" x="342.986328"/>\n+     <use xlink:href="#DejaVuSans-5f" x="397.966797"/>\n+     <use xlink:href="#DejaVuSans-61" x="447.966797"/>\n+     <use xlink:href="#DejaVuSans-63" x="509.246094"/>\n+     <use xlink:href="#DejaVuSans-69" x="564.226562"/>\n+     <use xlink:href="#DejaVuSans-64" x="592.009766"/>\n+    </g>\n+   </g>\n+   <g id="legend_1">\n+    <g id="line2d_13">\n+     <path d="M 328.572812 62.301062 \n+L 350.572812 62.301062 \n+L 372.572812 62.301062 \n+" style="fill: none; stroke: #4878d0; stroke-width: 1.5; stroke-linecap: square"/>\n+    </g>\n+    <g id="text_10">\n+     <!-- Control -->\n+     <g transform="translate(390.172813 70.001062) scale(0.22 -0.22)">\n+      <use xlink:href="#DejaVuSans-43"/>\n+      <use xlink:href="#DejaVuSans-6f" x="69.824219"/>\n+      <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+      <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+      <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+      <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+      <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+     </g>\n+    </g>\n+    <g id="line2d_14">\n+     <path d="M 328.572812 94.592937 \n+L 350.572812 94.592937 \n+L 372.572812 94.592937 \n+" style="fill: none; stroke-dasharray: 6,2.25; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 1.5"/>\n+    </g>\n+    <g id="text_11">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(390.172813 102.292937) scale(0.22 -0.22)">\n+      <defs>\n+       <path id="DejaVuSans-4c" d="M 628 4666 \n+L 1259 4666 \n+L 1259 531 \n+L 3531 531 \n+L 3531 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-2d" d="M 313 2009 \n+L 1997 2009 \n+L 1997 1497 \n+L 313 1497 \n+L 313 2009 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-79" d="M 2059 -325 \n+Q 1816 -950 1584 -1140 \n+Q 1353 -1331 966 -1331 \n+L 506 -1331 \n+L 506 -850 \n+L 844 -850 \n+Q 1081 -850 1212 -737 \n+Q 1344 -625 1503 -206 \n+L 1606 56 \n+L 191 3500 \n+L 800 3500 \n+L 1894 763 \n+L 2988 3500 \n+L 3597 3500 \n+L 2059 -325 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p7572358cf6">\n+   <rect x="85.572813" y="33.4845" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-cell-Glycine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-cell-Glycine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,915 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="572.104375pt" height="448.859625pt" viewBox="0 0 572.104375 448.859625" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:38.991064</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 448.859625 \n+L 572.104375 448.859625 \n+L 572.104375 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 104.008125 388.075875 \n+L 327.208125 388.075875 \n+L 327.208125 33.259875 \n+L 104.008125 33.259875 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="line2d_1">\n+    <path d="M 114.15358 210.667875 \n+L 317.06267 210.667875 \n+" clip-path="url(#p8a5c50e8cd)" style="fill: none; stroke: #4878d0; stroke-width: 4.5; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 114.15358 210.667875 \n+L 317.06267 210.667875 \n+" clip-path="url(#p8a5c50e8cd)" style="fill: none; stroke-dasharray: 18,6.75; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 4.5"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <defs>\n+     <path id="C0_0_f42d84f37b" d="M 0 2.397916 \n+C 0.635935 2.397916 1.245909 2.145256 1.695582 1.695582 \n+C 2.145256 1.245909 2.397916 0.635935 2.397916 -0 \n+C 2.397916 -0.635935 2.145256 -1.245909 1.695582 -1.695582 \n+C 1.245909 -2.145256 0.635935 -2.397916 0 -2.397916 \n+C -0.635935 -2.397916 -1.245909 -2.145256 -1.695582 -1.695582 \n+C -2.145256 -1.245909 -2.397916 -0.635935 -2.397916 0 \n+C -2.397916 0.635935 -2.145256 1.245909 -1.695582 1.695582 \n+C -1.245909 2.145256 -0.635935 2.397916 0 2.397916 \n+z\n+"/>\n+    </defs>\n+    <g clip-path="url(#p8a5c50e8cd)">\n+     <use xlink:href="#C0_0_f42d84f37b" x="114.15358" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p8a5c50e8cd)">\n+     <use xlink:href="#C0_0_f42d84f37b" x="317.06267" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p8a5c50e8cd)">\n+     <use xlink:href="#C0_0_f42d84f37b" x="114.15358" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p8a5c50e8cd)">\n+     <use xlink:href="#C0_0_f42d84f37b" x="317.06267" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m892663e138" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m892663e138" x="114.15358" y="388.075875" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(107.15483 411.792437) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"/>'..b'525 4313 4306 \n+L 4313 3634 \n+Q 3963 3931 3569 4081 \n+Q 3175 4231 2741 4231 \n+Q 1884 4231 1454 3753 \n+Q 1025 3275 1025 2328 \n+Q 1025 1384 1454 906 \n+Q 1884 428 2741 428 \n+Q 3075 428 3337 486 \n+Q 3600 544 3809 666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-79" d="M 2059 -325 \n+Q 1816 -950 1584 -1140 \n+Q 1353 -1331 966 -1331 \n+L 506 -1331 \n+L 506 -850 \n+L 844 -850 \n+Q 1081 -850 1212 -737 \n+Q 1344 -625 1503 -206 \n+L 1606 56 \n+L 191 3500 \n+L 800 3500 \n+L 1894 763 \n+L 2988 3500 \n+L 3597 3500 \n+L 2059 -325 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-47"/>\n+     <use xlink:href="#DejaVuSans-6c" x="77.490234"/>\n+     <use xlink:href="#DejaVuSans-79" x="105.273438"/>\n+     <use xlink:href="#DejaVuSans-63" x="164.453125"/>\n+     <use xlink:href="#DejaVuSans-69" x="219.433594"/>\n+     <use xlink:href="#DejaVuSans-6e" x="247.216797"/>\n+     <use xlink:href="#DejaVuSans-65" x="310.595703"/>\n+    </g>\n+   </g>\n+   <g id="legend_1">\n+    <g id="line2d_14">\n+     <path d="M 347.008125 62.076437 \n+L 369.008125 62.076437 \n+L 391.008125 62.076437 \n+" style="fill: none; stroke: #4878d0; stroke-width: 1.5; stroke-linecap: square"/>\n+    </g>\n+    <g id="text_11">\n+     <!-- Control -->\n+     <g transform="translate(408.608125 69.776437) scale(0.22 -0.22)">\n+      <use xlink:href="#DejaVuSans-43"/>\n+      <use xlink:href="#DejaVuSans-6f" x="69.824219"/>\n+      <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+      <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+      <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+      <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+      <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+     </g>\n+    </g>\n+    <g id="line2d_15">\n+     <path d="M 347.008125 94.368312 \n+L 369.008125 94.368312 \n+L 391.008125 94.368312 \n+" style="fill: none; stroke-dasharray: 6,2.25; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 1.5"/>\n+    </g>\n+    <g id="text_12">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(408.608125 102.068312) scale(0.22 -0.22)">\n+      <defs>\n+       <path id="DejaVuSans-4c" d="M 628 4666 \n+L 1259 4666 \n+L 1259 531 \n+L 3531 531 \n+L 3531 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-2d" d="M 313 2009 \n+L 1997 2009 \n+L 1997 1497 \n+L 313 1497 \n+L 313 2009 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p8a5c50e8cd">\n+   <rect x="104.008125" y="33.259875" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-cell-L-Proline.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-cell-L-Proline.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,1018 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="539.671562pt" height="448.859625pt" viewBox="0 0 539.671562 448.859625" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:39.079805</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 448.859625 \n+L 539.671562 448.859625 \n+L 539.671562 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 71.575312 388.075875 \n+L 294.775312 388.075875 \n+L 294.775312 33.259875 \n+L 71.575312 33.259875 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="line2d_1">\n+    <path d="M 81.720767 316.559709 \n+L 284.629858 73.776426 \n+" clip-path="url(#p47a878b470)" style="fill: none; stroke: #4878d0; stroke-width: 4.5; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 81.720767 363.997092 \n+L 284.629858 112.311367 \n+" clip-path="url(#p47a878b470)" style="fill: none; stroke-dasharray: 18,6.75; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 4.5"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <defs>\n+     <path id="C0_0_1ddbc6ceb6" d="M 0 2.397916 \n+C 0.635935 2.397916 1.245909 2.145256 1.695582 1.695582 \n+C 2.145256 1.245909 2.397916 0.635935 2.397916 -0 \n+C 2.397916 -0.635935 2.145256 -1.245909 1.695582 -1.695582 \n+C 1.245909 -2.145256 0.635935 -2.397916 0 -2.397916 \n+C -0.635935 -2.397916 -1.245909 -2.145256 -1.695582 -1.695582 \n+C -2.145256 -1.245909 -2.397916 -0.635935 -2.397916 0 \n+C -2.397916 0.635935 -2.145256 1.245909 -1.695582 1.695582 \n+C -1.245909 2.145256 -0.635935 2.397916 0 2.397916 \n+z\n+"/>\n+    </defs>\n+    <g clip-path="url(#p47a878b470)">\n+     <use xlink:href="#C0_0_1ddbc6ceb6" x="81.720767" y="316.55983" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p47a878b470)">\n+     <use xlink:href="#C0_0_1ddbc6ceb6" x="284.629858" y="73.776305" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p47a878b470)">\n+     <use xlink:href="#C0_0_1ddbc6ceb6" x="81.720767" y="363.997092" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p47a878b470)">\n+     <use xlink:href="#C0_0_1ddbc6ceb6" x="284.629858" y="112.311367" style="fill: none; stroke: #000000"/>\n+    </g>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="mc63d878162" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#mc63d878162" x="81.720767" y="388.075875" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(74.722017 411.792437) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"/>'..b'9 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-50" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-72" x="148.599609"/>\n+     <use xlink:href="#DejaVuSans-6f" x="187.462891"/>\n+     <use xlink:href="#DejaVuSans-6c" x="248.644531"/>\n+     <use xlink:href="#DejaVuSans-69" x="276.427734"/>\n+     <use xlink:href="#DejaVuSans-6e" x="304.210938"/>\n+     <use xlink:href="#DejaVuSans-65" x="367.589844"/>\n+    </g>\n+   </g>\n+   <g id="legend_1">\n+    <g id="line2d_16">\n+     <path d="M 314.575312 62.076437 \n+L 336.575312 62.076437 \n+L 358.575312 62.076437 \n+" style="fill: none; stroke: #4878d0; stroke-width: 1.5; stroke-linecap: square"/>\n+    </g>\n+    <g id="text_13">\n+     <!-- Control -->\n+     <g transform="translate(376.175313 69.776437) scale(0.22 -0.22)">\n+      <use xlink:href="#DejaVuSans-43"/>\n+      <use xlink:href="#DejaVuSans-6f" x="69.824219"/>\n+      <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+      <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+      <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+      <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+      <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+     </g>\n+    </g>\n+    <g id="line2d_17">\n+     <path d="M 314.575312 94.368312 \n+L 336.575312 94.368312 \n+L 358.575312 94.368312 \n+" style="fill: none; stroke-dasharray: 6,2.25; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 1.5"/>\n+    </g>\n+    <g id="text_14">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(376.175313 102.068312) scale(0.22 -0.22)">\n+      <defs>\n+       <path id="DejaVuSans-79" d="M 2059 -325 \n+Q 1816 -950 1584 -1140 \n+Q 1353 -1331 966 -1331 \n+L 506 -1331 \n+L 506 -850 \n+L 844 -850 \n+Q 1081 -850 1212 -737 \n+Q 1344 -625 1503 -206 \n+L 1606 56 \n+L 191 3500 \n+L 800 3500 \n+L 1894 763 \n+L 2988 3500 \n+L 3597 3500 \n+L 2059 -325 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p47a878b470">\n+   <rect x="71.575312" y="33.259875" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-med-Fumaric_acid.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-med-Fumaric_acid.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,758 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="363.008125pt" height="449.08425pt" viewBox="0 0 363.008125 449.08425" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:39.136426</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 449.08425 \n+L 363.008125 449.08425 \n+L 363.008125 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 104.008125 388.3005 \n+L 327.208125 388.3005 \n+L 327.208125 33.4845 \n+L 104.008125 33.4845 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <path d="M 0 451.482166 \n+C 0.635935 451.482166 1.245909 451.229506 1.695582 450.779832 \n+C 2.145256 450.330159 2.397916 449.720185 2.397916 449.08425 \n+C 2.397916 448.448315 2.145256 447.838341 1.695582 447.388668 \n+C 1.245909 446.938994 0.635935 446.686334 0 446.686334 \n+C -0.635935 446.686334 -1.245909 446.938994 -1.695582 447.388668 \n+C -2.145256 447.838341 -2.397916 448.448315 -2.397916 449.08425 \n+C -2.397916 449.720185 -2.145256 450.330159 -1.695582 450.779832 \n+C -1.245909 451.229506 -0.635935 451.482166 0 451.482166 \n+" clip-path="url(#p0dba1e52e2)" style="fill: none; stroke: #000000"/>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_1">\n+      <defs>\n+       <path id="m0409381322" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m0409381322" x="104.008125" y="388.3005" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(97.009375 412.017062) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="xtick_2">\n+     <g id="line2d_2">\n+      <g>\n+       <use xlink:href="#m0409381322" x="327.208125" y="388.3005" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_2">\n+      <!-- 2 -->\n+      <g transform="translate(320.209375 412.017062) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-32" d="M 1228 531 \n+L 3431 531 \n+L 3431 0 \n+L 469 0 \n+L 469 531 \n+Q 828 903 1448 1529 \n+Q 2069 2156 2228 2338 \n+Q 2531 2678 2651 2914 \n+Q 2772 3150 2772 3378 \n+Q 2772 3750 2511 3984 \n+Q 2250 4219 1831 4219 \n+Q 1534 4219 1204 4116 \n+Q 875 4013 500 3803 \n+L 500 4441 \n+Q 881 4594 1212 4672 \n+Q 1544 4750 1819 4750 \n+Q 2544 4750 2975 4387 \n+Q 3406 4025 3406 3419 \n+Q 3406 3131 3298 2873 \n+Q 3191 2616 2906 2266 \n+Q 2828 2175 2409 1742 \n+Q 1991 1309 1228 531 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-32"/>\n+      </g>\n+     </g>\n+    </g>\n+    <g id="text_3">\n+     <!-- Time -->\n+     '..b'link:href="#DejaVuSans-72" x="50.269531"/>\n+      <use xlink:href="#DejaVuSans-61" x="91.382812"/>\n+      <use xlink:href="#DejaVuSans-63" x="152.662109"/>\n+      <use xlink:href="#DejaVuSans-74" x="207.642578"/>\n+      <use xlink:href="#DejaVuSans-69" x="246.851562"/>\n+      <use xlink:href="#DejaVuSans-6f" x="274.634766"/>\n+      <use xlink:href="#DejaVuSans-6e" x="335.816406"/>\n+      <use xlink:href="#DejaVuSans-61" x="399.195312"/>\n+      <use xlink:href="#DejaVuSans-6c" x="460.474609"/>\n+      <use xlink:href="#DejaVuSans-20" x="488.257812"/>\n+      <use xlink:href="#DejaVuSans-43" x="520.044922"/>\n+      <use xlink:href="#DejaVuSans-6f" x="589.869141"/>\n+      <use xlink:href="#DejaVuSans-6e" x="651.050781"/>\n+      <use xlink:href="#DejaVuSans-74" x="714.429688"/>\n+      <use xlink:href="#DejaVuSans-72" x="753.638672"/>\n+      <use xlink:href="#DejaVuSans-69" x="794.751953"/>\n+      <use xlink:href="#DejaVuSans-62" x="822.535156"/>\n+      <use xlink:href="#DejaVuSans-75" x="886.011719"/>\n+      <use xlink:href="#DejaVuSans-74" x="949.390625"/>\n+      <use xlink:href="#DejaVuSans-69" x="988.599609"/>\n+      <use xlink:href="#DejaVuSans-6f" x="1016.382812"/>\n+      <use xlink:href="#DejaVuSans-6e" x="1077.564453"/>\n+      <use xlink:href="#DejaVuSans-20" x="1140.943359"/>\n+      <use xlink:href="#DejaVuSans-28" x="1172.730469"/>\n+      <use xlink:href="#DejaVuSans-25" x="1211.744141"/>\n+      <use xlink:href="#DejaVuSans-29" x="1306.763672"/>\n+     </g>\n+    </g>\n+   </g>\n+   <g id="LineCollection_1"/>\n+   <g id="patch_3">\n+    <path d="M 104.008125 388.3005 \n+L 104.008125 33.4845 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_4">\n+    <path d="M 327.208125 388.3005 \n+L 327.208125 33.4845 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_5">\n+    <path d="M 104.008125 388.3005 \n+L 327.208125 388.3005 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="patch_6">\n+    <path d="M 104.008125 33.4845 \n+L 327.208125 33.4845 \n+" style="fill: none; stroke: #000000; stroke-width: 0.8; stroke-linejoin: miter; stroke-linecap: square"/>\n+   </g>\n+   <g id="text_10">\n+    <!-- Fumaric_acid -->\n+    <g transform="translate(129.084187 27.259875) scale(0.264 -0.264)">\n+     <defs>\n+      <path id="DejaVuSans-5f" d="M 3263 -1063 \n+L 3263 -1509 \n+L -63 -1509 \n+L -63 -1063 \n+L 3263 -1063 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-64" d="M 2906 2969 \n+L 2906 4863 \n+L 3481 4863 \n+L 3481 0 \n+L 2906 0 \n+L 2906 525 \n+Q 2725 213 2448 61 \n+Q 2172 -91 1784 -91 \n+Q 1150 -91 751 415 \n+Q 353 922 353 1747 \n+Q 353 2572 751 3078 \n+Q 1150 3584 1784 3584 \n+Q 2172 3584 2448 3432 \n+Q 2725 3281 2906 2969 \n+z\n+M 947 1747 \n+Q 947 1113 1208 752 \n+Q 1469 391 1925 391 \n+Q 2381 391 2643 752 \n+Q 2906 1113 2906 1747 \n+Q 2906 2381 2643 2742 \n+Q 2381 3103 1925 3103 \n+Q 1469 3103 1208 2742 \n+Q 947 2381 947 1747 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-46"/>\n+     <use xlink:href="#DejaVuSans-75" x="52.019531"/>\n+     <use xlink:href="#DejaVuSans-6d" x="115.398438"/>\n+     <use xlink:href="#DejaVuSans-61" x="212.810547"/>\n+     <use xlink:href="#DejaVuSans-72" x="274.089844"/>\n+     <use xlink:href="#DejaVuSans-69" x="315.203125"/>\n+     <use xlink:href="#DejaVuSans-63" x="342.986328"/>\n+     <use xlink:href="#DejaVuSans-5f" x="397.966797"/>\n+     <use xlink:href="#DejaVuSans-61" x="447.966797"/>\n+     <use xlink:href="#DejaVuSans-63" x="509.246094"/>\n+     <use xlink:href="#DejaVuSans-69" x="564.226562"/>\n+     <use xlink:href="#DejaVuSans-64" x="592.009766"/>\n+    </g>\n+   </g>\n+   <g id="legend_1"/>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p0dba1e52e2">\n+   <rect x="104.008125" y="33.4845" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-med-Glycine.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-med-Glycine.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,915 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="572.104375pt" height="448.859625pt" viewBox="0 0 572.104375 448.859625" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:39.221071</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 448.859625 \n+L 572.104375 448.859625 \n+L 572.104375 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 104.008125 388.075875 \n+L 327.208125 388.075875 \n+L 327.208125 33.259875 \n+L 104.008125 33.259875 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="line2d_1">\n+    <path d="M 114.15358 210.667875 \n+L 317.06267 210.667875 \n+" clip-path="url(#p7f782b404b)" style="fill: none; stroke: #4878d0; stroke-width: 4.5; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 114.15358 210.667875 \n+L 317.06267 210.667875 \n+" clip-path="url(#p7f782b404b)" style="fill: none; stroke-dasharray: 18,6.75; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 4.5"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <defs>\n+     <path id="C0_0_ca93b949a5" d="M 0 2.397916 \n+C 0.635935 2.397916 1.245909 2.145256 1.695582 1.695582 \n+C 2.145256 1.245909 2.397916 0.635935 2.397916 -0 \n+C 2.397916 -0.635935 2.145256 -1.245909 1.695582 -1.695582 \n+C 1.245909 -2.145256 0.635935 -2.397916 0 -2.397916 \n+C -0.635935 -2.397916 -1.245909 -2.145256 -1.695582 -1.695582 \n+C -2.145256 -1.245909 -2.397916 -0.635935 -2.397916 0 \n+C -2.397916 0.635935 -2.145256 1.245909 -1.695582 1.695582 \n+C -1.245909 2.145256 -0.635935 2.397916 0 2.397916 \n+z\n+"/>\n+    </defs>\n+    <g clip-path="url(#p7f782b404b)">\n+     <use xlink:href="#C0_0_ca93b949a5" x="114.15358" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7f782b404b)">\n+     <use xlink:href="#C0_0_ca93b949a5" x="317.06267" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7f782b404b)">\n+     <use xlink:href="#C0_0_ca93b949a5" x="114.15358" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p7f782b404b)">\n+     <use xlink:href="#C0_0_ca93b949a5" x="317.06267" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m28ee1cc84d" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m28ee1cc84d" x="114.15358" y="388.075875" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(107.15483 411.792437) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"/>'..b'525 4313 4306 \n+L 4313 3634 \n+Q 3963 3931 3569 4081 \n+Q 3175 4231 2741 4231 \n+Q 1884 4231 1454 3753 \n+Q 1025 3275 1025 2328 \n+Q 1025 1384 1454 906 \n+Q 1884 428 2741 428 \n+Q 3075 428 3337 486 \n+Q 3600 544 3809 666 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-79" d="M 2059 -325 \n+Q 1816 -950 1584 -1140 \n+Q 1353 -1331 966 -1331 \n+L 506 -1331 \n+L 506 -850 \n+L 844 -850 \n+Q 1081 -850 1212 -737 \n+Q 1344 -625 1503 -206 \n+L 1606 56 \n+L 191 3500 \n+L 800 3500 \n+L 1894 763 \n+L 2988 3500 \n+L 3597 3500 \n+L 2059 -325 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-47"/>\n+     <use xlink:href="#DejaVuSans-6c" x="77.490234"/>\n+     <use xlink:href="#DejaVuSans-79" x="105.273438"/>\n+     <use xlink:href="#DejaVuSans-63" x="164.453125"/>\n+     <use xlink:href="#DejaVuSans-69" x="219.433594"/>\n+     <use xlink:href="#DejaVuSans-6e" x="247.216797"/>\n+     <use xlink:href="#DejaVuSans-65" x="310.595703"/>\n+    </g>\n+   </g>\n+   <g id="legend_1">\n+    <g id="line2d_14">\n+     <path d="M 347.008125 62.076437 \n+L 369.008125 62.076437 \n+L 391.008125 62.076437 \n+" style="fill: none; stroke: #4878d0; stroke-width: 1.5; stroke-linecap: square"/>\n+    </g>\n+    <g id="text_11">\n+     <!-- Control -->\n+     <g transform="translate(408.608125 69.776437) scale(0.22 -0.22)">\n+      <use xlink:href="#DejaVuSans-43"/>\n+      <use xlink:href="#DejaVuSans-6f" x="69.824219"/>\n+      <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+      <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+      <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+      <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+      <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+     </g>\n+    </g>\n+    <g id="line2d_15">\n+     <path d="M 347.008125 94.368312 \n+L 369.008125 94.368312 \n+L 391.008125 94.368312 \n+" style="fill: none; stroke-dasharray: 6,2.25; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 1.5"/>\n+    </g>\n+    <g id="text_12">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(408.608125 102.068312) scale(0.22 -0.22)">\n+      <defs>\n+       <path id="DejaVuSans-4c" d="M 628 4666 \n+L 1259 4666 \n+L 1259 531 \n+L 3531 531 \n+L 3531 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-2d" d="M 313 2009 \n+L 1997 2009 \n+L 1997 1497 \n+L 313 1497 \n+L 313 2009 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p7f782b404b">\n+   <rect x="104.008125" y="33.259875" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/mean_enrichment-med-L-Proline.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/mean_enrichment-med-L-Proline.svg Tue Oct 10 11:54:46 2023 +0000
b
b'@@ -0,0 +1,974 @@\n+<?xml version="1.0" encoding="utf-8" standalone="no"?>\n+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"\n+  "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n+<svg xmlns:xlink="http://www.w3.org/1999/xlink" width="539.671562pt" height="448.859625pt" viewBox="0 0 539.671562 448.859625" xmlns="http://www.w3.org/2000/svg" version="1.1">\n+ <metadata>\n+  <rdf:RDF xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:cc="http://creativecommons.org/ns#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">\n+   <cc:Work>\n+    <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>\n+    <dc:date>2023-10-08T10:14:39.308257</dc:date>\n+    <dc:format>image/svg+xml</dc:format>\n+    <dc:creator>\n+     <cc:Agent>\n+      <dc:title>Matplotlib v3.7.3, https://matplotlib.org/</dc:title>\n+     </cc:Agent>\n+    </dc:creator>\n+   </cc:Work>\n+  </rdf:RDF>\n+ </metadata>\n+ <defs>\n+  <style type="text/css">*{stroke-linejoin: round; stroke-linecap: butt}</style>\n+ </defs>\n+ <g id="figure_1">\n+  <g id="patch_1">\n+   <path d="M 0 448.859625 \n+L 539.671562 448.859625 \n+L 539.671562 0 \n+L 0 0 \n+z\n+" style="fill: #ffffff"/>\n+  </g>\n+  <g id="axes_1">\n+   <g id="patch_2">\n+    <path d="M 71.575312 388.075875 \n+L 294.775312 388.075875 \n+L 294.775312 33.259875 \n+L 71.575312 33.259875 \n+z\n+" style="fill: #ffffff"/>\n+   </g>\n+   <g id="line2d_1">\n+    <path d="M 81.720767 312.437729 \n+L 284.629858 210.667875 \n+" clip-path="url(#p54479573a5)" style="fill: none; stroke: #4878d0; stroke-width: 4.5; stroke-linecap: square"/>\n+   </g>\n+   <g id="line2d_2">\n+    <path d="M 81.720767 371.947875 \n+L 284.629858 328.899361 \n+" clip-path="url(#p54479573a5)" style="fill: none; stroke-dasharray: 18,6.75; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 4.5"/>\n+   </g>\n+   <g id="PathCollection_1">\n+    <defs>\n+     <path id="C0_0_032cebcb73" d="M 0 2.397916 \n+C 0.635935 2.397916 1.245909 2.145256 1.695582 1.695582 \n+C 2.145256 1.245909 2.397916 0.635935 2.397916 -0 \n+C 2.397916 -0.635935 2.145256 -1.245909 1.695582 -1.695582 \n+C 1.245909 -2.145256 0.635935 -2.397916 0 -2.397916 \n+C -0.635935 -2.397916 -1.245909 -2.145256 -1.695582 -1.695582 \n+C -2.145256 -1.245909 -2.397916 -0.635935 -2.397916 0 \n+C -2.397916 0.635935 -2.145256 1.245909 -1.695582 1.695582 \n+C -1.245909 2.145256 -0.635935 2.397916 0 2.397916 \n+z\n+"/>\n+    </defs>\n+    <g clip-path="url(#p54479573a5)">\n+     <use xlink:href="#C0_0_032cebcb73" x="81.720767" y="312.437729" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p54479573a5)">\n+     <use xlink:href="#C0_0_032cebcb73" x="284.629858" y="210.667875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p54479573a5)">\n+     <use xlink:href="#C0_0_032cebcb73" x="81.720767" y="371.947875" style="fill: none; stroke: #000000"/>\n+    </g>\n+    <g clip-path="url(#p54479573a5)">\n+     <use xlink:href="#C0_0_032cebcb73" x="284.629858" y="328.899361" style="fill: none; stroke: #000000"/>\n+    </g>\n+   </g>\n+   <g id="matplotlib.axis_1">\n+    <g id="xtick_1">\n+     <g id="line2d_3">\n+      <defs>\n+       <path id="m47c73eb775" d="M 0 0 \n+L 0 3.5 \n+" style="stroke: #000000; stroke-width: 0.8"/>\n+      </defs>\n+      <g>\n+       <use xlink:href="#m47c73eb775" x="81.720767" y="388.075875" style="stroke: #000000; stroke-width: 0.8"/>\n+      </g>\n+     </g>\n+     <g id="text_1">\n+      <!-- 0 -->\n+      <g transform="translate(74.722017 411.792437) scale(0.22 -0.22)">\n+       <defs>\n+        <path id="DejaVuSans-30" d="M 2034 4250 \n+Q 1547 4250 1301 3770 \n+Q 1056 3291 1056 2328 \n+Q 1056 1369 1301 889 \n+Q 1547 409 2034 409 \n+Q 2525 409 2770 889 \n+Q 3016 1369 3016 2328 \n+Q 3016 3291 2770 3770 \n+Q 2525 4250 2034 4250 \n+z\n+M 2034 4750 \n+Q 2819 4750 3233 4129 \n+Q 3647 3509 3647 2328 \n+Q 3647 1150 3233 529 \n+Q 2819 -91 2034 -91 \n+Q 1250 -91 836 529 \n+Q 422 1150 422 2328 \n+Q 422 3509 836 4129 \n+Q 1250 4750 2034 4750 \n+z\n+" transform="scale(0.015625)"/>\n+       </defs>\n+       <use xlink:href="#DejaVuSans-30"'..b'9 \n+z\n+" transform="scale(0.015625)"/>\n+      <path id="DejaVuSans-50" d="M 1259 4147 \n+L 1259 2394 \n+L 2053 2394 \n+Q 2494 2394 2734 2622 \n+Q 2975 2850 2975 3272 \n+Q 2975 3691 2734 3919 \n+Q 2494 4147 2053 4147 \n+L 1259 4147 \n+z\n+M 628 4666 \n+L 2053 4666 \n+Q 2838 4666 3239 4311 \n+Q 3641 3956 3641 3272 \n+Q 3641 2581 3239 2228 \n+Q 2838 1875 2053 1875 \n+L 1259 1875 \n+L 1259 0 \n+L 628 0 \n+L 628 4666 \n+z\n+" transform="scale(0.015625)"/>\n+     </defs>\n+     <use xlink:href="#DejaVuSans-4c"/>\n+     <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+     <use xlink:href="#DejaVuSans-50" x="90.046875"/>\n+     <use xlink:href="#DejaVuSans-72" x="148.599609"/>\n+     <use xlink:href="#DejaVuSans-6f" x="187.462891"/>\n+     <use xlink:href="#DejaVuSans-6c" x="248.644531"/>\n+     <use xlink:href="#DejaVuSans-69" x="276.427734"/>\n+     <use xlink:href="#DejaVuSans-6e" x="304.210938"/>\n+     <use xlink:href="#DejaVuSans-65" x="367.589844"/>\n+    </g>\n+   </g>\n+   <g id="legend_1">\n+    <g id="line2d_14">\n+     <path d="M 314.575312 62.076437 \n+L 336.575312 62.076437 \n+L 358.575312 62.076437 \n+" style="fill: none; stroke: #4878d0; stroke-width: 1.5; stroke-linecap: square"/>\n+    </g>\n+    <g id="text_11">\n+     <!-- Control -->\n+     <g transform="translate(376.175313 69.776437) scale(0.22 -0.22)">\n+      <use xlink:href="#DejaVuSans-43"/>\n+      <use xlink:href="#DejaVuSans-6f" x="69.824219"/>\n+      <use xlink:href="#DejaVuSans-6e" x="131.005859"/>\n+      <use xlink:href="#DejaVuSans-74" x="194.384766"/>\n+      <use xlink:href="#DejaVuSans-72" x="233.59375"/>\n+      <use xlink:href="#DejaVuSans-6f" x="272.457031"/>\n+      <use xlink:href="#DejaVuSans-6c" x="333.638672"/>\n+     </g>\n+    </g>\n+    <g id="line2d_15">\n+     <path d="M 314.575312 94.368312 \n+L 336.575312 94.368312 \n+L 358.575312 94.368312 \n+" style="fill: none; stroke-dasharray: 6,2.25; stroke-dashoffset: 0; stroke: #ee854a; stroke-width: 1.5"/>\n+    </g>\n+    <g id="text_12">\n+     <!-- L-Cycloserine -->\n+     <g transform="translate(376.175313 102.068312) scale(0.22 -0.22)">\n+      <defs>\n+       <path id="DejaVuSans-79" d="M 2059 -325 \n+Q 1816 -950 1584 -1140 \n+Q 1353 -1331 966 -1331 \n+L 506 -1331 \n+L 506 -850 \n+L 844 -850 \n+Q 1081 -850 1212 -737 \n+Q 1344 -625 1503 -206 \n+L 1606 56 \n+L 191 3500 \n+L 800 3500 \n+L 1894 763 \n+L 2988 3500 \n+L 3597 3500 \n+L 2059 -325 \n+z\n+" transform="scale(0.015625)"/>\n+       <path id="DejaVuSans-73" d="M 2834 3397 \n+L 2834 2853 \n+Q 2591 2978 2328 3040 \n+Q 2066 3103 1784 3103 \n+Q 1356 3103 1142 2972 \n+Q 928 2841 928 2578 \n+Q 928 2378 1081 2264 \n+Q 1234 2150 1697 2047 \n+L 1894 2003 \n+Q 2506 1872 2764 1633 \n+Q 3022 1394 3022 966 \n+Q 3022 478 2636 193 \n+Q 2250 -91 1575 -91 \n+Q 1294 -91 989 -36 \n+Q 684 19 347 128 \n+L 347 722 \n+Q 666 556 975 473 \n+Q 1284 391 1588 391 \n+Q 1994 391 2212 530 \n+Q 2431 669 2431 922 \n+Q 2431 1156 2273 1281 \n+Q 2116 1406 1581 1522 \n+L 1381 1569 \n+Q 847 1681 609 1914 \n+Q 372 2147 372 2553 \n+Q 372 3047 722 3315 \n+Q 1072 3584 1716 3584 \n+Q 2034 3584 2315 3537 \n+Q 2597 3491 2834 3397 \n+z\n+" transform="scale(0.015625)"/>\n+      </defs>\n+      <use xlink:href="#DejaVuSans-4c"/>\n+      <use xlink:href="#DejaVuSans-2d" x="53.962891"/>\n+      <use xlink:href="#DejaVuSans-43" x="90.046875"/>\n+      <use xlink:href="#DejaVuSans-79" x="159.871094"/>\n+      <use xlink:href="#DejaVuSans-63" x="219.050781"/>\n+      <use xlink:href="#DejaVuSans-6c" x="274.03125"/>\n+      <use xlink:href="#DejaVuSans-6f" x="301.814453"/>\n+      <use xlink:href="#DejaVuSans-73" x="362.996094"/>\n+      <use xlink:href="#DejaVuSans-65" x="415.095703"/>\n+      <use xlink:href="#DejaVuSans-72" x="476.619141"/>\n+      <use xlink:href="#DejaVuSans-69" x="517.732422"/>\n+      <use xlink:href="#DejaVuSans-6e" x="545.515625"/>\n+      <use xlink:href="#DejaVuSans-65" x="608.894531"/>\n+     </g>\n+    </g>\n+   </g>\n+  </g>\n+ </g>\n+ <defs>\n+  <clipPath id="p54479573a5">\n+   <rect x="71.575312" y="33.259875" width="223.2" height="354.816"/>\n+  </clipPath>\n+ </defs>\n+</svg>\n'
b
diff -r 000000000000 -r a3349c105bd0 test-data/pathways_kegg_metabolites.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pathways_kegg_metabolites.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,8 @@
+"CENTRAL_CARBON_METABOLISM" "AMINOACIDS"
+"Fumaric_acid" "L-Glutamine"
+"Citric_acid" "L-Asparagine"
+"Hexose" "L-Aspartic_acid"
+"L-Lactic_acid" "L-Glutamic_acid"
+"Pyruvic_acid" "L-Glutamine"
+"Hexose-phosphate" "L-Proline"
+ "L-Alanine"
b
diff -r 000000000000 -r a3349c105bd0 test-data/pathways_kegg_transcripts.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/pathways_kegg_transcripts.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,12 @@
+"CENTRAL_CARBON_METABOLISM" "AMINOACIDS"
+"ALDOA" "ADSS1"
+"GPI" "AGXT"
+"PCK1" "ASL"
+"PGAM1" "ASNS"
+"PKM" "ASPA"
+"IDH1" "GAD1"
+"MDH2" "GLS"
+"PC" "GLUD1"
+"SDHA" "GLUD2"
+"SUCLG1"
+"SUCLG2"
b
diff -r 000000000000 -r a3349c105bd0 test-data/rawAbundances.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rawAbundances.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -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
b
diff -r 000000000000 -r a3349c105bd0 test-data/rawAbundances3.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rawAbundances3.csv Tue Oct 10 11:54:46 2023 +0000
b
@@ -0,0 +1,7 @@
+ID Sample1 Sample2 Sample3 Sample4 Sample5 Sample6 Sample7 Sample8 Sample9 Sample10 Sample11 Sample12 Sample13 Sample14 Sample15 Sample16 Sample17 Sample18
+Fumaric_acid
+Glycine 31339.848144444444 39953.502358333335 25011.070372222222 1867.879408333334 2173.435886666666 1221.041376190477 115741.494772222224 125731.819858333336 182398.016666666 560.116666667 19650482.416666664 656.516666666 35768152.41666667 21132662.81666667 21540901.71666667 22233782.916666664 26243782.873465 26439782.65765756
+Hexose 15263.525582222223 10653.204421666667 17620.2662477777785 2194.176071666667 3284.639177333334 2131.811518095239 6702.562494444444 6744.364736666666 5678.643333334 24242428.643333334 22336054.643333334 22906432.643333334 23957348.643333334 23850557.643333334 26889340.643333334 25837975.643333334 31838775.948787 29134981.16455938
+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-Glutamine 8606.32958888889 9863.261441666667 9512.041427777778 18956.960391666667 18701.497033333335 15374.547080952381 4094.7460777777783 4858.299791666668
+L-Tryptophan 4101.068422222223 4813.902566666667 4571.5729777777774 2610.923316666667 2975.5369333333333 2079.1386666666667 32157.056777777778 32678.538611666667 293656601.733333334 24177093.733333334 23401859.733333334 19146747.733333334 22572464.733333334 20887438.733333334 20532655.733333334 21681238.733333334 19681235.1976875 21681931.65426354
\ No newline at end of file