changeset 1:eaaa73b043e6 draft

planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/MALDIquant commit 0825a4ccd3ebf4ca8a298326d14f3e7b25ae8415
author galaxyp
date Mon, 01 Oct 2018 01:09:43 -0400
parents 01212bf66f61
children 17c54820f3be
files maldi_macros.xml maldi_quant_peakdetection.xml test-data/int1.tabular test-data/int2.tabular test-data/intensity_matrix3.tabular test-data/masspeaks1_forinput.tabular test-data/masspeaks2.tabular test-data/masspeaks3.tabular test-data/masspeaks3_forinput.tabular test-data/peakdetection1_QC.pdf test-data/peakdetection2_QC.pdf test-data/peakdetection3_QC.pdf
diffstat 12 files changed, 852 insertions(+), 480 deletions(-) [+]
line wrap: on
line diff
--- a/maldi_macros.xml	Wed Aug 22 11:49:29 2018 -0400
+++ b/maldi_macros.xml	Mon Oct 01 01:09:43 2018 -0400
@@ -1,20 +1,28 @@
 <macros>
     <token name="@R_IMPORTS@"><![CDATA[
-        ## Libraries
         library (Cardinal)
         library (MALDIquantForeign)
         library (MALDIquant)
         library (ggplot2)
-
+        library(gridExtra)
     ]]>
     </token>
 
+    <token name="@MADLI_QUANT_DESCRIPTION@"><![CDATA[
+MALDIquant_ provides a complete analysis pipeline for MALDI-TOF and other mass spectrometry data.
+So far we have only implemented the functionalities for mass spectrometry imaging data.
+    ]]>
+    </token>
+
+    <token name="@VERSION@">1.18.0</token>
+
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="1.10.0">bioconductor-cardinal</requirement>
             <requirement type="package" version="0.11.5">r-maldiquantforeign</requirement>
             <requirement type="package" version="1.18">r-maldiquant</requirement>
             <requirement type="package" version="2.2.1">r-ggplot2</requirement>
+            <requirement type="package" version="2.2.1">r-gridextra</requirement>
         </requirements>
     </xml>
 
--- a/maldi_quant_peakdetection.xml	Wed Aug 22 11:49:29 2018 -0400
+++ b/maldi_quant_peakdetection.xml	Mon Oct 01 01:09:43 2018 -0400
@@ -1,4 +1,4 @@
-<tool id="maldi_quant_peak_detection" name="MALDIquant peak detection" version="1.18.0.0">
+<tool id="maldi_quant_peak_detection" name="MALDIquant peak detection" version="@VERSION@.1">
     <description>
         Peak detection, binning and filtering for mass-spectrometry imaging data
     </description>
@@ -15,6 +15,8 @@
             cp '${infile.extra_files_path}/hdr' infile.hdr &&
             cp '${infile.extra_files_path}/img' infile.img &&
             cp '${infile.extra_files_path}/t2m' infile.t2m &&
+        #else
+            ln -s $infile infile.RData &&
         #end if
         Rscript '${maldi_quant_peak_detection}'&&
         mkdir $outfile_imzml.files_path &&
@@ -29,36 +31,39 @@
 
 @R_IMPORTS@
 
-summarized_spectra = FALSE
+
 
 #if $restriction_conditional.restriction == 'restrict':
 
     print('Reading mask region')
+
     ## Import imzML file
-    coordinate_matrix = as.matrix(read.delim("$restriction_conditional.coordinates_file", header = FALSE, stringsAsFactors = FALSE))[,1:2]
+    coordinate_matrix = as.matrix(read.delim("$restriction_conditional.coordinates_file", header = $restriction_conditional.coordinates_header, stringsAsFactors = FALSE))[,1:2]
 
     maldi_data <- importImzMl('infile.imzML',
                      coordinates = coordinate_matrix, centroided = $centroids)
-    pixelnames = paste0("x = ", coordinates(maldi_data)[,1],", y = ", coordinates(maldi_data)[,2])
+    pixelnames = paste("xy", coordinates(maldi_data)[,1],coordinates(maldi_data)[,2], sep="_")
+
 
 #else:
 
     print('Reading entire file')
     ## Import imzML file
 
-
     #if $infile.ext == 'imzml'
-
+        print('imzML file')
         #if str($centroids) == "TRUE"
             peaks <- importImzMl('infile.imzML', centroided = $centroids)
-            pixelnames = paste0("x = ", coordinates(peaks)[,1],", y = ", coordinates(peaks)[,2])
-
+            pixelnames = paste("xy", coordinates(maldi_data)[,1],coordinates(maldi_data)[,2], sep="_")
         #else
             maldi_data <- importImzMl('infile.imzML', centroided = $centroids)
-            pixelnames = paste0("x = ", coordinates(maldi_data)[,1],", y = ", coordinates(maldi_data)[,2])
+            pixelnames = paste("xy", coordinates(maldi_data)[,1],coordinates(maldi_data)[,2], sep="_")
         #end if
+            coordinates_info = cbind(coordinates(maldi_data)[,1:2], c(1:length(maldi_data)))
+
     #elif $infile.ext == 'tabular'
-
+        print('tabular file')
+        #set $centroids = "TRUE" ## will be used in some if conditions
         peak_tabular = read.delim("$infile", header = TRUE, stringsAsFactors = FALSE)
         peak_list = split(peak_tabular, f = peak_tabular\$spectrum) ## will be ordered according to spectrum
         pixelnames = unique(peak_tabular\$spectrum)
@@ -66,17 +71,55 @@
         peaks = list()
         for (spectra in 1:length(peak_list))
         {
-        single_peaks = createMassPeaks(peak_list[[spectra]]\$mass, peak_list[[spectra]]\$intensity, snr=peak_list[[spectra]]\$snr)
-        peaks[[spectra]] = single_peaks
+            single_peaks = createMassPeaks(peak_list[[spectra]]\$mass, peak_list[[spectra]]\$intensity, snr=peak_list[[spectra]]\$snr)
+            peaks[[spectra]] = single_peaks
         }
 
+    #else
+        print('rdata file')
+        loadRData <- function(fileName){
+        #loads an RData file, and returns it
+        load(fileName)
+        get(ls()[ls() != "fileName"])
+        }
+        msidata = loadRData('infile.RData')
+        centroided(msidata) = $centroids
+        pixelnames = gsub(", y = ", "_", names(Cardinal::pixels(msidata)))
+        pixelnames = gsub(" = ", "y_", pixelnames)
+
+        cardinal_coordinates = as.matrix(Cardinal::coord(msidata)[,1:2])
+
+        if (centroided(msidata) == FALSE){
+            ## create mass spectrum object
+            cardinal_mzs = Cardinal::mz(msidata)
+            maldi_data = list()
+            for(number_spectra in 1:ncol(msidata)){
+                maldi_data[[number_spectra]] = createMassSpectrum(mass = cardinal_mzs, intensity = iData(msidata)[,number_spectra])
+                coordinates_info = cbind(cardinal_coordinates, c(1:length(maldi_data)))}
+            coordinates_info = cbind(cardinal_coordinates, c(1:length(maldi_data)))
+        }else{
+            peaks = list()
+            for (spectra in 1:ncol(msidata))
+            {
+                single_peaks = createMassPeaks(Cardinal::mz(msidata), Cardinal::spectra(msidata)[,spectra], snr=as.numeric(rep("NA", nrow(msidata))))
+                peaks[[spectra]] = single_peaks
+            }}
     #end if
+#end if
 
 
-#end if
+
+
+
+
+
+
+
+
+## default summarized = FALSE
+summarized_spectra = FALSE
 
 ## Quality control plots during peak detection
-
 pdf("peaks_qc_plot.pdf", fonts = "Times", pointsize = 12)
 plot(0,type='n',axes=FALSE,ann=FALSE)
 
@@ -86,19 +129,42 @@
 title(main=paste("$filename"))
 
 ## plot input file spectrum: 
-#if $infile.ext == 'imzml'
-
-    #if str($centroids) == "TRUE"
-            plot(peaks[[1]], main="First spectrum of input file")
-    #else
-        avgSpectra <- averageMassSpectra(maldi_data,method="mean")
-        plot(avgSpectra, main="Average spectrum of input file")
-    #end if
-#elif $infile.ext == 'tabular'
-    plot(peaks[[1]], main="First spectrum of input file")
+#if str($centroids) == "TRUE"
+        plot(peaks[[1]], main="First spectrum of input file")
+#else
+    avgSpectra <- averageMassSpectra(maldi_data,method="mean")
+    plot(avgSpectra, main="Average spectrum of input file")
 #end if
 
 
+
+
+
+
+
+
+
+## QC numbers for input file
+#if str($centroids) == "TRUE"
+    pixel_number = length(peaks)
+    minmz = round(min(unlist(lapply(peaks,mass))), digits=4)
+    maxmz = round(max(unlist(lapply(peaks,mass))), digits=4)
+    maxfeatures = round(length(unlist(lapply(peaks,mass)))/length(peaks), digits=2)
+    medint = round(median(unlist(lapply(peaks,intensity))), digits=2)
+    inputdata = c(minmz, maxmz,maxfeatures,  medint)
+    QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, medint))
+    vectorofactions = "inputdata"
+#else
+    pixel_number = length(maldi_data)
+    minmz = round(min(unlist(lapply(maldi_data,mass))), digits=4)
+    maxmz = round(max(unlist(lapply(maldi_data,mass))), digits=4)
+    maxfeatures = round(length(unlist(lapply(maldi_data,mass)))/length(maldi_data), digits=2)
+    medint = round(median(unlist(lapply(maldi_data,intensity))), digits=2)
+    inputdata = c(minmz, maxmz,maxfeatures,  medint)
+    QC_numbers= data.frame(inputdata = c(minmz, maxmz,maxfeatures, medint))
+    vectorofactions = "inputdata"
+#end if
+
 #if str($tabular_annotation.load_annotation) == 'yes_annotation':
 
     ## read and extract x,y,annotation information
@@ -107,10 +173,8 @@
     colnames(annotation_input) = c("x", "y", "annotation") ## rename annotations header to default name "annotation"
 
     ## merge with coordinate information of MSI data
-
-    coordinates_st = cbind(coordinates(maldi_data)[,1:2], c(1:length(maldi_data)))
-    colnames(coordinates_st)[3] = "pixel_index"
-    merged_annotation = merge(coordinates_st, annotation_input, by=c("x", "y"), all.x=TRUE)
+    colnames(coordinates_info)[3] = "pixel_index"
+    merged_annotation = merge(coordinates_info, annotation_input, by=c("x", "y"), all.x=TRUE)
     merged_annotation[is.na(merged_annotation)] = "NA"
     merged_annotation = merged_annotation[order(merged_annotation\$pixel_index),]
     samples = as.factor(merged_annotation\$annotation)
@@ -151,14 +215,13 @@
 
 #for $method in $methods:
 
-
     #if str( $method.methods_conditional.method ) == 'Peak_detection':
         print('peak detection')
         ##peak detection
 
         #if $method.methods_conditional.use_annotations:
             maldi_data <- averageMassSpectra(maldi_data, labels=samples,method="mean") ## use average spectra for peak picking
-            pixelnames = merged_annotation\$annotation
+            pixelnames = levels(samples)
             summarized_spectra = TRUE
 
         #end if
@@ -166,8 +229,16 @@
         peaks <- detectPeaks(maldi_data, method="$method.methods_conditional.peak_method",
                   halfWindowSize=$method.methods_conditional.halfWindowSize,SNR=$method.methods_conditional.snr)
 
-        ## QC plot
+        ## QC plot and numbers
         plot(peaks[[1]], main="First spectrum after peak detection")
+        pixel_number = length(peaks)
+        minmz = round(min(unlist(lapply(peaks,mass))), digits=4)
+        maxmz = round(max(unlist(lapply(peaks,mass))), digits=4)
+        maxfeatures = round(length(unlist(lapply(peaks,mass)))/length(peaks), digits=2)
+        medint = round(median(unlist(lapply(peaks,intensity))), digits=2)
+        peaks_picked = c(minmz, maxmz,maxfeatures, medint)
+        QC_numbers= cbind(QC_numbers, peaks_picked)
+        vectorofactions = append(vectorofactions, "peaks_picked")
 
         if (length(peaks[!sapply(peaks, isEmpty)])>0){
             #if $infile.ext == 'imzml'
@@ -178,7 +249,7 @@
                 featureMatrix <- intensityMatrix(peaks)
             #end if
             featureMatrix2 =cbind(pixelnames, featureMatrix)
-            colnames(featureMatrix2)[1] = c("mz | spectra")
+            colnames(featureMatrix2)[1] = c("mz")
             featureMatrix2 = t(featureMatrix2)
             write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
         }else{print("There are no spectra with peaks left")}
@@ -191,8 +262,15 @@
 
         peaks = monoisotopicPeaks(peaks, minCor=$method.methods_conditional.minCor, tolerance=$method.methods_conditional.tolerance, distance=$method.methods_conditional.distance, size=$method.methods_conditional.size)
 
-        ## QC plot
+        ## QC plot and numbers
         plot(peaks[[1]], main="First spectrum after monoisotopic peaks detection")
+        minmz = round(min(unlist(lapply(peaks,mass))), digits=4)
+        maxmz = round(max(unlist(lapply(peaks,mass))), digits=4)
+        maxfeatures = round(length(unlist(lapply(peaks,mass)))/length(peaks), digits=2)
+        medint = round(median(unlist(lapply(peaks,intensity))), digits=2)
+        monoisotopes = c(minmz, maxmz,maxfeatures, medint)
+        QC_numbers= cbind(QC_numbers, monoisotopes)
+        vectorofactions = append(vectorofactions, "monoisotopes")
 
         if (length(peaks[!sapply(peaks, isEmpty)])>0){
             #if $infile.ext == 'imzml'
@@ -203,7 +281,7 @@
                 featureMatrix <- intensityMatrix(peaks)
             #end if
             featureMatrix2 =cbind(pixelnames, featureMatrix)
-            colnames(featureMatrix2)[1] = c("mz | spectra")
+            colnames(featureMatrix2)[1] = c("mz")
             featureMatrix2 = t(featureMatrix2)
             write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
         }else{print("There are no spectra with peaks left")}
