changeset 10:e4dda61bb5c8 draft

"planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/cardinal commit c8d3adac445b4e08e2724e22d7201bfc38bbf40f"
author galaxyp
date Sun, 29 Aug 2021 07:16:49 +0000
parents 060440cf66f3
children b8b06ac5c603
files macros.xml quality_report.xml test-data/112_auto_combined.ibd test-data/112_auto_combined.imzml test-data/112_auto_combined.imzml.txt test-data/112_auto_combined_QC.pdf test-data/123_combined.ibd test-data/123_combined.imzml test-data/123_combined.imzml.txt test-data/123_combined_QC.pdf test-data/123_combined_auto.ibd test-data/123_combined_auto.imzml test-data/123_combined_auto.imzml.txt test-data/123_combined_auto.pdf test-data/12_combined.ibd test-data/12_combined.imzml test-data/12_combined.imzml.txt test-data/12_combined_QC.pdf test-data/2123_auto_combined.ibd test-data/2123_auto_combined.imzml test-data/2123_auto_combined.imzml.txt test-data/2123_auto_combined_QC.pdf test-data/Heatmaps_LM8_file16.pdf test-data/Heatmaps_analyze75.pdf test-data/Heatmaps_imzml.pdf test-data/Heatmaps_processed.pdf test-data/Heatmaps_rdata.pdf test-data/Plot_analyze75.pdf test-data/Plot_analyze75_allpixels.pdf test-data/Plot_imzml.pdf test-data/Plot_picked.pdf test-data/Plot_processed.pdf test-data/Plot_rdata.pdf test-data/QC_analyze75.pdf test-data/QC_empty_spectra.pdf test-data/QC_imzml.pdf test-data/QC_imzml_shortreport.pdf test-data/QC_rdata.pdf test-data/analyze75_filtered2.pdf test-data/centroids_proc.pdf test-data/centroids_rdata.pdf test-data/cluster_skm.RData test-data/imzml_filtered3.pdf test-data/imzml_filtered4.pdf test-data/imzml_filtered5.pdf test-data/imzml_filtered8.pdf test-data/kmeans_analyze.pdf test-data/out3.ibd test-data/out3.imzml test-data/out3.imzml.txt test-data/out4.ibd test-data/out4.imzml test-data/out4.imzml.txt test-data/out5.ibd test-data/out5.imzml test-data/out5.imzml.txt test-data/out6.ibd test-data/out6.imzml test-data/out6.imzml.txt test-data/out7.ibd test-data/out7.imzml test-data/out7.imzml.txt test-data/out8.ibd test-data/out8.imzml test-data/out8.imzml.txt test-data/pca_imzml.pdf test-data/picked.ibd test-data/picked.imzml test-data/picked.imzml.txt test-data/picked_QC.pdf test-data/pixels_test6.tabular test-data/preprocessing_results1.ibd test-data/preprocessing_results1.imzml test-data/preprocessing_results1.imzml.txt test-data/preprocessing_results1.pdf test-data/preprocessing_results2.ibd test-data/preprocessing_results2.imzml test-data/preprocessing_results2.imzml.txt test-data/preprocessing_results2.pdf test-data/preprocessing_results3.ibd test-data/preprocessing_results3.imzml test-data/preprocessing_results3.imzml.txt test-data/preprocessing_results3.pdf test-data/preprocessing_results4.ibd test-data/preprocessing_results4.imzml test-data/preprocessing_results4.imzml.txt test-data/preprocessing_results4.pdf test-data/preprocessing_results5.ibd test-data/preprocessing_results5.imzml test-data/preprocessing_results5.imzml.txt test-data/preprocessing_results5.pdf test-data/rdata_notfiltered.pdf test-data/test1.pdf test-data/test2.pdf test-data/test2.rdata test-data/test3.pdf test-data/test4.pdf test-data/test4.rdata test-data/test5.pdf test-data/test6.pdf test-data/test6.rdata test-data/test7.pdf test-data/test7.rdata
diffstat 103 files changed, 566 insertions(+), 497 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Wed May 13 17:55:17 2020 +0000
+++ b/macros.xml	Sun Aug 29 07:16:49 2021 +0000
@@ -1,10 +1,10 @@
 <macros>
-    <token name="@VERSION@">2.4.0</token>
+    <token name="@VERSION@">2.10.0</token>
 
     <xml name="requirements">
         <requirements>
             <requirement type="package" version="@VERSION@">bioconductor-cardinal</requirement>
-            <requirement type="package" version="3.6.1">r-base</requirement>
+            <!--requirement type="package" version="3.6.1">r-base</requirement-->
             <yield/>
         </requirements>
     </xml>
