changeset 10:aa479a0cfb43 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:20:07 +0000
parents e0bbaf9f7da0
children 3161cb3810c0
files macros.xml preprocessing.xml 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_imzml_shortreport.pdf test-data/centroids_proc.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/test1.pdf test-data/test2.pdf test-data/test3.pdf test-data/test4.pdf test-data/test5.pdf test-data/test6.pdf test-data/test6.rdata test-data/test7.pdf test-data/test7.rdata
diffstat 41 files changed, 234 insertions(+), 184 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Tue Nov 03 22:41:21 2020 +0000
+++ b/macros.xml	Sun Aug 29 07:20:07 2021 +0000
@@ -1,5 +1,5 @@
 <macros>
-    <token name="@VERSION@">2.6.0</token>
+    <token name="@VERSION@">2.10.0</token>
 
     <xml name="requirements">
         <requirements>
--- a/preprocessing.xml	Tue Nov 03 22:41:21 2020 +0000
+++ b/preprocessing.xml	Sun Aug 29 07:20:07 2021 +0000
@@ -1,4 +1,4 @@
-<tool id="cardinal_preprocessing" name="MSI preprocessing" version="@VERSION@.1">
+<tool id="cardinal_preprocessing" name="MSI preprocessing" version="@VERSION@.0">
     <description>
         mass spectrometry imaging preprocessing
     </description>
@@ -7,7 +7,7 @@
     </macros>
     <expand macro="requirements">
         <requirement type="package" version="2.3">r-gridextra</requirement>
-        <requirement type="package" version="3.3.2">r-ggplot2</requirement>
+        <requirement type="package" version="3.3.5">r-ggplot2</requirement>
     </expand>
     <command detect_errors="exit_code">
     <![CDATA[
@@ -47,7 +47,6 @@
 
 
 ## remove duplicated coordinates, otherwise peak picking and log2 transformation will fail
-msidata <- msidata[,!duplicated(coord(msidata)[,1:2])] 
 
 ## set variable to False
 #set $used_peak_picking = False
@@ -135,24 +134,29 @@
                 print('gaussian smoothing')
 
                 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, sd = $method.methods_conditional.methods_for_smoothing.sd_gaussian)
+                msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
 
             #elif str( $method.methods_conditional.methods_for_smoothing.smoothing_method) == 'sgolay':
                 print('sgolay smoothing')
 
                 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, order = $method.methods_conditional.methods_for_smoothing.order_of_filters)
+                msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
 
                 ## if selected replace negative intensities with zero
                 #if $method.methods_conditional.methods_for_smoothing.replace_negatives:
-                    spectra(msidata)[spectra(msidata)<0] = 0
+                    ## bring spectra matrix to disk
+                    spectra_df = as.matrix(spectra(msidata))
+                    spectra_df[spectra_df<0] = 0
+                    spectra(msidata) = spectra_df
                 #end if
 
             #elif str($method.methods_conditional.methods_for_smoothing.smoothing_method) == 'ma':
                 print('moving average smoothing')
 
                 msidata = smoothSignal(msidata, method="$method.methods_conditional.methods_for_smoothing.smoothing_method", window=$method.methods_conditional.window_smoothing, coef = $method.methods_conditional.methods_for_smoothing.coefficients_ma_filter)
+                msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
 
             #end if
-            msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
 
             ############################### QC ###########################
 
@@ -170,7 +174,7 @@
     ############################### Mz alignment ###########################
 
         #elif str( $method.methods_conditional.preprocessing_method ) == 'mz_alignment':
-            print('M/z alignment')
+            print('m/z alignment')
             ## M/z alignment
 
             #if str( $method.methods_conditional.mzalign_ref_type.align_reference_datatype) == 'align_table':
@@ -183,7 +187,7 @@
 
             #elif str( $method.methods_conditional.mzalign_ref_type.align_reference_datatype) == 'align_noref':
 