@@ -214,8 +292,16 @@
         ##m/z binning
 
         peaks <- binPeaks(peaks, tolerance=$method.methods_conditional.bin_tolerance)
-        ## QC plot
+
+        ## QC plot and numbers
         plot(peaks[[1]], main="First spectrum after binning")
+        minmz = round(min(unlist(lapply(peaks,mass))), digits=4)
+        maxmz = round(max(unlist(lapply(peaks,mass))), digits=4)
+        maxfeatures = round(length(unlist(lapply(peaks,mass)))/length(peaks), digits=2)
+        medint =round( median(unlist(lapply(peaks,intensity))), digits=2)
+        binned = c(minmz, maxmz,maxfeatures, medint)
+        QC_numbers= cbind(QC_numbers, binned)
+        vectorofactions = append(vectorofactions, "binned")
 
         if (length(peaks[!sapply(peaks, isEmpty)])>0){
             #if $infile.ext == 'imzml'
@@ -229,7 +315,7 @@
                 featureMatrix <- intensityMatrix(peaks)
             #end if
             featureMatrix2 =cbind(pixelnames, featureMatrix)
-            colnames(featureMatrix2)[1] = c("mz | spectra")
+            colnames(featureMatrix2)[1] = c("mz")
             featureMatrix2 = t(featureMatrix2)
             write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
         }else{print("There are no spectra with peaks left")}
@@ -256,8 +342,15 @@
             mergeWhitelists=$method.methods_conditional.mergeWhitelists, label = samples)
         #end if
 
-        ##QC plot
+        ##QC plot and numbers
         plot(peaks[[1]], main="First spectrum after m/z filtering")
+        minmz = round(min(unlist(lapply(peaks,mass))), digits=4)
+        maxmz = round(max(unlist(lapply(peaks,mass))), digits=4)
+        maxfeatures = round(length(unlist(lapply(peaks,mass)))/length(peaks), digits=2)
+        medint = round(median(unlist(lapply(peaks,intensity))), digits=2)
+        filtered = c(minmz, maxmz,maxfeatures, medint)
+        QC_numbers= cbind(QC_numbers, filtered)
+        vectorofactions = append(vectorofactions, "filtered")
   
         if (length(peaks[!sapply(peaks, isEmpty)])>0){
             #if $infile.ext == 'imzml'
@@ -268,58 +361,67 @@
                 featureMatrix <- intensityMatrix(peaks)
             #end if
             featureMatrix2 =cbind(pixelnames, featureMatrix)
-            colnames(featureMatrix2)[1] = c("mz | spectra")
+            colnames(featureMatrix2)[1] = c("mz")
             featureMatrix2 = t(featureMatrix2)
+        }else{print("There are no spectra with peaks left")
+              featureMatrix2 = matrix(0, ncol=1, nrow=1)}
             write.table(featureMatrix2, file="$intensity_matrix", quote = FALSE, row.names = TRUE, col.names=FALSE, sep = "\t")
-        }else{print("There are no spectra with peaks left")}
-
     #end if
 #end for
 
-        if (length(peaks[!sapply(peaks, isEmpty)])>0){
-           ## mass peaks output
-            mass_peaks = data.frame(matrix(,ncol=3, nrow=0))
-            for (spectrum in 1:length(peaks)){
-            spectrum_df = data.frame(peaks[[spectrum]]@snr, peaks[[spectrum]]@mass, peaks[[spectrum]]@intensity)
-            spectrum_df\$spectrum_id = rep(pixelnames[[spectrum]], length(peaks[[spectrum]]@mass))
-            mass_peaks = rbind(mass_peaks,spectrum_df)
-            }
-            colnames(mass_peaks) = c("snr", "mass", "intensity", "spectrum")
-            write.table(mass_peaks, file="$masspeaks", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t")
-        }else{print("There are no spectra with peaks left")}
+if (length(peaks[!sapply(peaks, isEmpty)])>0){
+   ## mass peaks output
+    mass_peaks = data.frame(matrix(,ncol=3, nrow=0))
+    for (spectrum in 1:length(peaks)){
+    spectrum_df = data.frame(peaks[[spectrum]]@snr, peaks[[spectrum]]@mass, peaks[[spectrum]]@intensity)
+    spectrum_df\$spectrum_id = rep(pixelnames[[spectrum]], length(peaks[[spectrum]]@mass))
+    mass_peaks = rbind(mass_peaks,spectrum_df)
+    }
+    colnames(mass_peaks) = c("snr", "mass", "intensity", "spectrum")
+    write.table(mass_peaks, file="$masspeaks", quote = FALSE, row.names = FALSE, col.names=TRUE, sep = "\t")
+}else{print("There are no spectra with peaks left")}
+
+## print table with QC values
+rownames(QC_numbers) = c("min m/z", "max mz", "# features", "median\nintensity")
+plot(0,type='n',axes=FALSE,ann=FALSE)
+grid.table(t(QC_numbers))
 
 dev.off()
 
 if (summarized_spectra == FALSE){ 
     #if $infile.ext == 'imzml'
-        exportImzMl(peaks, file="out.imzMl", processed=$export_processed)
+        MALDIquantForeign::exportImzMl(peaks, file="out.imzMl", processed=$export_processed)
     #elif $infile.ext == 'tabular'
-        masspeaks_coordinates = matrix(unlist(strsplit(as.character(pixelnames), "\\,")), ncol=2, byrow=TRUE)
+        masspeaks_coordinates = matrix(unlist(strsplit(as.character(pixelnames), "\\_")), ncol=3, byrow=TRUE)
         ## extract x and y values and create the coordinate matrix in case tabular was input
-        peaklist_coordinates = unique(cbind(as.numeric(substring(masspeaks_coordinates[,1], 5, last = 1000000L)), as.numeric(substring(masspeaks_coordinates[,2], 5, last = 1000000L))))
+        peaklist_coordinates = unique(cbind(as.numeric(masspeaks_coordinates[,2]), as.numeric(masspeaks_coordinates[,3])))
         exportImzMl(peaks, file="out.imzMl", processed=$export_processed, coordinates=peaklist_coordinates)
+    #elif $infile.ext == 'rdata'
+        MALDIquantForeign::exportImzMl(peaks, file="out.imzMl", processed=$export_processed, coordinates=cardinal_coordinates)
     #end if
+
 }
 
     ]]>
         </configfile>
     </configfiles>
     <inputs>
-        <param name="infile" type="data" format="imzml,tabular" label="MS metadata" help="This file is in imzML or tabular format (peak list, peak detection cannot be run again)"/>
-        <param name="centroids" type="boolean" label="Is the imzML data centroided (picked)" help="Choose Yes if peak detection has already been done. Peak detection cannot be run again on centroided data" truevalue="TRUE" falsevalue="FALSE"/>
+        <param name="infile" type="data" format="imzml,tabular,rdata" label="Inputfile as imzML or Cardinal MSImageSet saved as RData" help="This file is in imzML or tabular format (peak list, peak detection cannot be run again) or Cardinal MSImageSet saved as RData"/>
+        <param name="centroids" type="boolean" label="Is the imzML/RData data centroided (picked)" help="Choose Yes if peak detection has already been done. Peak detection cannot be run again on centroided data" truevalue="TRUE" falsevalue="FALSE"/>
         <conditional name="restriction_conditional">
-            <param name="restriction" type="select" label="Restrict the preprocessing to coordinates of interest">
+            <param name="restriction" type="select" label="Read in only spectra of interest" help="This option only works for imzML files">
                 <option value="no_restriction" selected="True">Calculate on entire file</option>
                 <option value="restrict">Restrict to coordinates of interest</option>
             </param>
             <when value="restrict">
-                <param name="coordinates_file" type="data" format="tabular" label="Tabular file with coordinates which should be read" help="x-values in first column, y-values in second column"/>
+                <param name="coordinates_file" type="data" format="tabular" label="Tabular file with coordinates" help="x-values in first column, y-values in second column"/>
+                <param name="coordinates_header" type="boolean" label="Tabular file contains a header line" truevalue="TRUE" falsevalue="FALSE"/>
             </when>
             <when value="no_restriction"/>
         </conditional>
 
         <conditional name="tabular_annotation">
-            <param name="load_annotation" type="select" label="Use pixel annotation from tabular file - select in peak detection or filtering step where you want to apply the annotation information">
+            <param name="load_annotation" type="select" label="Use pixel annotation from tabular file - select in peak detection or filtering step where annotation should be used">
                 <option value="no_annotation" selected="True">pixels belong into one group only</option>
                 <option value="yes_annotation">use pixel annotation from a tabular file</option>
             </param>
@@ -335,7 +437,7 @@
         </conditional>
         <repeat name="methods" title="Method" min="1">
             <conditional name="methods_conditional">
-                <param name="method" type="select" label="Select the method you want to apply">
+                <param name="method" type="select" label="Select a method">
                     <option value="Peak_detection">Peak detection</option>
                     <option value="monoisotopic_peaks">Keep only monoisotopic peaks</option>
                     <option value="Binning">Binning</option>
@@ -369,9 +471,9 @@
                 </when>
                 <when value="Filtering">
                     <param name="minFrequency" type="float" value="0.25"
-                        label="Remove all peaks which occur in less than minFrequency spectra" help="It is a relative threshold."/>
+                        label="Removal of all peaks which occur in less than minFrequency spectra" help="It is a relative threshold. The higher value from relative and absolute threshold is taken. Set one value to zero to be sure it will not be sure."/>
                     <param name="minNumber" type="float" value="1.0"
-                        label="remove all peaks which occur in less than minNumber spectra" help="It is an absolute threshold."/>
+                        label="Removal of all peaks which occur in less than minNumber spectra" help="It is an absolute threshold. The higher value from relative and absolute threshold is taken. Set one value to zero to be sure it will not be sure."/>
                     <param name="filter_annot_groups" type="boolean" label="Group wise filtering with pixel annotations. If not specified a single group is assumed or when filtering has been done group wise it will automatically be group wise when selecting filtering on all pixel" truevalue="TRUE" falsevalue="FALSE"/>
                     <param name="mergeWhitelists" type="boolean" truevalue="TRUE" falsevalue="FALSE"
                         label="mergeWhitelists" help="if FALSE the filtering criteria are applied groupwise. If TRUE peaks that survive the filtering in one group (level of labels) these peaks are also kept in other groups even if their frequencies are below minFrequency"/>
@@ -381,7 +483,7 @@
         <param name="export_processed" type="boolean" label="Export file as processed imzML" help="otherwise continuous imzML will be exported" checked="true" truevalue="TRUE" falsevalue="FALSE"/>
     </inputs>
     <outputs>
-        <data format="imzml" name="outfile_imzml" label="$infile.display_name peaks" />
+        <data format="imzml" name="outfile_imzml" label="$infile.display_name peaks"/>
         <data format="pdf" name="plots" from_work_dir="peaks_qc_plot.pdf" label = "$infile.display_name peakdetection QC"/>
         <data format="tabular" name="masspeaks" label="$infile.display_name mass_peaks"/>
         <data format="tabular" name="intensity_matrix" label="intensity_matrix"/>
@@ -414,13 +516,11 @@
             <output name="intensity_matrix" file="int1.tabular"/>
         </test>
         <test>
-            <param name="infile" value="masspeaks1_forinput.tabular"/>
+            <param name="infile" value="masspeaks3_forinput.tabular"/>
             <param name="centroids" value="TRUE"/>
              <repeat name="methods">
                 <conditional name="methods_conditional">
                 <param name="method" value="monoisotopic_peaks"/>
-                <param name="minCor" value="0.60"/>
-                <param name="tolerance" value="0.0001"/>
             </conditional>
             </repeat>
             <output name="plots" file="peakdetection2_QC.pdf" compare="sim_size"/>
@@ -457,7 +557,6 @@
             <repeat name="methods">
                 <conditional name="methods_conditional">
                     <param name="method" value="Filtering"/>
-                    <param name="bin_tolerance" value="0.01"/>
                     <param name="minFrequency" value="0.5"/>
                     <param name="minNumber" value="3"/>
                     <param name="filter_annot_groups" value="TRUE"/>