@@ -117,6 +117,13 @@
     <token name="@DATA_PROPERTIES_INRAM@"><![CDATA[ 
 ########################### QC numbers ########################
 ## including intensity calculations which need data in RAM
+
+	int_matrix = as.matrix(spectra(msidata)) ## only load once into RAM, then re-use
+	## Number of NA in spectra matrix
+        NAcount = sum(is.na(int_matrix))
+	## replace NA with zero to calculate data properties based on intensity matrix, no change in msidata
+	int_matrix[is.na(int_matrix)] <- 0
+	
         ## Number of features (mz)
         maxfeatures = length(features(msidata))
         ## Range mz
@@ -131,14 +138,12 @@
         minimumy = min(coord(msidata)[,2])
         maximumy = max(coord(msidata)[,2])
         ## Range of intensities
-        minint = round(min(as.matrix(spectra(msidata)), na.rm=TRUE), digits=2)
-        maxint = round(max(as.matrix(spectra(msidata)), na.rm=TRUE), digits=2)
+        minint = round(min(int_matrix), digits=2)
+        maxint = round(max(int_matrix), digits=2)
         ## Number of intensities > 0, for if conditions
-        npeaks= sum(as.matrix(spectra(msidata))>0, na.rm=TRUE)
+        npeaks= sum(int_matrix>0)
         ## Number of NA in spectra matrix
-        NAcount = sum(is.na(spectra(msidata)))
-        ## Number of NA in spectra matrix
-        infcount = sum(is.infinite(as.matrix(spectra(msidata))))
+        infcount = sum(is.infinite(int_matrix))
         ## Number of duplicated coordinates
         dupl_coord = sum(duplicated(coord(msidata)))
         properties = c("Number of m/z features",
@@ -175,7 +180,7 @@
 
             - imzml file (upload imzml and ibd file via the "composite" function) `Introduction to the imzml format <https://ms-imaging.org/wp/imzml/>`_
             - Analyze7.5 (upload hdr, img and t2m file via the "composite" function)
-            - Cardinal "MSImageSet" data saved as .RData
+            - Cardinal "MSImageSet" or "MSImagingExperiment" saved as .RData
     ]]></token>
     <token name="@MZ_TABULAR_INPUT_DESCRIPTION@"><![CDATA[
         - Optional tabular file with m/z values: 
@@ -243,7 +248,7 @@
             </param>
             <when value="no_processed"/>
             <when value="processed">
-                <param name="accuracy" type="float" value="50" label="Mass accuracy to which the m/z values will be binned" help="This should be set to the native accuracy of the mass spectrometer, if known"/>
+                <param name="accuracy" type="float" value="50" label="Mass accuracy to which the m/z values will be binned"/>
                 <param name="units" display="radio" type="select" label="Unit of the mass accuracy" help="either m/z or ppm">
                     <option value="mz" >mz</option>
                     <option value="ppm" selected="True" >ppm</option>
--- a/quality_report.xml	Wed May 13 17:55:17 2020 +0000
+++ b/quality_report.xml	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
-<tool id="cardinal_quality_report" name="MSI Qualitycontrol" version="@VERSION@.1">
+<tool id="cardinal_quality_report" name="MSI Qualitycontrol" version="@VERSION@.0">
     <description>
         mass spectrometry imaging QC
     </description>
@@ -7,11 +7,11 @@
     </macros>
     <expand macro="requirements">
         <requirement type="package" version="2.3">r-gridextra</requirement>
-        <requirement type="package" version="3.2.1">r-ggplot2</requirement>
+        <requirement type="package" version="3.3.5">r-ggplot2</requirement>
         <requirement type="package" version="1.1_2">r-rcolorbrewer</requirement>
-        <requirement type="package" version="2.23_16">r-kernsmooth</requirement>
-        <requirement type="package" version="1.1.0">r-scales</requirement>
-        <requirement type="package" version="1.0.12"> r-pheatmap</requirement>
+        <requirement type="package" version="2.23_20">r-kernsmooth</requirement>
+        <requirement type="package" version="1.1.1">r-scales</requirement>
+        <requirement type="package" version="1.0.12">r-pheatmap</requirement>
     </expand>
     <command detect_errors="exit_code">
     <![CDATA[
@@ -60,7 +60,7 @@
     merged_annotation = merge(msidata_coordinates, 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),]
-    msidata\$annotation = as.factor(merged_annotation[,4])
+    msidata\$annotation = as.character(merged_annotation[,4])
 
 #end if
 
@@ -68,13 +68,13 @@
 @DATA_PROPERTIES_INRAM@
 
 ## Median intensities
-medint = round(median(spectra(msidata), na.rm=TRUE), digits=2)
+medint = round(median(int_matrix), digits=2)
 ## Spectra multiplied with m/z (potential number of peaks)
-numpeaks = ncol(msidata)*nrow(msidata)
+numpeaks = as.numeric(ncol(msidata)*nrow(msidata))
 ## Percentage of intensities > 0
 percpeaks = round(npeaks/numpeaks*100, digits=2)
 ## Number of empty TICs
-TICs = pixelApply(msidata, sum)
+TICs = pixelApply(msidata, sum, na.rm=TRUE)
 NumemptyTIC = sum(TICs == 0)
 ## Median und sd TIC
 medTIC = round(median(TICs), digits=1)
@@ -82,6 +82,8 @@
 ## Median and sd # peaks per spectrum
 medpeaks = round(median(colSums(spectra(msidata)>0, na.rm=TRUE), na.rm=TRUE), digits=0)
 sdpeaks = round(sd(colSums(spectra(msidata)>0, na.rm=TRUE), na.rm=TRUE), digits=0)
+##max window size 
+max_window = round(mz(msidata)[nrow(msidata)]-mz(msidata)[nrow(msidata)-1], digits=2)
 ## Processing informations
 centroidedinfo = centroided(msidata)
 
@@ -137,6 +139,7 @@
                "Number of empty spectra",
                "Median TIC ± sd", 
                "Median # peaks per spectrum ± sd",
+               "maximum m/z window size",
                "Centroided", 
                paste0("input m/z (#valid/#input) in \n", "$calibrant_file.display_name"))
 
@@ -145,6 +148,7 @@
            paste0(NumemptyTIC), 
            paste0(medTIC, " ± ", sdTIC),
            paste0(medpeaks, " ± ",sdpeaks),
+           paste0(max_window),
            paste0(centroidedinfo), 
            paste0(number_calibrants_valid, " / ", number_calibrants_in))
 
@@ -183,12 +187,13 @@
 
     ### only for previously combined data, same plot as in combine QC pdf
 
-    if (!is.null(levels(msidata\$annotation))){
+    if (!is.null(unique(msidata\$annotation))){
 
-        number_combined = length(levels(msidata\$annotation))
+        number_combined = length(unique(msidata\$annotation))
 
         position_df = data.frame(coord(msidata)\$x, coord(msidata)\$y, msidata\$annotation)
         colnames(position_df) = c("x", "y","annotation")
+                print(position_df)
 
         combine_plot = ggplot(position_df, aes(x=x, y=y, fill=annotation))+
                geom_tile() +
@@ -220,7 +225,7 @@
     pixelxyarray=data.frame(coord(msidata)\$x, coord(msidata)\$y,pixelnumber)
     colnames(pixelxyarray) = c("x", "y", "pixelnumber")
     gg_title = "Pixel order"
-    
+
     print(ggplot(pixelxyarray, aes(x=x, y=y, fill=pixelnumber))+
      geom_tile() + coord_fixed()+
      ggtitle(gg_title) + theme_bw()+
@@ -354,24 +359,29 @@
     #end if
 
     #################### 4) m/z heatmaps #######################################
-    par(mfrow=c(1,1), mar=c(5.1, 4.1, 4.1, 2.1), mgp=c(3, 1, 0), las=0)
-    if (length(inputcalibrants[,1]) != 0){
-        for (mass in 1:length(inputcalibrants[,1])){
-            par(oma=c(0,0,0,1))## margin for image legend
+   
+    #if $report_depth:
+       
+		par(mfrow=c(1,1), mar=c(5.1, 4.1, 4.1, 2.1), mgp=c(3, 1, 0), las=0)
+		if (length(inputcalibrants[,1]) != 0){
+		for (mass in 1:length(inputcalibrants[,1])){
+			par(oma=c(0,0,0,1))## margin for image legend
 
-           tryCatch(
-                        {
-                        print(image(msidata, mz=inputcalibrants[,1][mass], plusminus=plusminusvalues[mass], 
-            main= paste0(inputcalibrants[,2][mass], ": ", round(inputcalibrants[,1][mass], digits = 2)," (±",$plusminus_ppm, " ppm)"),
-            contrast.enhance = "histogram", strip=FALSE, ylim= c(maximumy,minimumy)))
-                        },
-                        error=function(cond) {
-                        ## if there are not enough intensities in the mz range skip creating an image
-                        print(paste0("Not enough intensities > 0 for m/z ", inputcalibrants[,1][mass]))
-                        }
-                    )    
-        }
-    } else {print("4) The input peptide and calibrant m/z were not provided or outside the m/z range")}
+		   tryCatch(
+				{
+				print(image(msidata, mz=inputcalibrants[,1][mass], plusminus=plusminusvalues[mass], 
+			main= paste0(inputcalibrants[,2][mass], ": ", round(inputcalibrants[,1][mass], digits = 2)," (±",$plusminus_ppm, " ppm)"),
+			contrast.enhance = "histogram", strip=FALSE, ylim= c(maximumy,minimumy)))
+				},
+				error=function(cond) {
+				## if there are not enough intensities in the mz range skip creating an image
+				print(paste0("Not enough intensities > 0 for m/z ", inputcalibrants[,1][mass]))
+				}
+				)    
+		}
+		} else {print("4) The input peptide and calibrant m/z were not provided or outside the m/z range")}
+		
+    #end if
 
     #################### 5) Number of peaks per pixel - image ##################
 
@@ -414,72 +424,75 @@
 
     ############################### 6b) median int image ###############################
 
-    median_int = pixelApply(msidata, median)
+    #if $report_depth:
+    
+		median_int = pixelApply(msidata, median, na.rm=TRUE)
 
-    median_coordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, median_int)
-    colnames(median_coordarray) = c("x", "y", "median_int")
-    print(ggplot(median_coordarray, aes(x=x, y=y, fill=median_int))+
-     geom_tile() + coord_fixed() +
-     ggtitle("Median intensity per spectrum")+
-     theme_bw() +
-     theme(plot.title = element_text(hjust = 0.5))+
-     theme(text=element_text(family="ArialMT", face="bold", size=12))+
-     scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") 
-                            ,space = "Lab", na.value = "black", name = "median\nintensity"))
+		median_coordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, median_int)
+		colnames(median_coordarray) = c("x", "y", "median_int")
+		print(ggplot(median_coordarray, aes(x=x, y=y, fill=median_int))+
+		 geom_tile() + coord_fixed() +
+		 ggtitle("Median intensity per spectrum")+
+		 theme_bw() +
+		 theme(plot.title = element_text(hjust = 0.5))+
+		 theme(text=element_text(family="ArialMT", face="bold", size=12))+
+		 scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") 
+		                        ,space = "Lab", na.value = "black", name = "median\nintensity"))
 
-    ## remove median_coordarray to clean up RAM space
-        rm(median_coordarray)
-        gc()
+		## remove median_coordarray to clean up RAM space
+		    rm(median_coordarray)
+		    gc()
 
-    ############################### 6c) max int image ###############################
-
-    max_int = pixelApply(msidata, max)
+		############################### 6c) max int image ###############################
+		
+		max_int = pixelApply(msidata, max, na.rm=TRUE)
 
-    max_coordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, max_int)
-    colnames(max_coordarray) = c("x", "y", "max_int")
-    print(ggplot(max_coordarray, aes(x=x, y=y, fill=max_int))+
-     geom_tile() + coord_fixed() +
-     ggtitle("Maximum intensity per spectrum")+
-     theme_bw() +
-     theme(plot.title = element_text(hjust = 0.5))+
-     theme(text=element_text(family="ArialMT", face="bold", size=12))+
-     scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") 
-                            ,space = "Lab", na.value = "black", name = "max\nintensity"))
+		max_coordarray=data.frame(coord(msidata)\$x, coord(msidata)\$y, max_int)
+		colnames(max_coordarray) = c("x", "y", "max_int")
+		print(ggplot(max_coordarray, aes(x=x, y=y, fill=max_int))+
+		 geom_tile() + coord_fixed() +
+		 ggtitle("Maximum intensity per spectrum")+
+		 theme_bw() +
+		 theme(plot.title = element_text(hjust = 0.5))+
+		 theme(text=element_text(family="ArialMT", face="bold", size=12))+
+		 scale_fill_gradientn(colours = c("blue", "purple" , "red","orange") 
+		                        ,space = "Lab", na.value = "black", name = "max\nintensity"))
 
-    ## remove median_coordarray to clean up RAM space
-        rm(max_coordarray)
-        gc()
+		## remove median_coordarray to clean up RAM space
+		    rm(max_coordarray)
+		    gc()
+
+		############################### 7) Most abundant m/z image #################
+
+		## for each spectrum find the row (m/z) with the highest intensity
+		highestmz = pixelApply(msidata, which.max)
 
