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

Changeset 0:cb8c4ae59da9 (2023-10-10)
Next changeset 1:b97f326c055d (2024-01-23)
Commit message:
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/DIMet commit abca848510cb4ac8d09d95634147626ea578cdf0
added:
dimet_timecourse_analysis.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 cb8c4ae59da9 dimet_timecourse_analysis.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dimet_timecourse_analysis.xml Tue Oct 10 11:54:05 2023 +0000
[
b'@@ -0,0 +1,271 @@\n+<tool id="dimet_@EXECUTABLE@" name="dimet @TOOL_LABEL@" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="20.05">\n+    <description>\n+        Differential analysis of tracer metabolomics data comparing consecutive time-points (by DIMet)\n+    </description>\n+    <macros>\n+        <token name="@TOOL_LABEL@">timecourse analysis</token>\n+        <token name="@EXECUTABLE@">timecourse_analysis</token>\n+        <import>macros.xml</import>\n+    </macros>\n+    <expand macro="requirements"/>\n+    <command detect_errors="exit_code"><![CDATA[\n+    @INIT_CONFIG@\n+    @INIT_DIFF_ANALYSIS@\n+    @INIT_STAT_TEST@\n+    @INIT_GROUPS@\n+    @INIT_CONDITIONS_TIMECOURSE@\n+    HYDRA_FULL_ERROR=1 python -m dimet\n+        -cp \'$__new_file_path__/config\'\n+        \'++figure_path=figures\'\n+        \'++table_path=tables\'\n+        \'++hydra.run.dir=time_course_analysis\'\n+        \'++analysis={\n+            dataset:{\n+                _target_: dimet.data.DatasetConfig,\n+                name: "I am a synthetic data example"\n+             },\n+             method:{\n+                _target_: dimet.method.TimeCourseAnalysisConfig,\n+                label: "time_course_analysis",\n+                name: "Time wise computation of statistical differences"\n+              },\n+              label: time_course_analysis-example\n+         }\'\n+         \'++analysis.method.qualityDistanceOverSpan=\'${qualityDistanceOverSpan}\'\'\n+         \'++analysis.statistical_test=${statistical_test}\'\n+         \'++analysis.method.statistical_test=${statistical_test}\'\n+         \'++analysis.method.grouping=${groups}\'\n+         \'++analysis.method.correction_method=${correction_method}\'\n+         \'++analysis.method.impute_values=${impute_values}\'\n+         \'++analysis.dataset.subfolder=\'\n+         \'++analysis.dataset.label=\'\n+         \'++analysis.dataset.conditions=${conds}\'\n+         #if $metadata_path:\n+             \'++analysis.dataset.metadata=metadata\'\n+         #end if\n+         #if str( $data_input.data_input_selector ) == "abundance":\n+            #if $data_input.abundance_file:\n+                \'++analysis.dataset.abundances=abundance\'\n+            #end if\n+        #elif str( $data_input.data_input_selector ) == "mean_enrichment":\n+            #if $data_input.me_or_frac_contrib_file:\n+                \'++analysis.dataset.mean_enrichment=me_or_frac_contrib\'\n+            #end if\n+        #elif str( $data_input.data_input_selector ) == "isotop_prop":\n+            #if $data_input.isotop_prop_file:\n+                \'++analysis.dataset.isotopologue_proportions=isotop_prop\'\n+            #end if\n+        #else\n+            #if $data_input.isotop_abs_file:\n+                \'+analysis.dataset.isotopologues=isotop_abs\'\n+            #end if\n+        #end if\n+    @REMOVE_CONFIG@\n+    ]]></command>\n+    <inputs>\n+        <expand macro="input_parameters_diff_analysis"/>\n+        <expand macro="conditions"/>\n+        <expand macro="correction_method"/>\n+        <param name="qualityDistanceOverSpan" type="float" min="-1.0" max="-0.1" value="-0.3" label="quality Distance Over Span" help="Default value is -0.3."/>\n+    </inputs>\n+    <outputs>\n+        <collection name="report" type="list">\n+            <discover_datasets pattern="__designation__" directory="tables" format="tabular"/>\n+        </collection>\n+    </outputs>\n+    <tests>\n+        <test>\n+            <param name="data_input_selector" value="abundance" />\n+            <param name="abundance_file" ftype="tabular" value="rawAbundances.csv"/>\n+            <param name="metadata_path" ftype="tabular" value="example2_metadata.csv"/>\n+            <param name="correction_method" value="bonferroni"/>\n+            <param name="qualityDistanceOverSpan" value="-0.3"/>\n+            <param name="stat_test" value="Tt"/>\n+            <param name="conditions" value=\'Control,L-Cycloserine\'/>\n+            <output_collection name="report" type="list" count="4">\n+                <element file="abundance--cell-Control-T2h-Control-T0-Tt.tsv"  n'..b'min            0           cell             MCF001089_TD02\n+    Spleen1_cell_10-1    Spleen1         10min           10          cell             MCF001089_TD03\n+    Spleen1_cell_10-2    Spleen1         10min           10          cell             MCF001089_TD04\n+    Spleen1_cell_30-1    Spleen1         30min           30          cell             MCF001089_TD05\n+    Spleen1_cell_30-2    Spleen1         30min           30          cell             MCF001089_TD06\n+    Spleen1_cell_60-1    Spleen1         60min           60          cell             MCF001089_TD07\n+    Spleen1_cell_60-2    Spleen1         60min           60          cell             MCF001089_TD08\n+    Spleen1_cell_90-1    Spleen1         90min           90          cell             MCF001089_TD09\n+    Spleen1_cell_90-2    Spleen1         90min           90          cell             MCF001089_TD011\n+    Spleen1_med_30-3     Spleen1         30min           30          med              MCF001089_TD025\n+    Spleen1_med_30-2     Spleen1         30min           30          med              MCF001089_TD023\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 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) 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 compartments names are, the longer the output files\' names! Please pick short and clear abbreviations to fill this column.\n+\n+\n+\n+**Running the analysis**\n+\n+\n+\n+You can precise how you want your analysis to be executed, with the parameters:\n+\n+- **datatypes** : the measures type(s) that you want to run\n+\n+- **statistical_test** : choose, by type of measure, the specific statistical test to be applied.\n+\n+ Kruskal-Wallis, Mann-Whitney, Wilcoxon\xe2\x80\x99s signed rank test, Wilcoxon\xe2\x80\x99s rank sum test\n+ t-test, and permutation test are currently offered (we use the trusted functions from scipy library https://docs.scipy.org/doc/scipy/reference/stats.html).\n+\n+For the permutation test, we have established as test statistic, the absolute difference of geometric means of the two compared groups.\n+\n+- **qualityDistanceOverSpan**: a normalized distance between the intervals of values of the compared groups, that is the cutoff for considering a minimal acceptable "separation". A \'distance/span\' == 1 is a perfect separation, whereas if \'distance/span\' < 0 there is no separation. To use with caution in case of important dispersion of your intra-group values. Default is -0.3 (not stringent)\n+\n+- **correction_method** : one of the methods for multiple testing correction available in statsmodels library (bonferroni, fdr_bh, sidak, among others, see https://www.statsmodels.org/dev/generated/statsmodels.stats.multitest.multipletests.html).\n+\n+There exist hints on use that will guide you, next to the parameters.\n+\n+The output consists of tables with the computed metrics, one by each pair of timepoints compared.\n+The number of output tables = number-of-conditions x (number-of-timepoints)-1 x number-of-compartments.\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+You can also use the minimal data examples from https://zenodo.org/record/8380706\n+\n+ ]]>\n+    </help>\n+    <expand macro="citations" />\n+</tool>\n'
b
diff -r 000000000000 -r cb8c4ae59da9 macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Tue Oct 10 11:54:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 test-data/AbundanceCorrected.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/AbundanceCorrected.csv Tue Oct 10 11:54:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 test-data/legend.svg
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/legend.svg Tue Oct 10 11:54:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 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:05 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 cb8c4ae59da9 test-data/rawAbundances.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rawAbundances.csv Tue Oct 10 11:54:05 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 cb8c4ae59da9 test-data/rawAbundances3.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/rawAbundances3.csv Tue Oct 10 11:54:05 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