@@ -472,30 +571,66 @@
     <help>
         <![CDATA[
 
-MALDIquant_ provides a complete analysis pipeline for MALDI-TOF and other mass spectrometry data. So far we have only implemented the functionalities for mass spectrometry imaging data.
+@MADLI_QUANT_DESCRIPTION@
+
+-----
 
-Input data: 
+**Input data**
+
+- MSI data: 3 types of input data can be used:
 
-- MSI data as imzML or file (upload via the "composite" function) `Introduction to the imzml format <https://ms-imaging.org/wp/imzml/>`_
-- or MSI data as peak list (tabular file) with the columns named "snr", "mass", "intensity" and "spectrum". To obtain a valid imzML output file spectrum should contain the pixel coordinates in the format: "x = 1, y = 1"
-- optinal tabular file with pixel coordinates to restrict reading of imzML file to coordinates of interest
-- optional tabular file with pixel annotations. The annotations can be used to summarize pixels of an imzML file which belong to the same group and detect peaks on average spectra, further steps will be done on average spectra as well and average spectra are exported. If this option was not chosen the filtering tool can use the annotations to filter for peaks within pixel groups (select "Group wise filtering")
+    - imzml file (upload imzml and ibd file via the "composite" function) `Introduction to the imzml format <https://ms-imaging.org/wp/imzml/>`_
+    - Cardinal "MSImageSet" data saved as .RData
+    - MSI data as peak list (tabular file) with the columns named "snr", "mass", "intensity" and "spectrum". The spectrum has to be in the following format: xy_1_1 (for pixel coordinates x1y1). The header must have exactly the four column names.
+
+        ::    
+        
+            snr          mass      intensity   spectrum
+            5.34	304.16     0.10         xy_1_1
+            12.09	305        0.2          xy_1_1
+            6.80	306.25     0.133        xy_1_1
+            ...
+            ...    
 
 
-Options:
+- Optional:  Tabular file with pixel coordinates to restrict reading of imzML files to coordinates of interest. The file has to contain x values in the first column and y values in the second columns. Further columns are allowed. Tabular files with any header name or no header at all are supported. 
+
+    ::
+
+       x_coord     y_coord 
+         1            1    
+         2            1    
+         3            1    
+        ...
+        ...
+
+
+- Optional: Tabular file(s) containing pixel coordinates and annotation. X and y values in separate columns and the corresponding annotation in a third column. Tabular files with any header name or no header at all are supported. The annotations can be used to summarize pixels of an imzML file which belong to the same group and detect peaks on average spectra, further steps will be done on average spectra as well and average spectra are exported. If this option was not chosen the filtering tool can use the annotations to filter for peaks within pixel groups (select "Group wise filtering").
 
-- Peak detection: detection of peaks, only possible with imzML input
+    ::
+
+     x_coord     y_coord    annotation
+        1            1        healthy
+        2            1        healthy
+        3            1        disease
+       ...
+       ...
+
+
+**Options**
+
+- Peak detection: detection of peaks, only possible with profile mode input
 - Monoisotopic peaks: detection of monoisotopic peaks
-- Peak binning: After the alignment the peak positions (mass) are very similar but not identical. The binning is needed to make similar peak mass values identical.
+- Peak binning: After the alignment the peak positions (m/z) are very similar but not identical. The binning is needed to make similar peak m/z values identical.
 - Peak filtering: Removal of less frequent peaks (either with a minimum ratio or with an absolute minimum number of spectra in which the peak has to occur)
 
 
-Output: 
+**Output**
 
-- centroided processed or continuous imzML file
-- pdf with mass spectra after each preprocessing step
+- centroided imzML file (processed or continuous), except for peak picking on the average of multiple spectra
+- pdf with mass spectra plots after each preprocessing step
 - peak list (tabular file) with the columns "snr", "mass", "intensity" and "spectrum"
-- tabular file with intensity matrix (m/z in rows and spectra in columns). If the input file was imzML in profile mode the intensities before peak picking are also stored in the matrix . For all other inputs not picked values are set to NA. 
+- tabular file with intensity matrix (m/z in rows and spectra in columns). If the input file was imzML in profile mode the intensities before peak picking are also stored in the matrix . For all other inputs not picked values are set to NA. For peak picking on the average of multiple spectra, each spectra group is a column with mean intensities for each m/z
 
 .. _MALDIquant: http://strimmerlab.org/software/maldiquant/
 
--- a/test-data/int1.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ b/test-data/int1.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -1,4 +1,4 @@
-mz | spectra	col1	col2	col3
+mz	col1	col2	col3
 300.083343505859	0	0.0878976186116536	0
 304	9.438736829163e-11	0.137228806813558	0.203098436196645
 304.166687011719	0.104457606871923	0.0169352528949116	0.00765286510187286
--- a/test-data/int2.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ b/test-data/int2.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -0,0 +1,10 @@
+mz	xy_1_1	xy_2_1	xy_3_1	xy_1_2	xy_2_2	xy_3_2	xy_1_3	xy_2_3	xy_3_3
+308.266668701172	NA	NA	NA	0.399492412805557	2.67954346782062e-05	0.630028009414673	NA	NA	NA
+329.152786254883	2.47849035263062	1.6380660533905	0.519839584827423	NA	NA	NA	NA	NA	NA
+329.697925567627	NA	NA	NA	NA	2.56914954661625e-05	NA	4.62229545519222e-05	NA	6.18351987213828e-05
+343.642865862165	NA	0.662226140499115	NA	NA	NA	NA	NA	NA	NA
+344.611124674479	0.638258039951324	NA	NA	NA	NA	NA	NA	NA	NA
+366.562515258789	NA	2.64647725956024e-09	2.61009136011126e-05	NA	NA	NA	NA	NA	NA
+367.645835876465	0.235070616006851	NA	NA	NA	NA	NA	NA	NA	NA
+387.850006103516	NA	NA	NA	NA	NA	NA	2.8698808819172e-05	0.197833687067032	4.42154814663809e-05
+394.791679382324	NA	NA	NA	NA	NA	NA	NA	1.05953142589779e-21	0.310508847236633
--- a/test-data/intensity_matrix3.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ b/test-data/intensity_matrix3.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -1,4 +1,4 @@
-mz | spectra	x = 1, y = 1	x = 2, y = 1	x = 3, y = 1	x = 1, y = 2	x = 2, y = 2	x = 3, y = 2	x = 1, y = 3	x = 2, y = 3	x = 3, y = 3
+mz	xy_1_1	xy_2_1	xy_3_1	xy_1_2	xy_2_2	xy_3_2	xy_1_3	xy_2_3	xy_3_3
 304.595254080636	1.76512676262064e-05	0	0.327420804051165	1.17177887401856e-13	2.65423709869989e-05	0	0.279548346996307	0.256212419994475	0.226718190873036
 305.119057791574	1.62699820283052e-09	0	1.36897748140363e-05	5.69736818276873e-18	1.71781823336396e-09	0	0.716848015785217	1.44706262158933e-05	9.11607707771881e-06
 305.66667175293	1.02237303638199e-13	0	0	5.6757509669499e-22	1.38465480219223e-13	0	6.01442479819525e-05	0.104363307437671	0
--- a/test-data/masspeaks1_forinput.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-snr	mass	intensity	spectrum
-5.34196717869329	304.166687011719	0.104457606871923	x = 1, y = 1
-12.0922480027988	305	0.238949338595072	x = 1, y = 1
-6.80380283473404	306.25	0.133792817751516	x = 1, y = 1
-11.9239943102966	306.666687011719	0.232789536317284	x = 1, y = 1
-16.7672721943661	306.916687011719	0.322907487551371	x = 1, y = 1
-14.5727405573344	315.916687011719	0.134740673005581	x = 1, y = 1
-12.6587975530526	316.25	0.117780188719432	x = 1, y = 1
-15.5891513371263	320.916687011719	0.0873032609621684	x = 1, y = 1
-8.28066653191209	322.75	0.107258200645447	x = 1, y = 1
-8.64305080588796	327.083343505859	0.593451981743177	x = 1, y = 1
-22.5976205263238	329	1.80600585540136	x = 1, y = 1
-6.62986417925206	343.083343505859	0.319934318463008	x = 1, y = 1
-5.76872573536526	343.75	0.314895849686906	x = 1, y = 1
-7.23012875909998	344	0.41009783744812	x = 1, y = 1
-12.5923211364761	345	0.777459700902303	x = 1, y = 1
-5.61154187261139	346.083343505859	0.311080597071943	x = 1, y = 1
-11.6128628366043	353.083343505859	0.0853602389494578	x = 1, y = 1
-8.93926402677033	355.166687011719	0.093819797039032	x = 1, y = 1
-11.4518402499656	355.916687011719	0.124494592348735	x = 1, y = 1
-12.2687590055812	356.916687011719	0.131409923235575	x = 1, y = 1
-17.1598526473503	360.916687011719	0.159461249907811	x = 1, y = 1
-19.5606964350667	364.333343505859	0.279228508472443	x = 1, y = 1
-13.4363791597757	365.583343505859	0.189359684795294	x = 1, y = 1
-7.2659142337533	366.083343505859	0.0986319063122271	x = 1, y = 1
-6.78882554537553	367.583343505859	0.0783568720022837	x = 1, y = 1
-19.2913990161673	370.083343505859	0.149130453666051	x = 1, y = 1
-22.9258781818056	374.5	0.10046042005221	x = 1, y = 1
-32.553974512381	395.916687011719	0.170605540275574	x = 1, y = 1
-20.0044568991975	397.083343505859	0.0962067842483521	x = 1, y = 1
-52.5251008144488	398.75	0.214157521724701	x = 1, y = 1
-6.53932310180994	300.083343505859	0.0878976186116536	x = 2, y = 1
-8.1332053348611	304	0.137228806813558	x = 2, y = 1
-8.87376047659255	304.666687011719	0.15201666439801	x = 2, y = 1
-9.0031548908286	305.75	0.155222187439613	x = 2, y = 1
-12.1483037475036	305.916687011719	0.20923868753016	x = 2, y = 1
-5.50393277232579	306.916687011719	0.0935481031580518	x = 2, y = 1
-8.92694410124806	307.083343505859	0.151374835480731	x = 2, y = 1
-8.53366295883023	307.75	0.14276859164238	x = 2, y = 1
-20.8363523568967	308.25	0.34317347407341	x = 2, y = 1
-9.03952553159105	311.5	0.126103460788727	x = 2, y = 1
-9.21792692425819	313.166687011719	0.11177615324661	x = 2, y = 1
-10.2836388640006	314	0.114434331655502	x = 2, y = 1
-14.5366950159814	315.833343505859	0.110506186882656	x = 2, y = 1
-29.6030745455647	321.25	0.0977287689844767	x = 2, y = 1
-5.12133326721085	327.916687011719	0.406224122348552	x = 2, y = 1
-18.2260181460723	328.916687011719	1.60846790671349	x = 2, y = 1
-6.71691695849357	339.416687011719	0.214046796162923	x = 2, y = 1
-5.42044735697872	343.916687011719	0.369042471672098	x = 2, y = 1
-9.90109899068147	344.916687011719	0.751941124598185	x = 2, y = 1
-5.7761050136785	346	0.407967170079549	x = 2, y = 1
-9.53380778579935	350.083343505859	0.103204836448034	x = 2, y = 1
-22.3739163562105	357.333343505859	0.132146000862122	x = 2, y = 1
-17.1123310736305	359.916687011719	0.0798314611117045	x = 2, y = 1
-21.5296474065392	365.833343505859	0.247531970342	x = 2, y = 1
-17.6598326813686	367.916687011719	0.225095887978872	x = 2, y = 1
-14.4139559364593	369.083343505859	0.167913814385732	x = 2, y = 1
-13.4612234580055	370.416687011719	0.129989445209503	x = 2, y = 1
-10.0270809962262	376	0.0839582482973735	x = 2, y = 1
-13.7957864133576	378.75	0.090022732814153	x = 2, y = 1
-21.7167106106545	382.583343505859	0.111637224753698	x = 2, y = 1
-37.803872450968	383.166687011719	0.194509585698446	x = 2, y = 1
-19.3443105357995	386.75	0.0984363655249278	x = 2, y = 1
-40.2946953152003	393.583343505859	0.136588126420975	x = 2, y = 1
-10.9042784289401	304	0.203098436196645	x = 3, y = 1
-14.2536155186416	304.666687011719	0.269343495368958	x = 3, y = 1
-9.73428286587393	305.916687011719	0.186377684291186	x = 3, y = 1
-25.326392266369	307.166687011719	0.48292171999357	x = 3, y = 1
-5.77081370276002	308	0.107646773258845	x = 3, y = 1
-9.71607704287468	309.833343505859	0.161644687255224	x = 3, y = 1
-12.3286648153297	314.75	0.168087442715963	x = 3, y = 1
-10.0188114825306	314.916687011719	0.136831253767014	x = 3, y = 1
-9.98544088935621	318.083343505859	0.131532917420069	x = 3, y = 1
-15.9567928309838	318.416687011719	0.202652255694071	x = 3, y = 1
-5.45721434599321	326.916687011719	0.25384642680486	x = 3, y = 1
-6.94450239587698	328	0.340036729971568	x = 3, y = 1
-26.3506501037786	328.916687011719	1.28705859184265	x = 3, y = 1
-21.9755116973922	329.083343505859	1.05529999732971	x = 3, y = 1
-6.26698769334215	342.333343505859	0.19008461634318	x = 3, y = 1
-7.40453698942461	343.916687011719	0.2857492963473	x = 3, y = 1
-5.47629632143471	344.333343505859	0.225824773311615	x = 3, y = 1
-24.2489760518392	345.083343505859	1.09834182262421	x = 3, y = 1
-7.55360848799134	346	0.326915502548218	x = 3, y = 1
-31.8141872712877	355.333343505859	0.218277891476949	x = 3, y = 1
-28.500421447754	359.916687011719	0.0977983176708221	x = 3, y = 1
-35.9263674883478	370.333343505859	0.318489452203115	x = 3, y = 1
-17.9023349585808	376.833343505859	0.119955976804097	x = 3, y = 1
-14.165837350632	379.5	0.138252675533295	x = 3, y = 1
-6.1026956808649	380.75	0.063951442639033	x = 3, y = 1
-6.66805606030542	386.666687011719	0.0939600268999736	x = 3, y = 1
-10.4761700777795	387	0.148616979519526	x = 3, y = 1
-14.9996173987781	387.166687011719	0.213376681009928	x = 3, y = 1
-9.49389038421466	387.5	0.135613699754079	x = 3, y = 1
-6.40597511255643	390.166687011719	0.0942935446898143	x = 3, y = 1
-6.91093965563744	391.083343505859	0.103488087654114	x = 3, y = 1
-12.1864531063779	392	0.184977193673452	x = 3, y = 1
-17.1091639921622	392.833343505859	0.264233609040578	x = 3, y = 1
-6.41767571506743	394.833343505859	0.103502949078878	x = 3, y = 1
-8.23619853479686	398.166687011719	0.142847468455633	x = 3, y = 1
--- a/test-data/masspeaks2.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ b/test-data/masspeaks2.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -0,0 +1,20 @@
+snr	mass	intensity	spectrum
+Inf	329.152786254883	2.47849035263062	xy_1_1
+Inf	344.611124674479	0.638258039951324	xy_1_1
+Inf	367.645835876465	0.235070616006851	xy_1_1
+Inf	329.152786254883	1.6380660533905	xy_2_1
+Inf	343.642865862165	0.662226140499115	xy_2_1
+Inf	366.562515258789	2.64647725956024e-09	xy_2_1
+Inf	329.152786254883	0.519839584827423	xy_3_1
+Inf	366.562515258789	2.61009136011126e-05	xy_3_1
+Inf	308.266668701172	0.399492412805557	xy_1_2
+Inf	308.266668701172	2.67954346782062e-05	xy_2_2
+Inf	329.697925567627	2.56914954661625e-05	xy_2_2
+Inf	308.266668701172	0.630028009414673	xy_3_2
+Inf	329.697925567627	4.62229545519222e-05	xy_1_3
+Inf	387.850006103516	2.8698808819172e-05	xy_1_3
+Inf	387.850006103516	0.197833687067032	xy_2_3
+Inf	394.791679382324	1.05953142589779e-21	xy_2_3
+Inf	329.697925567627	6.18351987213828e-05	xy_3_3
+Inf	387.850006103516	4.42154814663809e-05	xy_3_3
+Inf	394.791679382324	0.310508847236633	xy_3_3
--- a/test-data/masspeaks3.tabular	Wed Aug 22 11:49:29 2018 -0400
+++ b/test-data/masspeaks3.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -1,298 +1,298 @@
 snr	mass	intensity	spectrum
-Inf	304.595254080636	1.76512676262064e-05	x = 1, y = 1
-Inf	305.119057791574	1.62699820283052e-09	x = 1, y = 1
-Inf	305.66667175293	1.02237303638199e-13	x = 1, y = 1
-Inf	306.32292175293	7.71168242810122e-18	x = 1, y = 1
-Inf	307.031265258789	5.54882387838857e-22	x = 1, y = 1
-Inf	307.614593505859	3.61475171997316e-26	x = 1, y = 1
-Inf	308.718757629395	1.67789168240286e-34	x = 1, y = 1
-Inf	309.250011444092	1.43981749664202e-38	x = 1, y = 1
-Inf	321.050012207031	1.5556590571819e-38	x = 1, y = 1
-Inf	328.000010172526	0.481155782938004	x = 1, y = 1
-Inf	329.152786254883	2.47849035263062	x = 1, y = 1
-Inf	330.197929382324	1.09462394703996e-08	x = 1, y = 1
-Inf	330.712968614366	5.96421675068404e-13	x = 1, y = 1
-Inf	331.259270562066	5.44180783738833e-17	x = 1, y = 1
-Inf	331.796308729384	2.72964412068832e-21	x = 1, y = 1
-Inf	332.342600504557	2.65403450832136e-25	x = 1, y = 1
-Inf	332.879638671875	1.38079261482617e-29	x = 1, y = 1
-Inf	333.44445461697	1.27447841383671e-33	x = 1, y = 1
-Inf	343.642865862165	0.282461315393448	x = 1, y = 1
-Inf	344.611124674479	0.638258039951324	x = 1, y = 1
-Inf	345.629638671875	7.93658109614626e-05	x = 1, y = 1
-Inf	346.120378282335	6.64322641341641e-09	x = 1, y = 1
-Inf	346.700012207031	3.66650991252132e-13	x = 1, y = 1
-Inf	347.296308729384	3.31281302377731e-17	x = 1, y = 1
-Inf	347.814826117622	1.67992344863529e-21	x = 1, y = 1
-Inf	348.361117892795	1.61966283306326e-25	x = 1, y = 1
-Inf	348.888895670573	8.15391718679523e-30	x = 1, y = 1
-Inf	349.44445461697	7.79337969080295e-34	x = 1, y = 1
-Inf	349.96297539605	4.78329195057699e-38	x = 1, y = 1
-Inf	365.979179382324	3.88570062627783e-13	x = 1, y = 1
-Inf	366.562515258789	1.91497258346089e-17	x = 1, y = 1
-Inf	367.083343505859	1.88767583715038e-21	x = 1, y = 1
-Inf	367.645835876465	0.235070616006851	x = 1, y = 1
-Inf	368.222229003906	1.47346945595928e-05	x = 1, y = 1
-Inf	368.666680908203	1.13727949280218e-09	x = 1, y = 1
-Inf	369.216674804688	6.86236075017783e-14	x = 1, y = 1
-Inf	369.766680908203	5.79879376075753e-18	x = 1, y = 1
-Inf	370.523821149554	2.65765684162034e-05	x = 1, y = 1
-Inf	306.32292175293	1.93815667444142e-05	x = 2, y = 1
-Inf	307.031265258789	1.36712752230039e-09	x = 2, y = 1
-Inf	307.614593505859	9.10052605105835e-14	x = 2, y = 1
-Inf	308.266668701172	0.399492412805557	x = 2, y = 1
-Inf	308.718757629395	2.19716112042079e-05	x = 2, y = 1
-Inf	309.250011444092	1.93809390758304e-09	x = 2, y = 1
-Inf	309.833347865513	1.00940015081239e-13	x = 2, y = 1
-Inf	310.361124674479	9.53307623430011e-18	x = 2, y = 1
-Inf	310.902786254883	4.60080996999485e-22	x = 2, y = 1
-Inf	311.430557250977	0.37831038236618	x = 2, y = 1
-Inf	311.986119588216	3.04782115563285e-05	x = 2, y = 1
-Inf	312.516674804688	1.61912494522909e-09	x = 2, y = 1
-Inf	328.937515258789	2.02454543113708	x = 2, y = 1
-Inf	329.697925567627	4.36672562500462e-05	x = 2, y = 1
-Inf	330.197929382324	0.291347920894623	x = 2, y = 1
-Inf	330.712968614366	2.65860908257309e-05	x = 2, y = 1
-Inf	331.259270562066	1.33338984298348e-09	x = 2, y = 1
-Inf	331.796308729384	0.256167501211166	x = 2, y = 1
-Inf	332.342600504557	1.61519819812384e-05	x = 2, y = 1
-Inf	332.879638671875	0.473990738391876	x = 2, y = 1
-Inf	333.44445461697	3.11978510580957e-05	x = 2, y = 1
-Inf	334.020843505859	2.16568318833765e-09	x = 2, y = 1
-Inf	343.642865862165	4.07043262384832e-05	x = 2, y = 1
-Inf	345.629638671875	0.388675004243851	x = 2, y = 1
-Inf	346.120378282335	1.22390151023865	x = 2, y = 1
-Inf	347.296308729384	2.53151047218125e-05	x = 2, y = 1
-Inf	347.814826117622	2.07963690712631e-09	x = 2, y = 1
-Inf	348.361117892795	1.17175312421697e-13	x = 2, y = 1
-Inf	348.888895670573	1.04223425420895e-17	x = 2, y = 1
-Inf	349.44445461697	5.37785487481536e-22	x = 2, y = 1
-Inf	349.96297539605	0.309614509344101	x = 2, y = 1
-Inf	351.069458007812	1.2832610529756e-09	x = 2, y = 1
-Inf	370.523821149554	2.16230963798365e-13	x = 2, y = 1
-Inf	328.937515258789	1.43158733844757	x = 3, y = 1
-Inf	329.697925567627	4.62229545519222e-05	x = 3, y = 1
-Inf	330.712968614366	2.11953542282421e-13	x = 3, y = 1
-Inf	331.259270562066	2.03012902874583e-17	x = 3, y = 1
-Inf	331.796308729384	9.94915412632575e-22	x = 3, y = 1
-Inf	332.342600504557	9.78378697984054e-26	x = 3, y = 1
-Inf	332.879638671875	5.89565674575821e-30	x = 3, y = 1
-Inf	333.44445461697	4.65177644766935e-34	x = 3, y = 1
-Inf	334.020843505859	3.24418811371231e-38	x = 3, y = 1
-Inf	345.629638671875	3.101946276729e-05	x = 3, y = 1
-Inf	346.120378282335	2.42813036344103e-09	x = 3, y = 1
-Inf	347.296308729384	1.2331086620974e-17	x = 3, y = 1
-Inf	347.814826117622	6.65060432147639e-22	x = 3, y = 1
-Inf	348.361117892795	6.1151591415287e-26	x = 3, y = 1
-Inf	348.888895670573	3.04086320241335e-30	x = 3, y = 1
-Inf	349.44445461697	2.97658725432968e-34	x = 3, y = 1
-Inf	349.96297539605	1.58814465883111e-38	x = 3, y = 1
-Inf	387.850006103516	2.8698808819172e-05	x = 3, y = 1
-Inf	388.895843505859	1.5247652858201e-13	x = 3, y = 1
-Inf	389.854179382324	9.39855267846122e-18	x = 3, y = 1
-Inf	391.083335876465	3.90465670032414e-30	x = 3, y = 1
-Inf	391.972229003906	1.99175119954855e-34	x = 3, y = 1
-Inf	394.083351135254	3.94045773788321e-09	x = 3, y = 1
-Inf	394.791679382324	9.62898286324196e-18	x = 3, y = 1
-Inf	395.270843505859	0.23992046713829	x = 3, y = 1
-Inf	395.816680908203	1.69494323927211e-05	x = 3, y = 1
-Inf	396.383337402344	1.12639098048817e-09	x = 3, y = 1
-Inf	396.916674804687	8.86759402344249e-14	x = 3, y = 1
-Inf	304.595254080636	1.17177887401856e-13	x = 1, y = 2
-Inf	305.119057791574	5.69736818276873e-18	x = 1, y = 2
-Inf	305.66667175293	5.6757509669499e-22	x = 1, y = 2
-Inf	306.32292175293	0.401378452777863	x = 1, y = 2
-Inf	307.031265258789	0.968722462654114	x = 1, y = 2
-Inf	307.614593505859	5.86232454224955e-05	x = 1, y = 2
-Inf	308.718757629395	2.7437655012591e-13	x = 1, y = 2
-Inf	309.250011444092	2.22135184510828e-17	x = 1, y = 2
-Inf	321.050012207031	1.50940976188625e-38	x = 1, y = 2
-Inf	328.000010172526	0.217953696846962	x = 1, y = 2
-Inf	329.152786254883	1.6380660533905	x = 1, y = 2
-Inf	330.197929382324	0.533841967582703	x = 1, y = 2
-Inf	330.712968614366	2.71527351287659e-05	x = 1, y = 2
-Inf	331.259270562066	2.59207522113059e-09	x = 1, y = 2
-Inf	331.796308729384	1.59223044362937e-13	x = 1, y = 2
-Inf	332.342600504557	1.2307215842857e-17	x = 1, y = 2
-Inf	332.879638671875	8.70707862088559e-22	x = 1, y = 2
-Inf	333.44445461697	5.77743854353985e-26	x = 1, y = 2
-Inf	343.642865862165	0.662226140499115	x = 1, y = 2
-Inf	344.611124674479	0.267281413078308	x = 1, y = 2
-Inf	345.629638671875	2.6464356778888e-05	x = 1, y = 2
-Inf	346.120378282335	0.933241784572601	x = 1, y = 2
-Inf	346.700012207031	5.34617865923792e-05	x = 1, y = 2
-Inf	347.296308729384	2.65817307081306e-05	x = 1, y = 2
-Inf	347.814826117622	2.63146238133061e-09	x = 1, y = 2
-Inf	348.361117892795	1.46233204581861e-13	x = 1, y = 2
-Inf	348.888895670573	1.25829507097872e-17	x = 1, y = 2
-Inf	349.44445461697	8.27559972606905e-22	x = 1, y = 2
-Inf	349.96297539605	5.94295388740686e-26	x = 1, y = 2
-Inf	365.979179382324	4.37134549429175e-05	x = 1, y = 2
-Inf	366.562515258789	2.64647725956024e-09	x = 1, y = 2
-Inf	367.083343505859	2.23088989772732e-13	x = 1, y = 2
-Inf	367.645835876465	1.22170415755601e-17	x = 1, y = 2
-Inf	368.222229003906	1.11046018496466e-21	x = 1, y = 2
-Inf	368.666680908203	5.59376337511562e-26	x = 1, y = 2
-Inf	369.216674804688	5.42113770011657e-30	x = 1, y = 2
-Inf	369.766680908203	2.78554944810064e-34	x = 1, y = 2
-Inf	370.523821149554	2.60531652564813e-38	x = 1, y = 2
-Inf	306.32292175293	2.31608719332144e-05	x = 2, y = 2
-Inf	307.031265258789	0.447774022817612	x = 2, y = 2
-Inf	307.614593505859	0.428305774927139	x = 2, y = 2
-Inf	308.266668701172	2.67954346782062e-05	x = 2, y = 2
-Inf	308.718757629395	2.22558682594354e-09	x = 2, y = 2
-Inf	309.250011444092	1.23887540308919e-13	x = 2, y = 2
-Inf	309.833347865513	1.11220637212349e-17	x = 2, y = 2
-Inf	310.361124674479	5.68033014673253e-22	x = 2, y = 2
-Inf	310.902786254883	5.44664266518465e-26	x = 2, y = 2
-Inf	311.430557250977	2.68241453784197e-30	x = 2, y = 2
-Inf	311.986119588216	2.62427828124129e-34	x = 2, y = 2
-Inf	312.516674804688	1.58696420500477e-38	x = 2, y = 2
-Inf	328.937515258789	2.37836694717407	x = 2, y = 2
-Inf	329.697925567627	2.56914954661625e-05	x = 2, y = 2
-Inf	330.197929382324	2.05684469456457e-09	x = 2, y = 2
-Inf	330.712968614366	1.42042993578166e-13	x = 2, y = 2
-Inf	331.259270562066	9.67603620520642e-18	x = 2, y = 2
-Inf	331.796308729384	7.48378431587693e-22	x = 2, y = 2
-Inf	332.342600504557	4.50551773856038e-26	x = 2, y = 2
-Inf	332.879638671875	3.81384647033894e-30	x = 2, y = 2
-Inf	333.44445461697	2.07898068639674e-34	x = 2, y = 2
-Inf	334.020843505859	1.92182899577831e-38	x = 2, y = 2
-Inf	343.642865862165	3.78152206840319e-30	x = 2, y = 2
-Inf	345.629638671875	2.89905474346597e-05	x = 2, y = 2
-Inf	346.120378282335	2.03336369963836e-09	x = 2, y = 2
-Inf	347.296308729384	1.5656460163882e-05	x = 2, y = 2
-Inf	347.814826117622	1.26892807372769e-09	x = 2, y = 2
-Inf	348.361117892795	7.2568185727033e-14	x = 2, y = 2
-Inf	348.888895670573	6.38326717387832e-18	x = 2, y = 2
-Inf	349.44445461697	3.33466297356616e-22	x = 2, y = 2
-Inf	349.96297539605	3.14223389850709e-26	x = 2, y = 2
-Inf	351.069458007812	1.5203838193817e-34	x = 2, y = 2
-Inf	370.523821149554	2.19204516215991e-38	x = 2, y = 2
-Inf	328.937515258789	0.995543837547302	x = 3, y = 2
-Inf	329.697925567627	3.03936976706609e-05	x = 3, y = 2
-Inf	330.712968614366	2.97629267151933e-05	x = 3, y = 2
-Inf	331.259270562066	1.62655666713363e-09	x = 3, y = 2
-Inf	331.796308729384	1.42477311415937e-13	x = 3, y = 2
-Inf	332.342600504557	9.25888240485103e-18	x = 3, y = 2
-Inf	332.879638671875	6.73557006833172e-22	x = 3, y = 2
-Inf	333.44445461697	4.97108094996007e-26	x = 3, y = 2
-Inf	334.020843505859	0.268675297498703	x = 3, y = 2
-Inf	345.629638671875	8.61570297274739e-05	x = 3, y = 2
-Inf	346.120378282335	0.285138785839081	x = 3, y = 2
-Inf	347.296308729384	1.30612853865841e-09	x = 3, y = 2
-Inf	347.814826117622	1.26163240011384e-13	x = 3, y = 2
-Inf	348.361117892795	6.39862460913097e-18	x = 3, y = 2
-Inf	348.888895670573	6.06791151963729e-22	x = 3, y = 2
-Inf	349.44445461697	3.743162251606e-26	x = 3, y = 2
-Inf	349.96297539605	2.88010014996665e-30	x = 3, y = 2
-Inf	387.850006103516	0.197833687067032	x = 3, y = 2
-Inf	388.895843505859	1.24303778381574e-09	x = 3, y = 2
-Inf	389.854179382324	6.66746120334285e-18	x = 3, y = 2
-Inf	391.083335876465	0.310464262962341	x = 3, y = 2
-Inf	391.972229003906	0.554931581020355	x = 3, y = 2
-Inf	394.083351135254	1.74293175463129e-17	x = 3, y = 2
-Inf	394.791679382324	1.05953142589779e-21	x = 3, y = 2
-Inf	395.270843505859	8.90397842411612e-26	x = 3, y = 2
-Inf	395.816680908203	4.8930473332074e-30	x = 3, y = 2
-Inf	396.383337402344	4.43552910897872e-34	x = 3, y = 2
-Inf	396.916674804687	2.28012433765444e-38	x = 3, y = 2
-Inf	304.595254080636	0.279548346996307	x = 1, y = 3
-Inf	305.119057791574	0.716848015785217	x = 1, y = 3
-Inf	305.66667175293	6.01442479819525e-05	x = 1, y = 3
-Inf	306.32292175293	3.80939590982621e-09	x = 1, y = 3
-Inf	307.031265258789	2.06235797064436e-17	x = 1, y = 3
-Inf	307.614593505859	1.33474952143388e-21	x = 1, y = 3
-Inf	308.718757629395	6.1926750159511e-30	x = 1, y = 3
-Inf	309.250011444092	5.40336274000115e-34	x = 1, y = 3
-Inf	321.050012207031	0.261909782886505	x = 1, y = 3
-Inf	328.000010172526	2.71850386646122e-09	x = 1, y = 3
-Inf	329.152786254883	0.519839584827423	x = 1, y = 3
-Inf	330.197929382324	2.44585240949391e-09	x = 1, y = 3
-Inf	330.712968614366	1.88825666799612e-13	x = 1, y = 3
-Inf	331.259270562066	1.13914243343648e-17	x = 1, y = 3
-Inf	331.796308729384	9.62779062132945e-22	x = 1, y = 3
-Inf	332.342600504557	5.25721990550878e-26	x = 1, y = 3
-Inf	332.879638671875	4.78893314027823e-30	x = 1, y = 3
-Inf	333.44445461697	2.40634231736506e-34	x = 1, y = 3
-Inf	343.642865862165	2.33215705520706e-05	x = 1, y = 3
-Inf	344.611124674479	1.14931461158048e-13	x = 1, y = 3
-Inf	345.629638671875	2.49274271482136e-05	x = 1, y = 3
-Inf	346.120378282335	2.42154163387909e-09	x = 1, y = 3
-Inf	346.700012207031	1.25566657765974e-13	x = 1, y = 3
-Inf	347.296308729384	1.16314638763216e-17	x = 1, y = 3
-Inf	347.814826117622	7.28580269542504e-22	x = 1, y = 3
-Inf	348.361117892795	5.51452352978133e-26	x = 1, y = 3
-Inf	348.888895670573	3.95872379808908e-30	x = 1, y = 3
-Inf	349.44445461697	2.58541051461361e-34	x = 1, y = 3
-Inf	349.96297539605	2.00786591889092e-38	x = 1, y = 3
-Inf	365.979179382324	0.29585200548172	x = 1, y = 3
-Inf	366.562515258789	2.61009136011126e-05	x = 1, y = 3
-Inf	367.083343505859	1.29202726295574e-09	x = 1, y = 3
-Inf	367.645835876465	1.26925610321495e-13	x = 1, y = 3
-Inf	368.222229003906	6.86202649112451e-18	x = 1, y = 3
-Inf	368.666680908203	6.0804923995715e-22	x = 1, y = 3
-Inf	369.216674804688	3.92168363149906e-26	x = 1, y = 3
-Inf	369.766680908203	2.87628364894794e-30	x = 1, y = 3
-Inf	370.523821149554	2.11079916033934e-34	x = 1, y = 3
-Inf	306.32292175293	2.58914169535274e-05	x = 2, y = 3
-Inf	307.031265258789	0.2786685526371	x = 2, y = 3
-Inf	307.614593505859	2.96689468086697e-05	x = 2, y = 3
-Inf	308.266668701172	0.630028009414673	x = 2, y = 3
-Inf	308.718757629395	3.5055691114394e-05	x = 2, y = 3
-Inf	309.250011444092	3.4764433554102e-09	x = 2, y = 3
-Inf	309.833347865513	2.08417769262566e-13	x = 2, y = 3
-Inf	310.361124674479	1.65365266219334e-17	x = 2, y = 3
-Inf	310.902786254883	1.14908291585848e-21	x = 2, y = 3
-Inf	311.430557250977	7.77481833182232e-26	x = 2, y = 3
-Inf	311.986119588216	6.04272858040201e-30	x = 2, y = 3
-Inf	312.516674804688	3.61853642833949e-34	x = 2, y = 3
-Inf	328.937515258789	1.3272477388382	x = 2, y = 3
-Inf	329.697925567627	0.000119319425721187	x = 2, y = 3
-Inf	330.197929382324	0.87813526391983	x = 2, y = 3
-Inf	330.712968614366	5.94691991864238e-05	x = 2, y = 3
-Inf	331.259270562066	4.48100578864796e-09	x = 2, y = 3
-Inf	331.796308729384	2.77607174444319e-13	x = 2, y = 3
-Inf	332.342600504557	2.30068624134988e-17	x = 2, y = 3
-Inf	332.879638671875	1.28379127790181e-21	x = 2, y = 3
-Inf	333.44445461697	1.15039499526719e-25	x = 2, y = 3
-Inf	334.020843505859	5.88708673366388e-30	x = 2, y = 3
-Inf	343.642865862165	0.628214061260223	x = 2, y = 3
-Inf	345.629638671875	2.52073332376312e-05	x = 2, y = 3
-Inf	346.120378282335	2.42913511527831e-09	x = 2, y = 3
-Inf	347.296308729384	3.06663314404432e-05	x = 2, y = 3
-Inf	347.814826117622	1.64383595624429e-09	x = 2, y = 3
-Inf	348.361117892795	1.4698648114625e-13	x = 2, y = 3
-Inf	348.888895670573	9.42402156952173e-18	x = 2, y = 3
-Inf	349.44445461697	6.95620575449764e-22	x = 2, y = 3
-Inf	349.96297539605	5.08223484114241e-26	x = 2, y = 3
-Inf	351.069458007812	2.63284561467787e-34	x = 2, y = 3
-Inf	370.523821149554	0.38996833562851	x = 2, y = 3
-Inf	328.937515258789	1.43404459953308	x = 3, y = 3
-Inf	329.697925567627	6.18351987213828e-05	x = 3, y = 3
-Inf	330.712968614366	3.4482751940304e-13	x = 3, y = 3
-Inf	331.259270562066	2.93395139921047e-17	x = 3, y = 3
-Inf	331.796308729384	1.94369975414076e-21	x = 3, y = 3
-Inf	332.342600504557	1.38486306848585e-25	x = 3, y = 3
-Inf	332.879638671875	1.03717248235199e-29	x = 3, y = 3
-Inf	333.44445461697	6.46787389371651e-34	x = 3, y = 3
-Inf	334.020843505859	5.33374608969737e-38	x = 3, y = 3
-Inf	345.629638671875	0.000100398268841673	x = 3, y = 3
-Inf	346.120378282335	0.700047612190247	x = 3, y = 3
-Inf	347.296308729384	0.290130436420441	x = 3, y = 3
-Inf	347.814826117622	1.69061459018849e-05	x = 3, y = 3
-Inf	348.361117892795	1.38276745609289e-09	x = 3, y = 3
-Inf	348.888895670573	9.4092654945744e-14	x = 3, y = 3
-Inf	349.44445461697	6.51254681822392e-18	x = 3, y = 3
-Inf	349.96297539605	4.97919259365601e-22	x = 3, y = 3
-Inf	387.850006103516	4.42154814663809e-05	x = 3, y = 3
-Inf	388.895843505859	2.20461995013854e-13	x = 3, y = 3
-Inf	389.854179382324	1.07776605300705e-21	x = 3, y = 3
-Inf	391.083335876465	5.18557991695755e-30	x = 3, y = 3
-Inf	391.972229003906	2.46211811583847e-38	x = 3, y = 3
-Inf	394.083351135254	0.225453585386276	x = 3, y = 3
-Inf	394.791679382324	0.310508847236633	x = 3, y = 3
-Inf	395.270843505859	2.11353399208747e-05	x = 3, y = 3
-Inf	395.816680908203	1.37501721120259e-09	x = 3, y = 3
-Inf	396.383337402344	9.99066823194339e-14	x = 3, y = 3
-Inf	396.916674804687	7.3794850397387e-18	x = 3, y = 3
+Inf	304.595254080636	1.76512676262064e-05	xy_1_1
+Inf	305.119057791574	1.62699820283052e-09	xy_1_1
+Inf	305.66667175293	1.02237303638199e-13	xy_1_1
+Inf	306.32292175293	7.71168242810122e-18	xy_1_1
+Inf	307.031265258789	5.54882387838857e-22	xy_1_1
+Inf	307.614593505859	3.61475171997316e-26	xy_1_1
+Inf	308.718757629395	1.67789168240286e-34	xy_1_1
+Inf	309.250011444092	1.43981749664202e-38	xy_1_1
+Inf	321.050012207031	1.5556590571819e-38	xy_1_1
+Inf	328.000010172526	0.481155782938004	xy_1_1
+Inf	329.152786254883	2.47849035263062	xy_1_1
+Inf	330.197929382324	1.09462394703996e-08	xy_1_1
+Inf	330.712968614366	5.96421675068404e-13	xy_1_1
+Inf	331.259270562066	5.44180783738833e-17	xy_1_1
+Inf	331.796308729384	2.72964412068832e-21	xy_1_1
+Inf	332.342600504557	2.65403450832136e-25	xy_1_1
+Inf	332.879638671875	1.38079261482617e-29	xy_1_1
+Inf	333.44445461697	1.27447841383671e-33	xy_1_1
+Inf	343.642865862165	0.282461315393448	xy_1_1
+Inf	344.611124674479	0.638258039951324	xy_1_1
+Inf	345.629638671875	7.93658109614626e-05	xy_1_1
+Inf	346.120378282335	6.64322641341641e-09	xy_1_1
+Inf	346.700012207031	3.66650991252132e-13	xy_1_1
+Inf	347.296308729384	3.31281302377731e-17	xy_1_1
+Inf	347.814826117622	1.67992344863529e-21	xy_1_1
+Inf	348.361117892795	1.61966283306326e-25	xy_1_1
+Inf	348.888895670573	8.15391718679523e-30	xy_1_1
+Inf	349.44445461697	7.79337969080295e-34	xy_1_1
+Inf	349.96297539605	4.78329195057699e-38	xy_1_1
+Inf	365.979179382324	3.88570062627783e-13	xy_1_1
+Inf	366.562515258789	1.91497258346089e-17	xy_1_1
+Inf	367.083343505859	1.88767583715038e-21	xy_1_1
+Inf	367.645835876465	0.235070616006851	xy_1_1
+Inf	368.222229003906	1.47346945595928e-05	xy_1_1
+Inf	368.666680908203	1.13727949280218e-09	xy_1_1
+Inf	369.216674804688	6.86236075017783e-14	xy_1_1
+Inf	369.766680908203	5.79879376075753e-18	xy_1_1
+Inf	370.523821149554	2.65765684162034e-05	xy_1_1
+Inf	306.32292175293	1.93815667444142e-05	xy_2_1
+Inf	307.031265258789	1.36712752230039e-09	xy_2_1
+Inf	307.614593505859	9.10052605105835e-14	xy_2_1
+Inf	308.266668701172	0.399492412805557	xy_2_1
+Inf	308.718757629395	2.19716112042079e-05	xy_2_1
+Inf	309.250011444092	1.93809390758304e-09	xy_2_1
+Inf	309.833347865513	1.00940015081239e-13	xy_2_1
+Inf	310.361124674479	9.53307623430011e-18	xy_2_1
+Inf	310.902786254883	4.60080996999485e-22	xy_2_1
+Inf	311.430557250977	0.37831038236618	xy_2_1
+Inf	311.986119588216	3.04782115563285e-05	xy_2_1
+Inf	312.516674804688	1.61912494522909e-09	xy_2_1
+Inf	328.937515258789	2.02454543113708	xy_2_1
+Inf	329.697925567627	4.36672562500462e-05	xy_2_1
+Inf	330.197929382324	0.291347920894623	xy_2_1
+Inf	330.712968614366	2.65860908257309e-05	xy_2_1
+Inf	331.259270562066	1.33338984298348e-09	xy_2_1
+Inf	331.796308729384	0.256167501211166	xy_2_1
+Inf	332.342600504557	1.61519819812384e-05	xy_2_1
+Inf	332.879638671875	0.473990738391876	xy_2_1
+Inf	333.44445461697	3.11978510580957e-05	xy_2_1
+Inf	334.020843505859	2.16568318833765e-09	xy_2_1
+Inf	343.642865862165	4.07043262384832e-05	xy_2_1
+Inf	345.629638671875	0.388675004243851	xy_2_1
+Inf	346.120378282335	1.22390151023865	xy_2_1
+Inf	347.296308729384	2.53151047218125e-05	xy_2_1
+Inf	347.814826117622	2.07963690712631e-09	xy_2_1
+Inf	348.361117892795	1.17175312421697e-13	xy_2_1
+Inf	348.888895670573	1.04223425420895e-17	xy_2_1
+Inf	349.44445461697	5.37785487481536e-22	xy_2_1
+Inf	349.96297539605	0.309614509344101	xy_2_1
+Inf	351.069458007812	1.2832610529756e-09	xy_2_1
+Inf	370.523821149554	2.16230963798365e-13	xy_2_1
+Inf	328.937515258789	1.43158733844757	xy_3_1
+Inf	329.697925567627	4.62229545519222e-05	xy_3_1
+Inf	330.712968614366	2.11953542282421e-13	xy_3_1
+Inf	331.259270562066	2.03012902874583e-17	xy_3_1
+Inf	331.796308729384	9.94915412632575e-22	xy_3_1
+Inf	332.342600504557	9.78378697984054e-26	xy_3_1
+Inf	332.879638671875	5.89565674575821e-30	xy_3_1
+Inf	333.44445461697	4.65177644766935e-34	xy_3_1
+Inf	334.020843505859	3.24418811371231e-38	xy_3_1
+Inf	345.629638671875	3.101946276729e-05	xy_3_1
+Inf	346.120378282335	2.42813036344103e-09	xy_3_1
+Inf	347.296308729384	1.2331086620974e-17	xy_3_1
+Inf	347.814826117622	6.65060432147639e-22	xy_3_1
+Inf	348.361117892795	6.1151591415287e-26	xy_3_1
+Inf	348.888895670573	3.04086320241335e-30	xy_3_1
+Inf	349.44445461697	2.97658725432968e-34	xy_3_1
+Inf	349.96297539605	1.58814465883111e-38	xy_3_1
+Inf	387.850006103516	2.8698808819172e-05	xy_3_1
+Inf	388.895843505859	1.5247652858201e-13	xy_3_1
+Inf	389.854179382324	9.39855267846122e-18	xy_3_1
+Inf	391.083335876465	3.90465670032414e-30	xy_3_1
+Inf	391.972229003906	1.99175119954855e-34	xy_3_1
+Inf	394.083351135254	3.94045773788321e-09	xy_3_1
+Inf	394.791679382324	9.62898286324196e-18	xy_3_1
+Inf	395.270843505859	0.23992046713829	xy_3_1
+Inf	395.816680908203	1.69494323927211e-05	xy_3_1
+Inf	396.383337402344	1.12639098048817e-09	xy_3_1
+Inf	396.916674804687	8.86759402344249e-14	xy_3_1
+Inf	304.595254080636	1.17177887401856e-13	xy_1_2
+Inf	305.119057791574	5.69736818276873e-18	xy_1_2
+Inf	305.66667175293	5.6757509669499e-22	xy_1_2
+Inf	306.32292175293	0.401378452777863	xy_1_2
+Inf	307.031265258789	0.968722462654114	xy_1_2
+Inf	307.614593505859	5.86232454224955e-05	xy_1_2
+Inf	308.718757629395	2.7437655012591e-13	xy_1_2
+Inf	309.250011444092	2.22135184510828e-17	xy_1_2
+Inf	321.050012207031	1.50940976188625e-38	xy_1_2
+Inf	328.000010172526	0.217953696846962	xy_1_2
+Inf	329.152786254883	1.6380660533905	xy_1_2
+Inf	330.197929382324	0.533841967582703	xy_1_2
+Inf	330.712968614366	2.71527351287659e-05	xy_1_2
+Inf	331.259270562066	2.59207522113059e-09	xy_1_2
+Inf	331.796308729384	1.59223044362937e-13	xy_1_2
+Inf	332.342600504557	1.2307215842857e-17	xy_1_2
+Inf	332.879638671875	8.70707862088559e-22	xy_1_2
+Inf	333.44445461697	5.77743854353985e-26	xy_1_2
+Inf	343.642865862165	0.662226140499115	xy_1_2
+Inf	344.611124674479	0.267281413078308	xy_1_2
+Inf	345.629638671875	2.6464356778888e-05	xy_1_2
+Inf	346.120378282335	0.933241784572601	xy_1_2
+Inf	346.700012207031	5.34617865923792e-05	xy_1_2
+Inf	347.296308729384	2.65817307081306e-05	xy_1_2
+Inf	347.814826117622	2.63146238133061e-09	xy_1_2
+Inf	348.361117892795	1.46233204581861e-13	xy_1_2
+Inf	348.888895670573	1.25829507097872e-17	xy_1_2
+Inf	349.44445461697	8.27559972606905e-22	xy_1_2
+Inf	349.96297539605	5.94295388740686e-26	xy_1_2
+Inf	365.979179382324	4.37134549429175e-05	xy_1_2
+Inf	366.562515258789	2.64647725956024e-09	xy_1_2
+Inf	367.083343505859	2.23088989772732e-13	xy_1_2
+Inf	367.645835876465	1.22170415755601e-17	xy_1_2
+Inf	368.222229003906	1.11046018496466e-21	xy_1_2
+Inf	368.666680908203	5.59376337511562e-26	xy_1_2
+Inf	369.216674804688	5.42113770011657e-30	xy_1_2
+Inf	369.766680908203	2.78554944810064e-34	xy_1_2
+Inf	370.523821149554	2.60531652564813e-38	xy_1_2
+Inf	306.32292175293	2.31608719332144e-05	xy_2_2
+Inf	307.031265258789	0.447774022817612	xy_2_2
+Inf	307.614593505859	0.428305774927139	xy_2_2
+Inf	308.266668701172	2.67954346782062e-05	xy_2_2
+Inf	308.718757629395	2.22558682594354e-09	xy_2_2
+Inf	309.250011444092	1.23887540308919e-13	xy_2_2
+Inf	309.833347865513	1.11220637212349e-17	xy_2_2
+Inf	310.361124674479	5.68033014673253e-22	xy_2_2
+Inf	310.902786254883	5.44664266518465e-26	xy_2_2
+Inf	311.430557250977	2.68241453784197e-30	xy_2_2
+Inf	311.986119588216	2.62427828124129e-34	xy_2_2
+Inf	312.516674804688	1.58696420500477e-38	xy_2_2
+Inf	328.937515258789	2.37836694717407	xy_2_2
+Inf	329.697925567627	2.56914954661625e-05	xy_2_2
+Inf	330.197929382324	2.05684469456457e-09	xy_2_2
+Inf	330.712968614366	1.42042993578166e-13	xy_2_2
+Inf	331.259270562066	9.67603620520642e-18	xy_2_2
+Inf	331.796308729384	7.48378431587693e-22	xy_2_2
+Inf	332.342600504557	4.50551773856038e-26	xy_2_2
+Inf	332.879638671875	3.81384647033894e-30	xy_2_2
+Inf	333.44445461697	2.07898068639674e-34	xy_2_2
+Inf	334.020843505859	1.92182899577831e-38	xy_2_2
+Inf	343.642865862165	3.78152206840319e-30	xy_2_2
+Inf	345.629638671875	2.89905474346597e-05	xy_2_2
+Inf	346.120378282335	2.03336369963836e-09	xy_2_2
+Inf	347.296308729384	1.5656460163882e-05	xy_2_2
+Inf	347.814826117622	1.26892807372769e-09	xy_2_2
+Inf	348.361117892795	7.2568185727033e-14	xy_2_2
+Inf	348.888895670573	6.38326717387832e-18	xy_2_2
+Inf	349.44445461697	3.33466297356616e-22	xy_2_2
+Inf	349.96297539605	3.14223389850709e-26	xy_2_2
+Inf	351.069458007812	1.5203838193817e-34	xy_2_2
+Inf	370.523821149554	2.19204516215991e-38	xy_2_2
+Inf	328.937515258789	0.995543837547302	xy_3_2
+Inf	329.697925567627	3.03936976706609e-05	xy_3_2
+Inf	330.712968614366	2.97629267151933e-05	xy_3_2
+Inf	331.259270562066	1.62655666713363e-09	xy_3_2
+Inf	331.796308729384	1.42477311415937e-13	xy_3_2
+Inf	332.342600504557	9.25888240485103e-18	xy_3_2
+Inf	332.879638671875	6.73557006833172e-22	xy_3_2
+Inf	333.44445461697	4.97108094996007e-26	xy_3_2
+Inf	334.020843505859	0.268675297498703	xy_3_2
+Inf	345.629638671875	8.61570297274739e-05	xy_3_2
+Inf	346.120378282335	0.285138785839081	xy_3_2
+Inf	347.296308729384	1.30612853865841e-09	xy_3_2
+Inf	347.814826117622	1.26163240011384e-13	xy_3_2
+Inf	348.361117892795	6.39862460913097e-18	xy_3_2
+Inf	348.888895670573	6.06791151963729e-22	xy_3_2
+Inf	349.44445461697	3.743162251606e-26	xy_3_2
+Inf	349.96297539605	2.88010014996665e-30	xy_3_2
+Inf	387.850006103516	0.197833687067032	xy_3_2
+Inf	388.895843505859	1.24303778381574e-09	xy_3_2
+Inf	389.854179382324	6.66746120334285e-18	xy_3_2
+Inf	391.083335876465	0.310464262962341	xy_3_2
+Inf	391.972229003906	0.554931581020355	xy_3_2
+Inf	394.083351135254	1.74293175463129e-17	xy_3_2
+Inf	394.791679382324	1.05953142589779e-21	xy_3_2
+Inf	395.270843505859	8.90397842411612e-26	xy_3_2
+Inf	395.816680908203	4.8930473332074e-30	xy_3_2
+Inf	396.383337402344	4.43552910897872e-34	xy_3_2
+Inf	396.916674804687	2.28012433765444e-38	xy_3_2
+Inf	304.595254080636	0.279548346996307	xy_1_3
+Inf	305.119057791574	0.716848015785217	xy_1_3
+Inf	305.66667175293	6.01442479819525e-05	xy_1_3
+Inf	306.32292175293	3.80939590982621e-09	xy_1_3
+Inf	307.031265258789	2.06235797064436e-17	xy_1_3
+Inf	307.614593505859	1.33474952143388e-21	xy_1_3
+Inf	308.718757629395	6.1926750159511e-30	xy_1_3
+Inf	309.250011444092	5.40336274000115e-34	xy_1_3
+Inf	321.050012207031	0.261909782886505	xy_1_3
+Inf	328.000010172526	2.71850386646122e-09	xy_1_3
+Inf	329.152786254883	0.519839584827423	xy_1_3
+Inf	330.197929382324	2.44585240949391e-09	xy_1_3
+Inf	330.712968614366	1.88825666799612e-13	xy_1_3
+Inf	331.259270562066	1.13914243343648e-17	xy_1_3
+Inf	331.796308729384	9.62779062132945e-22	xy_1_3
+Inf	332.342600504557	5.25721990550878e-26	xy_1_3
+Inf	332.879638671875	4.78893314027823e-30	xy_1_3
+Inf	333.44445461697	2.40634231736506e-34	xy_1_3
+Inf	343.642865862165	2.33215705520706e-05	xy_1_3
+Inf	344.611124674479	1.14931461158048e-13	xy_1_3
+Inf	345.629638671875	2.49274271482136e-05	xy_1_3
+Inf	346.120378282335	2.42154163387909e-09	xy_1_3
+Inf	346.700012207031	1.25566657765974e-13	xy_1_3
+Inf	347.296308729384	1.16314638763216e-17	xy_1_3
+Inf	347.814826117622	7.28580269542504e-22	xy_1_3
+Inf	348.361117892795	5.51452352978133e-26	xy_1_3
+Inf	348.888895670573	3.95872379808908e-30	xy_1_3
+Inf	349.44445461697	2.58541051461361e-34	xy_1_3
+Inf	349.96297539605	2.00786591889092e-38	xy_1_3
+Inf	365.979179382324	0.29585200548172	xy_1_3
+Inf	366.562515258789	2.61009136011126e-05	xy_1_3
+Inf	367.083343505859	1.29202726295574e-09	xy_1_3
+Inf	367.645835876465	1.26925610321495e-13	xy_1_3
+Inf	368.222229003906	6.86202649112451e-18	xy_1_3
+Inf	368.666680908203	6.0804923995715e-22	xy_1_3
+Inf	369.216674804688	3.92168363149906e-26	xy_1_3
+Inf	369.766680908203	2.87628364894794e-30	xy_1_3
+Inf	370.523821149554	2.11079916033934e-34	xy_1_3
+Inf	306.32292175293	2.58914169535274e-05	xy_2_3
+Inf	307.031265258789	0.2786685526371	xy_2_3
+Inf	307.614593505859	2.96689468086697e-05	xy_2_3
+Inf	308.266668701172	0.630028009414673	xy_2_3
+Inf	308.718757629395	3.5055691114394e-05	xy_2_3
+Inf	309.250011444092	3.4764433554102e-09	xy_2_3
+Inf	309.833347865513	2.08417769262566e-13	xy_2_3
+Inf	310.361124674479	1.65365266219334e-17	xy_2_3
+Inf	310.902786254883	1.14908291585848e-21	xy_2_3
+Inf	311.430557250977	7.77481833182232e-26	xy_2_3
+Inf	311.986119588216	6.04272858040201e-30	xy_2_3
+Inf	312.516674804688	3.61853642833949e-34	xy_2_3
+Inf	328.937515258789	1.3272477388382	xy_2_3
+Inf	329.697925567627	0.000119319425721187	xy_2_3
+Inf	330.197929382324	0.87813526391983	xy_2_3
+Inf	330.712968614366	5.94691991864238e-05	xy_2_3
+Inf	331.259270562066	4.48100578864796e-09	xy_2_3
+Inf	331.796308729384	2.77607174444319e-13	xy_2_3
+Inf	332.342600504557	2.30068624134988e-17	xy_2_3
+Inf	332.879638671875	1.28379127790181e-21	xy_2_3
+Inf	333.44445461697	1.15039499526719e-25	xy_2_3
+Inf	334.020843505859	5.88708673366388e-30	xy_2_3
+Inf	343.642865862165	0.628214061260223	xy_2_3
+Inf	345.629638671875	2.52073332376312e-05	xy_2_3
+Inf	346.120378282335	2.42913511527831e-09	xy_2_3
+Inf	347.296308729384	3.06663314404432e-05	xy_2_3
+Inf	347.814826117622	1.64383595624429e-09	xy_2_3
+Inf	348.361117892795	1.4698648114625e-13	xy_2_3
+Inf	348.888895670573	9.42402156952173e-18	xy_2_3
+Inf	349.44445461697	6.95620575449764e-22	xy_2_3
+Inf	349.96297539605	5.08223484114241e-26	xy_2_3
+Inf	351.069458007812	2.63284561467787e-34	xy_2_3
+Inf	370.523821149554	0.38996833562851	xy_2_3
+Inf	328.937515258789	1.43404459953308	xy_3_3
+Inf	329.697925567627	6.18351987213828e-05	xy_3_3
+Inf	330.712968614366	3.4482751940304e-13	xy_3_3
+Inf	331.259270562066	2.93395139921047e-17	xy_3_3
+Inf	331.796308729384	1.94369975414076e-21	xy_3_3
+Inf	332.342600504557	1.38486306848585e-25	xy_3_3
+Inf	332.879638671875	1.03717248235199e-29	xy_3_3
+Inf	333.44445461697	6.46787389371651e-34	xy_3_3
+Inf	334.020843505859	5.33374608969737e-38	xy_3_3
+Inf	345.629638671875	0.000100398268841673	xy_3_3
+Inf	346.120378282335	0.700047612190247	xy_3_3
+Inf	347.296308729384	0.290130436420441	xy_3_3
+Inf	347.814826117622	1.69061459018849e-05	xy_3_3
+Inf	348.361117892795	1.38276745609289e-09	xy_3_3
+Inf	348.888895670573	9.4092654945744e-14	xy_3_3
+Inf	349.44445461697	6.51254681822392e-18	xy_3_3
+Inf	349.96297539605	4.97919259365601e-22	xy_3_3
+Inf	387.850006103516	4.42154814663809e-05	xy_3_3
+Inf	388.895843505859	2.20461995013854e-13	xy_3_3
+Inf	389.854179382324	1.07776605300705e-21	xy_3_3
+Inf	391.083335876465	5.18557991695755e-30	xy_3_3
+Inf	391.972229003906	2.46211811583847e-38	xy_3_3
+Inf	394.083351135254	0.225453585386276	xy_3_3
+Inf	394.791679382324	0.310508847236633	xy_3_3
+Inf	395.270843505859	2.11353399208747e-05	xy_3_3
+Inf	395.816680908203	1.37501721120259e-09	xy_3_3
+Inf	396.383337402344	9.99066823194339e-14	xy_3_3
+Inf	396.916674804687	7.3794850397387e-18	xy_3_3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/masspeaks3_forinput.tabular	Mon Oct 01 01:09:43 2018 -0400
@@ -0,0 +1,298 @@
+snr	mass	intensity	spectrum
+Inf	304.595254080636	1.76512676262064e-05	xy_1_1
+Inf	305.119057791574	1.62699820283052e-09	xy_1_1
+Inf	305.66667175293	1.02237303638199e-13	xy_1_1
+Inf	306.32292175293	7.71168242810122e-18	xy_1_1
+Inf	307.031265258789	5.54882387838857e-22	xy_1_1
+Inf	307.614593505859	3.61475171997316e-26	xy_1_1
+Inf	308.718757629395	1.67789168240286e-34	xy_1_1
+Inf	309.250011444092	1.43981749664202e-38	xy_1_1
+Inf	321.050012207031	1.5556590571819e-38	xy_1_1
+Inf	328.000010172526	0.481155782938004	xy_1_1
+Inf	329.152786254883	2.47849035263062	xy_1_1
+Inf	330.197929382324	1.09462394703996e-08	xy_1_1
+Inf	330.712968614366	5.96421675068404e-13	xy_1_1
+Inf	331.259270562066	5.44180783738833e-17	xy_1_1
+Inf	331.796308729384	2.72964412068832e-21	xy_1_1
+Inf	332.342600504557	2.65403450832136e-25	xy_1_1
+Inf	332.879638671875	1.38079261482617e-29	xy_1_1
+Inf	333.44445461697	1.27447841383671e-33	xy_1_1
+Inf	343.642865862165	0.282461315393448	xy_1_1
+Inf	344.611124674479	0.638258039951324	xy_1_1
+Inf	345.629638671875	7.93658109614626e-05	xy_1_1
+Inf	346.120378282335	6.64322641341641e-09	xy_1_1
+Inf	346.700012207031	3.66650991252132e-13	xy_1_1
+Inf	347.296308729384	3.31281302377731e-17	xy_1_1
+Inf	347.814826117622	1.67992344863529e-21	xy_1_1
+Inf	348.361117892795	1.61966283306326e-25	xy_1_1
+Inf	348.888895670573	8.15391718679523e-30	xy_1_1
+Inf	349.44445461697	7.79337969080295e-34	xy_1_1
+Inf	349.96297539605	4.78329195057699e-38	xy_1_1
+Inf	365.979179382324	3.88570062627783e-13	xy_1_1
+Inf	366.562515258789	1.91497258346089e-17	xy_1_1
+Inf	367.083343505859	1.88767583715038e-21	xy_1_1
+Inf	367.645835876465	0.235070616006851	xy_1_1
+Inf	368.222229003906	1.47346945595928e-05	xy_1_1
+Inf	368.666680908203	1.13727949280218e-09	xy_1_1
+Inf	369.216674804688	6.86236075017783e-14	xy_1_1
+Inf	369.766680908203	5.79879376075753e-18	xy_1_1
+Inf	370.523821149554	2.65765684162034e-05	xy_1_1
+Inf	306.32292175293	1.93815667444142e-05	xy_2_1
+Inf	307.031265258789	1.36712752230039e-09	xy_2_1
+Inf	307.614593505859	9.10052605105835e-14	xy_2_1
+Inf	308.266668701172	0.399492412805557	xy_2_1
+Inf	308.718757629395	2.19716112042079e-05	xy_2_1
+Inf	309.250011444092	1.93809390758304e-09	xy_2_1
+Inf	309.833347865513	1.00940015081239e-13	xy_2_1
+Inf	310.361124674479	9.53307623430011e-18	xy_2_1
+Inf	310.902786254883	4.60080996999485e-22	xy_2_1
+Inf	311.430557250977	0.37831038236618	xy_2_1
+Inf	311.986119588216	3.04782115563285e-05	xy_2_1
+Inf	312.516674804688	1.61912494522909e-09	xy_2_1
+Inf	328.937515258789	2.02454543113708	xy_2_1
+Inf	329.697925567627	4.36672562500462e-05	xy_2_1
+Inf	330.197929382324	0.291347920894623	xy_2_1
+Inf	330.712968614366	2.65860908257309e-05	xy_2_1
+Inf	331.259270562066	1.33338984298348e-09	xy_2_1
+Inf	331.796308729384	0.256167501211166	xy_2_1
+Inf	332.342600504557	1.61519819812384e-05	xy_2_1
+Inf	332.879638671875	0.473990738391876	xy_2_1
+Inf	333.44445461697	3.11978510580957e-05	xy_2_1
+Inf	334.020843505859	2.16568318833765e-09	xy_2_1
+Inf	343.642865862165	4.07043262384832e-05	xy_2_1
+Inf	345.629638671875	0.388675004243851	xy_2_1
+Inf	346.120378282335	1.22390151023865	xy_2_1
+Inf	347.296308729384	2.53151047218125e-05	xy_2_1
+Inf	347.814826117622	2.07963690712631e-09	xy_2_1
+Inf	348.361117892795	1.17175312421697e-13	xy_2_1
+Inf	348.888895670573	1.04223425420895e-17	xy_2_1
+Inf	349.44445461697	5.37785487481536e-22	xy_2_1
+Inf	349.96297539605	0.309614509344101	xy_2_1
+Inf	351.069458007812	1.2832610529756e-09	xy_2_1
+Inf	370.523821149554	2.16230963798365e-13	xy_2_1
+Inf	328.937515258789	1.43158733844757	xy_3_1
+Inf	329.697925567627	4.62229545519222e-05	xy_3_1
+Inf	330.712968614366	2.11953542282421e-13	xy_3_1
+Inf	331.259270562066	2.03012902874583e-17	xy_3_1
+Inf	331.796308729384	9.94915412632575e-22	xy_3_1
+Inf	332.342600504557	9.78378697984054e-26	xy_3_1
+Inf	332.879638671875	5.89565674575821e-30	xy_3_1
+Inf	333.44445461697	4.65177644766935e-34	xy_3_1
+Inf	334.020843505859	3.24418811371231e-38	xy_3_1
+Inf	345.629638671875	3.101946276729e-05	xy_3_1
+Inf	346.120378282335	2.42813036344103e-09	xy_3_1
+Inf	347.296308729384	1.2331086620974e-17	xy_3_1
+Inf	347.814826117622	6.65060432147639e-22	xy_3_1
+Inf	348.361117892795	6.1151591415287e-26	xy_3_1
+Inf	348.888895670573	3.04086320241335e-30	xy_3_1
+Inf	349.44445461697	2.97658725432968e-34	xy_3_1
+Inf	349.96297539605	1.58814465883111e-38	xy_3_1
+Inf	387.850006103516	2.8698808819172e-05	xy_3_1
+Inf	388.895843505859	1.5247652858201e-13	xy_3_1
+Inf	389.854179382324	9.39855267846122e-18	xy_3_1
+Inf	391.083335876465	3.90465670032414e-30	xy_3_1
+Inf	391.972229003906	1.99175119954855e-34	xy_3_1
+Inf	394.083351135254	3.94045773788321e-09	xy_3_1
+Inf	394.791679382324	9.62898286324196e-18	xy_3_1
+Inf	395.270843505859	0.23992046713829	xy_3_1
+Inf	395.816680908203	1.69494323927211e-05	xy_3_1
+Inf	396.383337402344	1.12639098048817e-09	xy_3_1
+Inf	396.916674804687	8.86759402344249e-14	xy_3_1
+Inf	304.595254080636	1.17177887401856e-13	xy_1_2
+Inf	305.119057791574	5.69736818276873e-18	xy_1_2
+Inf	305.66667175293	5.6757509669499e-22	xy_1_2
+Inf	306.32292175293	0.401378452777863	xy_1_2
+Inf	307.031265258789	0.968722462654114	xy_1_2
+Inf	307.614593505859	5.86232454224955e-05	xy_1_2
+Inf	308.718757629395	2.7437655012591e-13	xy_1_2
+Inf	309.250011444092	2.22135184510828e-17	xy_1_2
+Inf	321.050012207031	1.50940976188625e-38	xy_1_2
+Inf	328.000010172526	0.217953696846962	xy_1_2
+Inf	329.152786254883	1.6380660533905	xy_1_2
+Inf	330.197929382324	0.533841967582703	xy_1_2
+Inf	330.712968614366	2.71527351287659e-05	xy_1_2
+Inf	331.259270562066	2.59207522113059e-09	xy_1_2
+Inf	331.796308729384	1.59223044362937e-13	xy_1_2
+Inf	332.342600504557	1.2307215842857e-17	xy_1_2
+Inf	332.879638671875	8.70707862088559e-22	xy_1_2
+Inf	333.44445461697	5.77743854353985e-26	xy_1_2
+Inf	343.642865862165	0.662226140499115	xy_1_2
+Inf	344.611124674479	0.267281413078308	xy_1_2
+Inf	345.629638671875	2.6464356778888e-05	xy_1_2
+Inf	346.120378282335	0.933241784572601	xy_1_2
+Inf	346.700012207031	5.34617865923792e-05	xy_1_2
+Inf	347.296308729384	2.65817307081306e-05	xy_1_2
+Inf	347.814826117622	2.63146238133061e-09	xy_1_2
+Inf	348.361117892795	1.46233204581861e-13	xy_1_2
+Inf	348.888895670573	1.25829507097872e-17	xy_1_2
+Inf	349.44445461697	8.27559972606905e-22	xy_1_2
+Inf	349.96297539605	5.94295388740686e-26	xy_1_2
+Inf	365.979179382324	4.37134549429175e-05	xy_1_2
+Inf	366.562515258789	2.64647725956024e-09	xy_1_2
+Inf	367.083343505859	2.23088989772732e-13	xy_1_2
+Inf	367.645835876465	1.22170415755601e-17	xy_1_2
+Inf	368.222229003906	1.11046018496466e-21	xy_1_2
+Inf	368.666680908203	5.59376337511562e-26	xy_1_2
+Inf	369.216674804688	5.42113770011657e-30	xy_1_2
+Inf	369.766680908203	2.78554944810064e-34	xy_1_2
+Inf	370.523821149554	2.60531652564813e-38	xy_1_2
+Inf	306.32292175293	2.31608719332144e-05	xy_2_2
+Inf	307.031265258789	0.447774022817612	xy_2_2
+Inf	307.614593505859	0.428305774927139	xy_2_2
+Inf	308.266668701172	2.67954346782062e-05	xy_2_2
+Inf	308.718757629395	2.22558682594354e-09	xy_2_2
+Inf	309.250011444092	1.23887540308919e-13	xy_2_2
+Inf	309.833347865513	1.11220637212349e-17	xy_2_2
+Inf	310.361124674479	5.68033014673253e-22	xy_2_2
+Inf	310.902786254883	5.44664266518465e-26	xy_2_2
+Inf	311.430557250977	2.68241453784197e-30	xy_2_2
+Inf	311.986119588216	2.62427828124129e-34	xy_2_2
+Inf	312.516674804688	1.58696420500477e-38	xy_2_2
+Inf	328.937515258789	2.37836694717407	xy_2_2
+Inf	329.697925567627	2.56914954661625e-05	xy_2_2
+Inf	330.197929382324	2.05684469456457e-09	xy_2_2
+Inf	330.712968614366	1.42042993578166e-13	xy_2_2
+Inf	331.259270562066	9.67603620520642e-18	xy_2_2
+Inf	331.796308729384	7.48378431587693e-22	xy_2_2
+Inf	332.342600504557	4.50551773856038e-26	xy_2_2
+Inf	332.879638671875	3.81384647033894e-30	xy_2_2
+Inf	333.44445461697	2.07898068639674e-34	xy_2_2
+Inf	334.020843505859	1.92182899577831e-38	xy_2_2
+Inf	343.642865862165	3.78152206840319e-30	xy_2_2
+Inf	345.629638671875	2.89905474346597e-05	xy_2_2
+Inf	346.120378282335	2.03336369963836e-09	xy_2_2
+Inf	347.296308729384	1.5656460163882e-05	xy_2_2
+Inf	347.814826117622	1.26892807372769e-09	xy_2_2
+Inf	348.361117892795	7.2568185727033e-14	xy_2_2
+Inf	348.888895670573	6.38326717387832e-18	xy_2_2
+Inf	349.44445461697	3.33466297356616e-22	xy_2_2
+Inf	349.96297539605	3.14223389850709e-26	xy_2_2
+Inf	351.069458007812	1.5203838193817e-34	xy_2_2
+Inf	370.523821149554	2.19204516215991e-38	xy_2_2
+Inf	328.937515258789	0.995543837547302	xy_3_2
+Inf	329.697925567627	3.03936976706609e-05	xy_3_2
+Inf	330.712968614366	2.97629267151933e-05	xy_3_2
+Inf	331.259270562066	1.62655666713363e-09	xy_3_2
+Inf	331.796308729384	1.42477311415937e-13	xy_3_2
+Inf	332.342600504557	9.25888240485103e-18	xy_3_2
+Inf	332.879638671875	6.73557006833172e-22	xy_3_2
+Inf	333.44445461697	4.97108094996007e-26	xy_3_2
+Inf	334.020843505859	0.268675297498703	xy_3_2
+Inf	345.629638671875	8.61570297274739e-05	xy_3_2
+Inf	346.120378282335	0.285138785839081	xy_3_2
+Inf	347.296308729384	1.30612853865841e-09	xy_3_2
+Inf	347.814826117622	1.26163240011384e-13	xy_3_2
+Inf	348.361117892795	6.39862460913097e-18	xy_3_2
+Inf	348.888895670573	6.06791151963729e-22	xy_3_2
+Inf	349.44445461697	3.743162251606e-26	xy_3_2
+Inf	349.96297539605	2.88010014996665e-30	xy_3_2
+Inf	387.850006103516	0.197833687067032	xy_3_2
+Inf	388.895843505859	1.24303778381574e-09	xy_3_2
+Inf	389.854179382324	6.66746120334285e-18	xy_3_2
+Inf	391.083335876465	0.310464262962341	xy_3_2
+Inf	391.972229003906	0.554931581020355	xy_3_2
+Inf	394.083351135254	1.74293175463129e-17	xy_3_2
+Inf	394.791679382324	1.05953142589779e-21	xy_3_2
+Inf	395.270843505859	8.90397842411612e-26	xy_3_2
+Inf	395.816680908203	4.8930473332074e-30	xy_3_2
+Inf	396.383337402344	4.43552910897872e-34	xy_3_2
+Inf	396.916674804687	2.28012433765444e-38	xy_3_2
+Inf	304.595254080636	0.279548346996307	xy_1_3
+Inf	305.119057791574	0.716848015785217	xy_1_3
+Inf	305.66667175293	6.01442479819525e-05	xy_1_3
+Inf	306.32292175293	3.80939590982621e-09	xy_1_3
+Inf	307.031265258789	2.06235797064436e-17	xy_1_3
+Inf	307.614593505859	1.33474952143388e-21	xy_1_3
+Inf	308.718757629395	6.1926750159511e-30	xy_1_3
+Inf	309.250011444092	5.40336274000115e-34	xy_1_3
+Inf	321.050012207031	0.261909782886505	xy_1_3
+Inf	328.000010172526	2.71850386646122e-09	xy_1_3
+Inf	329.152786254883	0.519839584827423	xy_1_3
+Inf	330.197929382324	2.44585240949391e-09	xy_1_3
+Inf	330.712968614366	1.88825666799612e-13	xy_1_3
+Inf	331.259270562066	1.13914243343648e-17	xy_1_3
+Inf	331.796308729384	9.62779062132945e-22	xy_1_3
+Inf	332.342600504557	5.25721990550878e-26	xy_1_3
+Inf	332.879638671875	4.78893314027823e-30	xy_1_3
+Inf	333.44445461697	2.40634231736506e-34	xy_1_3
+Inf	343.642865862165	2.33215705520706e-05	xy_1_3
+Inf	344.611124674479	1.14931461158048e-13	xy_1_3
+Inf	345.629638671875	2.49274271482136e-05	xy_1_3
+Inf	346.120378282335	2.42154163387909e-09	xy_1_3
+Inf	346.700012207031	1.25566657765974e-13	xy_1_3
+Inf	347.296308729384	1.16314638763216e-17	xy_1_3
+Inf	347.814826117622	7.28580269542504e-22	xy_1_3
+Inf	348.361117892795	5.51452352978133e-26	xy_1_3
+Inf	348.888895670573	3.95872379808908e-30	xy_1_3
+Inf	349.44445461697	2.58541051461361e-34	xy_1_3
+Inf	349.96297539605	2.00786591889092e-38	xy_1_3
+Inf	365.979179382324	0.29585200548172	xy_1_3
+Inf	366.562515258789	2.61009136011126e-05	xy_1_3
+Inf	367.083343505859	1.29202726295574e-09	xy_1_3
+Inf	367.645835876465	1.26925610321495e-13	xy_1_3
+Inf	368.222229003906	6.86202649112451e-18	xy_1_3
+Inf	368.666680908203	6.0804923995715e-22	xy_1_3
+Inf	369.216674804688	3.92168363149906e-26	xy_1_3
+Inf	369.766680908203	2.87628364894794e-30	xy_1_3
+Inf	370.523821149554	2.11079916033934e-34	xy_1_3
+Inf	306.32292175293	2.58914169535274e-05	xy_2_3
+Inf	307.031265258789	0.2786685526371	xy_2_3
+Inf	307.614593505859	2.96689468086697e-05	xy_2_3
+Inf	308.266668701172	0.630028009414673	xy_2_3
+Inf	308.718757629395	3.5055691114394e-05	xy_2_3
+Inf	309.250011444092	3.4764433554102e-09	xy_2_3
+Inf	309.833347865513	2.08417769262566e-13	xy_2_3
+Inf	310.361124674479	1.65365266219334e-17	xy_2_3
+Inf	310.902786254883	1.14908291585848e-21	xy_2_3
+Inf	311.430557250977	7.77481833182232e-26	xy_2_3
+Inf	311.986119588216	6.04272858040201e-30	xy_2_3
+Inf	312.516674804688	3.61853642833949e-34	xy_2_3
+Inf	328.937515258789	1.3272477388382	xy_2_3
+Inf	329.697925567627	0.000119319425721187	xy_2_3
+Inf	330.197929382324	0.87813526391983	xy_2_3
+Inf	330.712968614366	5.94691991864238e-05	xy_2_3
+Inf	331.259270562066	4.48100578864796e-09	xy_2_3
+Inf	331.796308729384	2.77607174444319e-13	xy_2_3
+Inf	332.342600504557	2.30068624134988e-17	xy_2_3
+Inf	332.879638671875	1.28379127790181e-21	xy_2_3
+Inf	333.44445461697	1.15039499526719e-25	xy_2_3
+Inf	334.020843505859	5.88708673366388e-30	xy_2_3
+Inf	343.642865862165	0.628214061260223	xy_2_3
+Inf	345.629638671875	2.52073332376312e-05	xy_2_3
+Inf	346.120378282335	2.42913511527831e-09	xy_2_3
+Inf	347.296308729384	3.06663314404432e-05	xy_2_3
+Inf	347.814826117622	1.64383595624429e-09	xy_2_3
+Inf	348.361117892795	1.4698648114625e-13	xy_2_3
+Inf	348.888895670573	9.42402156952173e-18	xy_2_3
+Inf	349.44445461697	6.95620575449764e-22	xy_2_3
+Inf	349.96297539605	5.08223484114241e-26	xy_2_3
+Inf	351.069458007812	2.63284561467787e-34	xy_2_3
+Inf	370.523821149554	0.38996833562851	xy_2_3
+Inf	328.937515258789	1.43404459953308	xy_3_3
+Inf	329.697925567627	6.18351987213828e-05	xy_3_3
+Inf	330.712968614366	3.4482751940304e-13	xy_3_3
+Inf	331.259270562066	2.93395139921047e-17	xy_3_3
+Inf	331.796308729384	1.94369975414076e-21	xy_3_3
+Inf	332.342600504557	1.38486306848585e-25	xy_3_3
+Inf	332.879638671875	1.03717248235199e-29	xy_3_3
+Inf	333.44445461697	6.46787389371651e-34	xy_3_3
+Inf	334.020843505859	5.33374608969737e-38	xy_3_3
+Inf	345.629638671875	0.000100398268841673	xy_3_3
+Inf	346.120378282335	0.700047612190247	xy_3_3
+Inf	347.296308729384	0.290130436420441	xy_3_3
+Inf	347.814826117622	1.69061459018849e-05	xy_3_3
+Inf	348.361117892795	1.38276745609289e-09	xy_3_3
+Inf	348.888895670573	9.4092654945744e-14	xy_3_3
+Inf	349.44445461697	6.51254681822392e-18	xy_3_3
+Inf	349.96297539605	4.97919259365601e-22	xy_3_3
+Inf	387.850006103516	4.42154814663809e-05	xy_3_3
+Inf	388.895843505859	2.20461995013854e-13	xy_3_3
+Inf	389.854179382324	1.07776605300705e-21	xy_3_3
+Inf	391.083335876465	5.18557991695755e-30	xy_3_3
+Inf	391.972229003906	2.46211811583847e-38	xy_3_3
+Inf	394.083351135254	0.225453585386276	xy_3_3
+Inf	394.791679382324	0.310508847236633	xy_3_3
+Inf	395.270843505859	2.11353399208747e-05	xy_3_3
+Inf	395.816680908203	1.37501721120259e-09	xy_3_3
+Inf	396.383337402344	9.99066823194339e-14	xy_3_3
+Inf	396.916674804687	7.3794850397387e-18	xy_3_3
Binary file test-data/peakdetection1_QC.pdf has changed
Binary file test-data/peakdetection2_QC.pdf has changed
Binary file test-data/peakdetection3_QC.pdf has changed