-    ############################### 7) Most abundant m/z image #################
-
-    ## for each spectrum find the row (m/z) with the highest intensity
-    highestmz = pixelApply(msidata, which.max)
+		## in case for some spectra max returns integer(0), highestmz is a list and integer(0) have to be replaced with NA and unlisted
+		if (class(highestmz) == "list"){
+		    ##find zero-length values
+		    zero_entry <- !(sapply(highestmz, length))
+		    ### replace these values with NA
+		    highestmz[zero_entry] <- NA
+		    ### unlist list to get a vector
+		    highestmz = unlist(highestmz)}
 
-    ## in case for some spectra max returns integer(0), highestmz is a list and integer(0) have to be replaced with NA and unlisted
-    if (class(highestmz) == "list"){
-        ##find zero-length values
-        zero_entry <- !(sapply(highestmz, length))
-        ### replace these values with NA
-        highestmz[zero_entry] <- NA
-        ### unlist list to get a vector
-        highestmz = unlist(highestmz)}
-
-    highestmz_matrix = data.frame(coord(msidata)\$x, coord(msidata)\$y,mz(msidata)[highestmz])
-    colnames(highestmz_matrix) = c("x", "y", "highestmzinDa")
+		highestmz_matrix = data.frame(coord(msidata)\$x, coord(msidata)\$y,mz(msidata)[highestmz])
+		colnames(highestmz_matrix) = c("x", "y", "highestmzinDa")
 
-    print(ggplot(highestmz_matrix, aes(x=x, y=y, fill=highestmzinDa))+
-    geom_tile() + coord_fixed() +
-    ggtitle("Most abundant m/z in each spectrum")+
-    theme_bw() +
-    theme(plot.title = element_text(hjust = 0.5))+
-    scale_fill_gradientn(colours = c("blue", "purple" , "red","orange"), space = "Lab", na.value = "black", name = "m/z", 
-      limits=c(min(highestmz_matrix\$highestmzinDa), max(highestmz_matrix\$highestmzinDa)))+
-    theme(text=element_text(family="ArialMT", face="bold", size=12)))
+		print(ggplot(highestmz_matrix, aes(x=x, y=y, fill=highestmzinDa))+
+		geom_tile() + coord_fixed() +
+		ggtitle("Most abundant m/z in each spectrum")+
+		theme_bw() +
+		theme(plot.title = element_text(hjust = 0.5))+
+		scale_fill_gradientn(colours = c("blue", "purple" , "red","orange"), space = "Lab", na.value = "black", name = "m/z", 
+		  limits=c(min(highestmz_matrix\$highestmzinDa), max(highestmz_matrix\$highestmzinDa)))+
+		theme(text=element_text(family="ArialMT", face="bold", size=12)))
 
-    ## remove highestmz_matrix to clean up RAM space
-        rm(highestmz_matrix)
-        gc()
+		## remove highestmz_matrix to clean up RAM space
+		    rm(highestmz_matrix)
+		    gc()
 
+    #end if
 
     ########################## 8) optional pca image for two components #################
 
@@ -495,7 +508,7 @@
         par(oma=c(0,0,0,1))## margin for image legend
         print(image(pca, column = "PC1" , strip=FALSE, superpose = FALSE, main="PC1", col.regions = risk.colors(100), layout=c(2,1), ylim= c(maximumy+0.2*maximumy,minimumy-1)))
         print(image(pca, column = "PC2" , strip=FALSE, superpose = FALSE, main="PC2", col.regions = risk.colors(100), layout=FALSE,  ylim= c(maximumy+0.2*maximumy,minimumy-1)))
-    ## remove pca to clean up RAM space
+    	## remove pca to clean up space
         rm(pca)
         gc()
 
@@ -508,38 +521,44 @@
 
     ########################## 9) number of peaks per spectrum #################
     ## 9a) scatterplot
+    
+    #if $report_depth:
 
-    plot_colorByDensity(pixels(msidata), peaksperpixel, ylab = "", xlab = "", main="Number of peaks per spectrum")
-    title(xlab="Spectra index", line=3)
-    title(ylab="Number of peaks", line=4)
+		plot_colorByDensity(pixels(msidata), peaksperpixel, ylab = "", xlab = "", main="Number of peaks per spectrum")
+		title(xlab="Spectra index", line=3)
+		title(ylab="Number of peaks", line=4)
 
-    if (!is.null(levels(msidata\$annotation))){
-        abline(v=abline_vector, lty = 3)}
-
-    ## 9b) histogram
+		if (!is.null(unique(msidata\$annotation))){
+		    abline(v=abline_vector, lty = 3)}
+		
+		## 9b) histogram
+		
 
-    hist(peaksperpixel, main="", las=1, xlab = "Number of peaks per spectrum", ylab="") 
-    title(main="Number of peaks per spectrum", line=2)
-    title(ylab="Frequency = # spectra", line=4)
-    abline(v=median(peaksperpixel), col="blue")
+
+		hist(peaksperpixel, main="", las=1, xlab = "Number of peaks per spectrum", ylab="") 
+		title(main="Number of peaks per spectrum", line=2)
+		title(ylab="Frequency = # spectra", line=4)
+		abline(v=median(peaksperpixel), col="blue")
 
-    ## 9c) additional histogram to show contribution of annotation groups
+		## 9c) additional histogram to show contribution of annotation groups
 
-    if (!is.null(levels(msidata\$annotation))){
-
-        df_9 = data.frame(peaksperpixel, msidata\$annotation)
-        colnames(df_9) = c("Npeaks", "annotation")
+		if (!is.null(unique(msidata\$annotation))){
 
-        hist_9 = ggplot(df_9, aes(x=Npeaks, fill=annotation)) +
-        geom_histogram()+ theme_bw()+
-        theme(text=element_text(family="ArialMT", face="bold", size=12))+
-        theme(plot.title = element_text(hjust = 0.5))+
-        theme(legend.key.size = unit(0.2, "line"), legend.text = element_text(size = 8))+
-        theme(legend.position="bottom",legend.direction="vertical")+
-        labs(title="Number of peaks per spectrum and annotation group", x="Number of peaks per spectrum", y = "Frequency = # spectra") +
-        guides(fill=guide_legend(ncol=5,byrow=TRUE))+
-        geom_vline(xintercept = median(peaksperpixel), size = 1, colour = "black",linetype = "dashed")
-        print(hist_9)}
+		    df_9 = data.frame(peaksperpixel, msidata\$annotation)
+		    colnames(df_9) = c("Npeaks", "annotation")
+	 
+		    hist_9 = ggplot(df_9, aes(x=Npeaks, fill=annotation)) +
+		    geom_histogram()+ theme_bw()+
+		    theme(text=element_text(family="ArialMT", face="bold", size=12))+
+		    theme(plot.title = element_text(hjust = 0.5))+
+		    theme(legend.key.size = unit(0.2, "line"), legend.text = element_text(size = 8))+
+		    theme(legend.position="bottom",legend.direction="vertical")+
+		    labs(title="Number of peaks per spectrum and annotation group", x="Number of peaks per spectrum", y = "Frequency = # spectra") +
+		    guides(fill=guide_legend(ncol=5,byrow=TRUE))+
+		    geom_vline(xintercept = median(peaksperpixel), size = 1, colour = "black",linetype = "dashed")
+		    print(hist_9)}
+        
+    #end if
 
     ########################## 10) TIC per spectrum ###########################
 
@@ -555,17 +574,17 @@
 
     title(xlab="Spectra index", line=3)
     title(ylab = "Total ion current intensity", line=4)