-                msidata = mzAlign(msidata,tolerance = $method.methods_conditional.alignment_tol, units = "$method.methods_conditional.alignment_units", , quantile = $method.methods_conditional.quantile, span = $method.methods_conditional.span)
+                msidata = mzAlign(msidata,tolerance = $method.methods_conditional.alignment_tol, units = "$method.methods_conditional.alignment_units", quantile = $method.methods_conditional.quantile, span = $method.methods_conditional.span)
 
             #end if
 
@@ -200,6 +204,35 @@
             vectorofactions = append(vectorofactions, "mz aligned")
             print(plot(msidata, pixel=random_spectra, col="black"))
             title("Spectra after m/z alignment", outer=TRUE, line=0)
+            
+          
+    ############################### Mz recalibration ###########################
+
+        #elif str( $method.methods_conditional.preprocessing_method ) == 'mz_recalibration':
+            print('m/z recalibration')
+            ## M/z recalibration
+
+            reference_mz = read.delim("$method.methods_conditional.mz_tabular", header = $method.methods_conditional.feature_header, stringsAsFactors = FALSE)
+            reference_mz = reference_mz[,$method.methods_conditional.feature_column]
+
+            msidata = mzAlign(msidata, ref=reference_mz, tolerance = $method.methods_conditional.alignment_tol, units = "$method.methods_conditional.alignment_units", quantile = $method.methods_conditional.quantile, span = $method.methods_conditional.span)
+
+            msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
+            
+            ## remove the reference peaks data to allow proper peak alignment afterwards
+            metadata(featureData(msidata))['reference peaks'] <- NULL
+
+            ############################### QC ###########################
+
+            maxfeatures =nrow(msidata)
+            pixelcount = ncol(msidata)
+            minmz = round(min(mz(msidata)), digits=2)
+            maxmz = round(max(mz(msidata)), digits=2)
+            mz_recal = c(minmz, maxmz,maxfeatures, pixelcount)
+            QC_numbers= cbind(QC_numbers, mz_recal)
+            vectorofactions = append(vectorofactions, "mz recalibrated")
+            print(plot(msidata, pixel=random_spectra, col="black"))
+            title("Spectra after m/z recalibration", outer=TRUE, line=0)      
 
 
     ############################### Peak picking ###########################
@@ -332,23 +365,23 @@
         #elif str( $method.methods_conditional.preprocessing_method) == 'Mass_binning':
             print('mass binning')
 
-            #if str( $method.methods_conditional.mz_range.features_filtering) == 'change_mz_range':
-
-                #if str($processed_cond.processed_file) == "processed":
+            #if str($method.methods_conditional.mz_range.features_filtering) == 'change_mz_range':
 
                 msidata = mse_bin = mzBin(msidata,resolution=$method.methods_conditional.bin_width, from=$method.methods_conditional.mz_range.min_mz, to=$method.methods_conditional.mz_range.max_mz, units="$method.methods_conditional.bin_units", fun="$method.methods_conditional.bin_fun")
-                
-                #else 
-                    ## continuous file cannot be binned from m/z to m/z, therefore first cut m/z range and then do mzbin:
-                    msidata = msidata[mz(msidata) >= $method.methods_conditional.mz_range.min_mz & mz(msidata) <= $method.methods_conditional.mz_range.max_mz,]
-                    msidata = mse_bin = mzBin(msidata,resolution=$method.methods_conditional.bin_width, units="$method.methods_conditional.bin_units", fun="$method.methods_conditional.bin_fun")
-                #end if
 
 		   
-	    #elif str( $method.methods_conditional.mz_range.features_filtering) == 'none':	    
+	    #elif str($method.methods_conditional.mz_range.features_filtering) == 'none':
 
                 msidata = mse_bin = mzBin(msidata,resolution=$method.methods_conditional.bin_width, units="$method.methods_conditional.bin_units", fun=$method.methods_conditional.bin_fun)
 
