Repository 'ms2snoop'
hg clone https://toolshed.g2.bx.psu.edu/repos/workflow4metabolomics/ms2snoop

Changeset 0:91a3242fd67f (2022-04-25)
Next changeset 1:df2672c37732 (2022-05-24)
Commit message:
"planemo upload commit c7676a9c7ac542043691d735285ae19e430bf032"
added:
MS2snoop.R
MS2snoop.xml
README.md
test-data/compound_fragments_result.txt
test-data/compounds_pos.txt
test-data/peaklist_fragments.tsv
test-data/peaklist_precursors.tsv
b
diff -r 000000000000 -r 91a3242fd67f MS2snoop.R
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MS2snoop.R Mon Apr 25 08:23:54 2022 +0000
[
b'@@ -0,0 +1,551 @@\n+#\'\r\n+#\' read and process mspurity W4M files\r\n+#\' create a summary of fragment for each precursor and a graphics of peseudo\r\n+#\' spectra + correlation on which checking of fragment is based on\r\n+#\' V3 try to identify and process multiple files for 1 precursor which may\r\n+#\' occur if different collision energy are used\r\n+#\' V4 elimination of correlation = NA. Correlation is done with precursor, if\r\n+#\' precursor is not present correlation with most intense peak\r\n+#\' author: Jean-Francois Martin\r\n+#\' V5 is versionned, lintR-compliant, packaged, unit-tested, documented and\r\n+#\' tested against data from other labs.\r\n+#\' new maintainer: Lain Pavot - lain.pavot@inrae.fr\r\n+#\'\r\n+#\' @import optparse\r\n+#\'\r\n+NULL\r\n+\r\n+\r\n+assign("DEFAULT_PRECURSOR_PATH", "peaklist_precursors.tsv")\r\n+assign("DEFAULT_FRAGMENTS_PATH", "peaklist_fragments.tsv")\r\n+assign("DEFAULT_COMPOUNDS_PATH", "compounds_pos.txt")\r\n+assign("DEFAULT_OUTPUT_PATH", "compound_fragments_result.txt")\r\n+assign("DEFAULT_TOLMZ", 0.01)\r\n+assign("DEFAULT_TOLRT", 20)\r\n+assign("DEFAULT_MZDECIMAL", 0)\r\n+assign("DEFAULT_R_THRESHOLD", 0.85)\r\n+assign("DEFAULT_MINNUMBERSCAN", 8)\r\n+assign("DEFAULT_SEUIL_RA", 0.5)\r\n+lockBinding("DEFAULT_PRECURSOR_PATH", globalenv())\r\n+lockBinding("DEFAULT_FRAGMENTS_PATH", globalenv())\r\n+lockBinding("DEFAULT_COMPOUNDS_PATH", globalenv())\r\n+lockBinding("DEFAULT_OUTPUT_PATH", globalenv())\r\n+lockBinding("DEFAULT_TOLMZ", globalenv())\r\n+lockBinding("DEFAULT_TOLRT", globalenv())\r\n+lockBinding("DEFAULT_MZDECIMAL", globalenv())\r\n+lockBinding("DEFAULT_R_THRESHOLD", globalenv())\r\n+lockBinding("DEFAULT_MINNUMBERSCAN", globalenv())\r\n+lockBinding("DEFAULT_SEUIL_RA", globalenv())\r\n+\r\n+assign("DEFAULT_EXTRACT_FRAGMENTS_R_THRESHOLD", 0.85)\r\n+assign("DEFAULT_EXTRACT_FRAGMENTS_SEUIL_RA", 0.1)\r\n+assign("DEFAULT_EXTRACT_FRAGMENTS_TOLMZ", 0.01)\r\n+assign("DEFAULT_EXTRACT_FRAGMENTS_TOLRT", 60)\r\n+lockBinding("DEFAULT_EXTRACT_FRAGMENTS_R_THRESHOLD", globalenv())\r\n+lockBinding("DEFAULT_EXTRACT_FRAGMENTS_SEUIL_RA", globalenv())\r\n+lockBinding("DEFAULT_EXTRACT_FRAGMENTS_TOLMZ", globalenv())\r\n+lockBinding("DEFAULT_EXTRACT_FRAGMENTS_TOLRT", globalenv())\r\n+\r\n+\r\n+debug <- FALSE\r\n+\r\n+\r\n+########################################################################\r\n+\r\n+#\' @title plot_pseudo_spectra\r\n+#\' @param x\r\n+#\' @param r_threshold\r\n+#\' @param fid\r\n+#\' @param sum_int\r\n+#\' @param vmz\r\n+#\' @param cor_abs_int\r\n+#\' @param refcol\r\n+#\' @param c_name\r\n+#\' @description plot_pseudo_spectra\r\n+#\' function to compute sum of intensities among scans for all\r\n+#\' m/z kept (cor > r_threshold & minimum number of scans)\r\n+#\' and plot pseudo spectra\r\n+#\' x dataframe scan X fragments with scans number in the 1st column and\r\n+#\' ions in next with intensities\r\n+#\' fid file id when several a precursor has been detected in several files\r\n+plot_pseudo_spectra <- function(\r\n+  x,\r\n+  r_threshold,\r\n+  fid,\r\n+  sum_int,\r\n+  vmz,\r\n+  cor_abs_int,\r\n+  refcol,\r\n+  c_name\r\n+) {\r\n+  ## du fait de la difference de nombre de colonne entre la dataframe qui\r\n+  ## inclue les scans en 1ere col, mzRef se decale de 1\r\n+  refcol <- refcol - 1\r\n+  ## compute relative intensities max=100%\r\n+  rel_int <- sum_int[-1]\r\n+  rel_int <- rel_int / max(rel_int)\r\n+\r\n+  ## define max value on vertical axis (need to increase in order to plot the\r\n+  ## label of fragments)\r\n+  ymax <- max(rel_int) + 0.2 * max(rel_int)\r\n+\r\n+  par(mfrow = c(2, 1))\r\n+  plot(vmz, rel_int, type = "h", ylim = c(0, ymax), main = c_name)\r\n+  ## low correl coef. will be display in grey\r\n+  cor_low <- which(round(cor_abs_int, 2) < r_threshold)\r\n+\r\n+  lbmzcor <- sprintf("%s(r=%s)", vmz, round(cor_abs_int, 2))\r\n+\r\n+  if (length(cor_low) > 0) {\r\n+    text(\r\n+      vmz[cor_low],\r\n+      rel_int[cor_low],\r\n+      lbmzcor[cor_low],\r\n+      cex = 0.5,\r\n+      col = "grey",\r\n+      srt = 90,\r\n+      adj = 0\r\n+    )\r\n+    if (length(vmz) - length(cor_low) > 1) {\r\n+      text(\r\n+        vmz[-c(refcol, cor_low)],\r\n+        rel_int[-c(refcol, cor_low)],\r\n+        lbmzcor'..b'f", "--fragments"),\r\n+    type = "character",\r\n+    default = DEFAULT_FRAGMENTS_PATH,\r\n+    action = "store",\r\n+    help = "Path to the fragments file [default %default]"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("-c", "--compounds"),\r\n+    type = "character",\r\n+    default = DEFAULT_COMPOUNDS_PATH,\r\n+    action = "store",\r\n+    help = "Path to the compounds file [default %default]"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--tolmz"),\r\n+    type = "numeric",\r\n+    action = "store",\r\n+    default = DEFAULT_TOLMZ,\r\n+    metavar = "number"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--tolrt"),\r\n+    type = "integer",\r\n+    action = "store",\r\n+    default = DEFAULT_TOLRT,\r\n+    metavar = "number"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--seuil_ra"),\r\n+    type = "numeric",\r\n+    action = "store",\r\n+    help = "relative intensity threshold",\r\n+    default = DEFAULT_SEUIL_RA,\r\n+    metavar = "number"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--mzdecimal"),\r\n+    type = "integer",\r\n+    default = DEFAULT_MZDECIMAL,\r\n+    action = "store",\r\n+    help = "nb decimal for mz",\r\n+    metavar = "number"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--r_threshold"),\r\n+    type = "integer",\r\n+    default = DEFAULT_R_THRESHOLD,\r\n+    action = "store",\r\n+    help = paste0(\r\n+      "r pearson correlation threshold between precursor and fragment ",\r\n+      "absolute intensity"\r\n+    ),\r\n+    metavar = "number"\r\n+  )\r\n+  parser <- optparse::add_option(\r\n+    parser,\r\n+    c("--min_number_scan"),\r\n+    type = "numeric",\r\n+    action = "store",\r\n+    default = DEFAULT_MINNUMBERSCAN,\r\n+    help = paste0(\r\n+      "fragments are kept if there are found in a minimum number ",\r\n+      "of scans"\r\n+    ),\r\n+    metavar = "number"\r\n+  )\r\n+  return(parser)\r\n+}\r\n+\r\n+main <- function(args) {\r\n+  ## FOLDER AND FILES\r\n+  ## MSpurity precursors file\r\n+  precursors <- read.table(\r\n+    file = args$precursors,\r\n+    header = TRUE,\r\n+    sep = "\\t",\r\n+    quote = "\\""\r\n+  )\r\n+  ## MSpurity fragments file\r\n+  fragments <- read.table(\r\n+    file = args$fragments,\r\n+    header = TRUE,\r\n+    sep = "\\t",\r\n+    quote = "\\""\r\n+  )\r\n+  ## list of compounds : col1=Name of molecule, col2=m/z, col3=retention time\r\n+  compounds <- read.table(\r\n+    file = args$compounds,\r\n+    sep = "\\t",\r\n+    quote = "\\"",\r\n+    header = TRUE\r\n+  )\r\n+  ## PARAMETERS\r\n+  ## tolerance for mz(dalton) rt(seconds) to match the standard in the compounds\r\n+  ## list with the precursor MSpurity file\r\n+  tolmz <- args$tolmz\r\n+  tolrt <- args$tolrt\r\n+\r\n+  ##  relative intensity threshold\r\n+  seuil_ra <- args$seuil_ra\r\n+  ## nb decimal for mz\r\n+  mzdecimal <- args$mzdecimal\r\n+  ## r pearson correlation threshold between precursor and\r\n+  # #fragment absolute intensity\r\n+  r_threshold <- args$r_threshold\r\n+  ## fragments are kept if there are found in a minimum number of scans\r\n+  min_number_scan <- args$min_number_scan\r\n+\r\n+  for (i in seq_len(nrow(compounds))) {\r\n+    ## loop execution for all compounds in the compounds file\r\n+    res_cor <- NULL\r\n+    res_cor <- extract_fragments(\r\n+      precursors = precursors,\r\n+      fragments = fragments,\r\n+      mzref = compounds[[2]][i],\r\n+      rtref = compounds[[3]][i],\r\n+      c_name = compounds[[1]][i],\r\n+      min_number_scan = min_number_scan,\r\n+      mzdecimal = mzdecimal,\r\n+      r_threshold = r_threshold,\r\n+      seuil_ra = seuil_ra,\r\n+      tolmz = tolmz,\r\n+      tolrt = tolrt\r\n+    )\r\n+    if (i == 1 & !is.null(res_cor)) {\r\n+      res_all <- res_cor\r\n+    } else if (!is.null(res_cor)) {\r\n+      res_all <- rbind(res_all, res_cor)\r\n+    }\r\n+  }\r\n+\r\n+  if (is.null(res_all)) {\r\n+    stop("No result at all!")\r\n+  }\r\n+  write.table(\r\n+    x = res_all,\r\n+    file = args$output,\r\n+    sep = "\\t",\r\n+    row.names = FALSE\r\n+  )\r\n+}\r\n+\r\n+args <- optparse::parse_args(create_parser())\r\n+sessionInfo()\r\n+main(args)\r\n+\r\n+warnings()\r\n'
b
diff -r 000000000000 -r 91a3242fd67f MS2snoop.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/MS2snoop.xml Mon Apr 25 08:23:54 2022 +0000
[
@@ -0,0 +1,193 @@
+<tool id="ms2snoop" name="MS2 Snoop" version="1.0.0" profile="21.05">
+    <description>
+        MS1/MS2 spectra and associated adducts extraction and cleaning
+    </description>
+
+    <requirements>
+        <requirement type="package">r-optparse</requirement>
+    </requirements>
+
+    <command><![CDATA[
+Rscript '$__tool_directory__/MS2snoop.R'
+    -o '$frag_result_txt'
+    -c '$compound_txt'
+    -f '$peaklist_frag_tsv'
+    -p '$peaklist_preco_tsv'
+    --tolmz '$tolmz'
+    --tolrt '$tolrt'
+    --seuil_ra '$seuil_ra'
+    --mzdecimal '$mzdecimal'
+    --r_threshold '$r_threshold'
+    --min_number_scan '$min_number_scan'
+;
+    ]]></command>
+
+    <inputs>
+        <param
+            type="data"
+            format="tabular"
+            name="compound_txt"
+            label="compounds_pos.txt"
+        />
+        <param
+            type="data"
+            format="tabular"
+            name="peaklist_frag_tsv"
+            label="peaklist_fragments.tsv"
+        />
+        <param
+            type="data"
+            format="tabular"
+            name="peaklist_preco_tsv"
+            label="peaklist_precursors.tsv"
+        />
+        <param
+            name="tolmz"
+            type="float"
+            min="0.0001"
+            max="10"
+            value="0.01"
+            label="MZ Tolerence"
+        />
+        <param
+            name="tolrt"
+            type="integer"
+            min="0"
+            max="30"
+            value="20"
+            label="RT Tolerence"
+        />
+        <param
+            name="seuil_ra"
+            type="float"
+            min="0"
+            max="1"
+            value="0.05"
+            label="r pearson correlation threshold between precursor and fragment absolute intensity"
+        />
+        <param
+            name="mzdecimal"
+            type="integer"
+            min="0"
+            max="5"
+            value="0"
+            label="nb decimal for mz"
+        />
+        <param
+            name="r_threshold"
+            type="float"
+            min="0"
+            value="0.85" label="fragment absolute intensity"
+        />
+        <param
+            name="min_number_scan"
+            type="integer"
+            min="0"
+            max="25"
+            value="8"
+            label="Present in at least X scan"
+            help="fragments are kept if they are found in a minimum number of scans"
+        />
+    </inputs>
+    <outputs>
+        <data
+            name="frag_result_txt"
+            format="tabular"
+            label="compound_fragments_result.txt"
+        />
+    </outputs>
+    <tests>
+        <test>
+            <param name="compound_txt" value="compounds_pos.txt"/>
+            <param name="peaklist_frag_tsv" value="peaklist_fragments.tsv"/>
+            <param name="peaklist_preco_tsv" value="peaklist_precursors.tsv"/>
+            <output name="frag_result_txt" file="compound_fragments_result.txt" />
+        </test>
+    </tests>
+
+    <help><![CDATA[
+
+.. class:: infomark
+**Authors** Jean-Francois Martin (jean-francois.martin@inrae.fr), Lain Pavot (lain.pavot@inrae.fr), Kevin Wagner (kevin.wagner@inrae.fr) 
+.. class:: infomark
+---------------------------------------------------
+
+==============
+MS2 validation  
+==============
+
+-----------
+Description
+-----------
+
+MS2snoop use results of msPurity to find spectra of standards listed in a compounds file.
+Check the fragments and precursor using correlation of among the different scans of fragments 
+
+-----------------
+Workflow position
+-----------------
+
+**Upstream tools**
+========================= ================= ======= =========
+Name                      output file       format  parameter
+========================= ================= ======= =========
+msPurity.purityA               NA             TSV      NA
+msPurity.frag4feature          NA             TSV      NA
+========================= ================= ======= =========
+**Downstream tools**
+========================= ================= ======= =========
+Name                      output file       format  parameter
+========================= ================= ======= =========
+NA                        NA                NA      NA
+========================= ================= ======= =========
+
+-----------
+Input files
+-----------
+
++----------------------------------------------+------------+
+| Parameter : num + label                      |   Format   |
++===========================+==================+============+
+| Input from msPurity Precursor                |   TSV      |
+| Input from msPurity fragment                 |   TSV      |
+| Input compounds file to search in precursor  |            |
+| and fragment (Name + m/z + ret Time)         |   TSV      |
++----------------------------------------------+------------+
+
+
+----------
+Parameters
+----------
+
+msPurity.purityA output TSV file
+msPurity.frag4feature output TSV file
+Compounds file
+| A TSV TXT file with a list of compounds with at least 3 columns : 
+|   col1=Name of molecule, col2=m/z, col3=retention time
+tolerance for mz(dalton) rt(seconds) to match the standard in the compounds file with the precursor MSpurity files
+|   tolmz <- 0.01
+|   tolrt <- 20
+relative intensity threshold
+|   seuil_ra = 0.05
+nb decimal for mz
+|   mzdecimal <- 0
+r pearson correlation threshold between precursor and fragment absolute intensity
+|   r_threshold <- 0.85
+fragments are kept if there are found in a minimum number of scans
+|   minNumberScan <- 8
+
+------------
+Output files
+------------
+
+compound_fragments_result.tsv
+| tabular output
+| Array with p rows (corresponding to the fragments for the different compounds of the compounds file)
+| Last column "corvalid" is a boolean for validated fragments 
+processing_file.pdf
+| pdf output 
+| For each compound of the compounds file, Graph of the all fragments with parents (or most intense peak if parent is not detected in the fragments. At the end the pdf file a graph of the spectra with validated fragments.
+
+   ]]></help>
+
+</tool>
b
diff -r 000000000000 -r 91a3242fd67f README.md
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README.md Mon Apr 25 08:23:54 2022 +0000
b
@@ -0,0 +1,43 @@
+# MS2snoop
+
+
+Metadata
+-----------
+
+ * **@name**: MS2 Snoop
+ * **@version**: 1.0.0
+ * **@authors**: Jean François Martin (INRAE)
+ * **@maintainers**: Lain Pavot (PFEM - INRAE - MetaboHUB)
+ * **@init date**: 2022, April
+ * **@main usage**:
+Extraction des spectres MS1 et adduits associées + Extraction+nettoyage
+automatisé des spectres MS2
+Extraction des métadonnées des fichiers RAW
+Export en fichier idéalement en JSON
+
+
+test
+-----------
+
+Run the test script `./planemo_test.sh`
+This will install planemo in a venv and run tests against test data.
+
+
+Configuration
+-----------
+
+### Requirement:
+ * R software: version >= 4.0.0 recommended
+ * r-optparse
+
+
+Services provided
+-----------
+
+ * Help and support: support@workflow4metabolomics.org
+
+
+License
+-----------
+
+ * Cea Cnrs Inria Logiciel Libre License, version 2.1 (CECILL-2.1)
b
diff -r 000000000000 -r 91a3242fd67f test-data/compound_fragments_result.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/compound_fragments_result.txt Mon Apr 25 08:23:54 2022 +0000
b
b'@@ -0,0 +1,1385 @@\n+"compoundName"\t"fileid"\t"fragments_mz"\t"CorWithPrecursor"\t"AbsoluteIntensity"\t"relativeIntensity"\t"corValid"\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t84\t0.601436519480403\t406.383798606\t0.00344160476662782\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t123\t-0.167860259307508\t295.871994004\t0.00250569650751035\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t126\t0.907929868611774\t430.137959956\t0.00364277527394095\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t137\t0.676403388268515\t430.806630151\t0.00364843814371653\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t146\t-0.125051837812104\t538.358772757\t0.00455928145962519\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t148\t0.1558553290912\t143.310915941\t0.00121367912083162\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t149\t-0.276972713799663\t617.416199707\t0.00522880720932724\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t150\t-0.410733329402461\t5080.527405\t0.0430262411887723\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t151\t-0.243340932574313\t218.539256565\t0.00185077690023418\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t154\t0.991757449276389\t16836.882397703\t0.14258908675458\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t164\t0.146040591250743\t1829.10214243\t0.0154903976822645\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t180\t0.39213526382476\t209.753137589\t0.00177636854770712\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t182\t1\t118079.7407496\t1\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t84\t0.601436519480403\t406.383798606\t0.00344160476662782\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t123\t-0.167860259307508\t295.871994004\t0.00250569650751035\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t126\t0.907929868611774\t430.137959956\t0.00364277527394095\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t137\t0.676403388268515\t430.806630151\t0.00364843814371653\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t146\t-0.125051837812104\t538.358772757\t0.00455928145962519\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t148\t0.1558553290912\t143.310915941\t0.00121367912083162\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t149\t-0.276972713799663\t617.416199707\t0.00522880720932724\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t150\t-0.410733329402461\t5080.527405\t0.0430262411887723\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t151\t-0.243340932574313\t218.539256565\t0.00185077690023418\tFALSE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t154\t0.991757449276389\t16836.882397703\t0.14258908675458\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t164\t0.146040591250743\t1829.10214243\t0.0154903976822645\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t180\t0.39213526382476\t209.753137589\t0.00177636854770712\tTRUE\n+"2-diethylamino-6-methyl pyrimidin-4-ol one"\t"7"\t182\t1\t118079.7407496\t1\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t132\t0.710501933879621\t105.532976149\t6.84594522892331e-05\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t144\t0.276479394498518\t203.085251814\t0.00013174180824369\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t146\t0.604633971720309\t166.134730821\t0.000107771931516144\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t156\t0.191791879044897\t459.381193152\t0.000298001496998986\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t158\t-0.331971393756239\t13878.1056368\t0.00900275482959977\tFALSE\n+"5-hydroxy-thiabendazole"\t"1"\t160\t0.77523958114776\t386.949028017\t0.000251014606889261\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t162\t-0.476769537229124\t213.45186329\t0.000138466649801652\tFALSE\n+"5-hydroxy-thiabendazole"\t"1"\t172\t0.593280623618274\t794.89456843\t0.000515649693282338\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t173\t0.89953946593837\t207.738348006\t0.000134760281031794\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t174\t0.150820546879602\t1525.52666664\t0.000989612193854381\tTRUE\n+"5-hydroxy-thiabendazole"\t"1"\t175\t0.646696639290413\t163.18886233\t0.000105860940745588\tTRUE\n+"5-hydroxy-thiabendazole"\t"'..b'2900608598\t3198.85811233\t0.0581619342808629\tTRUE\n+"TCMTB"\t"9"\t211\t-0.529929003540618\t578.71673209\t0.0105222811881886\tFALSE\n+"TCMTB"\t"9"\t212\t-0.0150310618117631\t20718.67312981\t0.376708832541796\tFALSE\n+"TCMTB"\t"9"\t219\t0.0614914753429088\t123.263058663\t0.00224118034169187\tTRUE\n+"TCMTB"\t"9"\t221\t0.209076519592657\t2733.66568752\t0.0497037625553133\tTRUE\n+"TCMTB"\t"9"\t223\t0.0847402042583731\t543.135544781\t0.0098753407471842\tTRUE\n+"TCMTB"\t"9"\t225\t0.382588834038783\t381.507453195\t0.00693660382586481\tTRUE\n+"TCMTB"\t"9"\t239\t1\t27067.5244917\t0.492144235645765\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t79\t0.0521595798449914\t279.873629576\t0.00690652095555926\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t109\t0.922563790701349\t9640.82224867\t0.237909305675332\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t125\t-0.441808918074544\t178.089407913\t0.00439476284199285\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t127\t0.769422232032552\t1076.07612804\t0.0265546358881489\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t140\t0.348604833045235\t1970.98268515\t0.0486384988777101\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t145\t0.820960207936605\t4235.84716059\t0.104529202066952\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t185\t0.31275352450403\t348.909767164\t0.00861014530796692\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t187\t-0.260474354038597\t107.324927324\t0.00264848767902871\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t197\t-0.0360245652498858\t2081.96281053\t0.0513771869161251\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t199\t0.34691746641912\t144.142693995\t0.00355705015215411\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t201\t0.095844899247823\t127.383673675\t0.00314348305328139\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t211\t0.589929547507267\t156.726169586\t0.00386757614917167\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t213\t0.214402092378455\t334.711538323\t0.00825977158690306\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t215\t0.177739314274526\t412.352368363\t0.0101757363760497\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t221\t0.950607639404665\t40523.0985871\t1\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t225\t-0.377401610724356\t503.974612244\t0.012436724480996\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t227\t0.163495046198974\t177.141063216\t0.00437136027086513\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t229\t0.602334206324447\t1013.548554406\t0.0250116252148756\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t239\t-0.216616311827602\t1313.5219316555\t0.0324141533459547\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t257\t1\t25290.7478033\t0.624106958379313\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t79\t0.0521595798449914\t279.873629576\t0.00690652095555926\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t109\t0.922563790701349\t9640.82224867\t0.237909305675332\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t125\t-0.441808918074544\t178.089407913\t0.00439476284199285\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t127\t0.769422232032552\t1076.07612804\t0.0265546358881489\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t140\t0.348604833045235\t1970.98268515\t0.0486384988777101\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t145\t0.820960207936605\t4235.84716059\t0.104529202066952\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t185\t0.31275352450403\t348.909767164\t0.00861014530796692\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t187\t-0.260474354038597\t107.324927324\t0.00264848767902871\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t197\t-0.0360245652498858\t2081.96281053\t0.0513771869161251\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t199\t0.34691746641912\t144.142693995\t0.00355705015215411\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t201\t0.095844899247823\t127.383673675\t0.00314348305328139\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t211\t0.589929547507267\t156.726169586\t0.00386757614917167\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t213\t0.214402092378455\t334.711538323\t0.00825977158690306\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t215\t0.177739314274526\t412.352368363\t0.0101757363760497\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t221\t0.950607639404665\t40523.0985871\t1\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t225\t-0.377401610724356\t503.974612244\t0.012436724480996\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t227\t0.163495046198974\t177.141063216\t0.00437136027086513\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t229\t0.602334206324447\t1013.548554406\t0.0250116252148756\tTRUE\n+"Trichlorfon (Dylox)"\t"4"\t239\t-0.216616311827602\t1313.5219316555\t0.0324141533459547\tFALSE\n+"Trichlorfon (Dylox)"\t"4"\t257\t1\t25290.7478033\t0.624106958379313\tTRUE\n'
b
diff -r 000000000000 -r 91a3242fd67f test-data/compounds_pos.txt
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/compounds_pos.txt Mon Apr 25 08:23:54 2022 +0000
b
@@ -0,0 +1,33 @@
+Compounds mz rt
+2-diethylamino-6-methyl pyrimidin-4-ol one 182.12879 345.0
+5-hydroxy-thiabendazole 218.03826 315.0
+acetamiprid-N-desmethyl 209.05885 526.2
+Acetochlor 270.12554 1158.6
+Avermectin B1a (Abamectin) 895.49221 1663.8
+Benzophenone-3 (Oxybenzone) 229.08592 1178.4
+Butocarboxim 191.0849 1267.8
+Carbendazim 192.07676 339.0
+Cefoperazone 646.1497 1755.0
+Chlorfenvinphos 358.97681 1255.8
+Chlormequat 122.0737 54.0
+Desisopropylatrazine 174.0541 399.0
+Dichlorvos 220.9532 763.2
+Dimethyldithiophosphate 158.96979 615.0
+Emamectin B1a 886.5311 1663.8
+Fluopyram 397.05369 1161.0
+Hydroxy-tebuconazole 324.14733 1098.6
+Isoproturon 207.14919 936.0
+Ivermectin B1a  897.4971 1650.0
+Malathion dicarboxilic acid 274.98075 574.8
+Methamidophos 142.0086 139.2
+Metolachlor 284.14119 1158.0
+N,N-diethyl-m-toluamide ou DEET 192.13829 945.0
+Nigericin 747.4654 1663.8
+Omethoate 214.02975 237.0
+Prochloraz 376.03809 1271.4
+p-Toluenesulfonamide 172.04323 393.0
+Rifaximin 786.3596 1183.2
+Spinosad A (Spinosyn A) 732.4681 1212.0
+TCMTB 238.9766 1032.0
+Trichlorfon (Dylox) 256.9299 444.0
+Tylosin 916.5264 909.0
b
diff -r 000000000000 -r 91a3242fd67f test-data/peaklist_fragments.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/peaklist_fragments.tsv Mon Apr 25 08:23:54 2022 +0000
b
b'@@ -0,0 +1,82885 @@\n+grpid\tpid\tprecursorScanNum\tacquisitionNum\tfileid\tmz\ti\tsnr\tra\tpurity_pass_flag\tintensity_pass_flag\tra_pass_flag\tsnr_pass_flag\tpass_flag\r\n+674\t6641\t217\t218\t3\t78.78297424\t2488.865234\t17.57342471\t55.280578\t1\t1\t1\t1\t1\r\n+674\t6641\t217\t218\t3\t79.78527069\t45.78085709\t0.323250305\t1.016845832\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t80.87423706\t6.168063164\t0.043551572\t0.136999823\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t90.00985718\t229.644455\t1.621477725\t5.100669184\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t91.03845215\t63.14574814\t0.445860642\t1.402540165\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t98.84541321\t54.14286041\t0.382292889\t1.202575606\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t103.9473572\t18.7252636\t0.13221568\t0.415909781\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t105.9158325\t3608.830811\t25.48129793\t80.15630994\t1\t1\t1\t1\t1\r\n+674\t6641\t217\t218\t3\t114.7962952\t470.7005615\t3.323531047\t10.45480436\t1\t1\t1\t1\t1\r\n+674\t6641\t217\t218\t3\t121.882019\t4502.241699\t31.7895097\t100\t1\t1\t1\t1\t1\r\n+674\t6641\t217\t218\t3\t122.5302734\t141.6266479\t1\t3.1456918\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t129.440567\t19.21914864\t0.135702913\t0.42687954\t1\t1\t1\t0\t0\r\n+674\t6641\t217\t218\t3\t130.6229553\t267.390686\t1.887996997\t5.939056672\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t60.97367096\t5.741926193\t0.067979974\t0.120178596\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t78.9395752\t3410.931152\t40.38279208\t71.39083725\t1\t1\t1\t1\t1\r\n+674\t6642\t219\t220\t3\t80.71225739\t5.307849884\t0.062840846\t0.111093373\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t89.81787109\t295.2219238\t3.495199707\t6.17899904\t1\t1\t1\t1\t1\r\n+674\t6642\t219\t220\t3\t90.54046631\t26.80272484\t0.317323574\t0.56098141\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t103.9701691\t57.85592651\t0.684969513\t1.21092536\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t105.7946014\t4777.827637\t56.56579139\t100\t1\t1\t1\t1\t1\r\n+674\t6642\t219\t220\t3\t107.8857422\t11.44941807\t0.135552273\t0.239636482\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t114.9030609\t637.2481079\t7.54452573\t13.33761191\t1\t1\t1\t1\t1\r\n+674\t6642\t219\t220\t3\t115.7755432\t27.38118553\t0.324172102\t0.5730886\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t116.9077759\t12.87425518\t0.152421244\t0.269458343\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t121.9125671\t3842.364502\t45.49062993\t80.42074336\t1\t1\t1\t1\t1\r\n+674\t6642\t219\t220\t3\t130.2539215\t111.0740051\t1.315030487\t2.324780498\t1\t1\t1\t0\t0\r\n+674\t6642\t219\t220\t3\t131.1559906\t111.1548843\t1.315988034\t2.326473301\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t78.85042572\t3714.348145\t60.97751108\t65.11129928\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t82.95483398\t5.312760353\t0.087218239\t0.093130939\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t90.0761261\t267.3632813\t4.389235152\t4.686790238\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t90.865448\t109.7655563\t1.801993288\t1.92415404\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t98.94483948\t32.13427734\t0.527540278\t0.563303295\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t100.0803223\t12.8444376\t0.210863873\t0.22515876\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t103.8864746\t35.52203751\t0.583156277\t0.622689615\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t105.8102722\t5704.61377\t93.65119687\t100\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t111.6708984\t4.019680023\t0.065990067\t0.070463667\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t114.9467773\t1072.144287\t17.60112074\t18.79433614\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t121.8620911\t4159.65625\t68.28802126\t72.91740367\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t122.5158234\t30.8330307\t0.506178042\t0.54049287\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t123.509613\t42.99916077\t0.705906312\t0.753761122\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t127.8927002\t13.94554901\t0.22894054\t0.24446088\t1\t1\t1\t0\t0\r\n+674\t6643\t221\t222\t3\t130.3204041\t247.9393768\t4.070357842\t4.346295592\t1\t1\t1\t1\t1\r\n+674\t6643\t221\t222\t3\t131.301178\t78.82765961\t1.294093688\t1.381822903\t1\t1\t1\t0\t0\r\n+674\t6644\t223\t224\t3\t78.8054657\t4055.351807\t149.9903275\t56.62260385\t1\t1\t1\t1\t1\r\n+674\t6644\t223\t224\t3\t80.09790802\t27.03742218\t1\t0.377508369\t1\t1\t1\t0\t0\r\n+674\t6644\t223\t224\t3\t88.94702148\t22.95702171\t0.849083228\t0.320536025\t1\t1\t1\t0\t0\r\n+674\t6644\t223\t224\t3\t90.02792358\t377.6908264\t13.96918774\t5.273485276\t1\t1\t1\t1\t1\r\n+674\t6644\t223\t224\t3\t90.85652161\t35.89912796\t1.327757052\t0.501239399\t1\t1\t1\t0\t0\r\n+674\t6644\t223\t224\t3\t98.82333374\t10.4601202\t0.386875647\t0.146048794\t1\t1\t1\t0\t0\r\n+674\t6644\t223\t224\t3\t99.55029297\t22.80736542\t0.8435'..b'2759618\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t432.8936768\t4.900802135\t0.321178025\t0.289789231\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t458.1157227\t12.50048542\t0.819229406\t0.739165948\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t462.6889038\t12.94361496\t0.848270258\t0.765368632\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t498.9071045\t5.773573875\t0.378375826\t0.341397079\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t517.8048096\t6.457284451\t0.423183351\t0.381825555\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t525.2749634\t19.75048637\t1.294364073\t1.167865607\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t545.036377\t60.066082\t3.936479187\t3.551766269\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t583.0689087\t27.22746468\t1.784373883\t1.609986658\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t597.0453491\t16.15425873\t1.05868239\t0.955217143\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t626.8981934\t36.65353394\t2.402118944\t2.167359367\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t648.9337158\t50.09704971\t3.283150606\t2.962287624\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t678.8939819\t10.54449177\t0.691041783\t0.623506128\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t708.9719238\t101.9753113\t6.683034369\t6.02990005\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t731.4298096\t12.53003883\t0.821166213\t0.740913471\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t735.3466187\t10.38988876\t0.68090975\t0.6143643\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t749.9609985\t36.7806778\t2.410451419\t2.174877508\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t761.3580933\t14.36340904\t0.94131761\t0.849322447\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t781.241394\t12.0398941\t0.789044182\t0.711930733\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t791.2615356\t45.27296829\t2.967000534\t2.677034964\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t813.2762451\t47.65192795\t3.122907576\t2.817705179\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t841.4017334\t6.641394138\t0.435249128\t0.392712141\t1\t1\t1\t0\t0\r\n+18503\t13188\t6178\t6180\t4\t873.3701782\t1691.160889\t110.8315944\t100\t1\t1\t1\t1\t1\r\n+18503\t13188\t6178\t6180\t4\t874.4806519\t201.051712\t13.1760863\t11.88838468\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t298.6687012\t4.458490849\t0.280528542\t0.263144503\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t367.2470093\t12.5233717\t0.787971383\t0.739141681\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t381.0299988\t28.51894569\t1.794413967\t1.683216147\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t403.0968628\t7.775469303\t0.489233048\t0.458915825\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t432.8051147\t9.129858971\t0.574451336\t0.538853231\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t478.697876\t7.721572399\t0.485841851\t0.455734777\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t544.977417\t109.481102\t6.888558247\t6.461682022\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t551.0726318\t15.89318085\t1\t0.938031122\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t567.045105\t13.74751186\t0.864994364\t0.811391634\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t625.3192139\t12.27191639\t0.772149799\t0.724300542\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t649.1747437\t52.10250092\t3.278292836\t3.075140708\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t693.0622559\t38.2448616\t2.406369245\t2.257249244\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t702.4959106\t47.69631958\t3.001055612\t2.815083564\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t709.1253052\t4.447075844\t0.279810309\t0.262470778\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t731.4125366\t12.20648289\t0.768032718\t0.720438593\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t777.2514648\t7.310063362\t0.459949675\t0.43144711\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t781.2092896\t37.07717896\t2.332898575\t2.188331469\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t787.9935913\t15.48776817\t0.974491407\t0.914103269\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t791.2363281\t71.81590271\t4.518661393\t4.238645017\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t795.3598633\t8.799161911\t0.553643855\t0.519335167\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t801.3306274\t43.88624573\t2.761325511\t2.590209268\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t813.3754272\t37.42416\t2.354730646\t2.20881063\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t826.5884399\t28.51961708\t1.794456211\t1.683255773\t1\t1\t1\t0\t0\r\n+18503\t13190\t6181\t6183\t4\t873.3881836\t1694.312744\t106.606271\t100\t1\t1\t1\t1\t1\r\n+18503\t13190\t6181\t6183\t4\t874.4369507\t28.05668449\t1.765328462\t1.655933038\t1\t1\t1\t0\t0\r\n'
b
diff -r 000000000000 -r 91a3242fd67f test-data/peaklist_precursors.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/peaklist_precursors.tsv Mon Apr 25 08:23:54 2022 +0000
b
b'@@ -0,0 +1,2737 @@\n+"grpid"\t"mz"\t"mzmin"\t"mzmax"\t"rt"\t"rtmin"\t"rtmax"\t"into"\t"intb"\t"maxo"\t"sn"\t"sample"\t"cid"\t"filename"\t"rtminCorrected"\t"rtmaxCorrected"\t"inPurity"\t"pid"\t"precurMtchID"\t"precurMtchScan"\t"precurMtchRT"\t"precurMtchMZ"\t"precurMtchPPM"\t"retentionTime"\t"fileid"\t"seqNum"\t"purity_pass_flag"\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.526099609140227\t6641\t218\t217\t64.8261\t121.993896484375\t0.140714213529811\t65.2467\t3\t218\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.619848678681211\t6642\t220\t219\t65.45110000002\t121.993927001953\t0.390870846760767\t65.8653\t3\t220\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.644526797604947\t6643\t222\t221\t66.06730000002\t121.993927001953\t0.390870846760767\t66.4824\t3\t222\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.676966047514146\t6644\t224\t223\t66.6843\t121.99388885498\t0.078175055222072\t67.0848\t3\t224\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.68608788635813\t6645\t226\t225\t67.28710000002\t121.993942260742\t0.515949163376245\t67.70029999998\t3\t226\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.684455958554202\t6646\t228\t227\t67.90180000002\t121.993850708008\t0.234520736316623\t68.3004\t3\t228\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.688216134028105\t6647\t230\t229\t68.55730000002\t121.993896484375\t0.140714213529811\t68.9097\t3\t230\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.678494133618856\t6648\t232\t231\t69.11149999998\t121.993766784668\t0.922451477701752\t69.50440000002\t3\t232\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.689255752664959\t6649\t234\t233\t69.73219999998\t121.993911743164\t0.265792530145289\t70.11580000002\t3\t234\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.690259159694382\t6650\t236\t235\t70.31740000002\t121.993774414062\t0.859912319394013\t70.71610000002\t3\t236\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.659035680748578\t6651\t238\t237\t70.91809999998\t121.99397277832\t0.766105796607201\t71.33500000002\t3\t238\tTRUE\n+"674"\t121.993879318102\t121.993766784668\t121.99397277832\t69.4840944720271\t63.56629999998\t78.89839999998\t3933750.80009461\t3933736.08127861\t395685\t395684\t3\t16484\t"HBMSPE21_024.mzML"\t62.750400858841\t78.0434285273669\t0.662906551706382\t665'..b'1469209856\t0.751950734819109\t13166\t6147\t6145\t1770.32089999998\t873.180786132812\t0.757683243938348\t1770.7449\t4\t6147\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.637591184015317\t13168\t6150\t6148\t1770.9837\t873.179992675781\t0.151014754277122\t1771.39639999998\t4\t6150\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.6503669640687\t13170\t6153\t6151\t1771.6353\t873.180114746094\t0.0112150622439731\t1772.04370000002\t4\t6153\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.884779527882909\t13172\t6156\t6154\t1772.28250000002\t873.180053710938\t0.0811149082605477\t1772.68750000002\t4\t6156\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t1\t13174\t6159\t6157\t1772.9271\t873.179931640625\t0.220914600293697\t1773.33430000002\t4\t6159\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.778237166475757\t13176\t6162\t6160\t1773.57409999998\t873.180297851562\t0.198484475805751\t1773.9828\t4\t6162\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.889118583237879\t13178\t6165\t6163\t1774.2222\t873.179870605469\t0.290814446310272\t1774.62769999998\t4\t6165\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t1\t13180\t6168\t6166\t1774.8666\t873.179321289062\t0.919913060459443\t1775.2743\t4\t6168\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.784293581118569\t13182\t6171\t6169\t1775.51320000002\t873.180297851562\t0.198484475805751\t1775.91739999998\t4\t6171\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.640434668289083\t13184\t6174\t6172\t1776.15859999998\t873.181213378906\t1.24698216605437\t1776.56419999998\t4\t6174\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t1\t13186\t6177\t6175\t1776.80350000002\t873.175964355469\t4.76440459137105\t1777.20790000002\t4\t6177\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t1\t13188\t6180\t6178\t1777.44670000002\t873.178894042969\t1.40921198257547\t1777.84939999998\t4\t6180\tTRUE\n+"18503"\t873.180124538863\t873.175964355469\t873.181213378906\t1778.9493514839\t1768.3785\t1779.38029999998\t4604805.57164452\t4604795.21700923\t1082429.25\t1082428\t4\t29474\t"HBMSPE21_078.mzML"\t1774.52021092601\t1785.21469209856\t0.715246610379728\t13190\t6183\t6181\t1778.08849999998\t873.179443359375\t0.780113368426294\t1778.49469999998\t4\t6183\tTRUE\n'