-    if (!is.null(levels(msidata\$annotation))){
+    if (!is.null(unique(msidata\$annotation))){
         abline(v=abline_vector, lty = 3)}
 
     ## 10b) histogram
-    hist((TICs), main="", las=1, xlab = "TIC per spectrum", ylab="")
+    hist(TICs, main="", las=1, xlab = "TIC per spectrum", ylab="")
     title(main= "TIC per spectrum", line=2)
     title(ylab="Frequency = # spectra", line=4)
     abline(v=median(TICs[TICs>0]), col="blue")
 
     ## 10c) additional histogram to show annotation contributions
-    if (!is.null(levels(msidata\$annotation))){
+    if (!is.null(unique(msidata\$annotation))){
         df_10 = data.frame((TICs), msidata\$annotation)
         colnames(df_10) = c("TICs", "annotation")
 
@@ -591,68 +610,71 @@
 
     ########################## 12) Number of peaks per m/z #####################
 
-    peakspermz = rowSums(spectra(msidata) > 0, na.rm=TRUE)
+    #if $report_depth:
+        
+		peakspermz = rowSums(spectra(msidata) > 0, na.rm=TRUE)
 
-    par(mfrow = c(2,1), mar=c(5,6,4,4.5))
-    ## 12a) scatterplot
-    plot_colorByDensity(mz(msidata),peakspermz, main= "Number of peaks per m/z", ylab ="")
-    title(xlab="m/z", line=2.5)
-    title(ylab = "Number of peaks", line=4)
-    axis(4, at=pretty(peakspermz),labels=as.character(round((pretty(peakspermz)/pixelcount*100), digits=1)), las=1)
-    mtext("Coverage of spectra [%]", 4, line=3, adj=1)
+		par(mfrow = c(2,1), mar=c(5,6,4,4.5))
+		## 12a) scatterplot
+		plot_colorByDensity(mz(msidata),peakspermz, main= "Number of peaks per m/z", ylab ="")
+		title(xlab="m/z", line=2.5)
+		title(ylab = "Number of peaks", line=4)
+		axis(4, at=pretty(peakspermz),labels=as.character(round((pretty(peakspermz)/pixelcount*100), digits=1)), las=1)
+		mtext("Coverage of spectra [%]", 4, line=3, adj=1)
 
-    ## 12b) histogram
-    hist(peakspermz, main="", las=1, ylab="", xlab="")
-    title(ylab = "Frequency", line=4)
-    title(main="Number of peaks per m/z", xlab = "Number of peaks per m/z", line=2)
-    abline(v=median(peakspermz), col="blue") 
+		## 12b) histogram
+		hist(peakspermz, main="", las=1, ylab="", xlab="")
+		title(ylab = "Frequency", line=4)
+		title(main="Number of peaks per m/z", xlab = "Number of peaks per m/z", line=2)
+		abline(v=median(peakspermz), col="blue") 
 
-    ########################## 13) Sum of intensities per m/z ##################
+		########################## 13) Sum of intensities per m/z ##################
 
-    ## Sum of all intensities for each m/z (like TIC, but for m/z instead of pixel)
-    mzTIC = featureApply(msidata, sum, na.rm=TRUE) ## calculate intensity sum for each m/z
+		## Sum of all intensities for each m/z (like TIC, but for m/z instead of pixel)
+		mzTIC = featureApply(msidata, sum, na.rm=TRUE) ## calculate intensity sum for each m/z
 
-    par(mfrow = c(2,1), mar=c(5,6,4,2))
-    ## 13a) scatterplot
-    plot_colorByDensity(mz(msidata),mzTIC,  main= "Sum of intensities per m/z", ylab ="")
-    title(xlab="m/z", line=2.5)
-    title(ylab="Intensity sum", line=4)
+		par(mfrow = c(2,1), mar=c(5,6,4,2))
+		## 13a) scatterplot
+		plot_colorByDensity(mz(msidata),mzTIC,  main= "Sum of intensities per m/z", ylab ="")
+		title(xlab="m/z", line=2.5)
+		title(ylab="Intensity sum", line=4)
 
-    ## 13b) histogram
-    hist(mzTIC, main="", xlab = "", las=1, ylab="")
-    title(main="Sum of intensities per m/z", line=2, ylab="")
-    title(xlab = "sum of intensities per m/z")
-    title(ylab = "Frequency", line=4)
-    abline(v=median(mzTIC[mzTIC>0]), col="blue")
+		## 13b) histogram
+		hist(mzTIC, main="", xlab = "", las=1, ylab="")
+		title(main="Sum of intensities per m/z", line=2, ylab="")
+		title(xlab = "sum of intensities per m/z")
+		title(ylab = "Frequency", line=4)
+		abline(v=median(mzTIC[mzTIC>0]), col="blue")
 
-    ################################## V) intensity plots ########################
-    ############################################################################
-    print("intensity plots")
-    ########################## 14) Intensity distribution ######################
+		################################## V) intensity plots ########################
+		############################################################################
+		print("intensity plots")
+		########################## 14) Intensity distribution ######################
 
-    par(mfrow = c(2,1), mar=c(5,6,4,2))
+		par(mfrow = c(2,1), mar=c(5,6,4,2))
 
-    ## 14a) Median intensity over spectra
-    medianint_spectra = pixelApply(msidata, median)
-    plot(medianint_spectra, main="Median intensity per spectrum",las=1, xlab="Spectra index", ylab="")
-    title(ylab="Median spectrum intensity", line=4)
-    if (!is.null(levels(msidata\$annotation))){
-        abline(v=abline_vector, lty = 3)}
+		## 14a) Median intensity over spectra
+		medianint_spectra = pixelApply(msidata, median, na.rm=TRUE)
+		plot(medianint_spectra, main="Median intensity per spectrum",las=1, xlab="Spectra index", ylab="")
+		title(ylab="Median spectrum intensity", line=4)
+		if (!is.null(unique(msidata\$annotation))){
+		    abline(v=abline_vector, lty = 3)}
 
-    ## 14b) histogram: 
-    hist(as.matrix(spectra(msidata)), main="", xlab = "", ylab="", las=1)
-    title(main="Intensity histogram", line=2)
-    title(xlab="intensities")
-    title(ylab="Frequency", line=4)
-    abline(v=median(as.matrix(spectra(msidata))[(as.matrix(spectra(msidata))>0)], na.rm=TRUE), col="blue")
+		## 14b) histogram: 
+		hist(int_matrix, main="", xlab = "", ylab="", las=1)
+		title(main="Intensity histogram", line=2)
+		title(xlab="intensities")
+		title(ylab="Frequency", line=4)
+		abline(v=median(int_matrix)[(as.matrix(spectra(msidata))>0)], col="blue")
 
+    #end if
 
     ## 14c) histogram to show contribution of annotation groups
 
-    if (!is.null(levels(msidata\$annotation))){
+    if (!is.null(unique(msidata\$annotation))){
 
         df_13 = data.frame(matrix(,ncol=2, nrow=0))
-        for (subsample in levels(msidata\$annotation)){
+        for (subsample in unique(msidata\$annotation)){
             log2_int_subsample = spectra(msidata)[,msidata\$annotation==subsample]
             df_subsample = data.frame(as.numeric(log2_int_subsample))
             df_subsample\$annotation = subsample
@@ -668,43 +690,43 @@
         theme(legend.position="bottom",legend.direction="vertical")+
         theme(legend.key.size = unit(0.2, "line"), legend.text = element_text(size = 8))+
         guides(fill=guide_legend(ncol=5,byrow=TRUE))+
-        geom_vline(xintercept = median(spectra(msidata)[(spectra(msidata)>0)]), size = 1, colour = "black",linetype = "dashed")
+        geom_vline(xintercept = median(int_matrix)[(int_matrix>0)], size = 1, colour = "black",linetype = "dashed")
         print(hist_13)
 
         ## 14d) boxplots to visualize in a different way the intensity distributions
-        par(mfrow = c(1,1), cex.axis=1.3, cex.lab=1.3, mar=c(13.1,4.1,5.1,2.1))
+        par(mfrow = c(1,1), cex.axis=1.3, cex.lab=1.3, mar=c(10,4.1,5.1,2.1))
 
         mean_matrix = matrix(,ncol=0, nrow = nrow(msidata))
-        for (subsample in levels(msidata\$annotation)){
+        for (subsample in unique(msidata\$annotation)){
             mean_mz_sample = rowMeans(spectra(msidata)[,msidata\$annotation==subsample],na.rm=TRUE)
             mean_matrix = cbind(mean_matrix, mean_mz_sample)}
-
-        boxplot(log10(mean_matrix), ylab = "Log10 mean intensity per m/z", main="Log10 mean m/z intensities per annotation group", xaxt = "n")
-        (axis(1, at = c(1:number_combined), labels=levels(msidata\$annotation), las=2))
+            
+        boxplot(log10(as.data.frame(mean_matrix)), ylab = "Log10 mean intensity per m/z", main="Log10 mean m/z intensities per annotation group", xaxt = "n")
+        (axis(1, at = c(1:number_combined), cex.axis=0.9, labels=unique(msidata\$annotation), las=2))
 
         ## 14e) Heatmap of mean intensities of annotation groups
 
-        colnames(mean_matrix) = levels(msidata\$annotation)
+        colnames(mean_matrix) = unique(msidata\$annotation)
         mean_matrix[is.na(mean_matrix)] = 0
             heatmap.parameters <- list(mean_matrix, 
             show_rownames = T, show_colnames = T,
             main = "Heatmap of mean intensities per annotation group")
-            par(oma=c(3,0,0,0))
-            print(heatmap(mean_matrix),margins = c(10, 10))
+            par(oma=c(5,0,0,0))
+        heatmap(mean_matrix)
 
 
         ## 14f) PCA of mean intensities of annotation groups
-
+            par(mar=c(4.1, 4.1, 4.1, 8.5))
         ## define annotation by colour
-        annotation_colour = rainbow(length(levels(msidata\$annotation)))[as.factor(levels(msidata\$annotation))]
+        annotation_colour = rainbow(length(unique(msidata\$annotation)))[as.factor(unique(msidata\$annotation))]
         ## transform and scale dataframe
         pca = prcomp(t(mean_matrix),center=FALSE,scale.=FALSE)
         ## plot single plot
         plot(pca\$x[,c(1,2)],col=annotation_colour,pch=19)
+        legend("topright",xpd=TRUE, bty="n", inset=c(-0.3,0), cex=0.8, legend=unique(msidata\$annotation), col=rainbow(length(unique(msidata\$annotation))), pch=19)
         ## plot pca with colours for max first 5 PCs
         pc_comp = ifelse(ncol(pca\$x)<5 , ncol(pca\$x), 5)
         pairs(pca\$x[,1:pc_comp],col=annotation_colour,pch=19)
-        legend("bottom", horiz = TRUE, legend=levels(msidata\$annotation), col=rainbow(length(levels(msidata\$annotation))), pch=19)
 
     }
 
@@ -714,36 +736,40 @@
 
     ############################ 15) Mass spectra ##############################
 
+    
     ## replace any NA with 0, otherwise plot function will not work at all
     msidata_no_NA = msidata
+    
+    #if $report_depth:
 
-    ## find three equal m/z ranges for the average mass spectra plots: 
-    third_mz_range = round(nrow(msidata_no_NA)/3,0)
+		## find three equal m/z ranges for the average mass spectra plots: 
+		third_mz_range = round(nrow(msidata_no_NA)/3,0)
 
-    par(cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
-    print(plot(msidata_no_NA, run="infile", layout=c(2,2), strip=FALSE, main= "Average spectrum"))
-    print(plot(msidata_no_NA[1:third_mz_range,], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum"))
-    print(plot(msidata_no_NA[third_mz_range:(2*third_mz_range),], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum"))
-    print(plot(msidata_no_NA[(2*third_mz_range):nrow(msidata_no_NA),], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum"))
+		par(cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
+		print(plot(msidata_no_NA, run="infile", layout=c(2,2), strip=FALSE, main= "Average spectrum", col="black"))
+		print(plot(msidata_no_NA[1:third_mz_range,], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum", col="black"))
+		print(plot(msidata_no_NA[third_mz_range:(2*third_mz_range),], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum", col="black"))
+		print(plot(msidata_no_NA[(2*third_mz_range):nrow(msidata_no_NA),], layout=FALSE, run="infile", strip=FALSE, main="Zoomed average spectrum", col="black"))
 
-    ## plot one average mass spectrum for each pixel annotation group
+		## plot one average mass spectrum for each pixel annotation group
 
-    if (!is.null(levels(msidata\$annotation))){
-        ## print legend only for less than 10 samples
-        if (length(levels(msidata\$annotation)) < 10){
-            key_legend = TRUE
-        }else{key_legend = FALSE}
-        par(mfrow = c(1,1), cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
-        print(plot(msidata, run="infile", pixel.groups=msidata\$annotation, key=key_legend, col=hue_pal()(length(levels(msidata\$annotation))),superpose=TRUE, main="Average mass spectra for annotation groups"))
-    }
+		if (!is.null(unique(msidata\$annotation))){
+		    ## print legend only for less than 10 samples
+		    if (length(unique(msidata\$annotation)) < 10){
+		        key_legend = TRUE
+		    }else{key_legend = FALSE}
+		    par(mfrow = c(1,1), cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
+		    print(plot(msidata, run="infile", pixel.groups=msidata\$annotation, key=key_legend, col=hue_pal()(length(unique(msidata\$annotation))),superpose=TRUE, main="Average mass spectra for annotation groups"))
+		}
 
-    ## plot 4 random mass spectra
-    ## find four random, not empty pixel to plot their spectra in the following plots:
-    pixel_vector = sample(which(TICs != 0),4)
+		## plot 4 random mass spectra
+		## find four random, not empty pixel to plot their spectra in the following plots:
+		pixel_vector = sample(which(TICs != 0),4)
 
-    par(mfrow = c(2, 2), cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
-    print(plot(msidata_no_NA, pixel = pixel_vector))
+		par(mfrow = c(2, 2), cex.axis=1, cex.lab=1, mar=c(5.1,4.1,4.1,2.1))
+		print(plot(msidata_no_NA, pixel = pixel_vector, col="black"))
 
+    #end if
 
     ################### 16) Zoomed in mass spectra for calibrants ##############
 
@@ -753,6 +779,7 @@
 
     if (length(inputcalibrantmasses) != 0){
 
+
     ### calculate plusminus values in m/z for each calibrant, this is used for all following plots
     plusminusvalues = rep($plusminus_ppm/1000000, length(inputcalibrantmasses)) * inputcalibrantmasses
 
@@ -765,6 +792,17 @@
             maxmasspixel2 = features(msidata_no_NA, mz=inputcalibrantmasses[mass]+0.5)
             minmasspixel3 = features(msidata_no_NA, mz=inputcalibrantmasses[mass]-1.5)
             maxmasspixel3 = features(msidata_no_NA, mz=inputcalibrantmasses[mass]+3)
+            
+            ## test if some values are lower than min(mz)
+            minmasspixel1 = ifelse(length(minmasspixel1)>0, minmasspixel1, 1)
+            minmasspixel2 = ifelse(length(minmasspixel2)>0, minmasspixel2, 1)
+            minmasspixel3 = ifelse(length(minmasspixel3)>0, minmasspixel3, 1)
+            
+            ## test if min and max are same (more likely for centroided data):
+            maxmasspixel1 = ifelse(minmasspixel1 != maxmasspixel1, maxmasspixel1, maxmasspixel1 + 1)
+            maxmasspixel2 = ifelse(minmasspixel2 != maxmasspixel2, maxmasspixel2, maxmasspixel1 + 1)
+            maxmasspixel3 = ifelse(minmasspixel3 != maxmasspixel3, maxmasspixel3, maxmasspixel1 + 1)
+            
 
             ### find m/z with the highest mean intensity in m/z range (red line in plot 16) and calculate ppm difference for plot 17
             filtered_data = msidata_no_NA[mz(msidata_no_NA) >= inputcalibrantmasses[mass]-plusminusvalues[mass] & mz(msidata_no_NA) <= inputcalibrantmasses[mass]+plusminusvalues[mass],]
@@ -790,20 +828,20 @@
             par(oma=c(0,0,2,0))
             ## average plot
 
-            print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=c(2,2), strip=FALSE, main= "Average spectrum"))
+            print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=c(2,2), strip=FALSE, main= "Average spectrum", col="black"))
             abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3))
             abline(v=c(maxvalue), col="red", lty=2)
             abline(v=c(mzvalue), col="green2", lty=4)
             ## average plot including points per data point
-            print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=FALSE, strip=FALSE, main="Average spectrum with data points"))
+            print(plot(msidata_no_NA[minmasspixel1:maxmasspixel1,], run="infile", layout=FALSE, strip=FALSE, main="Average spectrum with data points", col="black"))
             points(mz(msidata_no_NA[minmasspixel1:maxmasspixel1,]), rowMeans(spectra(msidata_no_NA)[minmasspixel1:maxmasspixel1,,drop=FALSE]), col="blue", pch=20)
             ## plot of third average plot
-            print(plot(msidata_no_NA[minmasspixel2:maxmasspixel2,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum"))
+            print(plot(msidata_no_NA[minmasspixel2:maxmasspixel2,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum", col="black"))
             abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3))
             abline(v=c(maxvalue), col="red", lty=2)
             abline(v=c(mzvalue), col="green2", lty=4)
             ## plot of fourth average plot
-            print(plot(msidata_no_NA[minmasspixel3:maxmasspixel3,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum"))
+            print(plot(msidata_no_NA[minmasspixel3:maxmasspixel3,], run="infile", layout=FALSE, strip=FALSE, main= "Average spectrum", col="black"))
             abline(v=c(inputcalibrantmasses[mass] -plusminusvalues[count], inputcalibrantmasses[mass] ,inputcalibrantmasses[mass] +plusminusvalues[count]), col="blue", lty=c(3,5,3))
             abline(v=c(maxvalue), col="red", lty=2)
             abline(v=c(mzvalue), col="green2", lty=4)
@@ -813,7 +851,7 @@
 
             ### 16b) one large extra plot with different colours for different pixel annotation groups
 
-            if (!is.null(levels(msidata\$annotation))){
+            if (!is.null(unique(msidata\$annotation))){
                 if (number_combined < 10){
                     key_zoomed = TRUE
                 }else{key_zoomed = FALSE}
@@ -831,12 +869,16 @@
 
     ######### 17) ppm difference input calibrant m/z and m/z with max intensity in given m/z range#########
 
+    #if $report_depth:
+    
         par(mfrow = c(1,1))
         ### plot the ppm difference calculated above: theor. m/z value to highest m/z value: 
 
         calibrant_names = as.character(inputcalibrants[,2])
+
         diff_df = data.frame(differencevector, calibrant_names)
 
+
         if (sum(is.na(diff_df[,1])) == nrow(diff_df)){
                 plot(0,type='n',axes=FALSE,ann=FALSE)
                 title(main=paste("plot 17: no peaks in the chosen region, repeat with higher ppm range"))
@@ -866,6 +908,8 @@
         theme(axis.text.x = element_text(angle = 90, hjust = 1, size=14))
 
         print(diff_plot2)
+        
+    #end if
 
         #################### 19) ppm difference over pixels #####################
 
@@ -910,11 +954,12 @@
             for (each_cal in 1:ncol(ppm_df)){
                 lines(ppm_df[,each_cal], col=mycolours[each_cal], type="p")}
             legend("topright", inset=c(-0.2,0), xpd = TRUE, bty="n", cex=0.8,legend=inputcalibrantmasses, col=mycolours[1:ncol(ppm_df)],lty=1)
-             if (!is.null(levels(msidata\$annotation))){
+             if (!is.null(unique(msidata\$annotation))){
                 abline(v=abline_vector, lty = 3)}}
 
             ### make x-y-images for mz accuracy
 
+    #if $report_depth:
             ppm_dataframe = data.frame(coord(msidata)\$x, coord(msidata)\$y, ppm_df)
             colnames(ppm_dataframe) = c("x", "y", "ppm_df")
 
@@ -931,6 +976,7 @@
                  theme(text=element_text(family="ArialMT", face="bold", size=12))+
                  scale_fill_gradient2(low = "navy", mid = "grey", high = "red", midpoint = 0 ,space = "Lab", na.value = "black", name = "ppm\nerror"))}
 
+    #end if
 
     }else{print("plot 16+17+18+19) The inputcalibrant m/z were not provided or outside the m/z range")}
 }else{
@@ -957,6 +1003,7 @@
         <expand macro="reading_2_column_mz_tabular" optional="true"/>
         <param name="plusminus_ppm" value="200" type="float" label="ppm range" help="Will be added in both directions to input calibrant m/z"/>
         <param name="do_pca" type="boolean" label="PCA with 2 components"/>
+        <param name="report_depth" type="boolean" label="Generate full QC report" truevalue="TRUE" falsevalue="FALSE" checked="True" help="No: does not generate all plots but only the most informatives"/>
         <repeat name="calibrantratio" title="Plot fold change of two m/z" min="0" max="10">
             <param name="mass1" value="1111" type="float" label="M/z 1" help="First m/z"/>
             <param name="mass2" value="2222" type="float" label="M/z 2" help="Second m/z"/>
@@ -982,7 +1029,7 @@
             </param>
             <conditional name="processed_cond">
                 <param name="processed_file" value="processed"/>
-                <param name="accuracy" value="200"/>
+                <param name="accuracy" value="400"/>
                 <param name="units" value="ppm"/>
             </conditional>
             <conditional name="tabular_annotation">
@@ -1002,7 +1049,6 @@
             </repeat>
             <output name="QC_report" file="QC_imzml.pdf" compare="sim_size"/>
         </test>
-
         <test>
             <expand macro="infile_analyze75"/>
             <conditional name="tabular_annotation">
@@ -1012,7 +1058,6 @@
             <param name="do_pca" value="True"/>
             <output name="QC_report" file="QC_analyze75.pdf" compare="sim_size"/>
         </test>
-
         <test>
             <param name="infile" value="3_files_combined.RData" ftype="rdata"/>
             <conditional name="tabular_annotation">
@@ -1043,6 +1088,25 @@
             <param name="do_pca" value="False"/>
             <output name="QC_report" file="QC_empty_spectra.pdf" compare="sim_size"/>
         </test>
+        <test>
+            <param name="infile" value="" ftype="imzml">
+                <composite_data value="Example_Processed.imzML"/>
+                <composite_data value="Example_Processed.ibd"/>
+            </param>
+            <conditional name="processed_cond">
+                <param name="processed_file" value="processed"/>
+                <param name="accuracy" value="200"/>
+                <param name="units" value="ppm"/>
+            </conditional>
+            <conditional name="tabular_annotation">
+                <param name="load_annotation" value="no_annotation"/>
+            </conditional>
+            <param name="calibrant_file" value="inputcalibrantfile1.tabular" ftype="tabular"/>
+            <param name="mz_column" value="1"/>
+            <param name="name_column" value="1"/>
+            <param name="report_depth" value="False"/>
+            <output name="QC_report" file="QC_imzml_shortreport.pdf" compare="sim_size"/>
+        </test>  
     </tests>
     <help>
         <![CDATA[
Binary file test-data/112_auto_combined.ibd has changed
--- a/test-data/112_auto_combined.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/112_auto_combined.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="de720b1f-c3fa-4596-b054-284efaff29fc" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="040b9782d76e25ebe9a6b7c27fdda7e27e711674" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="23f1e1c8-aaa5-4d04-ab81-da14f7d24507" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="b2e009b6e72791420e704b751b4fc1a0f36bf420" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/112_auto_combined.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/112_auto_combined.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 556
--rw-r--r-- 1 meli meli 537552 Apr 21 12:46 ibd
--rw-r--r-- 1 meli meli  27497 Apr 21 12:46 imzml
+-rw-rw-r-- 1 meli meli 537552 Aug 30 13:50 ibd
+-rw-rw-r-- 1 meli meli  27497 Aug 30 13:50 imzml
Binary file test-data/112_auto_combined_QC.pdf has changed
Binary file test-data/123_combined.ibd has changed
--- a/test-data/123_combined.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/123_combined.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="c9f19079-a92c-4995-b4ee-48d2766994a8" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="889b1020d3d844330f13a360be4b2bd0b65d11a1" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="383dcc6e-fa4e-4ffe-8523-9cd0c3bd2571" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="2cd98028c7ab9bd53b698168b508a0ac74f256c9" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/123_combined.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/123_combined.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 452
--rw-r--r-- 1 meli meli 436764 Apr 21 12:41 ibd
--rw-r--r-- 1 meli meli  22855 Apr 21 12:41 imzml
+-rw-rw-r-- 1 meli meli 436764 Aug 30 13:46 ibd
+-rw-rw-r-- 1 meli meli  22855 Aug 30 13:46 imzml
Binary file test-data/123_combined_QC.pdf has changed
Binary file test-data/123_combined_auto.ibd has changed
--- a/test-data/123_combined_auto.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/123_combined_auto.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="386d1a7c-e065-4bf1-96a6-019586133b29" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="9bdafd878211e7d0c8fd0ef11bd534cbacfe7d40" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="ae23e625-6ac2-4a33-be4a-b73af67bc0dd" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="1b81e4b14567ea9da1177c0490f636d0823b2aac" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/123_combined_auto.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/123_combined_auto.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 452
--rw-r--r-- 1 meli meli 436764 Apr 21 12:43 ibd
--rw-r--r-- 1 meli meli  22860 Apr 21 12:43 imzml
+-rw-rw-r-- 1 meli meli 436764 Aug 30 13:48 ibd
+-rw-rw-r-- 1 meli meli  22860 Aug 30 13:48 imzml
Binary file test-data/123_combined_auto.pdf has changed
Binary file test-data/12_combined.ibd has changed
--- a/test-data/12_combined.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/12_combined.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="57f26041-833d-4843-ba25-0037f2c35f51" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="c271b37214900da9960cd3bcb748cc5bc377cfec" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="85ec7820-8e87-4fb2-b74a-5b9cd8cf24d6" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="d8a4e14091441873e8969f3b6b249f55b4d95146" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/12_combined.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/12_combined.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 352
--rw-r--r-- 1 meli meli 335976 Apr 21 12:45 ibd
--rw-r--r-- 1 meli meli  18225 Apr 21 12:45 imzml
+-rw-rw-r-- 1 meli meli 335976 Aug 30 13:49 ibd
+-rw-rw-r-- 1 meli meli  18225 Aug 30 13:49 imzml
Binary file test-data/12_combined_QC.pdf has changed
Binary file test-data/2123_auto_combined.ibd has changed
--- a/test-data/2123_auto_combined.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/2123_auto_combined.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="1c0a127a-8417-47ef-a049-553b9d56de81" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="5113bf7d09e0b1a584238aa6c5242f50eeef839b" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="d5abe155-9afd-4249-aaf3-8fc631c1fd10" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="3c93096f299dc50ca088d712feca19f8bf2d5152" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/2123_auto_combined.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/2123_auto_combined.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 656
--rw-r--r-- 1 meli meli 638340 Apr 21 12:46 ibd
--rw-r--r-- 1 meli meli  32132 Apr 21 12:46 imzml
+-rw-rw-r-- 1 meli meli 638340 Aug 30 13:50 ibd
+-rw-rw-r-- 1 meli meli  32132 Aug 30 13:50 imzml
Binary file test-data/2123_auto_combined_QC.pdf has changed
Binary file test-data/Heatmaps_LM8_file16.pdf has changed
Binary file test-data/Heatmaps_analyze75.pdf has changed
Binary file test-data/Heatmaps_imzml.pdf has changed
Binary file test-data/Heatmaps_processed.pdf has changed
Binary file test-data/Heatmaps_rdata.pdf has changed
Binary file test-data/Plot_analyze75.pdf has changed
Binary file test-data/Plot_analyze75_allpixels.pdf has changed
Binary file test-data/Plot_imzml.pdf has changed
Binary file test-data/Plot_picked.pdf has changed
Binary file test-data/Plot_processed.pdf has changed
Binary file test-data/Plot_rdata.pdf has changed
Binary file test-data/QC_analyze75.pdf has changed
Binary file test-data/QC_empty_spectra.pdf has changed
Binary file test-data/QC_imzml.pdf has changed
Binary file test-data/QC_imzml_shortreport.pdf has changed
Binary file test-data/QC_rdata.pdf has changed
Binary file test-data/analyze75_filtered2.pdf has changed
Binary file test-data/centroids_proc.pdf has changed
Binary file test-data/centroids_rdata.pdf has changed
Binary file test-data/cluster_skm.RData has changed
Binary file test-data/imzml_filtered3.pdf has changed
Binary file test-data/imzml_filtered4.pdf has changed
Binary file test-data/imzml_filtered5.pdf has changed
Binary file test-data/imzml_filtered8.pdf has changed
Binary file test-data/kmeans_analyze.pdf has changed
Binary file test-data/out3.ibd has changed
--- a/test-data/out3.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out3.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="7cde7a72-9a6b-4ed9-a809-79ca20bf45b4" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="4a26497a6ddfc9a61e9c0e463e4c246c5d734f80" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="97f42eea-750c-49e4-b46d-08c548dc3b9d" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="4e046226f81e9c78255df625ca3546ef26dd0693" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/out3.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out3.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 24
--rw-r--r-- 1 meli meli 9616 Mär 24 20:25 ibd
--rw-r--r-- 1 meli meli 8958 Mär 24 20:25 imzml
+-rw-rw-r-- 1 meli meli 9616 Sep 27 10:51 ibd
+-rw-rw-r-- 1 meli meli 8958 Sep 27 10:51 imzml
Binary file test-data/out4.ibd has changed
--- a/test-data/out4.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out4.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="b0dec95e-b66f-4c3f-86df-166d942f42c3" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="d9b557cf2c0e15a0cdd863e50897b07a55a26f31" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="37f3f75a-82c4-47c5-b78e-28fb8697e59b" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="1746fd2ec8a12707330a78ff5a0ff98cb53dca42" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/out4.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out4.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 44
--rw-r--r-- 1 meli meli 28792 Mär 24 19:23 ibd
--rw-r--r-- 1 meli meli 12046 Mär 24 19:23 imzml
+-rw-rw-r-- 1 meli meli 28792 Sep 27 10:52 ibd
+-rw-rw-r-- 1 meli meli 12046 Sep 27 10:52 imzml
Binary file test-data/out5.ibd has changed
--- a/test-data/out5.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out5.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="87b0ab73-abe6-4eb6-91ba-b6d493a343bc" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="9de3a02d0943ecda0717845511a8f7b8f58d1db7" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="37236c7e-6e93-4ccc-9111-1b1153aac713" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="ccb886aaf3cb7564f518884413ea988c59a1de57" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/out5.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out5.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 20
--rw-r--r-- 1 meli meli   380 Mär 24 19:24 ibd
--rw-r--r-- 1 meli meli 13525 Mär 24 19:24 imzml
+-rw-rw-r-- 1 meli meli   380 Sep 27 10:53 ibd
+-rw-rw-r-- 1 meli meli 13525 Sep 27 10:53 imzml
Binary file test-data/out6.ibd has changed
--- a/test-data/out6.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out6.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="8b625a26-987e-4e32-b7d4-729efe840814" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="78e6eb56507d789575ee0495e60f9d44a192c0dd" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="734d4b50-4440-4747-a0e9-de78974d1487" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="b1636b28fd4e0ab9caf5aaa4c1a40760030a4e73" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/out6.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out6.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 164
--rw-r--r-- 1 meli meli 146896 Mär 24 19:25 ibd
--rw-r--r-- 1 meli meli  18221 Mär 24 19:25 imzml
+-rw-rw-r-- 1 meli meli 146896 Sep 27 10:53 ibd
+-rw-rw-r-- 1 meli meli  18221 Sep 27 10:53 imzml
Binary file test-data/out7.ibd has changed
--- a/test-data/out7.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out7.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="bf61653e-aa1a-4f9a-a84d-3ff3435ee7fe" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="352c33defde6728b7dfb83e18ed1c433fa4b8697" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="f81632b3-50b0-4a57-88a2-5f7cf97f9bae" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="9f88294c3cff3e8c30e80632d6ad616b7db18089" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/out7.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out7.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 116
--rw-r--r-- 1 meli meli 95976 Mär 24 19:26 ibd
--rw-r--r-- 1 meli meli 18199 Mär 24 19:26 imzml
+-rw-rw-r-- 1 meli meli 95976 Sep 27 10:54 ibd
+-rw-rw-r-- 1 meli meli 18199 Sep 27 10:54 imzml
Binary file test-data/out8.ibd has changed
--- a/test-data/out8.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out8.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,9 +9,9 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="ace74b18-25e2-4722-89f4-6eedc2b62ed8" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="41d580d8acf3e67df8b63f001fe941da7334861b" />
-			<cvParam cvRef="IMS" accession="IMS:1000031" name="processed" value="" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="02059ae7-7beb-4ecf-92ae-7a767e04bf43" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="dc3960918fa3008824889b4ac142be1d0534ded8" />
+			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
 	<referenceableParamGroupList count="4">
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
@@ -90,15 +90,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="33612" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="41484" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -118,16 +118,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="67208" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="100804" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="82952" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -147,16 +147,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="134400" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="167996" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="124420" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -176,16 +176,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="201592" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="235188" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="165888" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -205,16 +205,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="268784" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="302380" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8399" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="33596" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="207356" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="10367" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="41468" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
--- a/test-data/out8.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/out8.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
-total 348
--rw-r--r-- 1 meli meli 335976 Mär 24 19:27 ibd
--rw-r--r-- 1 meli meli  12402 Mär 24 19:27 imzml
+total 260
+-rw-rw-r-- 1 meli meli 248824 Sep 27 11:44 ibd
+-rw-rw-r-- 1 meli meli  12397 Sep 27 11:44 imzml
Binary file test-data/pca_imzml.pdf has changed
Binary file test-data/picked.ibd has changed
--- a/test-data/picked.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/picked.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -8,8 +8,8 @@
  <fileDescription>
   <fileContent>
    <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum"/>
-   <cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="{cb7c9edc-eee3-4159-a8a1-efdf5fc56a13}"/>
-   <cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="f3e61f4699108e65bb678cfbbd6208be562f11c9"/>
+   <cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="{19bd2a62-4cc1-4316-b173-25f1de3871f6}"/>
+   <cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="ca84032e28aa3c04e4f41b74b85ccd1bd6e44107"/>
    <cvParam cvRef="IMS" accession="IMS:1000031" name="processed"/>
    <userParam name="MALDIquantForeign" value="MALDIquant object(s) exported to mzML"/>
   </fileContent>
--- a/test-data/picked.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/picked.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 192
--rw-r--r-- 1 meli meli 157984 Apr 21 12:42 ibd
--rw-r--r-- 1 meli meli  35012 Apr 21 12:42 imzml
+-rw-rw-r-- 1 meli meli 157984 Aug 30 13:47 ibd
+-rw-rw-r-- 1 meli meli  35012 Aug 30 13:47 imzml
Binary file test-data/picked_QC.pdf has changed
--- a/test-data/pixels_test6.tabular	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/pixels_test6.tabular	Sun Aug 29 07:16:49 2021 +0000
@@ -1,25 +1,25 @@
-pixel names	x	y	predicted condition
-xy_1_1	1	1	A
-xy_2_1	2	1	A
-xy_3_1	3	1	B
-xy_4_1	4	1	C
-xy_1_2	1	2	C
-xy_2_2	2	2	C
-xy_3_2	3	2	A
-xy_4_2	4	2	A
-xy_1_3	1	3	A
-xy_2_3	2	3	B
-xy_3_3	3	3	C
-xy_4_3	4	3	A
-xy_10_1	10	1	C
-xy_11_1	11	1	C
-xy_12_1	12	1	C
-xy_13_1	13	1	B
-xy_10_2	10	2	C
-xy_11_2	11	2	B
-xy_12_2	12	2	C
-xy_13_2	13	2	C
-xy_10_3	10	3	C
-xy_11_3	11	3	C
-xy_12_3	12	3	B
-xy_13_3	13	3	C
+pixel names	x	y	predicted condition	A	B	C
+xy_1_1	1	1	A	0.434439526064797	0.195646317191818	0.369914156743386
+xy_2_1	2	1	A	0.38219998209377	0.242372158141275	0.375427859764956
+xy_3_1	3	1	B	0.312531499299517	0.385612104162858	0.301856396537625
+xy_4_1	4	1	C	0.393153488582866	0.191107087820634	0.4157394235965
+xy_1_2	1	2	C	0.366986470447772	0.216121568441093	0.416891961111135
+xy_2_2	2	2	C	0.381682206547616	0.213188918797062	0.405128874655322
+xy_3_2	3	2	A	0.376695037169723	0.260689491088564	0.362615471741713
+xy_4_2	4	2	A	0.42305935188829	0.174038449100755	0.402902199010954
+xy_1_3	1	3	A	0.382420991383021	0.249364697048677	0.368214311568302
+xy_2_3	2	3	B	0.272145998315727	0.446525938567718	0.281328063116555
+xy_3_3	3	3	C	0.36296987427851	0.255631013944556	0.381399111776934
+xy_4_3	4	3	A	0.444812272103175	0.132274264153212	0.422913463743613
+xy_10_1	10	1	C	0.376216993893763	0.227584528606788	0.39619847749945
+xy_11_1	11	1	C	0.358430578177403	0.236120068794936	0.405449353027661
+xy_12_1	12	1	C	0.359751662628136	0.218620985552221	0.421627351819643
+xy_13_1	13	1	B	0.101486342705225	0.813997511218961	0.0845161460758142
+xy_10_2	10	2	C	0.354612526523361	0.272635192773437	0.372752280703202
+xy_11_2	11	2	B	0.291635599769993	0.444466545540823	0.263897854689184
+xy_12_2	12	2	C	0.36763798979782	0.203911653614431	0.428450356587749
+xy_13_2	13	2	C	0.344608135177236	0.304026642707691	0.351365222115073
+xy_10_3	10	3	C	0.37046458150651	0.205561286708086	0.423974131785404
+xy_11_3	11	3	C	0.358113833435286	0.262878459144526	0.379007707420187
+xy_12_3	12	3	B	0.180921926305915	0.66902588624642	0.150052187447665
+xy_13_3	13	3	C	0.378266307042675	0.20859472985319	0.413138963104135
Binary file test-data/preprocessing_results1.ibd has changed
--- a/test-data/preprocessing_results1.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results1.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000127" name="centroid spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="25fb4349-d529-4b12-8523-a6aa0306ecf4" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="7f41f9f5efcb31248caefc91b7d6edce87d7f42c" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="22bd3147-231d-4076-b6bd-67c1fa7c6ef3" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="831eba0fc850529d1351bcbb1baf779fe0773e1b" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
@@ -86,15 +86,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="36" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="48" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -115,15 +115,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="56" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="80" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -144,15 +144,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="76" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="112" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -173,15 +173,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="96" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="144" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -202,15 +202,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="116" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="176" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -231,15 +231,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="136" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="208" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -260,15 +260,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="156" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="240" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -289,15 +289,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="176" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="272" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -318,15 +318,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="196" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="304" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
--- a/test-data/preprocessing_results1.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results1.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 24
--rw-r--r-- 1 meli meli   216 Mai 10 17:37 ibd
--rw-r--r-- 1 meli meli 18090 Mai 10 17:37 imzml
+-rw-rw-r-- 1 meli meli   336 Nov 29 01:14 ibd
+-rw-rw-r-- 1 meli meli 18092 Nov 29 01:14 imzml
Binary file test-data/preprocessing_results1.pdf has changed
Binary file test-data/preprocessing_results2.ibd has changed
--- a/test-data/preprocessing_results2.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results2.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000127" name="centroid spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="fa59b434-12e0-47fe-b338-814c92daa7d6" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="5764be27b51a23d8c23e4c93befb9d8e57161bd9" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="ebbd9c5a-19a7-4db5-91e0-858065743606" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="471a838ffd01331ad8e6d23a59004e05745bf39c" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/preprocessing_results2.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results2.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 64
--rw-r--r-- 1 meli meli 37404 Mai 10 17:38 ibd
--rw-r--r-- 1 meli meli 22796 Mai 10 17:38 imzml
+-rw-rw-r-- 1 meli meli 37404 Nov 29 18:03 ibd
+-rw-rw-r-- 1 meli meli 22796 Nov 29 18:03 imzml
Binary file test-data/preprocessing_results2.pdf has changed
Binary file test-data/preprocessing_results3.ibd has changed
--- a/test-data/preprocessing_results3.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results3.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,9 +9,9 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000127" name="centroid spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="d11b7693-3397-4d1f-9e67-29d952701100" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="94906879d47bbdcf97126d50c906dfd76e6681e4" />
-			<cvParam cvRef="IMS" accession="IMS:1000031" name="processed" value="" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="476b127d-a8e1-4595-aae9-e9245db50d28" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="8a36ea2658fcfc8cfa9ae4d0dd73cd7ed2f5b96f" />
+			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
 	<referenceableParamGroupList count="4">
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
@@ -86,15 +86,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="64" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="80" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="64" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="160" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -114,16 +114,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="144" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="164" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="5" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="20" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="304" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -143,16 +143,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="184" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="18" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="72" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="256" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="18" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="72" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="448" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -172,16 +172,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="328" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="21" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="84" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="412" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="21" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="84" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="592" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -201,16 +201,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="496" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="4" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="512" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="4" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="736" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -230,16 +230,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="528" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="18" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="72" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="600" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="18" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="72" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="880" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -259,16 +259,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="672" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="17" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="68" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="740" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="17" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="68" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="1024" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -288,16 +288,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="808" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="840" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="8" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="32" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="1168" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -317,16 +317,16 @@
 				<binaryDataArrayList count="2">
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="872" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="11" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="44" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="916" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="11" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="44" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="1312" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="36" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="144" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
--- a/test-data/preprocessing_results3.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results3.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 24
--rw-r--r-- 1 meli meli   960 Mai 10 17:39 ibd
--rw-r--r-- 1 meli meli 18112 Mai 10 17:39 imzml
+-rw-rw-r-- 1 meli meli  1456 Nov 29 18:04 ibd
+-rw-rw-r-- 1 meli meli 18133 Nov 29 18:04 imzml
Binary file test-data/preprocessing_results3.pdf has changed
Binary file test-data/preprocessing_results4.ibd has changed
--- a/test-data/preprocessing_results4.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results4.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="c6122884-ceb5-46b6-9160-5d28e8862946" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="03e4b58b8e63517605164e90b85fe93a851a9c5b" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="04431b64-9f3d-44b4-9e63-81b9e4924aec" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="38a4fadd32374bdf0e4b2bb7d976f6067d542a29" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.10.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
@@ -86,15 +86,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="6340" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="6284" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -115,15 +115,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="12664" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="12552" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -144,15 +144,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="18988" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="18820" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -173,15 +173,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="25312" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="25088" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -202,15 +202,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="31636" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="31356" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -231,15 +231,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="37960" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="37624" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -260,15 +260,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="44284" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="43892" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -289,15 +289,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="50608" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="50160" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
@@ -318,15 +318,15 @@
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="mzArray" />
 						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="16" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 					<binaryDataArray encodedLength="0">
 						<referenceableParamGroupRef ref="intensityArray" />
-						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="56932" />
-						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1581" />
-						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6324" />
+						<cvParam cvRef="IMS" accession="IMS:1000102" name="external offset" value="56428" />
+						<cvParam cvRef="IMS" accession="IMS:1000103" name="external array length" value="1567" />
+						<cvParam cvRef="IMS" accession="IMS:1000104" name="external encoded length" value="6268" />
 						<binary />
 					</binaryDataArray>
 				</binaryDataArrayList>
--- a/test-data/preprocessing_results4.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results4.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 84
--rw-r--r-- 1 meli meli 63256 Mai 10 17:40 ibd
--rw-r--r-- 1 meli meli 18199 Mai 10 17:40 imzml
+-rw-rw-r-- 1 meli meli 62696 Aug 28 16:41 ibd
+-rw-rw-r-- 1 meli meli 18200 Aug 28 16:41 imzml
Binary file test-data/preprocessing_results4.pdf has changed
Binary file test-data/preprocessing_results5.ibd has changed
--- a/test-data/preprocessing_results5.imzml	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results5.imzml	Sun Aug 29 07:16:49 2021 +0000
@@ -9,8 +9,8 @@
 		<fileContent>
 			<cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value="" />
 			<cvParam cvRef="MS" accession="MS:1000128" name="profile spectrum" value="" />
-			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="3aff713c-00ec-422d-b63d-efd45fbdd7cc" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="9316138c1e7484662943bb206c79c2d074121530" />
+			<cvParam cvRef="IMS" accession="IMS:1000080" name="universally unique identifier" value="56965a72-6fd7-4879-bb80-b72cb3af4a62" />
+			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="5e07e272de044937cd6be7bfdbf2f4730aad10a9" />
 			<cvParam cvRef="IMS" accession="IMS:1000030" name="continuous" value="" />
 		</fileContent>
 	</fileDescription>
@@ -42,7 +42,7 @@
 		</sample>
 	</sampleList>
 	<softwareList count="1">
-		<software id="Cardinal" version="2.4.0">
+		<software id="Cardinal" version="2.6.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/preprocessing_results5.imzml.txt	Wed May 13 17:55:17 2020 +0000
+++ b/test-data/preprocessing_results5.imzml.txt	Sun Aug 29 07:16:49 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 428
--rw-r--r-- 1 meli meli 415936 Mai 10 17:40 ibd
--rw-r--r-- 1 meli meli  18569 Mai 10 17:40 imzml
+-rw-rw-r-- 1 meli meli 415936 Oct  5 19:59 ibd
+-rw-rw-r-- 1 meli meli  18569 Oct  5 19:59 imzml
Binary file test-data/preprocessing_results5.pdf has changed
Binary file test-data/rdata_notfiltered.pdf has changed
Binary file test-data/test1.pdf has changed
Binary file test-data/test2.pdf has changed
Binary file test-data/test2.rdata has changed
Binary file test-data/test3.pdf has changed
Binary file test-data/test4.pdf has changed
Binary file test-data/test4.rdata has changed
Binary file test-data/test5.pdf has changed
Binary file test-data/test6.pdf has changed
Binary file test-data/test6.rdata has changed
Binary file test-data/test7.pdf has changed
Binary file test-data/test7.rdata has changed