+	    #elif str($method.methods_conditional.mz_range.features_filtering) == 'bin_to_reference':
+
+	        bin_reference_mz = read.delim("$method.methods_conditional.mz_range.mz_tabular", header = $method.methods_conditional.mz_range.feature_header, stringsAsFactors = FALSE)
+                bin_reference_mz = bin_reference_mz[,$method.methods_conditional.mz_range.feature_column]
+
+	       msidata = mse_bin = mzBin(msidata,resolution=$method.methods_conditional.bin_width, units="$method.methods_conditional.bin_units", fun=$method.methods_conditional.bin_fun,
+	       ref=bin_reference_mz)
+
             #end if
              
             msidata <- process(msidata, BPPARAM=MulticoreParam(workers=number_cpu))
@@ -385,7 +418,7 @@
                 print('log2 transformation')
 
                 ## replace 0 with NA to prevent Inf
-                spectra_df = spectra(msidata) ## convert into R matrix
+                spectra_df = as.matrix(spectra(msidata)) ## convert into R matrix
                 spectra_df[spectra_df ==0] = NA
                 print(paste0("Number of 0 which were converted into NA:",sum(is.na(spectra_df))))
                 spectra(msidata) = spectra_df
@@ -422,25 +455,14 @@
     ################################################################################
 
     ## save msidata as imzML file, will only work if there is at least 1 m/z left
-    
-    #if str($imzml_output) == "cont_format":
-        #set $continuous_format = True
-    #end if
 
         if (nrow(msidata) > 0){
             ## make sure that coordinates are integers
             coord(msidata)\$y = as.integer(coord(msidata)\$y)
             coord(msidata)\$x = as.integer(coord(msidata)\$x)
-        #if $used_peak_picking:
-            #if $continuous_format:
-                msidata = as(msidata, "MSContinuousImagingExperiment")
-            #end if
-        #elif $used_peak_alignment
-            #if $continuous_format:
-                msidata = as(msidata, "MSContinuousImagingExperiment")
-            #end if
-        #end if
-        writeImzML(msidata, "out")
+            ## only continuous files can currently be exported
+            msidata = as(msidata, "MSContinuousImagingExperiment")
+            writeImzML(msidata, "out")
         }
 
     plot(0,type='n',axes=FALSE,ann=FALSE)
@@ -463,6 +485,7 @@
                     <option value="Baseline_reduction">Baseline Reduction</option>
                     <option value="Smoothing">Peak smoothing</option>
                     <option value="mz_alignment">m/z alignment</option>
+                    <option value="mz_recalibration">m/z recalibration</option>
                     <option value="Peak_picking">Peak picking</option>
                     <option value="Peak_alignment">Peak alignment</option>
                     <option value="Peak_filtering">Peak filtering</option>
@@ -541,6 +564,26 @@
                     <param name="span" type="float" value="0.75"
                         label="span" help="The smoothing parameter for the local polynomial regression used to determine the warping function."/>
                 </when>
+	        <when value="mz_recalibration">
+		    <param name="alignment_tol" type="text" value="NA"
+		           label="tolerance" help="The tolerance to be used when matching the peaks in the unaligned spectra to the reference spectrum. If this is NA, then automatically guess a tolerance from the data.">
+		       <sanitizer>
+		            <valid initial="string.digits">
+		                <add value="N" />
+		                <add value="A" />
+		            </valid>
+		        </sanitizer>
+		    </param>
+		    <param name="alignment_units" type="select" display="radio" optional="False" label="The units to use for the tolerance.">
+		            <option value="ppm" selected="True">ppm</option>
+		            <option value="mz">m/z</option>
+		    </param>
+		    <expand macro="reading_1_column_mz_tabular" label="Tabular file with m/z features to use for alignment. Only the m/z values from the tabular file will be kept."/>
+		    <param name="quantile" type="float" value="0.2"
+		        label="quantile" help="The top quantile of reference points (peaks detected via local maxima) to use from the reference spectrum."/>
+		    <param name="span" type="float" value="0.75"
+		        label="span" help="The smoothing parameter for the local polynomial regression used to determine the warping function."/>
+		</when>
                 <when value="Peak_picking">
                     <param name="SNR_picking_method" type="float" value="6"
                         label="Signal to noise ratio"
