Repository 'ramclustr'
hg clone https://toolshed.g2.bx.psu.edu/repos/recetox/ramclustr

Changeset 0:36104baf75da (2022-03-22)
Next changeset 1:9a0d83c1b4b3 (2022-04-22)
Commit message:
"planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/ramclustr commit 4d2ac914c951166e386a94d8ebb8cb1becfac122"
added:
macros.xml
ramclustr.xml
ramclustr_wrapper.R
test-data/gc-ramclustr-define-experiment.csv
test-data/lc-ramclustr-define-experiment.csv
test-data/test1_fill_xcms_1.msp
test-data/test1_spec_abundance_xcms_1.csv
test-data/test1_xcmsObj_1.rdata.xcms.fillpeaks
test-data/test2_fill_xcms_2.msp
test-data/test2_sample_metadata_xcms_2.csv
test-data/test2_spec_abundance_xcms_2.csv
test-data/test2_xcmsObj_2.rdata.xcms.fillpeaks
test-data/test3_csv_test-input_1_2.csv
test-data/test3_spec_abundance_csv_1.csv
test-data/test3_spectra_csv_1.msp
test-data/test4_sample_metadata_csv_2.csv
test-data/test4_spec_abundance_csv_2.csv
test-data/test4_spectra_csv_2.msp
b
diff -r 000000000000 -r 36104baf75da macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/macros.xml Tue Mar 22 16:09:16 2022 +0000
[
b'@@ -0,0 +1,306 @@\n+<macros>\n+    <token name="@TOOL_VERSION@">1.2.2</token>\n+\n+    <xml name="creator">\n+        <creator>\n+            <person\n+                givenName="Helge"\n+                familyName="Hecht"\n+                url="https://github.com/hechth"\n+                identifier="0000-0001-6744-996X" />\n+            <person\n+                givenName="Maksym"\n+                familyName="Skoryk"\n+                url="https://github.com/maximskorik"\n+                identifier="0000-0003-2056-8018" />\n+            <person\n+                givenName="Matej"\n+                familyName="Troj\xc3\xa1k"\n+                url="https://github.com/xtrojak"\n+                identifier="0000-0003-0841-2707" />\n+            <person\n+                givenName="Martin"\n+                familyName="\xc4\x8cech"\n+                url="https://github.com/martenson"\n+                identifier="0000-0002-9318-1781" />\n+            <organization\n+                url="https://www.recetox.muni.cz/"\n+                email="GalaxyToolsDevelopmentandDeployment@space.muni.cz"\n+                name="RECETOX MUNI"/>\n+        </creator>\n+    </xml>\n+\n+    <xml name="parameters_csv">\n+        <section name="ms_csv" title="Input MS Data as CSV" expanded="true">\n+            <param label="Input CSV" name="ms" type="data" format="csv"\n+                   help="Features as columns, rows as samples. Column header in format mz_rt."/>\n+            <param label="idMSMS" name="idmsms" type="data" format="csv" optional="true"\n+                   help="Optional idMSMS / MSe csv data. Same dimension and names as in input CSV are required."/>\n+        </section>\n+    </xml>\n+\n+    <xml name="parameters_xcms">\n+        <section name="xcms" title="Input MS Data as XCMS" expanded="true">\n+            <param name="input_xcms" label="Input XCMS" type="data" format="rdata.xcms.fillpeaks"\n+                   help="Grouped feature data for clustering." />\n+            <param label="Preserve phenotype" name="usePheno" type="boolean" truevalue="TRUE" falsevalue="FALSE" checked="true"\n+                   help="Transfer phenotype data from XCMS object to Spec abundance file."/>\n+        </section>\n+    </xml>\n+\n+    <xml name="parameters_required">\n+        <param label="Sigma r" name="sr" type="float" value="0.5" help="Correlational similarity between features."/>\n+        <param label="Correlation method" name="cor_method" type="select" display="radio"\n+               help="Choose correlational method to be used - see [1] for details.">\n+            <option value="pearson" selected="true">pearson</option>\n+            <option value="everything">everything</option>\n+            <option value="spearman">spearman</option>\n+            <option value="kendall">kendall</option>\n+        </param>\n+        <param label="Maximum RT difference" name="maxt" value="60" type="float"\n+               help="Maximum difference to calculate RT similarity - values beyond this are assigned zero similarity."/>\n+    </xml>\n+\n+    <xml name="main_parameters">\n+        <section name="clustering" title="Clustering" expanded="true">\n+            <param label="Clustering linkage method" name="linkage" type="select" display="radio"\n+                   help="Choose hierarchical clustering linkage method - see [2] for details.">\n+                <option value="average" selected="true">average</option>\n+                <option value="ward.D">ward.D</option>\n+                <option value="ward.D2">ward.D2</option>\n+                <option value="single">single</option>\n+                <option value="complete">complete</option>\n+                <option value="mcquitty">mcquitty</option>\n+                <option value="median">median</option>\n+                <option value="centroid">centroid</option>\n+            </param>\n+            <param label="Minimal cluster size" name="minModuleSize" type="integer" value="2"\n+                   help="Minimal size (number of features) of a cluster."/>\n+            <par'..b'                of the elemental composition of the analyte. In EI, fragmentation is a byproduct of ionization, and has\n+                driven the generation of large mass spectral libraries. In ESI, in-source fragmentation frequently\n+                occurs, the magnitude of which is compound dependent, with more labile compounds being more prone to\n+                in-source fragmentation. ESI can also product multiple adduct forms (protonated, potassiated, sodiated,\n+                ammoniated...), and can produce multimers (i.e. [2M+H]+, [3M+K]+, etc) and multiple charged species\n+                ([M+2H]++). This can become further complicated by considering combinations of these phenomena. For\n+                example [2M+3H]+++ (triply charged dimer) or an in-source fragment of a dimer.\n+\n+            RAMClustR approach\n+                RAMClustR was designed to group features designed from the same compound using an approach which is\n+                **1.** unsupervised, **2.** platform agnostic, and **3.** devoid of curated rules, as the depth of\n+                understanding of these processes is insufficient to enable accurate curation/prediction of all phenomenon\n+                that may occur. We achieve this by making two assumptions. The first is that two features derived\n+                from the same compound with have (approximately) the same retention time. The second is that two\n+                features derived from the same compound will have (approximately) the same quantitative trend across\n+                all samples in the xcms sample set. From these assumptions, we can calculate a retention time\n+                similarity score and a correlational similarity score for each feature pair. A high similarity score\n+                for both retention time and correlation indicates a strong probability that two features derive from\n+                the same compound. Since both conditions must be met, the product of the two similarity scores provides\n+                the best approximation of the total similarity score - i.e. a feature pair with retention time similarity\n+                of 1 and correlational similarity of 0 is unlikely to derive from one compound - 1 x 0 = 0, the final\n+                similarity score is zero, indicating the two features represent two different compounds. Similarly, a\n+                feature pair with retention time similarity of 0 and correlational similarity of 1 is unlikely to derive\n+                from one compound - 0 x 1 = 0. Alternatively - a feature pair with retention time similarity of 1 and\n+                correlational similarity of 1 is likely to derive from one compound - 1 x 1 = 1.\n+\n+        The RAMClustR algorithm is built on creating similarity scores for all pairs of features, submitting\n+        this score matrix for hierarchical clustering, and then cutting the resulting dendrogram into neat\n+        chunks using the dynamicTreeCut package - where each \'chunk\' of the dendrogram results in a group of\n+        features likely to be derived from a single compound. Importantly, this is achieved without looking for\n+        specific phenomenon (i.e. sodiation), meaning that grouping can be performed on any dataset, whether it\n+        is positive or negative ionization mode, EI or ESI, LC-MS GC-MS or CE-MS, in-source fragment or complex\n+        adduction event, and predictable or unpredictable signals.\n+    </token>\n+\n+        <token name="@HELP_experiment@">\n+        <![CDATA[\n+            Create an Experimental Design specification for RAMClustR experiment.\n+\n+            Downstream Tools\n+                +-----------+-----------------------+--------+\n+                | Name      | Output File           | Format |\n+                +===========+=======================+========+\n+                | RAMClustR | Experiment definition | csv    |\n+                +-----------+-----------------------+--------+\n+\n+        ]]>\n+    </token>\n+</macros>\n'
b
diff -r 000000000000 -r 36104baf75da ramclustr.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ramclustr.xml Tue Mar 22 16:09:16 2022 +0000
[
b'@@ -0,0 +1,175 @@\n+<tool id="ramclustr" name="RAMClustR" version="@TOOL_VERSION@+galaxy2">\n+    <macros>\n+        <import>macros.xml</import>\n+    </macros>\n+    <expand macro="creator"/>\n+\n+    <requirements>\n+        <requirement type="package" version="@TOOL_VERSION@">r-ramclustr</requirement>\n+        <requirement type="package" version="3.14.0">bioconductor-xcms</requirement>\n+    </requirements>\n+\n+    <command detect_errors="aggressive"><![CDATA[\n+        Rscript\n+            -e \'source("${__tool_directory__}/ramclustr_wrapper.R")\'\n+            -e \'source("${ramclustr_method}")\'\n+    ]]>\n+    </command>\n+    <configfiles>\n+        <configfile name="ramclustr_method">\n+            store_output(\n+                #if $filetype.type_choice == "xcms":\n+                ramclustr_xcms(\n+                    input_xcms = "$filetype.xcms.input_xcms",\n+                    use_pheno = $filetype.xcms.usePheno,\n+                #else:\n+                ramclustr_csv(\n+                    ms = "$filetype.ms_csv.ms",\n+                    idmsms = "$filetype.ms_csv.idmsms",\n+                #end if\n+                    sr = $filetype.required.sr,\n+                    #if $filetype.type_choice == "xcms":\n+                        #if $filetype.required.st\n+                            st = $filetype.required.st,\n+                        #end if\n+                    #else:\n+                        st = $filetype.required.st,\n+                    #end if\n+                    cor_method = "$filetype.required.cor_method",\n+                    maxt = $filetype.required.maxt,\n+                    linkage = "$clustering.linkage",\n+                    min_module_size = $clustering.minModuleSize,\n+                    hmax = $clustering.hmax,\n+                    deep_split = "$clustering.deepSplit",\n+                    normalize = "$normalisation.normalisation_method.normalize",\n+                    #if "$normalisation.normalisation_method.normalize" == "batch.qc":\n+                        metadata_file = "$normalisation.normalisation_method.batch_order_qc",\n+                        qc_inj_range = $normalisation.normalisation_method.qc_inj_range,\n+                    #end if\n+                    block_size = $performance.blocksize,\n+                    mult = $performance.mult,\n+                    mzdec = $msp_output_details.mzdec,\n+                    rt_only_low_n = $extras.rt_only_low_n,\n+                    replace_zeros = $extras.replace_zeros,\n+                    #if $extras.ExpDes:\n+                        exp_design = "${$extras.ExpDes}"\n+                    #end if\n+                ),\n+                $msp_output_details.merge_msp,\n+                "$spec_abundance",\n+            #if $msp_output_details.merge_msp:\n+                "$mass_spectra_merged"\n+            #else:\n+                NULL\n+            #end if\n+                )\n+        </configfile>\n+    </configfiles>\n+    <inputs>\n+        <conditional name="filetype">\n+            <param name="type_choice" type="select" label="Choose input format:">\n+                <option value="xcms" selected="true">XCMS</option>\n+                <option value="csv">CSV</option>\n+            </param>\n+            <when value="xcms">\n+                <expand macro="parameters_xcms" />\n+                <section name="required" title="General parameters" expanded="true">\n+                    <param label="Sigma t" name="st" type="float" optional="true" help="Retention time similarity (optional).\n+                           A recommended starting point is half the value of your average chromatographic peak width at half max (seconds))."/>\n+                    <expand macro="parameters_required" />\n+                </section>\n+            </when>\n+            <when value="csv">\n+                <expand macro="parameters_csv" />\n+                <section name="required" title="General parameters" expanded="true">\n+                    <param label="Sigma t" name="st" type="float" value="1" help="R'..b' />\n+    </inputs>\n+\n+    <outputs>\n+        <data label="Spec Abundance of ${on_string}" name="spec_abundance" format="csv" />\n+        <expand macro="output_msp"/>\n+    </outputs>\n+\n+    <tests>\n+        <test><!-- TEST 1 -->\n+            <section name="filetype">\n+                <param name="type_choice" value="xcms"/>\n+                <section name="xcms">\n+                    <param name="input_xcms" value="test1_xcmsObj_1.rdata.xcms.fillpeaks" ftype="rdata.xcms.fillpeaks"/>\n+                </section>\n+                <section name="required">\n+                    <param name="maxt" value="259.8"/>\n+                </section>\n+            </section>\n+            <section name="extras">\n+                <param name="ExpDes" value="lc-ramclustr-define-experiment.csv" ftype="csv"/>\n+            </section>\n+            <output name="mass_spectra_merged" file="test1_fill_xcms_1.msp" ftype="msp"/>\n+            <output name="spec_abundance" file="test1_spec_abundance_xcms_1.csv" ftype="csv" compare="sim_size" delta="100"/>\n+        </test>\n+        <test><!-- TEST 2 -->\n+            <section name="filetype">\n+                <param name="type_choice" value="xcms"/>\n+                <section name="xcms">\n+                    <param name="input_xcms" value="test2_xcmsObj_2.rdata.xcms.fillpeaks" ftype="rdata.xcms.fillpeaks"/>\n+                </section>\n+                <section name="required">\n+                    <param name="maxt" value="78.4"/>\n+                </section>\n+            </section>\n+            <section name="normalisation">\n+                <section name="normalisation_method">\n+                    <param name="batch_order_qc" value="test2_sample_metadata_xcms_2.csv" ftype="csv" />\n+                </section>\n+            </section>\n+            <output name="mass_spectra_merged" file="test2_fill_xcms_2.msp" ftype="msp" compare="diff" lines_diff="10"/>\n+            <output name="spec_abundance" file="test2_spec_abundance_xcms_2.csv" ftype="csv" compare="sim_size" delta="100"/>\n+        </test>\n+        <test><!-- TEST 3 -->\n+            <section name="filetype">\n+                <param name="type_choice" value="csv"/>\n+                <section name="ms_csv">\n+                    <param name="ms" value="test3_csv_test-input_1_2.csv" ftype="csv"/>\n+                </section>\n+                <section name="required">\n+                    <param name="st" value="5.0"/>\n+                    <param name="maxt" value="1"/>\n+                </section>\n+            </section>\n+            <section name="performance">\n+                <param name="blocksize" value="1000"/>\n+                <param name="mult" value="1"/>\n+            </section>\n+            <output name="mass_spectra_merged" file="test3_spectra_csv_1.msp" ftype="msp"/>\n+            <output name="spec_abundance" file="test3_spec_abundance_csv_1.csv" ftype="csv"/>\n+        </test>\n+        <test><!-- TEST 4 -->\n+            <section name="filetype">\n+                <param name="type_choice" value="csv"/>\n+                <section name="ms_csv">\n+                    <param name="ms" value="test3_csv_test-input_1_2.csv" ftype="csv"/>\n+                </section>\n+            </section>\n+            <output name="mass_spectra_merged" file="test4_spectra_csv_2.msp" ftype="msp" lines_diff="10"/>\n+        </test>\n+    </tests>\n+\n+    <help>\n+        <![CDATA[\n+            @HELP@\n+\n+        .. rubric:: **Footnotes**\n+        .. [1] Correlation, Variance and Covariance - `stats::cor <https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/cor>`_\n+        .. [2] Hierarchical Clustering - `stats::hclust <https://www.rdocumentation.org/packages/stats/versions/3.6.2/topics/hclust>`_\n+        .. [3] Dynamic Dendrogram Pruning Based on Dendrogram Only - `dynamicTreeCut::cutreeDynamicTree <https://www.rdocumentation.org/packages/dynamicTreeCut/versions/1.63-1/topics/cutreeDynamicTree>`_\n+        ]]>\n+    </help>\n+\n+    <expand macro="citations" />\n+</tool>\n'
b
diff -r 000000000000 -r 36104baf75da ramclustr_wrapper.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ramclustr_wrapper.R Tue Mar 22 16:09:16 2022 +0000
[
@@ -0,0 +1,174 @@
+store_output <- function(
+    ramclustr_obj,
+    output_merge_msp,
+    output_spec_abundance,
+    msp_file) {
+    RAMClustR::write.msp(ramclustr_obj, one.file = output_merge_msp)
+    write.csv(ramclustr_obj$SpecAbund, file = output_spec_abundance, row.names = TRUE)
+
+    if (!is.null(msp_file)) {
+        exp.name <- ramclustr_obj$ExpDes[[1]][which(row.names(ramclustr_obj$ExpDes[[1]]) == "Experiment"), 1]
+        filename <- paste("spectra/", exp.name, ".msp", sep = "")
+        file.copy(from = filename, to = msp_file, overwrite = TRUE)
+    }
+}
+
+load_experiment_definition <- function(filename) {
+    experiment <- RAMClustR::defineExperiment(csv = filename)
+    return(experiment)
+}
+
+read_metadata <- function(filename) {
+    data <- read.csv(filename, header = TRUE, stringsAsFactors = FALSE)
+
+    if (!"qc" %in% colnames(data)) {
+        if ("sampleType" %in% colnames(data)) {
+            data$qc <- ifelse(data$sampleType == "qc", TRUE, FALSE)
+        }
+    }
+
+    if (!"order" %in% colnames(data)) {
+        if ("injectionOrder" %in% colnames(data)) {
+            names(data)[names(data) == "injectionOrder"] <- "order"
+        }
+    }
+
+    return(data)
+}
+
+ramclustr_xcms <- function(
+    input_xcms,
+    use_pheno,
+    sr,
+    st = NULL,
+    cor_method,
+    maxt,
+    linkage,
+    min_module_size,
+    hmax,
+    deep_split,
+    normalize,
+    metadata_file = NULL,
+    qc_inj_range,
+    block_size,
+    mult,
+    mzdec,
+    rt_only_low_n,
+    replace_zeros,
+    exp_design = NULL
+) {
+    obj <- load(input_xcms)
+
+    batch <- NULL
+    order <- NULL
+    qc <- NULL
+
+    if (!is.null(metadata_file)) {
+        metadata <- read_metadata(metadata_file)
+        batch <- metadata$batch
+        order <- metadata$order
+        qc <- metadata$qc
+    }
+
+    experiment <- NULL
+
+    if (!is.null(exp_design)) {
+        experiment <- load_experiment_definition(exp_design)
+    }
+
+    x <- RAMClustR::ramclustR(
+        xcmsObj = xdata,
+        st = st,
+        maxt = maxt,
+        sr = sr,
+        deepSplit = deep_split,
+        blocksize = block_size,
+        mult = mult,
+        hmax = hmax,
+        usePheno = use_pheno,
+        mspout = FALSE,
+        qc.inj.range = qc_inj_range,
+        normalize = normalize,
+        minModuleSize = min_module_size,
+        linkage = linkage,
+        mzdec = mzdec,
+        cor.method = cor_method,
+        rt.only.low.n = rt_only_low_n,
+        fftempdir = NULL,
+        replace.zeros = replace_zeros,
+        batch = batch,
+        order = order,
+        qc = qc,
+        ExpDes = experiment
+        )
+    return(x)
+}
+
+ramclustr_csv <- function(
+    ms,
+    idmsms,
+    sr,
+    st,
+    cor_method,
+    maxt,
+    linkage,
+    min_module_size,
+    hmax,
+    deep_split,
+    normalize,
+    metadata_file = NULL,
+    qc_inj_range,
+    block_size,
+    mult,
+    mzdec,
+    rt_only_low_n,
+    replace_zeros,
+    exp_design = NULL
+) {
+    if (!file.exists(idmsms))
+        idmsms <- NULL
+
+    batch <- NULL
+    order <- NULL
+    qc <- NULL
+
+    if (!is.null(metadata_file)) {
+        metadata <- read_metadata(metadata_file)
+        batch <- metadata$batch
+        order <- metadata$order
+        qc <- metadata$qc
+    }
+
+    experiment <- NULL
+
+    if (!is.null(exp_design)) {
+        experiment <- load_experiment_definition(exp_design)
+    }
+
+    x <- RAMClustR::ramclustR(
+        ms = ms,
+        idmsms = idmsms,
+        st = st,
+        maxt = maxt,
+        sr = sr,
+        deepSplit = deep_split,
+        blocksize = block_size,
+        mult = mult,
+        hmax = hmax,
+        mspout = FALSE,
+        qc.inj.range = qc_inj_range,
+        normalize = normalize,
+        minModuleSize = min_module_size,
+        linkage = linkage,
+        mzdec = mzdec,
+        cor.method = cor_method,
+        rt.only.low.n = rt_only_low_n,
+        fftempdir = NULL,
+        replace.zeros = replace_zeros,
+        batch = batch,
+        order = order,
+        qc = qc,
+        ExpDes = experiment
+        )
+        return(x)
+}
b
diff -r 000000000000 -r 36104baf75da test-data/gc-ramclustr-define-experiment.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/gc-ramclustr-define-experiment.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,38 @@
+parameter,Value,Description
+,,
+Experimental Design,,
+Experiment,experiment_gc,"Experiment name, no spaces."
+Species,mus musculus,Genus species from which samples are derived.
+Sample,serum,"Type of sample (e.g., serum, leaf)."
+Contributer,recetox,Your or your PI's name.
+platform,GC-MS,Either GC-MS or LC-MS.
+,,
+GC-MS,,
+chrominst,ISQ 7000,Model of LC/GC instrument.
+msinst,ISQ7K-VPI,Model of MS instrument.
+column,These columns enable analysis of ppm levels of amines without column priming,Column description.
+InletTemp,33,Temperature of inlet.
+TransferTemp,23,Temperature of GC to MS transfer line.
+mstype,QTOF,"Type of mass spectrometer (one of QQQ, TOF, QTOF, Orbi, Q)."
+msmode,positive,Positive or negative ion mode.
+ionization,AP,"Ionization (EI, AP, or CI)."
+msscanrange,100,Scan range used for acquisition.
+scantime,0.2,Time for each full scan spectrum (e.g. 0.2 seconds).
+deriv,TMS,"Derivitization (TMS, TBDMS, or None)."
+MSlevs,1.0,Number of levels of energy acquired - 1 typically.
+,,
+LC-MS,,
+chrominst,fill,Model of LC/GC instrument.
+msinst,fill,Model of MS instrument.
+column,fill,Column description.
+solvA,fill,Solvent A composition.
+solvB,fill,Solvent B composition.
+CE1,fill,Collision energy of acquisition of MS data.
+CE2,fill,Collision energy of acquisition for MSe/idMSMS data (when applicable).
+mstype,fill,"Type of mass spectrometer (one of QQQ, TOF, QTOF, Orbi, Q)."
+msmode,fill,Positive or negative ion mode.
+ionization,fill,"Ionization (EI, AP, or CI)."
+colgas,fill,Gas used for collisional dissociation.
+msscanrange,fill,Scan range used for acquisition.
+conevol,fill,Cone voltage used for acquisition.
+MSlevs,fill,Number of levels of energy acquired - 1 typically.
b
diff -r 000000000000 -r 36104baf75da test-data/lc-ramclustr-define-experiment.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/lc-ramclustr-define-experiment.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,38 @@
+parameter,Value,Description
+,,
+Experimental Design,,
+Experiment,experiment_lc,"Experiment name, no spaces."
+Species,mus musculus,Genus species from which samples are derived.
+Sample,serum,"Type of sample (e.g., serum, leaf)."
+Contributer,recetox,Your or your PI's name.
+platform,LC-MS,Either GC-MS or LC-MS.
+,,
+GC-MS,,
+chrominst,fill,Model of LC/GC instrument.
+msinst,fill,Model of MS instrument.
+column,fill,Column description.
+InletTemp,fill,Temperature of inlet.
+TransferTemp,fill,Temperature of GC to MS transfer line.
+mstype,fill,"Type of mass spectrometer (one of QQQ, TOF, QTOF, Orbi, Q)."
+msmode,fill,Positive or negative ion mode.
+ionization,fill,"Ionization (EI, AP, or CI)."
+msscanrange,fill,Scan range used for acquisition.
+scantime,fill,Time for each full scan spectrum (e.g. 0.2 seconds).
+deriv,fill,"Derivitization (TMS, TBDMS, or None)."
+MSlevs,fill,Number of levels of energy acquired - 1 typically.
+,,
+LC-MS,,
+chrominst,UltiMateX 3000 BioRS System,Model of LC/GC instrument.
+msinst,FSN04-10000,Model of MS instrument.
+column,These columns enable analysis of ppm levels of amines without column priming,Column description.
+solvA,H20,Solvent A composition.
+solvB,CO2,Solvent B composition.
+CE1,50,Collision energy of acquisition of MS data.
+CE2,100,Collision energy of acquisition for MSe/idMSMS data (when applicable).
+mstype,Q,"Type of mass spectrometer (one of QQQ, TOF, QTOF, Orbi, Q)."
+msmode,negative,Positive or negative ion mode.
+ionization,ESI,"Ionization (EI, AP, or CI)."
+colgas,He,Gas used for collisional dissociation.
+msscanrange,1000,Scan range used for acquisition.
+conevol,12,Cone voltage used for acquisition.
+MSlevs,1.0,Number of levels of energy acquired - 1 typically.
b
diff -r 000000000000 -r 36104baf75da test-data/test1_fill_xcms_1.msp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test1_fill_xcms_1.msp Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,1991 @@\n+NAME:C001\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:38.74\n+Num Peaks:57\n+216.9205 32607700\n+256.8215 31377637\n+175.0641 26780143\n+206.9034 26130980\n+254.8252 23747536\n+198.8647 21688594\n+196.8658 21390430\n+372.7383 19374863\n+258.8237 15532799\n+382.8218 12815572\n+488.6825 12267966\n+392.7685 10913351\n+316.7777 10734168\n+440.7322 10603010\n+138.9121 10186226\n+312.7841 10051801\n+434.7287 9943329\n+266.8652 9805546\n+370.7418 9765463\n+450.7016 8762673\n+324.9549 8619910\n+428.7834 8554675\n+384.8177 8311500\n+442.7401 8271752\n+200.8848 7742528\n+492.744 7662344\n+494.8953 7188793\n+546.6093 7177067\n+498.8794 6811405\n+500.8484 6520691\n+322.8157 6317648\n+350.9875 6150799\n+550.6949 6104789\n+426.7772 5431633\n+566.5977 5171811\n+510.763 4989757\n+486.7743 4886062\n+460.7076 4528973\n+484.7242 4273989\n+518.7415 4243468\n+334.849 4178412\n+413.2664 3965867\n+436.8161 3705247\n+502.7832 3567833\n+342.8093 3285552\n+366.8281 3253770\n+306.9914 3169316\n+268.8537 3090354\n+800.4451 2792137\n+186.1095 2675456\n+234.0134 2550129\n+462.7862 2123666\n+349.9455 2050695\n+612.6927 2005587\n+676.6436 1982714\n+351.941 1965882\n+148.9337 1008656\n+\n+NAME:C002\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:520.25\n+Num Peaks:35\n+525.375 1073323842\n+310.1623 295359836\n+526.3783 181668883\n+1047.7378 150394804\n+551.3321 111616808\n+1048.7399 90978863\n+289.6491 46498377\n+312.0296 38757284\n+1075.1968 33352763\n+1049.7432 29946438\n+552.3348 28340614\n+813.5403 25060147\n+527.3812 23642795\n+309.1649 18045974\n+301.1565 15185412\n+311.1658 13124727\n+330.6757 12666597\n+624.296 11790213\n+1076.2004 10417953\n+578.2905 7578406\n+562.3269 7538206\n+1050.7453 6807767\n+267.2688 6103973\n+814.5336 5865975\n+1069.7158 5074652\n+619.3008 4742103\n+1216.8041 4439324\n+1206.3127 3738816\n+1217.807 3565334\n+1074.1979 3402288\n+553.3314 2609936\n+955.1171 2322927\n+1101.6535 2023916\n+131.1733 1971789\n+279.0196 1946255\n+\n+NAME:C003\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:483.67\n+Num Peaks:26\n+522.3565 4089569222\n+523.354 1201714423\n+288.6414 202172046\n+1043.7028 144351468\n+1044.7068 83271854\n+549.3267 63300808\n+279.6362 29849749\n+1045.706 27998321\n+1058.1594 20718345\n+1071.1639 15461047\n+378.2093 15309961\n+796.9808 13576738\n+809.9883 12596682\n+265.2529 11366224\n+280.6546 8848921\n+576.2749 7386007\n+1059.1626 6608764\n+810.9916 6601055\n+1046.7131 6505178\n+797.9841 6368973\n+1072.1671 5096642\n+625.4543 4040374\n+379.1966 2902366\n+577.3074 2354251\n+617.2778 2323470\n+266.2564 1420444\n+\n+NAME:C004\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:473.48\n+Num Peaks:24\n+496.34 12577588056\n+497.3442 3337125302\n+991.6726 1420557258\n+992.6749 763118028\n+498.3462 532285213\n+993.6787 239161906\n+296.147 190395687\n+1017.6897 168186952\n+482.3247 145772322\n+1018.6656 120599518\n+499.3493 68176083\n+1019.6555 57647644\n+994.6801 53549573\n+770.964 49250157\n+483.3283 36245876\n+275.6336 28001849\n+771.9675 22666873\n+1020.6591 12469103\n+783.9721 9839299\n+949.6233 8009033\n+124.1405 6517662\n+950.6274 3674694\n+784.9749 3622908\n+170.2437 1237313\n+\n+NAME:C005\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:41.72\n+Num Peaks:20\n+337.0623 88672453\n+359.0443 48435582\n+353.0361 37061354\n+375.018 29159485\n+218.1386 14009249\n+417.0027 13822994\n+381.0261 13522755\n+438.9851 11307111\n+396.9999 10317665\n+454.9592 9820452\n+432.9764 9779399\n+338.0654 8770055\n+360.0459 5025128\n+418.9966 4386311\n+512.8989 4072570\n+456.9603 3774845\n+470.9263 3632486\n+572.871 3485486\n+440.9796 3364168\n+376.0216 2740193\n+\n+NAME:C006\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:452.08\n+Num Peaks:19\n+494.3249 803829845\n+495.3278 207959661\n+542.3239 193323900\n+543.3276 55501736\n+1087.6715 34676828\n+516.3076 24092471\n+274.6257 21694276\n+1088.6773 21466528\n+1001.658 11852076\n+1089.682 9948820\n+290.6256 9704443\n+1061.6562 9417442\n+987.6411 7453650\n+1037.6578 7076912\n+1062.6592 5657208\n+484.3311 5283943\n+265.6196 4371245\n+988.6455 3739523\n+471.1945 2160605\n+\n+NAME:C007\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RET'..b'143\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:548.78\n+Num Peaks:2\n+387.1432 12915848\n+407.6598 4564346\n+\n+NAME:C144\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:553.62\n+Num Peaks:2\n+359.1781 45383099\n+360.185 9704481\n+\n+NAME:C145\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:545.31\n+Num Peaks:2\n+443.3331 1151694\n+394.3559 432819\n+\n+NAME:C146\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:551.39\n+Num Peaks:2\n+350.1838 4199726\n+365.2288 1932289\n+\n+NAME:C147\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:563.22\n+Num Peaks:2\n+282.2792 241362345\n+256.2615 19433189\n+\n+NAME:C148\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:548.47\n+Num Peaks:2\n+305.2468 9633582\n+329.249 5814756\n+\n+NAME:C149\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:350.93\n+Num Peaks:2\n+130.0643 7419216\n+190.0865 4433780\n+\n+NAME:C150\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:365.37\n+Num Peaks:2\n+490.2083 5275418\n+465.1226 1763287\n+\n+NAME:C151\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:394.87\n+Num Peaks:2\n+328.2481 11119434\n+329.2519 2068394\n+\n+NAME:C152\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:385.78\n+Num Peaks:2\n+427.1607 2275086\n+409.1497 1369551\n+\n+NAME:C153\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:401.39\n+Num Peaks:2\n+107.0557 2271180\n+197.1612 1286942\n+\n+NAME:C154\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:388.72\n+Num Peaks:2\n+239.1276 1743749\n+286.9585 1645545\n+\n+NAME:C155\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:373.67\n+Num Peaks:2\n+507.1617 6285930\n+508.1657 1535734\n+\n+NAME:C156\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:378.37\n+Num Peaks:2\n+777.6928 4522421\n+257.2254 3302868\n+\n+NAME:C157\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:473.08\n+Num Peaks:2\n+534.2949 13399261\n+267.6425 11780168\n+\n+NAME:C158\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:508.15\n+Num Peaks:2\n+380.2992 5790633\n+423.2518 1386850\n+\n+NAME:C159\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:471.89\n+Num Peaks:2\n+304.2357 21716257\n+306.1523 8327492\n+\n+NAME:C160\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:465.45\n+Num Peaks:2\n+295.1974 20379534\n+193.1239 1274413\n+\n+NAME:C161\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:488.7\n+Num Peaks:2\n+667.4214 3075774\n+1189.7766 2040172\n+\n+NAME:C162\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:471.97\n+Num Peaks:2\n+393.2201 8389493\n+316.6601 7221684\n+\n+NAME:C163\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:465.16\n+Num Peaks:2\n+431.3157 12163271\n+422.3267 4962906\n+\n+NAME:C164\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:474.29\n+Num Peaks:2\n+398.3268 11918127\n+239.1779 8236995\n+\n+NAME:C165\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:477.74\n+Num Peaks:2\n+307.15 1941191\n+249.1858 1576729\n+\n+NAME:C166\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:494.51\n+Num Peaks:2\n+355.2846 54372680\n+373.2951 6108864\n+\n+NAME:C167\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:497.67\n+Num Peaks:2\n+474.3486 2732000\n+649.4483 2434649\n+\n+NAME:C168\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:498.02\n+Num Peaks:2\n+539.4163 5285541\n+459.2569 3550909\n+\n+NAME:C169\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:492.45\n+Num Peaks:2\n+732.5452 4526953\n+733.5465 1043642\n+\n+NAME:C170\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:497.3\n+Num Peaks:2\n+451.3631 6446370\n+450.3586 4210116\n+\n+NAME:C171\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:467.81\n+Num Peaks:2\n+185.0776 5067455\n+200.203 1398415\n+\n+NAME:C172\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:457.02\n+Num Peaks:2\n+263.2347 3933284\n+615.2633 1132491\n+\n+NAME:C173\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:443.89\n+Num Peaks:2\n+370.2956 41596161\n+371.304 9966707\n+\n+NAME:C174\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:438.81\n+Num Peaks:2\n+579.2938 6044865\n+330.2563 5274387\n+\n'
b
diff -r 000000000000 -r 36104baf75da test-data/test1_spec_abundance_xcms_1.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test1_spec_abundance_xcms_1.csv Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,21 @@\n+"","C001","C002","C003","C004","C005","C006","C007","C008","C009","C010","C011","C012","C013","C014","C015","C016","C017","C018","C019","C020","C021","C022","C023","C024","C025","C026","C027","C028","C029","C030","C031","C032","C033","C034","C035","C036","C037","C038","C039","C040","C041","C042","C043","C044","C045","C046","C047","C048","C049","C050","C051","C052","C053","C054","C055","C056","C057","C058","C059","C060","C061","C062","C063","C064","C065","C066","C067","C068","C069","C070","C071","C072","C073","C074","C075","C076","C077","C078","C079","C080","C081","C082","C083","C084","C085","C086","C087","C088","C089","C090","C091","C092","C093","C094","C095","C096","C097","C098","C099","C100","C101","C102","C103","C104","C105","C106","C107","C108","C109","C110","C111","C112","C113","C114","C115","C116","C117","C118","C119","C120","C121","C122","C123","C124","C125","C126","C127","C128","C129","C130","C131","C132","C133","C134","C135","C136","C137","C138","C139","C140","C141","C142","C143","C144","C145","C146","C147","C148","C149","C150","C151","C152","C153","C154","C155","C156","C157","C158","C159","C160","C161","C162","C163","C164","C165","C166","C167","C168","C169","C170","C171","C172","C173","C174"\n+"VT_160120_002",26480785.0891106,399859649.198881,2104284510.74258,6675130030.06406,1499957.81967383,318043152.466315,61477288.9081959,73794262.7711201,3197985690.93964,118431570.911764,172665744.941519,11717591.4284724,172926315.990067,14284200.818593,609838001.113396,17603366.542419,55484475.8351803,193612104.079719,13455990.4386033,16723631.0790867,47746607.1542379,5538044.01272274,42685533.9813905,56450027.4128617,129527400.797922,16640834.3577322,19339437.6869156,28357396.8286488,261019245.204031,3793084.66444665,44555530.821972,30143103.4478274,36222589.3891992,77048983.7042474,13989207.4822869,2669685.80389055,34274285.5897713,703763556.934929,30469745.890156,9827417.87195153,104772302.153675,24123159.8347651,32723937.2818103,69277420.3342917,105915325.960741,13861874.3534395,43277961.2704277,7583920.70042505,26017351.8113601,28525120.7654534,15630751.0257207,21936927.6755451,24455623.5840264,14428285.0939504,3378732.26168508,3757899.11695674,5647058.34806264,110035616.803078,178555200.71062,4098456.5266808,8222666.51120847,2416917.48995518,17373898.4001443,116582087.036685,39965396.673045,24226440.3031727,20412991.7566548,28053084.3192514,33369856.8752417,6231732.60962466,1059194.77294312,1483159.55031429,113891808.768022,3330760.15940971,6195065.31376669,33326685.8903388,22661353.6895352,36449022.3653874,30764850.751867,1307941.47588369,11695746.0948915,3899829.16094261,17265129.2492156,9860774.62441437,53649424.3775037,4476887.59746866,7949569.76002875,5264054.83660712,11768554.1274131,346730892.256956,4868317.96133317,45639912.6236037,3762959.21819141,10481284.6362266,11944533.8236318,5007978.91782271,46067033.8417022,4303817.61357864,3838233.30722077,187962646.05226,5947821.09161683,2982400.94848531,9479158.0852234,6472428.36582334,11643072.4552945,14766878.3258018,2216345.14527864,5005579.81098529,5384206.35953005,62606312.5116365,8124344.85667039,45993626.6462123,4561886.75604072,9690117.34792147,1889791.14899546,4449536.8688802,6951468.73671257,8065678.91005781,3661281.50857228,16615938.0163335,4284671.7253457,8191477.41576186,9277214.47451158,19428767.6525622,11457663.2667832,242828254.301433,3653270.91901345,9629330.52950157,4632627.0981171,4027521.0103355,68660322.3186885,1907903.55873796,211460728.474636,749519007.450309,17851780.9220726,5517925.04003241,4219657.62418883,9572366.45237584,5935454.44195376,18167497.6107987,9048121.58174244,7514173.20131591,9974903.70234197,33954225.133559,1176481.32989057,6037388.72666593,39902946.1340699,1627219.6584135,5275435.57807874,895549.052457177,5465078.9751835,1730566.66958422,1552541.96270834,1513153.27352283,5454237.29966026,3139480.69045361,10625341.4622228,4448720.27717584,5461797.36909749,14181447.8230887,2399721.07393062,7374908.01946441,849018'..b',4197586.6854419,8738985.29277514,1860696.94786637,3399029.65380767,2993860.63768406,9642044.04160737,1535406.33857181,16655752.0566749,3857006.9238429,9652125.16961954,11880272.6456162,21399274.0553287,7100456.29630388,227810599.698933,3446014.6829706,8472744.46638792,4162046.71097091,3645017.9782067,76465572.0039944,2454697.24762855,211543304.298828,755576242.604989,19270448.943012,3305213.67842646,2969616.19802908,6625385.15751642,4413428.48841472,7703432.37071986,1509038.85499435,4647200.13796836,9400462.69758371,40999952.1948159,798729.08761983,898245.441705513,2093215.81426166,858187.208515652,8998030.60531843,3580859.05985589,6138142.56028074,1634124.58617973,1993244.26284168,1904153.91842343,1521538.20373311,4175298.75778174,13170749.7303204,4339278.26654379,5012313.01908508,18538377.088746,2471408.24371351,7719139.5360016,10967208.5538996,4730914.42537849,1474058.66901063,48082901.5727836,2435909.0111971,4363094.60249199,3374840.82046952,5243620.49883889,2847462.79891007,4266848.58563449,8109156.36459577,5038951.1941462\n+"VT_160120_040",9934799.25263992,375836247.174509,2884373047.77547,7905301044.22145,35573132.2266095,560387015.661853,63984244.9827572,698385769.976211,4317099037.59284,151604425.143095,196659379.588214,42475863.9975798,63672587.4872164,11672577.2394498,957650455.061172,38277672.0418209,14663135.0807262,193764912.185701,21847421.2370331,1776491710.18456,219384517.34675,8134547.31426432,67031405.4295678,86128351.9530911,169094486.796142,11927291.612244,17099735.0114863,56987972.8270169,184617430.189418,6380565.92562305,49799157.9983667,39339741.7221688,67730803.6121619,158088964.700247,77784470.41518,7261968.14694198,19366117.0357642,575967487.14093,31228350.4237222,28749021.6606678,114152953.620449,32837476.001478,32313689.6082591,49037900.4597961,47923935.0904822,11920541.5503579,45302490.2670043,8009917.67162212,25676037.4957024,10215928.2063743,19784232.0977507,30225996.4107507,20393856.5020287,13619724.8886577,4799552.82620209,296424678.235081,7062029.55375609,48848209.3559762,101323813.923856,4439500.12796503,2220358.88866602,35246869.4741919,49710713.0864728,121727321,46950407.9311092,27150702.1783594,19474544.8078591,132245080.214264,36280741.4248055,5285185.41341366,600016.989319636,1418448.33573977,159474509.725069,13110398.8393007,4999824.64133883,26139820.5030213,26213265.2529846,8124057.89988214,21897039.2704881,24453471.1284649,4261685.53357104,2198442.4682436,25298771.4410718,8204391.11995749,38359981.2263799,14381181.0834863,12470759.0110495,4513799.42038729,8276453.11275374,342507775.798005,31433715.2319776,7575385.88884809,2902017.66296793,123409718.476101,7465071.31714924,6297211.26647415,706892.229336319,4789495.94318605,1230699.88256605,123461259.759045,1622745.51087538,3927917.76946473,2123307.99652869,3828533.09446011,11846880.990395,13168395.4970154,8780619.83074943,63635250.2252369,5330271.72591704,91258286.9807226,9656198.56632925,46162652.2583335,4149817.72577566,8854465.37429845,1931534.82177527,3401749.74453956,3095370.84783698,9644818.34360461,1368678.67459345,17234636.0601444,2785373.04929555,9881934.42695221,12568959.7693456,21100358.1920544,5867219.29185353,236932876.729115,2904846.50728148,8719937.07549249,4228207.86925475,3624635.7453292,77719840.4794496,2466026.78548825,220712642.88383,778968494.028449,18211869.4106139,3552955.67831798,3090117.07708974,7305928.87017414,4469944.59281558,7921992.1109694,1586368.23328241,4885515.40764741,9866157.50261439,41987649.9280603,859018.580344819,855402.855651353,1958863.68711785,981476.935521276,9086609.86176663,3588768.7633977,6136277.45781362,1526970.58621673,2072417.0660832,1923374.88726624,1526197.52507684,4304648.56079495,13003904.0929066,4329421.11585443,5397418.05431216,18454516.2047903,2666788.32880361,7374046.62878731,11122827.1903071,5168033.64186004,1765658.4883592,49322159.1546131,2392087.59185383,4399240.41858028,3498005.25636277,5396857.46348111,3048506.72264773,4414135.34455428,8167061.84351309,5138026.01743978\n'
b
diff -r 000000000000 -r 36104baf75da test-data/test1_xcmsObj_1.rdata.xcms.fillpeaks
b
Binary file test-data/test1_xcmsObj_1.rdata.xcms.fillpeaks has changed
b
diff -r 000000000000 -r 36104baf75da test-data/test2_fill_xcms_2.msp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test2_fill_xcms_2.msp Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,11378 @@\n+NAME:C001\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:36.79\n+Num Peaks:96\n+216.9231 23812075\n+264.853 15633213\n+90.9768 9937629\n+332.8403 6700746\n+334.8374 6244676\n+390.799 5989314\n+458.7867 5380038\n+578.698 4329004\n+520.7398 4155104\n+752.572 3475955\n+586.7298 3473848\n+462.7808 3325264\n+742.5445 3292214\n+518.7427 3078744\n+149.9931 3023780\n+694.6141 2816970\n+574.7039 2812261\n+684.5851 2804751\n+628.6241 2771595\n+792.4708 2747070\n+744.5417 2723035\n+790.4735 2559104\n+750.5749 2551725\n+754.5691 2517690\n+692.6169 2308865\n+682.5881 2302495\n+516.7004 2288712\n+740.5475 2194363\n+584.7325 2155658\n+686.5823 2152071\n+704.6429 2046793\n+812.5286 2031345\n+410.8565 2028964\n+632.662 1690731\n+580.695 1665145\n+696.6111 1635271\n+672.5604 1613164\n+584.6431 1578515\n+572.6171 1481717\n+868.4898 1415037\n+746.5386 1380123\n+818.5633 1328616\n+822.5576 1305232\n+870.4868 1286702\n+858.4605 1188870\n+860.4575 1149101\n+612.6039 1118509\n+630.5753 1020003\n+730.5184 1018850\n+756.566 1011846\n+918.4172 1006595\n+928.4461 1002603\n+576.6112 1002293\n+926.4493 966734\n+642.6013 959842\n+632.5722 941075\n+678.5502 910659\n+688.6199 859498\n+736.5096 843054\n+866.4923 825066\n+938.4754 824955\n+986.4041 813458\n+876.5214 756349\n+680.5909 752164\n+758.5169 723754\n+862.4542 649096\n+920.4142 647500\n+796.5987 629428\n+808.4447 615895\n+760.5144 595038\n+908.388 594520\n+547.8013 585412\n+806.4706 573832\n+698.608 572969\n+826.5055 539012\n+644.5984 527246\n+856.6163 527245\n+864.6488 497980\n+1036.3322 450227\n+766.5492 434850\n+824.5546 433320\n+924.452 422642\n+974.378 422061\n+738.7031 413993\n+910.3853 409230\n+850.4283 396836\n+626.8091 394850\n+798.658 388593\n+1052.3964 374849\n+934.481 359173\n+810.442 352271\n+433.8803 317792\n+906.3909 291445\n+750.4853 267660\n+812.7097 238323\n+1032.338 203600\n+\n+NAME:C002\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:466.7\n+Num Peaks:71\n+167.0342 192495571\n+121.0286 119397402\n+150.0269 106175070\n+280.2355 53172038\n+184.0736 28613720\n+611.2297 17050507\n+302.1447 13015985\n+190.0502 11272231\n+889.3815 10408263\n+553.7864 9304105\n+122.0319 8899166\n+151.0278 7462020\n+579.2934 7459443\n+612.2331 6527969\n+890.3849 5983244\n+554.2867 5677698\n+217.9902 5556243\n+828.4108 5551911\n+261.9801 4715799\n+302.3058 4575165\n+151.0303 3762442\n+303.0065 3458540\n+152.007 2798727\n+601.2757 2712582\n+829.4139 2666373\n+891.3854 2537054\n+545.8001 2440233\n+426.7093 2412441\n+580.2967 2382531\n+163.515 2236547\n+554.7881 2115421\n+415.7124 2081224\n+219.9906 1917349\n+447.3474 1857827\n+879.4262 1631029\n+818.4551 1469116\n+499.1057 1333390\n+798.4789 1255220\n+332.1158 1160058\n+613.2346 1146563\n+169.0384 1139653\n+373.1422 994095\n+553.2882 965085\n+654.2573 944823\n+342.1678 902406\n+654.3889 813341\n+259.0169 796005\n+371.1303 791956\n+323.1233 786527\n+602.279 713112\n+880.4289 710492\n+892.3867 693024\n+828.9124 689362\n+921.0322 680433\n+569.2412 651203\n+261.0831 641763\n+652.2336 624935\n+873.4089 595710\n+331.1188 590719\n+221.986 585108\n+189.9953 549589\n+246.0078 493212\n+887.386 475283\n+673.3656 473402\n+303.148 463817\n+888.3867 456652\n+662.3758 408625\n+135.0636 408505\n+152.0311 366061\n+334.1113 306436\n+416.1353 303481\n+\n+NAME:C003\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:40.37\n+Num Peaks:57\n+86.0966 39898045\n+118.0653 20097234\n+150.9771 16674266\n+163.1098 15306868\n+409.1839 13252151\n+365.1575 11918350\n+146.0603 9993830\n+144.0811 9711210\n+481.2626 9052124\n+388.7124 8370798\n+150.0587 7263844\n+212.8394 6186731\n+194.0226 5775623\n+148.1101 5397479\n+165.0549 5120564\n+174.1856 5078184\n+525.2893 4681728\n+121.0843 4321800\n+217.105 4260545\n+348.9904 4187255\n+462.6453 4125319\n+206.1009 3834475\n+166.9511 3210588\n+117.0575 2977341\n+180.9901 2802727\n+136.0065 2726754\n+87.1 2350394\n+350.1359 2252754\n+258.1308 2244142\n+480.6163 2017624\n+285.1004 1956381\n+454.2136 1887161\n+393.1201 1844775\n+482.266 1785595\n+123.0442 1779221\n+569.3147 1751821\n+560.7189 1672197\n+102.0551 1540732\n+640.5146 1517440\n+379.0453 1432795\n+90.0551 1421488\n+812.3927 987883\n+249.9989 814727\n+526.2926 756951'..b' Peaks:2\n+494.8125 1624052\n+285.2581 408043\n+\n+NAME:C918\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:375.07\n+Num Peaks:2\n+282.9108 1509467\n+403.321 175994\n+\n+NAME:C919\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:372.64\n+Num Peaks:2\n+253.0976 2752671\n+535.1935 558326\n+\n+NAME:C920\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:378.15\n+Num Peaks:2\n+376.187 80026\n+457.2916 44959\n+\n+NAME:C921\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:384.97\n+Num Peaks:2\n+351.2377 84299\n+382.2592 63782\n+\n+NAME:C922\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:382.01\n+Num Peaks:2\n+255.2112 2623406\n+342.1737 51293\n+\n+NAME:C923\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:380.77\n+Num Peaks:2\n+247.1333 782460\n+360.0898 83304\n+\n+NAME:C924\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:391.37\n+Num Peaks:2\n+275.8893 1374393\n+231.1595 45385\n+\n+NAME:C925\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:388.83\n+Num Peaks:2\n+494.8126 1378128\n+281.2268 251187\n+\n+NAME:C926\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:403.88\n+Num Peaks:2\n+240.2326 912540\n+270.2432 59873\n+\n+NAME:C927\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:405.16\n+Num Peaks:2\n+236.2377 335918\n+365.1705 94732\n+\n+NAME:C928\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:405.59\n+Num Peaks:2\n+158.1543 14432294\n+254.2483 240394\n+\n+NAME:C929\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:405.12\n+Num Peaks:2\n+273.1349 246131\n+369.2041 66038\n+\n+NAME:C930\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:420.81\n+Num Peaks:2\n+366.2641 338849\n+229.1803 53773\n+\n+NAME:C931\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:420.04\n+Num Peaks:2\n+414.3331 124761\n+455.2291 74434\n+\n+NAME:C932\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:415.45\n+Num Peaks:2\n+526.2658 111387\n+407.3008 97465\n+\n+NAME:C933\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:389.56\n+Num Peaks:2\n+262.1136 902163\n+279.2048 174974\n+\n+NAME:C934\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:397.27\n+Num Peaks:2\n+139.9882 14598109\n+451.3636 130810\n+\n+NAME:C935\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:306.2\n+Num Peaks:2\n+303.8841 9644530\n+490.818 144394\n+\n+NAME:C936\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:291.88\n+Num Peaks:2\n+303.8841 4770525\n+149.9563 2871279\n+\n+NAME:C937\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:273.59\n+Num Peaks:2\n+303.8841 9507576\n+275.8892 2233507\n+\n+NAME:C938\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:264.11\n+Num Peaks:2\n+293.0983 29627006\n+490.818 831879\n+\n+NAME:C939\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:261.76\n+Num Peaks:2\n+186.9566 11812445\n+149.9563 4049777\n+\n+NAME:C940\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:242.51\n+Num Peaks:2\n+148.9773 5819004\n+303.8841 4733851\n+\n+NAME:C941\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:246.1\n+Num Peaks:2\n+241.8843 2476354\n+354.1273 898357\n+\n+NAME:C942\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:243.17\n+Num Peaks:2\n+158.9616 47753531\n+372.1588 496137\n+\n+NAME:C943\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:227.01\n+Num Peaks:2\n+354.1273 577096\n+372.1588 506473\n+\n+NAME:C944\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:231.49\n+Num Peaks:2\n+171.9932 10387198\n+176.9722 7012941\n+\n+NAME:C945\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:233.11\n+Num Peaks:2\n+149.9563 6680326\n+156.9663 4658486\n+\n+NAME:C946\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:197.8\n+Num Peaks:2\n+149.9563 6365632\n+199.9882 3301364\n+\n+NAME:C947\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:190.19\n+Num Peaks:2\n+303.884 6200176\n+171.9932 5842204\n+\n+NAME:C948\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:201.67\n+Num Peaks:2\n+293.0983 68432527\n+186.9566 7116605\n+\n+NAME:C949\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:209.56\n+Num Peaks:2\n+199.9883 2497500\n+156.9663 1804531\n+\n'
b
diff -r 000000000000 -r 36104baf75da test-data/test2_sample_metadata_xcms_2.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test2_sample_metadata_xcms_2.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,6 @@
+sample_name,class,sampleType,injectionOrder,batch
+VT_160120_002,sample,sample,1,1
+VT_160120_004,sample,sample,2,1
+VT_160120_006,sample,sample,3,1
+VT_160120_008,sample,sample,4,1
+VT_160120_010,sample,sample,5,1
b
diff -r 000000000000 -r 36104baf75da test-data/test2_spec_abundance_xcms_2.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test2_spec_abundance_xcms_2.csv Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,6 @@\n+"","C001","C002","C003","C004","C005","C006","C007","C008","C009","C010","C011","C012","C013","C014","C015","C016","C017","C018","C019","C020","C021","C022","C023","C024","C025","C026","C027","C028","C029","C030","C031","C032","C033","C034","C035","C036","C037","C038","C039","C040","C041","C042","C043","C044","C045","C046","C047","C048","C049","C050","C051","C052","C053","C054","C055","C056","C057","C058","C059","C060","C061","C062","C063","C064","C065","C066","C067","C068","C069","C070","C071","C072","C073","C074","C075","C076","C077","C078","C079","C080","C081","C082","C083","C084","C085","C086","C087","C088","C089","C090","C091","C092","C093","C094","C095","C096","C097","C098","C099","C100","C101","C102","C103","C104","C105","C106","C107","C108","C109","C110","C111","C112","C113","C114","C115","C116","C117","C118","C119","C120","C121","C122","C123","C124","C125","C126","C127","C128","C129","C130","C131","C132","C133","C134","C135","C136","C137","C138","C139","C140","C141","C142","C143","C144","C145","C146","C147","C148","C149","C150","C151","C152","C153","C154","C155","C156","C157","C158","C159","C160","C161","C162","C163","C164","C165","C166","C167","C168","C169","C170","C171","C172","C173","C174","C175","C176","C177","C178","C179","C180","C181","C182","C183","C184","C185","C186","C187","C188","C189","C190","C191","C192","C193","C194","C195","C196","C197","C198","C199","C200","C201","C202","C203","C204","C205","C206","C207","C208","C209","C210","C211","C212","C213","C214","C215","C216","C217","C218","C219","C220","C221","C222","C223","C224","C225","C226","C227","C228","C229","C230","C231","C232","C233","C234","C235","C236","C237","C238","C239","C240","C241","C242","C243","C244","C245","C246","C247","C248","C249","C250","C251","C252","C253","C254","C255","C256","C257","C258","C259","C260","C261","C262","C263","C264","C265","C266","C267","C268","C269","C270","C271","C272","C273","C274","C275","C276","C277","C278","C279","C280","C281","C282","C283","C284","C285","C286","C287","C288","C289","C290","C291","C292","C293","C294","C295","C296","C297","C298","C299","C300","C301","C302","C303","C304","C305","C306","C307","C308","C309","C310","C311","C312","C313","C314","C315","C316","C317","C318","C319","C320","C321","C322","C323","C324","C325","C326","C327","C328","C329","C330","C331","C332","C333","C334","C335","C336","C337","C338","C339","C340","C341","C342","C343","C344","C345","C346","C347","C348","C349","C350","C351","C352","C353","C354","C355","C356","C357","C358","C359","C360","C361","C362","C363","C364","C365","C366","C367","C368","C369","C370","C371","C372","C373","C374","C375","C376","C377","C378","C379","C380","C381","C382","C383","C384","C385","C386","C387","C388","C389","C390","C391","C392","C393","C394","C395","C396","C397","C398","C399","C400","C401","C402","C403","C404","C405","C406","C407","C408","C409","C410","C411","C412","C413","C414","C415","C416","C417","C418","C419","C420","C421","C422","C423","C424","C425","C426","C427","C428","C429","C430","C431","C432","C433","C434","C435","C436","C437","C438","C439","C440","C441","C442","C443","C444","C445","C446","C447","C448","C449","C450","C451","C452","C453","C454","C455","C456","C457","C458","C459","C460","C461","C462","C463","C464","C465","C466","C467","C468","C469","C470","C471","C472","C473","C474","C475","C476","C477","C478","C479","C480","C481","C482","C483","C484","C485","C486","C487","C488","C489","C490","C491","C492","C493","C494","C495","C496","C497","C498","C499","C500","C501","C502","C503","C504","C505","C506","C507","C508","C509","C510","C511","C512","C513","C514","C515","C516","C517","C518","C519","C520","C521","C522","C523","C524","C525","C526","C527","C528","C529","C530","C531","C532","C533","C534","C535","C536","C537","C538","C539","C540","C541","C542","C543","C544","C545","C546","C547","C548","C549","C550","C551","C552","C553","C554","C555","C556","C557","C558","C559","C560","C561","C562","C563","C564","C565","C566","C567","C568","C5'..b'214.953265,47958708.1009128,5005208.51409353,4546041.51472802,597930.408358002,413858.166962887,2383352.71001958,3684594.2368534,6376303.91095464,54329012.3107854,189655.393993379,3910626.6229895,1429283.39150206,3955314.43962275,19802956.6570458,2141755.90668017,423082.313109627,1789657.22177483,5603510.50098625,585418.480639542,1058167.71237263,164594.940263926,163789.538408104,3638111.59044424,3203701.44982838,464501.996657201,878895.540599286,811318.049877244,957952.482513702,55302.0505387589,87533.1619477703,199173.212363078,1165634.63422967,13708.031910535,938558.619053783,6029749.22591351,848294.669678788,883531.833375322,5364786.95082208,6836084.52154344,1056906.29150654,126847.560024607,1249466.68531127,1654952.68762709,6947518.94706844,7382724.11120081,3728387.92189008,2570561.9626843,4175344.94127307,2056046.64813594,2092125.63759418,2070151.11892725,1150552.96430909,38639688.0661804,267127527.027171,330314311.771687,9291057.82219381,312540.12315565,497558.953225689,1115618.47040005,60246679.7180224,501790.374550661,577927.062688324,1307301.9381152,1914294.3178842,60484.7309128977,1109646.02850421,5002872.96333185,1352482.03545265,28889362.4794975,1041653.59514201,0.0131970252461252,990662.415056572,26687012.223489,608740.340243446,95672.5741102534,150370.276793319,809939.560515668,81990.0935698237,176094.301619632,6386121.9306773,392657.977353338,6557403.50420446,3153735.68026402,18140735.7680987,182615261.283384,580074.390203842,889040.18911653,29448728.1036993,3907946.1237757,991578.341200773,2215475.59834421,2561744.72298407,953282.96868292,125458.519684401,4630871.50425035,8243258.57085175,14271030.7587948,45522839.9410552,20940784.0884207,23051880.6161494,673817.760080145,160809747.627601,25641.0602805266,134299.151577906,1270855.89199342,1260485.75864667,35813706.8058204,16296412.5758287,442463.087511083,18838839.9394132,3265512.24423757,274835.683301477,570415.293427244,259640.203510722,40436320.3507751,1365865.8365374,3522408.99338314,356463.075299067,371967.734219197,529416.121623926,3199540.67780548,2157443.49240979,3411.57108064208,143405.274028324,211738.506972076,1068199.82684092,335947.985162462,776527.914939413,1491698.7088516,73216340.1829405,2760818.69645832,465469.258710187,203924.045874582,18168732.4745699,1626276.21478194,281457.056255218,647201.686607876,2601992.37737742,1369174.23718684,1303675.41769424,2019042.28117392,644959.809499702,128675.390964311,57191.0653737193,177396.227884545,725194.162891246,4665705.56282036,137813.08546129,383723.595363958,317881.758038683,429449.451807368,2110608.42049288,142570.007106726,6870373.92607453,2883015.73597555,653702.078951424,1063350.3254289,389775.571124765,2534164.31420074,2116633.94322721,1233744.36849603,1649476.4320431,3684476.89482154,1997841.77123625,2168560.69318639,481902.413214937,877442.428376107,44602896.7874143,10051838.5939897,718893.143583391,3745264.74258281,687020.810854822,1086471.30913325,449091.077290324,10445861.23103,556408.292836158,392519.184054596,1793304.0649151,34206471.4956195,16853379.0167309,334658.997358651,1446787.24173929,28521.8132147851,931584.607222749,1734537.61663269,9757208.90762232,5288776.17935033,11955582.894059,1049713.68899935,2490340.26440234,424092.577097619,795782.71821895,9518354.60119582,542401.89809293,317975.248128733,796035.576607939,828130.135547431,987370.302091278,629644.324892416,1055640.92090542,468629.749926871,3079779.19501651,598867.230561112,1379012.17538831,1297698.08471102,137288.53439083,17578.5275513677,35494.6412414295,1458426.40950105,654047.472012174,1113446.53593047,970320.167779675,845419.76409003,322936.569334624,14678089.6861306,300432.49075485,162658.683657598,131070.399958049,132653.675772064,911207.241691194,13380375.8210506,9328687.98310995,2077847.95004465,1351555.12301371,26565961.0996223,12675029.9004098,5081898.31541122,1371610.35491586,38746515.2545822,6981.70563633046,8507018.01013113,4533357.63643496,2531703.36698458,4650732.95357486,54293475.8708625,336487.931319341\n'
b
diff -r 000000000000 -r 36104baf75da test-data/test2_xcmsObj_2.rdata.xcms.fillpeaks
b
Binary file test-data/test2_xcmsObj_2.rdata.xcms.fillpeaks has changed
b
diff -r 000000000000 -r 36104baf75da test-data/test3_csv_test-input_1_2.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test3_csv_test-input_1_2.csv Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,4 @@\n+sample,1092.0455322265625_55.3881891471991,1092.143798828125_75.19269837646414,120.5870361328125_84.1690922820325,128.22833251953125_82.89320871835321,136.6553955078125_83.84854277124933,145.9055633544922_83.72871072829018,156.13967895507812_84.47924605441398,167.50196838378906_83.53692449073029,173.4578628540039_93.97165362755675,180.13150024414062_83.03711816451398,194.3990478515625_93.74316870315455,209.6556854248047_79.99849162809512,210.15904235839844_94.01295300440957,227.95034790039062_81.81317766739586,239.10540771484375_91.43922375453529,248.2297134399414_83.20243741201145,271.34027099609375_94.029599991,293.0245361328125_90.55353893094673,297.8338317871094_93.62774080573467,328.2565002441406_93.78909821499991,402.1945495605469_74.41081619509929,402.43536376953125_79.48901018577492,403.3043518066406_66.36554021250657,403.58404541015625_92.15456139553177,405.28912353515625_93.36113980674214,407.87896728515625_55.352516462742365,407.9197082519531_80.58554670124317,408.10986328125_88.60637510464916,413.36119079589844_92.15456139553177,414.8504943847656_68.3954414451715,415.05157470703125_89.61403072274686,416.3724365234375_76.26483248480014,417.37567138671875_54.21588314098117,417.3759460449219_87.71457221824154,417.7864685058594_74.39968032792106,419.31451416015625_70.28540997724188,420.3177490234375_58.976647937786765,420.318115234375_89.94025462975455,420.3309326171875_77.37543653743954,425.92962646484375_85.31107524796879,429.08795166015625_66.61349933537821,429.08819580078125_88.38774046671584,430.08685302734375_74.64394421911022,430.0870819091797_54.80048822821272,430.0877380371094_87.88964060718965,430.8870849609375_87.60549366682957,431.0846862792969_90.7513227063747,432.8841247558594_84.53059220636067,433.177734375_90.48648301635235,434.88116455078125_90.65948572463788,436.3409729003906_55.74937284511791,436.341064453125_86.82842153430752,439.82814025878906_89.34273933069348,442.81976318359375_78.43200491758303,443.162109375_90.13498636117843,444.4035949707031_91.71336778426226,445.1189270019531_92.15456139553177,446.1190185546875_92.15456139553177,447.11602783203125_67.40536697564426,447.1741027832031_90.87642438433112,448.11622619628906_90.24078954668882,449.1133117675781_89.70016786499696,453.43060302734375_93.15125476488163,453.965087890625_86.88159660110607,457.24774169921875_71.77717821487629,459.171142578125_81.30830520958378,462.1455993652344_67.50656586597418,462.1458435058594_90.42954852156329,463.14556884765625_86.70110390717647,464.14251708984375_87.30139334582692,465.14227294921875_54.37595695278693,467.8614807128906_81.46333582401931,476.19744873046875_73.4182541689534,477.1977844238281_88.54297209283688,478.1945495605469_89.4329802003013,485.8963623046875_78.67930148136087,486.0890197753906_90.74399860523178,490.17645263671875_55.426191135528256,490.17706298828125_69.35914020389114,491.18292236328125_89.2258445173988,492.12005615234375_85.57642587143935,499.1416015625_88.73996796197882,500.104736328125_88.65833151308101,503.1065673828125_67.40536697564426,503.17864990234375_92.15456139553177,504.106689453125_88.26051501797077,505.08551025390625_76.5858315562687,505.08551025390625_84.9775260615488,505.085693359375_60.48542422286511,505.1624450683594_90.33973378044924,511.1894836425781_89.52018773841797,511.4706726074219_82.95863792836039,512.1043090820312_90.88961836438686,516.1541137695312_90.20233053300652,516.2422485351562_82.51639626461868,516.2635498046875_62.32056199958101,519.1375732421875_90.11076683384336,520.1379699707031_88.91002303081133,521.1349792480469_91.92921715125516,522.197998046875_91.47137776558847,522.2021484375_67.73316263069147,528.0993957519531_88.59575078684823,530.1150207519531_88.78503744655094,531.1209716796875_88.6247119451209,532.1119079589844_88.72790403668054,536.1640625_88.55906958520777,537.1644897460938_90.73569703534783,538.1614379882812_88.68822011480044,539.1615600585938_88.87573066500616,540.1583862304688_62.452310076497234,540.15869140625_8'..b'10.144243429499,9695.683644429246,48360.150641669956,10188.725543398705,48408.197616909856,238977.87466128232,43046.115969323655,606824.0966807266,7874.805102557502,5269.789474150345,8290.567366861229,13239.610469570916,21035.980547221017\n+dataset_10910,14863.954671904066,22802.66594321968,613913.087089796,430252.55147425033,421654.71247658716,277237.8524648604,223227.74516514584,177538.00720009796,86220.03676518639,193476.1029964235,28933.283305497338,13679.403545343856,29912.161112329937,97459.26221835872,171841.5154851334,63114.55437474368,19303.71546226627,24937.39385266509,10742.067358792223,16755.014983680325,27973.790077171187,3434.733770296369,24861.067915694923,19484.87150074289,26028.812224975085,9625.325539905782,9997.440071906374,54776.995588431,61792.00942089384,4155.969779557098,43640.751133794976,28313.260611181784,20360.738361535718,17005.063633845773,12907.619072447378,115415.70087262274,34434.2887724103,69759.06150722869,73323.53086184389,42426.186579824425,17763.800025446522,94304.11785090875,3396.391727623671,34412.667376641504,36100.63815683431,49273.72031944127,88381.48776079662,40010.23646637365,509138.6411987422,36370.770564685925,61681.465102378235,31147.59974049918,64798.50675858865,13059.237325502265,156186.5010965366,37683.885778057156,1316181.0077219605,358676.4643398071,74.12988971971647,283146.7777581527,45743.81720632368,33160.28787756421,7734.632196975879,36928.45732453728,27928.424896918266,26822.899318460597,14909.905413521466,529069.4837671998,162037.64042067458,150271.83107969712,63482.13425059714,21247.287580854234,80875.89434142668,18001837.55343237,2314271.2770702043,20365.207574199998,65105.849181386715,14317.484127622032,18688.420527652856,283047.43351187673,30281.151041765923,316607.60129377607,99497.81525083477,1483.0144646161777,62451.79337492532,33016.78229930435,24582.72438087668,18347.081177624863,8315.943950080782,143553.1582422428,112229.90814721772,18501.965748330054,32525.875013491295,135057.19112673716,14019.603889379512,22052.61403480598,215160.1582893219,70948.80830332989,404790.7484652289,92722.2429692764,25695.126977053234,489327.47378285613,1384863.7734412327,693763.9684849137,226353.6162953322,804470.9186594202,393358.00074681925,198517.3900832077,55028.91445921614,20249.328111221606,28244.087798852517,6020.547244641132,15159.970491638076,30942.23704865004,1115.106774818981,45170.5426779707,18757.68564113154,12651.204978261736,23456.224875927972,5037.567151255652,5506.094046853335,21975.54381281723,36847.66514782324,3943.244654003174,7956.368417144936,5230.276455649404,15860.523167788844,3648.276013885337,58861.14557515777,45865.88691829823,33704.19039309937,28288.686758110052,4898.406424984015,25206.07782388816,288467.82564418326,203950.4148403626,33669.39372809137,11909.375419954144,105204.01654124213,47314.683210299976,20116.892245550673,29983.339349257487,162997.40737960342,312967.33407935064,23718.832030007714,34998.40134691691,5675.823944123622,26555.66074580202,33874.457771067915,40178.38825073064,13175.543014870913,19207.418358825344,76575.68360269777,55512.71062656802,11455.600951099424,50435.526462653106,28976.223573537318,10823.746753070278,11400.491140157827,32027.64994871846,197799.80811361832,16309.29261685444,115851.53979308858,50824.70550472989,9850.935059915204,15103.742538303439,46204.57433704114,6015.222376308001,35262.17891501211,23925.491534667584,114712.17034776637,14780.70940922692,40830.9352610929,70003.65366040124,2118.1938598368497,11127.99241296985,42272.682437228104,10936.64138404047,97526.44783970757,36499.79597549024,9213.627988375347,131727.89961140935,21498.51889401622,373921.81376579835,31370.058732639718,8084.1878383703815,165128.31859341793,19172.089350343987,15167.836702372895,38252.37730043948,14210.144243429499,9695.683644429246,48360.150641669956,10188.725543398705,48408.197616909856,238977.87466128232,43046.115969323655,606824.0966807266,7874.805102557502,5269.789474150345,8290.567366861229,13239.610469570916,21035.980547221017\n'
b
diff -r 000000000000 -r 36104baf75da test-data/test3_spec_abundance_csv_1.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test3_spec_abundance_csv_1.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,4 @@
+"","C01","C02","C03","C04","C05","C06","C07","C08","C09","C10","C11","C12","C13","C14","C15","C16","C17","C18","C19","C20","C21","C22"
+"dataset_10908",1143359.6024874,14232152.476587,50449.9418344623,705676.707142857,37132.3539979397,29822.3430533531,48305.5183116056,16320.5463588464,233029.800680246,47298.0528173405,34827.0153828901,24530.3375165206,64864.9659048501,92746.0557178936,398852.491270866,20462.4444316982,315657.07173388,18224.8801651832,119901.384914687,112084.028638642,461198.718995128,10125.6569474277
+"dataset_10909",1143359.6024874,14232152.476587,50449.9418344623,705676.707142857,37132.3539979397,29822.3430533531,48305.5183116056,16320.5463588464,233029.800680246,47298.0528173405,34827.0153828901,24530.3375165206,64864.9659048501,92746.0557178936,398852.491270866,20462.4444316982,315657.07173388,18224.8801651832,119901.384914687,112084.028638642,461198.718995128,10125.6569474277
+"dataset_10910",1143359.6024874,14232152.476587,50449.9418344623,705676.707142857,37132.3539979397,29822.3430533531,48305.5183116056,16320.5463588464,233029.800680246,47298.0528173405,34827.0153828901,24530.3375165206,64864.9659048501,92746.0557178936,398852.491270866,20462.4444316982,315657.07173388,18224.8801651832,119901.384914687,112084.028638642,461198.718995128,10125.6569474277
b
diff -r 000000000000 -r 36104baf75da test-data/test3_spectra_csv_1.msp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test3_spectra_csv_1.msp Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,335 @@
+NAME:C01
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:90.26
+Num Peaks:24
+478.194549560547 2314271
+834.349975585938 606824
+537.164489746094 393358
+447.174102783203 283147
+833.342163085938 238978
+519.137573242188 215160
+684.278930664062 197800
+443.162109375 156187
+505.162445068359 143553
+516.154113769531 135057
+511.189483642578 112230
+758.220520019531 97526
+431.084686279297 88381
+486.089019775391 65106
+675.038391113281 50436
+832.335144042969 48360
+613.180694580078 47315
+594.09521484375 45866
+448.116226196289 45744
+415.051574707031 43641
+434.881164550781 36371
+512.104309082031 32526
+293.024536132812 24937
+989.4306640625 13240
+
+NAME:C02
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:88.55
+Num Peaks:19
+477.197784423828 18001838
+530.115020751953 1384864
+536.1640625 804471
+531.120971679688 693764
+528.099395751953 489327
+499.1416015625 316608
+610.183410644531 288468
+532.111907958984 226354
+538.161437988281 198517
+612.181274414062 105204
+500.104736328125 99498
+429.088195800781 94304
+520.137969970703 70949
+539.161560058594 55029
+408.10986328125 54777
+430.087738037109 36101
+698.25390625 35262
+625.235046386719 34998
+504.106689453125 33017
+
+NAME:C03
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:75.69
+Num Peaks:16
+476.197448730469 80876
+667.174713134766 76576
+420.330932617188 73324
+781.87451171875 38252
+675.246398925781 28976
+416.372436523438 28313
+505.085510253906 24583
+1092.14379882812 22803
+566.138488769531 21976
+760.217834472656 21499
+832.238098144531 14210
+742.190856933594 11128
+918.001159667969 8291
+540.158752441406 6021
+587.369018554688 5230
+741.193237304688 2118
+
+NAME:C04
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:91.9
+Num Peaks:13
+445.118927001953 1316181
+521.134979248047 404791
+446.119018554688 358676
+623.21337890625 312967
+239.105407714844 171842
+685.273254394531 115852
+699.272094726562 114712
+522.197998046875 92722
+503.178649902344 62452
+413.361190795898 61792
+668.175964355469 55513
+614.219604492188 29983
+403.584045410156 19485
+
+NAME:C05
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:55.56
+Num Peaks:13
+465.142272949219 63482
+436.340972900391 61681
+430.08708190918 34413
+625.236511230469 26556
+699.252685546875 23925
+564.195281982422 23456
+417.375671386719 20361
+663.369201660156 19207
+687.198425292969 15104
+1092.04553222656 14864
+490.176452636719 14317
+407.878967285156 9625
+761.218200683594 8084
+
+NAME:C06
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:85.48
+Num Peaks:11
+551.216796875 45171
+425.929626464844 42426
+550.216369628906 30942
+492.120056152344 30281
+540.15869140625 28244
+614.177856445312 20117
+772.270812988281 19172
+552.213073730469 18758
+505.085510253906 18347
+662.440002441406 13176
+832.23828125 9696
+
+NAME:C07
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:80.44
+Num Peaks:11
+227.950347900391 97459
+759.220153808594 36500
+612.164733886719 33669
+761.218078613281 31370
+459.171142578125 26823
+467.861480712891 21247
+485.896362304688 20365
+442.819763183594 13059
+564.195129394531 12651
+407.919708251953 9997
+587.341857910156 7956
+
+NAME:C08
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:67.21
+Num Peaks:10
+403.304351806641 24861
+429.087951660156 17764
+685.202392578125 16309
+462.145599365234 14910
+700.250854492188 14781
+698.253234863281 6015
+917.771545410156 5270
+414.850494384766 4156
+503.106567382812 1483
+447.116027832031 74
+
+NAME:C09
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:90.24
+Num Peaks:9
+760.359802246094 373922
+491.182922363281 283047
+611.183166503906 203950
+761.362854003906 165128
+740.749694824219 70004
+420.318115234375 69759
+439.828140258789 64799
+687.272521972656 46205
+444.403594970703 37684
+
+NAME:C10
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:93.71
+Num Peaks:8
+173.457862854004 86220
+210.159042358398 29912
+194.399047851562 28933
+405.289123535156 26029
+271.340270996094 19304
+328.256500244141 16755
+297.833831787109 10742
+453.430603027344 7735
+
+NAME:C11
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:62.85
+Num Peaks:8
+686.199340820312 50825
+833.238525390625 48408
+516.263549804688 22053
+989.671630859375 21036
+540.158386230469 20249
+772.271392822266 15168
+674.156646728516 11456
+551.216766357422 1115
+
+NAME:C12
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:67.78
+Num Peaks:8
+594.22265625 33704
+457.247741699219 27928
+610.182739257812 25206
+624.235229492188 23719
+675.249084472656 10824
+595.154296875 4898
+587.15966796875 3943
+593.15576171875 3648
+
+NAME:C13
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:69.09
+Num Peaks:8
+419.314514160156 115416
+834.235961914062 43046
+684.201171875 32028
+522.2021484375 25695
+490.177062988281 18688
+550.216186523438 15160
+612.180358886719 11909
+758.219665527344 10937
+
+NAME:C14
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:87.06
+Num Peaks:7
+463.145568847656 162038
+593.156372070312 58861
+430.887084960938 49274
+453.965087890625 36928
+436.341064453125 31148
+595.154052734375 28289
+417.375946044922 17005
+
+NAME:C15
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:84.07
+Num Peaks:7
+120.587036132812 613913
+136.655395507812 421655
+145.905563354492 277238
+156.139678955078 223228
+167.501968383789 177538
+742.193054199219 42273
+432.884124755859 40010
+
+NAME:C16
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:59.02
+Num Peaks:6
+420.317749023438 34434
+587.398254394531 15861
+675.74951171875 11400
+833.238525390625 10189
+505.085693359375 8316
+917.472229003906 7875
+
+NAME:C17
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:82.92
+Num Peaks:5
+128.228332519531 430253
+180.131500244141 193476
+248.229713439941 63115
+511.470672607422 18502
+516.242248535156 14020
+
+NAME:C18
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:74.47
+Num Peaks:5
+402.194549560547 27974
+417.786468505859 12908
+687.198364257812 9851
+625.235534667969 5676
+430.086853027344 3396
+
+NAME:C19
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:87.24
+Num Peaks:4
+464.142517089844 150272
+626.232360839844 33874
+759.220581054688 9214
+566.138305664062 5506
+
+NAME:C20
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:89.73
+Num Peaks:4
+616.898010253906 162997
+700.2734375 40831
+587.022033691406 36848
+449.113311767578 33160
+
+NAME:C21
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:90.44
+Num Peaks:4
+462.145843505859 529069
+433.177734375 509139
+759.291687011719 131728
+661.706604003906 40178
+
+NAME:C22
+IONMODE:Negative
+SPECTRUMTYPE:Centroid
+RETENTIONTIME:79.66
+Num Peaks:3
+209.655685424805 13679
+564.2421875 5038
+402.435363769531 3435
+
b
diff -r 000000000000 -r 36104baf75da test-data/test4_sample_metadata_csv_2.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test4_sample_metadata_csv_2.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,4 @@
+sample_name,class,sampleType,injectionOrder,batch
+dataset_10908,sample,sample,1,1
+dataset_10909,sample,sample,2,1
+dataset_10910,sample,sample,3,1
b
diff -r 000000000000 -r 36104baf75da test-data/test4_spec_abundance_csv_2.csv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test4_spec_abundance_csv_2.csv Tue Mar 22 16:09:16 2022 +0000
b
@@ -0,0 +1,4 @@
+"","C01","C02","C03","C04","C05","C06","C07","C08","C09","C10","C11","C12","C13","C14","C15","C16","C17","C18","C19","C20","C21","C22","C23","C24","C25","C26","C27","C28","C29","C30","C31","C32","C33","C34","C35","C36","C37","C38"
+"dataset_10908",15486747.5366514,705676.707142857,29822.3430533531,224421.528087479,240472.056093119,83802.7176826829,53891.3450571771,46940.0774103402,22283.2365363616,398852.491270866,16487.928248967,1983470.1118411,11998.5253787137,55783.8355817233,185478.847522515,315657.07173388,39349.4112699936,21728.8824232737,32441.4747147792,119901.384914687,461198.718995128,19834.4473795901,43602.3586534436,31889.6464337142,68360.3997127846,21854.49991187,1073398.26666055,156861.055191184,493341.849474475,16176.4044227296,10125.6569474277,37890.4782477985,29454.7192721113,66717.3172710142,4822.46628554095,24485.0599767888,21288.8896720112,103775.906887161
+"dataset_10909",15486747.5366514,705676.707142857,29822.3430533531,224421.528087479,240472.056093119,83802.7176826829,53891.3450571771,46940.0774103402,22283.2365363616,398852.491270866,16487.928248967,1983470.1118411,11998.5253787137,55783.8355817233,185478.847522515,315657.07173388,39349.4112699936,21728.8824232737,32441.4747147792,119901.384914687,461198.718995128,19834.4473795901,43602.3586534436,31889.6464337142,68360.3997127846,21854.49991187,1073398.26666055,156861.055191184,493341.849474475,16176.4044227296,10125.6569474277,37890.4782477985,29454.7192721113,66717.3172710142,4822.46628554095,24485.0599767888,21288.8896720112,103775.906887161
+"dataset_10910",15486747.5366514,705676.707142857,29822.3430533531,224421.528087479,240472.056093119,83802.7176826829,53891.3450571771,46940.0774103402,22283.2365363616,398852.491270866,16487.928248967,1983470.1118411,11998.5253787137,55783.8355817233,185478.847522515,315657.07173388,39349.4112699936,21728.8824232737,32441.4747147792,119901.384914687,461198.718995128,19834.4473795901,43602.3586534436,31889.6464337142,68360.3997127846,21854.49991187,1073398.26666055,156861.055191184,493341.849474475,16176.4044227296,10125.6569474277,37890.4782477985,29454.7192721113,66717.3172710142,4822.46628554095,24485.0599767888,21288.8896720112,103775.906887161
b
diff -r 000000000000 -r 36104baf75da test-data/test4_spectra_csv_2.msp
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/test4_spectra_csv_2.msp Tue Mar 22 16:09:16 2022 +0000
b
b'@@ -0,0 +1,430 @@\n+NAME:C01\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:88.6\n+Num Peaks:14\n+477.197784423828 18001838\n+536.1640625 804471\n+531.120971679688 693764\n+528.099395751953 489327\n+610.183410644531 288468\n+538.161437988281 198517\n+612.181274414062 105204\n+500.104736328125 99498\n+429.088195800781 94304\n+520.137969970703 70949\n+539.161560058594 55029\n+408.10986328125 54777\n+698.25390625 35262\n+504.106689453125 33017\n+\n+NAME:C02\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:91.9\n+Num Peaks:13\n+445.118927001953 1316181\n+521.134979248047 404791\n+446.119018554688 358676\n+623.21337890625 312967\n+239.105407714844 171842\n+685.273254394531 115852\n+699.272094726562 114712\n+522.197998046875 92722\n+503.178649902344 62452\n+413.361190795898 61792\n+668.175964355469 55513\n+614.219604492188 29983\n+403.584045410156 19485\n+\n+NAME:C03\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:85.48\n+Num Peaks:11\n+551.216796875 45171\n+425.929626464844 42426\n+550.216369628906 30942\n+492.120056152344 30281\n+540.15869140625 28244\n+614.177856445312 20117\n+772.270812988281 19172\n+552.213073730469 18758\n+505.085510253906 18347\n+662.440002441406 13176\n+832.23828125 9696\n+\n+NAME:C04\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:89.59\n+Num Peaks:10\n+760.359802246094 373922\n+491.182922363281 283047\n+761.362854003906 165128\n+616.898010253906 162997\n+740.749694824219 70004\n+420.318115234375 69759\n+439.828140258789 64799\n+700.2734375 40831\n+587.022033691406 36848\n+449.113311767578 33160\n+\n+NAME:C05\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:90.71\n+Num Peaks:10\n+537.164489746094 393358\n+447.174102783203 283147\n+431.084686279297 88381\n+486.089019775391 65106\n+675.038391113281 50436\n+832.335144042969 48360\n+594.09521484375 45866\n+434.881164550781 36371\n+512.104309082031 32526\n+293.024536132812 24937\n+\n+NAME:C06\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:87.25\n+Num Peaks:9\n+463.145568847656 162038\n+593.156372070312 58861\n+430.887084960938 49274\n+453.965087890625 36928\n+430.087738037109 36101\n+625.235046386719 34998\n+436.341064453125 31148\n+595.154052734375 28289\n+417.375946044922 17005\n+\n+NAME:C07\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:81.16\n+Num Peaks:8\n+227.950347900391 97459\n+759.220153808594 36500\n+612.164733886719 33669\n+761.218078613281 31370\n+459.171142578125 26823\n+467.861480712891 21247\n+407.919708251953 9997\n+587.341857910156 7956\n+\n+NAME:C08\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:76.47\n+Num Peaks:7\n+667.174713134766 76576\n+781.87451171875 38252\n+416.372436523438 28313\n+505.085510253906 24583\n+760.217834472656 21499\n+587.369018554688 5230\n+741.193237304688 2118\n+\n+NAME:C09\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:74.76\n+Num Peaks:7\n+675.246398925781 28976\n+402.194549560547 27974\n+1092.14379882812 22803\n+566.138488769531 21976\n+832.238098144531 14210\n+417.786468505859 12908\n+687.198364257812 9851\n+\n+NAME:C10\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:84.07\n+Num Peaks:7\n+120.587036132812 613913\n+136.655395507812 421655\n+145.905563354492 277238\n+156.139678955078 223228\n+167.501968383789 177538\n+742.193054199219 42273\n+432.884124755859 40010\n+\n+NAME:C11\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:66.18\n+Num Peaks:7\n+403.304351806641 24861\n+429.087951660156 17764\n+685.202392578125 16309\n+675.249084472656 10824\n+698.253234863281 6015\n+595.154296875 4898\n+593.15576171875 3648\n+\n+NAME:C12\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:89.56\n+Num Peaks:6\n+478.194549560547 2314271\n+684.278930664062 197800\n+511.189483642578 112230\n+613.180694580078 47315\n+415.051574707031 43641\n+989.4306640625 13240\n+\n+NAME:C13\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:67.75\n+Num Peaks:6\n+462.145599365234 14910\n+700.250854492188 14781\n+917.771545410156 5270\n+414.850494384766 4156\n+503.106567382812 1483\n+447.116027832031 74\n+\n+NAME:C14\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:93.71\n+Num Peaks:5\n+173.45786285400'..b'UMTYPE:Centroid\n+RETENTIONTIME:90.22\n+Num Peaks:5\n+833.342163085938 238978\n+519.137573242188 215160\n+443.162109375 156187\n+505.162445068359 143553\n+758.220520019531 97526\n+\n+NAME:C16\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:82.92\n+Num Peaks:5\n+128.228332519531 430253\n+180.131500244141 193476\n+248.229713439941 63115\n+511.470672607422 18502\n+516.242248535156 14020\n+\n+NAME:C17\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:55.41\n+Num Peaks:5\n+436.340972900391 61681\n+699.252685546875 23925\n+1092.04553222656 14864\n+490.176452636719 14317\n+407.878967285156 9625\n+\n+NAME:C18\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:58.73\n+Num Peaks:5\n+420.317749023438 34434\n+587.398254394531 15861\n+675.74951171875 11400\n+833.238525390625 10189\n+917.472229003906 7875\n+\n+NAME:C19\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:62.38\n+Num Peaks:5\n+833.238525390625 48408\n+516.263549804688 22053\n+540.158386230469 20249\n+772.271392822266 15168\n+551.216766357422 1115\n+\n+NAME:C20\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:87.24\n+Num Peaks:4\n+464.142517089844 150272\n+626.232360839844 33874\n+759.220581054688 9214\n+566.138305664062 5506\n+\n+NAME:C21\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:90.44\n+Num Peaks:4\n+462.145843505859 529069\n+433.177734375 509139\n+759.291687011719 131728\n+661.706604003906 40178\n+\n+NAME:C22\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:56.75\n+Num Peaks:4\n+625.236511230469 26556\n+663.369201660156 19207\n+687.198425292969 15104\n+761.218200683594 8084\n+\n+NAME:C23\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:54.55\n+Num Peaks:4\n+465.142272949219 63482\n+430.08708190918 34413\n+564.195281982422 23456\n+417.375671386719 20361\n+\n+NAME:C24\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:69.19\n+Num Peaks:4\n+834.235961914062 43046\n+684.201171875 32028\n+490.177062988281 18688\n+612.180358886719 11909\n+\n+NAME:C25\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:73.5\n+Num Peaks:3\n+476.197448730469 80876\n+742.190856933594 11128\n+540.158752441406 6021\n+\n+NAME:C26\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:93.72\n+Num Peaks:3\n+194.399047851562 28933\n+328.256500244141 16755\n+297.833831787109 10742\n+\n+NAME:C27\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:88.75\n+Num Peaks:3\n+530.115020751953 1384864\n+499.1416015625 316608\n+532.111907958984 226354\n+\n+NAME:C28\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:91.72\n+Num Peaks:3\n+611.183166503906 203950\n+687.272521972656 46205\n+444.403594970703 37684\n+\n+NAME:C29\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:90.22\n+Num Peaks:3\n+834.349975585938 606824\n+516.154113769531 135057\n+448.116226196289 45744\n+\n+NAME:C30\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:78.53\n+Num Peaks:3\n+485.896362304688 20365\n+442.819763183594 13059\n+564.195129394531 12651\n+\n+NAME:C31\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:79.66\n+Num Peaks:3\n+209.655685424805 13679\n+564.2421875 5038\n+402.435363769531 3435\n+\n+NAME:C32\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:63.63\n+Num Peaks:3\n+686.199340820312 50825\n+989.671630859375 21036\n+674.156646728516 11456\n+\n+NAME:C33\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:71.4\n+Num Peaks:3\n+594.22265625 33704\n+457.247741699219 27928\n+587.15966796875 3943\n+\n+NAME:C34\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:77.39\n+Num Peaks:2\n+420.330932617188 73324\n+918.001159667969 8291\n+\n+NAME:C35\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:74.73\n+Num Peaks:2\n+625.235534667969 5676\n+430.086853027344 3396\n+\n+NAME:C36\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:65.19\n+Num Peaks:2\n+610.182739257812 25206\n+624.235229492188 23719\n+\n+NAME:C37\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:67.85\n+Num Peaks:2\n+522.2021484375 25695\n+758.219665527344 10937\n+\n+NAME:C38\n+IONMODE:Negative\n+SPECTRUMTYPE:Centroid\n+RETENTIONTIME:70.12\n+Num Peaks:2\n+419.314514160156 115416\n+550.216186523438 15160\n+\n'