@@ -620,15 +663,19 @@
                     </param>
                     <param name="replace_NA_bin" type="boolean" label="Replace NA with 0" truevalue="TRUE" falsevalue="FALSE" checked="True" help="Binning can introduce NAs, should they be replaced with 0"/>
                     <conditional name="mz_range">
-            		 <param name="features_filtering" type="select" label="Select m/z feature filtering option">
+                    	<param name="features_filtering" type="select" label="Select m/z options">
                             <option value="none" selected="True">none</option>
                             <option value="change_mz_range">change m/z range</option>
+                            <option value="bin_to_reference">bin m/z to reference</option>
                         </param>
 			    <when value="none"/>
 			    <when value="change_mz_range">
 				<param name="min_mz" type="float" value="1" label="Minimum value for m/z"/>
 				<param name="max_mz" type="float" value="10000" label="Maximum value for m/z"/>
 			    </when>
+			    <when value="bin_to_reference">
+		                <expand macro="reading_1_column_mz_tabular" label="Tabular file with m/z features as reference for binning. Only the m/z values from the tabular file will be kept."/>
+	                   </when>
                     </conditional>
                 </when>
                 <when value="Transformation">
@@ -645,7 +692,6 @@
                 </when>
             </conditional>
         </repeat>
-        <param name="imzml_output" type="boolean" label="imzML output in processed format" checked="True" truevalue="proc_format" falsevalue="cont_format"/>
     </inputs>
     <outputs>
         <data format="imzml" name="outfile_imzml" label="${tool.name} on ${on_string}: imzML"/>
@@ -666,10 +712,8 @@
                 <conditional name="methods_conditional">
                     <param name="preprocessing_method" value="Smoothing"/>
                     <conditional name="methods_for_smoothing">
-                        <param name="smoothing_method" value="gaussian"/>
-                        <param name="sd_gaussian" value="4"/>
+                        <param name="smoothing_method" value="sgolay"/>
                     </conditional>
-                        <param name="window_smoothing" value="9"/>
                 </conditional>
             </repeat>
             <repeat name="methods">
@@ -702,7 +746,6 @@
                         </conditional>
                 </conditional>
             </repeat>
-            <param name="imzml_output" value="cont_format"/>
             <output name="QC_overview" file="preprocessing_results1.pdf" compare="sim_size"/>
             <output name="outfile_imzml" ftype="imzml" file="preprocessing_results1.imzml.txt" compare="sim_size">
                 <extra_files type="file" file="preprocessing_results1.imzml" name="imzml" lines_diff="6"/>
@@ -727,7 +770,6 @@
                     <param name="preprocessing_method" value="Peak_alignment"/>
                 </conditional>
             </repeat>
-            <param name="imzml_output" value="cont_format"/>
             <output name="QC_overview" file="preprocessing_results2.pdf" compare="sim_size"/>
             <output name="outfile_imzml" ftype="imzml" file="preprocessing_results2.imzml.txt" compare="sim_size">
                 <extra_files type="file" file="preprocessing_results2.imzml" name="imzml" lines_diff="6"/>
@@ -753,13 +795,11 @@
                     <conditional name="methods_for_picking">
                         <param name="picking_method" value="mad"/>
                     </conditional>
-                <param name="imzml_output" value="proc_format"/>
                 </conditional>
             </repeat>
             <repeat name="methods">
                 <conditional name="methods_conditional">
                     <param name="preprocessing_method" value="Peak_alignment"/>
-                    <param name="imzml_output" value="proc_format"/>
                 </conditional>
             </repeat>
             <output name="QC_overview" file="preprocessing_results3.pdf" compare="sim_size"/>
@@ -783,6 +823,16 @@
             </repeat>
             <repeat name="methods">
                 <conditional name="methods_conditional">
+                    <param name="preprocessing_method" value="mz_recalibration"/>                   
+                    <param name="alignment_tol" value="2"/>
+                    <param name="alignment_units" value="ppm"/>
+                    <param name="mz_tabular" value="inputcalibrantfile2.txt" ftype="tabular"/>
+                    <param name="feature_column" value="1"/>
+                    <param name="feature_header" value="TRUE"/>
+                </conditional>
+            </repeat>
+            <repeat name="methods">
+                <conditional name="methods_conditional">
                     <param name="preprocessing_method" value="Mass_binning"/>
                         <param name="bin_width" value="0.1"/>
                         <param name="bin_units" value="mz"/>
@@ -850,7 +900,7 @@
 
 **Output**
 
-- MSI data as continuous or processed imzML file
+- MSI data as continuous imzML file
 - pdf with key values and four random mass spectra after each processing step
 
         ]]>
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_imzml_shortreport.pdf has changed
Binary file test-data/centroids_proc.pdf has changed
--- a/test-data/pixels_test6.tabular	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/pixels_test6.tabular	Sun Aug 29 07:20:07 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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results1.imzml	Sun Aug 29 07:20:07 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="07177fdd-3760-4df6-8fe2-53d28b280ae8" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="749fe32c8243da06001cf4643c5ce4f1ef5a98a8" />
+			<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>
@@ -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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results1.imzml.txt	Sun Aug 29 07:20:07 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 24
--rw-rw-r-- 1 meli meli   216 Oct  5 19:57 ibd
--rw-rw-r-- 1 meli meli 18090 Oct  5 19:57 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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results2.imzml	Sun Aug 29 07:20:07 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="503079b4-538a-4be6-b70d-e52542c66482" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="a597fe6a0184ef339105b3a932f58726a9af549b" />
+			<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>
--- a/test-data/preprocessing_results2.imzml.txt	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results2.imzml.txt	Sun Aug 29 07:20:07 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 64
--rw-rw-r-- 1 meli meli 37404 Oct  5 19:57 ibd
--rw-rw-r-- 1 meli meli 22796 Oct  5 19:57 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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results3.imzml	Sun Aug 29 07:20:07 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="be549a7e-87af-4413-9b4c-27221f55ee9a" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="4ee7ca6fb3f60e1adbe196068f86bc3209bace58" />
-			<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">
@@ -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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results3.imzml.txt	Sun Aug 29 07:20:07 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 24
--rw-rw-r-- 1 meli meli   960 Oct  5 19:58 ibd
--rw-rw-r-- 1 meli meli 18112 Oct  5 19:58 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	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results4.imzml	Sun Aug 29 07:20:07 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="48842eaf-40e5-4a3f-831c-2d7a3b7e04b9" />
-			<cvParam cvRef="IMS" accession="IMS:1000091" name="ibd SHA-1" value="2010ba5b7d44695d891cfe3b6674a5699fa610c0" />
+			<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.6.0">
+		<software id="Cardinal" version="2.10.0">
 			<cvParam cvRef="MS" accession="MS:1000799" name="custom unreleased software tool" value="" />
 		</software>
 	</softwareList>
--- a/test-data/preprocessing_results4.imzml.txt	Tue Nov 03 22:41:21 2020 +0000
+++ b/test-data/preprocessing_results4.imzml.txt	Sun Aug 29 07:20:07 2021 +0000
@@ -1,4 +1,4 @@
 imzML file:
 total 84
--rw-rw-r-- 1 meli meli 62696 Oct  5 19:58 ibd
--rw-rw-r-- 1 meli meli 18199 Oct  5 19:58 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/test1.pdf has changed
Binary file test-data/test2.pdf has changed
Binary file test-data/test3.pdf has changed
Binary file test-data/test4.pdf 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