Repository 'msconvert_win'
hg clone https://toolshed.g2.bx.psu.edu/repos/galaxyp/msconvert_win

Changeset 0:f8cf3be564bb (2016-04-08)
Commit message:
planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/msconvert commit 4fa5bf9c62e4bba06c4d6e7de962c85959b61579-dirty
added:
README
job_conf.xml.sample
msconvert_macros.xml
msconvert_win.xml
msconvert_wrapper.py
test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01-etdfilter.mzML
test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01.mz5
test-data/Rpal_01-mzRefinement.mzML
test-data/Rpal_01.mz5
test-data/Rpal_01.pepXML
test-data/Rpal_01.pepXML.mzRefinement.tsv
test-data/small-activation.mzML
test-data/small-analyzer-filter.mzML
test-data/small-chargeStatePredictor.mzML
test-data/small-deisotope-poisson.mzML
test-data/small-deisotope.mzML
test-data/small-denoise.mzML
test-data/small-index-filter.mzML
test-data/small-ms-level-filter.mzML
test-data/small-mzWindow.mzML
test-data/small-numpressL.mzML
test-data/small-numpressLP.mzML
test-data/small-numpressLS.mzML
test-data/small-numpressP.mzML
test-data/small-numpressS.mzML
test-data/small-peakpicking-cwt-allMS.mzML
test-data/small-peakpicking-vendor-ms1.mgf
test-data/small-polarity-filter.mzML
test-data/small-strip-it.mzML
test-data/small-threshold.mzML
test-data/small-turbocharger.mzML
test-data/small-zlib-32.mzXML
test-data/small-zlib-64.mz5
test-data/small.RAW
test-data/small.mzML
b
diff -r 000000000000 -r f8cf3be564bb README
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/README Fri Apr 08 16:09:02 2016 -0400
b
@@ -0,0 +1,15 @@
+**NOTE**
+This tool must be run on a Windows Operating System.  
+
+Your system administrator will need to: 
+
+  - install proteowizard on a windows server
+    http://proteowizard.sourceforge.net/downloads.shtml
+
+  - install the galaxy pulsar rest server on the windows server
+    http://pulsar.readthedocs.org/en/latest/
+
+  - setup the galaxy job_conf.xml to send msconvert jobs to the windows server via pulsar
+    https://wiki.galaxyproject.org/Admin/Config/Performance/Cluster
+    https://wiki.galaxyproject.org/Admin/Config/Jobs
+    http://pulsar.readthedocs.org/en/latest/job_managers.html
b
diff -r 000000000000 -r f8cf3be564bb job_conf.xml.sample
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/job_conf.xml.sample Fri Apr 08 16:09:02 2016 -0400
b
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<job_conf>
+    <plugins workers="4">
+        <!-- "workers" is the number of threads for the runner's work queue.
+             The default from <plugins> is used if not defined for a <plugin>.
+         -->
+        <plugin id="plugin_local" type="runner" load="galaxy.jobs.runners.local:LocalJobRunner"/>
+        <plugin id="plugin_pulsar_rest" type="runner" load="galaxy.jobs.runners.pulsar:PulsarRESTJobRunner">
+             <!-- Allow optimized HTTP calls with libcurl (defaults to urllib) -->
+             <!-- <param id="transport">curl</param> -->
+              <!-- *Experimental Caching*: Next parameter enables caching.
+                    Likely will not work with newer features such as MQ support.
+                    If this is enabled be sure to specify a `file_cache_dir` in
+                    the remote Pulsar's servers main configuration file.
+              -->
+             <!-- <param id="cache">True</param> -->
+        </plugin>
+    </plugins>
+
+    <destinations default="destination_local">
+        <destination id="destination_local" runner="plugin_local"/>
+
+        <destination id="destination_winserver_pulsar_rest" runner="plugin_pulsar_rest">
+          <param id="manager">_default_</param>
+          <param id="url">http://winserver.myu.edu:8900/</param>
+          <!-- If set, private_token must match token in remote Pulsar's
+          configuration. -->
+          <param id="private_token">your_ultra-secret_magic_token_here</param>
+              <!-- Uncomment the following statement to disable file staging (e.g.
+                 if there is a shared file system between Galaxy and the Pulsar
+                 server). Alternatively action can be set to 'copy' - to replace
+                 http transfers with file system copies, 'remote_transfer' to cause
+                 the Pulsar to initiate HTTP transfers instead of Galaxy, or
+                 'remote_copy' to cause Pulsar to initiate file system copies.
+                 If setting this to 'remote_transfer' be sure to specify a
+                 'galaxy_url' attribute on the runner plugin above. 
+               -->
+              <!-- <param id="default_file_action">none</param> -->
+              <!-- The above option is just the default, the transfer behavior
+                 none|copy|http can be configured on a per path basis via the
+                 following file. See Pulsar documentation for more details and
+                 examples.  
+               -->
+              <!-- <param id="file_action_config">file_actions.yaml</param> -->
+              <!-- The non-legacy Pulsar runners will attempt to resolve Galaxy
+                 dependencies remotely - to enable this set a tool_dependency_dir
+                 in Pulsar's configuration (can work with all the same dependency
+                 resolutions mechanisms as Galaxy - tool Shed installs, Galaxy
+                 packages, etc...). To disable this behavior, set the follow parameter
+                 to none. To generate the dependency resolution command locally
+                 set the following parameter local.
+               -->
+              <!-- <param id="dependency_resolution">none</params> -->
+              <!-- Uncomment following option to enable setting metadata on remote
+                 Pulsar server. The 'use_remote_datatypes' option is available for
+                 determining whether to use remotely configured datatypes or local
+                 ones (both alternatives are a little brittle). 
+               -->
+              <!-- <param id="remote_metadata">true</param> -->
+              <!-- <param id="use_remote_datatypes">false</param> -->
+              <!-- <param id="remote_property_galaxy_home">/path/to/remote/galaxy-central</param> -->
+              <!-- If remote Pulsar server is configured to run jobs as the real user,
+                 uncomment the following line to pass the current Galaxy user
+                 along. 
+               -->
+              <!-- <param id="submit_user">$__user_name__</param> -->
+              <!-- Various other submission parameters can be passed along to the Pulsar
+                 whose use will depend on the remote Pulsar's configured job manager.
+                 For instance:
+               -->
+               <!-- <param id="submit_native_specification">-P bignodes -R y -pe threads 8</param> -->
+              <!-- Disable parameter rewriting and rewrite generated commands
+                 instead. This may be required if remote host is Windows machine
+                 but probably not otherwise.
+               -->
+               <!-- <param id="rewrite_parameters">false</params> -->
+        </destination>
+
+    </destinations>
+
+    <tools>
+        <tool id="msconvert_win" destination="destination_winserver_pulsar_rest"/>
+    </tools>
+
+</job_conf>
+
+
+
b
diff -r 000000000000 -r f8cf3be564bb msconvert_macros.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_macros.xml Fri Apr 08 16:09:02 2016 -0400
[
b'@@ -0,0 +1,675 @@\n+<macros>\n+  <xml name="generic_requirements">\n+    <requirements>\n+      <requirement type="package" version="3.0.9016">proteowizard</requirement>\n+    </requirements>\n+  </xml>\n+  <token name="@VERSION@">3.0</token>\n+  \n+  <xml name="msconvertCommand">\n+    <command interpreter="python">\n+<![CDATA[\n+    #import re\n+    #set $ext = $input.ext\n+    msconvert_wrapper.py\n+    #if $ext == \'wiff\':\n+      #set basename = \'absciex\'\n+      #if hasattr($input, \'display_name\')\n+        #set basename = $re.sub(\'\\W\',\'_\',$input.display_name)\n+      #end if\n+      --input=${input.extra_files_path}/wiff\n+      --input_name=\'${basename}.wiff\n+      --implicit=${input.extra_files_path}/wiff_scan\n+      --input=${input.extra_files_path}/wiff_scan\n+      --input_name=\'${basename}.wiff.scan\n+    #else\n+      --input=${input}\n+      #if hasattr($input, \'display_name\')\n+      --input_name=\'${input.display_name}\'\n+      #end if\n+    #end if\n+    --output=${output}\n+    ## BEGIN_VERSION_DEFAULT\n+    --fromextension=$ext\n+    ## END_VERSION_DEFAULT\n+    --toextension=${output_type}\n+\n+    ## DATA PROCESSING FILTERS (NOTE: FOR VENDOR METHOD TO WORK, PEAK PICKING MUST BE THE FIRST FILTER!)\n+      #if $data_processing.precursor_refinement.use_mzrefinement\n+        #set $input_ident_name = $re.sub(\'\\W\',\'_\',$data_processing.precursor_refinement.input_ident.display_name)\n+        #if $data_processing.precursor_refinement.input_ident.ext == \'mzid\':\n+          #set $input_ident_name = $re.sub(\'(?i)([.]?mzid)*$\',\'.mzid\',$input_ident_name)\n+        #elif $data_processing.precursor_refinement.input_ident.ext == \'pepxml\':\n+          #set $input_ident_name = $re.sub(\'(?i)([.]?pep[.]?xml)*$\',\'.pep.xml\',$input_ident_name)\n+        #end if\n+      --ident=$data_processing.precursor_refinement.input_ident\n+      --ident_name=$input_ident_name\n+      --refinement=$output_refinement\n+      --filter "mzRefiner $input_ident_name\n+        msLevels=$data_processing.precursor_refinement.precursor_refinement_ms_levels\n+        thresholdScore=$data_processing.precursor_refinement.thresholdScore\n+        thresholdValue=$data_processing.precursor_refinement.thresholdValue\n+        thresholdStep=$data_processing.precursor_refinement.thresholdStep\n+        maxSteps=$data_processing.precursor_refinement.thresholdMaxSteps"\n+      #end if\n+\n+      #if $data_processing.peak_picking.pick_peaks\n+      --filter "peakPicking $data_processing.peak_picking.pick_peaks_algorithm msLevel=$data_processing.peak_picking.pick_peaks_ms_levels"\n+      #end if\n+\n+      #if str($data_processing.charge_state_calculation.charge_state_calculation_method) == "predictor"\n+      --filter "chargeStatePredictor\n+        overrideExistingCharge=$data_processing.charge_state_calculation.predictor_overrideExistingCharge\n+        minMultipleCharge=$data_processing.charge_state_calculation.minMultipleCharge\n+        maxMultipleCharge=$data_processing.charge_state_calculation.maxMultipleCharge\n+        singleChargeFractionTIC=$data_processing.charge_state_calculation.singleChargeFractionTIC\n+        maxKnownCharge=$data_processing.charge_state_calculation.maxKnownCharge"\n+      #else if str($data_processing.charge_state_calculation.charge_state_calculation_method) == "turbocharger"\n+      --filter "turbocharger\n+        minCharge=$data_processing.charge_state_calculation.minCharge\n+        maxCharge=$data_processing.charge_state_calculation.maxCharge\n+        precursorsBefore=$data_processing.charge_state_calculation.precursorsBefore\n+        precursorsAfter=$data_processing.charge_state_calculation.precursorsAfter\n+        halfIsoWidth=$data_processing.charge_state_calculation.halfIsoWidth\n+        defaultMinCharge=$data_processing.charge_state_calculation.defaultMinCharge\n+        defaultMaxCharge=$data_processing.charge_state_calculation.defaultMaxCharge"\n+      #end if\n+\n+      #for threshold_entry in $data_processing.thresholds\n+      --filter "threshold $threshold_entry.threshold_type $thres'..b'e="mzML" />\n+      <param name="activation" value="CID" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-activation.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="indices_0|from" value="2" />\n+      <param name="indices_0|to" value="4" />\n+      <param name="indices_1|from" value="10" />\n+      <param name="indices_1|to" value="10" />\n+      <param name="indices_2|from" value="13" />\n+      <param name="indices_2|to" value="15" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-index-filter.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="strip_it" value="true" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-strip-it.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="do_ms_level_filter" value="true" />\n+      <param name="ms_level_from" value="2" />\n+      <param name="ms_level_to" value="2" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-ms-level-filter.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="polarity" value="positive" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-polarity-filter.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="analyzer" value="IT" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-analyzer-filter.mzML" />\n+    </test>\n+    <test>\n+      <param name="input" value="small-peakpicking-cwt-allMS.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="scan_numbers_0|from" value="3" />\n+      <param name="scan_numbers_0|to" value="5" />\n+      <param name="scan_numbers_1|from" value="11" />\n+      <param name="scan_numbers_1|to" value="11" />\n+      <param name="scan_numbers_2|from" value="14" />\n+      <param name="scan_numbers_2|to" value="16" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-index-filter.mzML" /> <!-- the scan numbers here produce the same output as the index test above -->\n+    </test>\n+    <!--<test>\n+      <param name="input" value="small.mzML" />\n+      <param name="output_type" value="mzML" />\n+      <param name="binary_compression" value="numpressLinearPic" />\n+      <output name="output" file="small-deisotope-poisson.mzML" />\n+    </test>-->\n+  </xml>\n+  <xml name="msconvert_help">\n+**What it does**\n+\n+Allows interconversion within various mass spectrometry peak list formats. Additional options such as filtering and/or precursor recalculation are available.\n+\n+You can view the original documentation here_.\n+\n+.. _here: http://proteowizard.sourceforge.net/tools/msconvert.html\n+  </xml>\n+\n+  <xml name="citations">\n+    <citations>\n+        <citation type="doi">10.1093/bioinformatics/btn323</citation>\n+        <citation type="bibtex">@misc{toolsGalaxyP, author = {Chilton, J, Chambers MC, et al.}, title = {Galaxy Proteomics Tools}, publisher = {GitHub}, journal = {GitHub repository},\n+                                      year = {2015}, url = {https://github.com/galaxyproteomics/tools-galaxyp}}</citation> <!-- TODO: fix substitution of commit ", commit = {$sha1$}" -->\n+    </citations>\n+  </xml>\n+\n+</macros>\n'
b
diff -r 000000000000 -r f8cf3be564bb msconvert_win.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_win.xml Fri Apr 08 16:09:02 2016 -0400
b
@@ -0,0 +1,36 @@
+<tool id="msconvert_win" name="msconvert (vendor support)" version="@VERSION@.0">
+  <description>Convert and/or filter mass spectrometry files (with vendor support on Windows)</description>
+
+  <macros>
+    <import>msconvert_macros.xml</import>
+  </macros>
+
+  <expand macro="msconvertCommand" />
+
+  <inputs>
+    <!-- TODO: add Bruker, Waters, Agilent types -->
+    <param format="mzml,mzxml,mz5,mgf,wiff,raw" name="input" type="data" label="Input unrefined MS data" />
+
+    <expand macro="msconvertInputParameters" />
+  </inputs>
+
+  <expand macro="msconvertOutput" />
+
+  <tests>
+    <expand macro="msconvert_tests" />
+
+    <test>
+      <param name="input" value="small.raw" />
+      <param name="output_type" value="mgf" />
+      <param name="pick_peaks" value="true" />
+      <param name="pick_peaks_algorithm" value="vendor" />
+      <param name="pick_peaks_ms_levels" value="1" />
+      <output name="output" file="small-peakpicking-vendor-ms1.mgf" />
+    </test>
+
+  </tests>
+  <help>
+    <expand macro="msconvert_help" />
+  </help>
+  <expand macro="citations" />
+</tool>
b
diff -r 000000000000 -r f8cf3be564bb msconvert_wrapper.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/msconvert_wrapper.py Fri Apr 08 16:09:02 2016 -0400
[
b'@@ -0,0 +1,298 @@\n+#!/usr/bin/env python\n+import optparse\n+import os\n+import sys\n+import tempfile\n+import shutil\n+import subprocess\n+import re\n+import logging\n+\n+assert sys.version_info[:2] >= (2, 6)\n+\n+log = logging.getLogger(__name__)\n+working_directory = os.getcwd()\n+tmp_stderr_name = tempfile.NamedTemporaryFile(dir=working_directory, suffix=\'.stderr\').name\n+tmp_stdout_name = tempfile.NamedTemporaryFile(dir=working_directory, suffix=\'.stdout\').name\n+\n+\n+def stop_err(msg):\n+    sys.stderr.write("%s\\n" % msg)\n+    sys.exit()\n+\n+\n+def read_stderr():\n+    stderr = \'\'\n+    if(os.path.exists(tmp_stderr_name)):\n+        with open(tmp_stderr_name, \'rb\') as tmp_stderr:\n+            buffsize = 1048576\n+            try:\n+                while True:\n+                    stderr += tmp_stderr.read(buffsize)\n+                    if not stderr or len(stderr) % buffsize != 0:\n+                        break\n+            except OverflowError:\n+                pass\n+    return stderr\n+\n+\n+def execute(command, stdin=None):\n+    try:\n+        with open(tmp_stderr_name, \'wb\') as tmp_stderr:\n+            with open(tmp_stdout_name, \'wb\') as tmp_stdout:\n+                proc = subprocess.Popen(args=command, shell=True, stderr=tmp_stderr.fileno(), stdout=tmp_stdout.fileno(), stdin=stdin, env=os.environ)\n+                returncode = proc.wait()\n+                if returncode != 0:\n+                    raise Exception("Program returned with non-zero exit code %d. stderr: %s" % (returncode, read_stderr()))\n+    finally:\n+        print(( open(tmp_stderr_name, "r").read() ))\n+        print(( open(tmp_stdout_name, "r").read() ))\n+\n+\n+def delete_file(path):\n+    if os.path.exists(path):\n+        try:\n+            os.remove(path)\n+        except:\n+            pass\n+\n+\n+def delete_directory(directory):\n+    if os.path.exists(directory):\n+        try:\n+            shutil.rmtree(directory)\n+        except:\n+            pass\n+\n+\n+def symlink(source, link_name):\n+    import platform\n+    if platform.system() == \'Windows\':\n+        try:\n+            import win32file\n+            win32file.CreateSymbolicLink(source, link_name, 1)\n+        except:\n+            shutil.copy(source, link_name)\n+    else:\n+        os.symlink(source, link_name)\n+\n+\n+def copy_to_working_directory(data_file, relative_path):\n+    if os.path.abspath(data_file) != os.path.abspath(relative_path):\n+        symlink(data_file, relative_path)\n+    return relative_path\n+\n+\n+def __main__():\n+    run_script()\n+\n+#ENDTEMPLATE\n+\n+to_extensions = [\'mzML\', \'mzXML\', \'unindexed_mzML\', \'unindexed_mzXML\', \'mgf\', \'mz5\', \'txt\', \'ms2\', \'cms2\']\n+\n+\n+def str_to_bool(v):\n+    """ From http://stackoverflow.com/questions/715417/converting-from-a-string-to-boolean-in-python """\n+    return v.lower() in ["yes", "true", "t", "1"]\n+\n+\n+def _add_filter(filters_file, contents):\n+    filters_file.write("filter=%s\\n" % contents)\n+\n+\n+def _skip_line(options, file_num, line_parts):\n+    file_num_column = options.filter_table_file_column\n+    if not file_num_column:\n+        return False\n+    else:\n+        target_file_num_val = str(file_num).strip()\n+        query_file_num_val = line_parts[int(file_num_column) - 1].strip()\n+        #print "target %s, query %s" % (target_file_num_val, query_file_num_val)\n+        return target_file_num_val != query_file_num_val\n+\n+\n+def _read_table_numbers(path, options, file_num=None):\n+    unique_numbers = set([])\n+    column_num = options.filter_table_column\n+    input = open(path, "r")\n+    first_line = True\n+    for line in input:\n+        if not line:\n+            continue\n+        line = line.strip()\n+        if line.startswith("#"):\n+            first_line = False\n+            continue\n+        if column_num == None:\n+            column = line\n+        else:\n+            line_parts = line.split("\\t")\n+            if _skip_line(options, file_num, line_parts):\n+                continue\n+            column = line_parts[int(column_num) - 1]\n+        match = re.match("\\d+", column)\n+     '..b'   parser.add_option(\'--binaryencoding\', dest=\'binaryencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--mzencoding\', dest=\'mzencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--intensityencoding\', dest=\'intensityencoding\', choices=[\'32\', \'64\'])\n+    parser.add_option(\'--zlib\', dest=\'zlib\', default="false")\n+    parser.add_option(\'--filter\', dest=\'filter\', action=\'append\', default=[])\n+    parser.add_option(\'--filters_file\', dest=\'filters_file\', default=None)\n+    parser.add_option(\'--filter_table\', default=None)\n+    parser.add_option(\'--filter_table_type\', default=\'index\', choices=[\'index\', \'number\'])\n+    parser.add_option(\'--filter_table_column\', default=None)\n+    parser.add_option(\'--filter_table_file_column\', default=None)\n+    parser.add_option(\'--debug\', dest=\'debug\', action=\'store_true\', default=False)\n+\n+    (options, args) = parser.parse_args()\n+    if len(options.inputs) < 1:\n+        stop_err("No input files to msconvert specified")\n+    if len(options.input_names) > 0 and len(options.input_names) != len(options.inputs):\n+        stop_err("Number(s) of supplied input names and input files do not match")\n+    if not options.output:\n+        stop_err("Must specify output location")\n+    input_files = []\n+    for i, input in enumerate(options.inputs):\n+        input_base = None\n+        if len(options.input_names) > i:\n+            input_base = options.input_names[i]\n+            input_base = input_base.replace("\'", "").replace("\\"", "")\n+            print("1- input_base: %s" % input_base)\n+        if not input_base:\n+            input_base = \'input%s\' % i\n+            print("2- input_base: %s" % input_base)\n+        if not input_base.lower().endswith(\'.%s\' % options.fromextension.lower()) and input not in options.implicits:\n+            input_file = \'%s.%s\' % (input_base, options.fromextension)\n+            print("3- input_base: %s" % input_base)\n+            print("3- input_file: %s" % input_file)\n+        else:\n+            input_file = input_base\n+            print("4- input_base: %s" % input_base)\n+            print("4- input_file: %s" % input_file)\n+        input_file = input_file\n+        copy_to_working_directory(input, input_file)\n+        if input in options.implicits:\n+            continue\n+        input_files.append(input_file)\n+    for i, ident in enumerate(options.idents):\n+        ident_file = options.ident_names[i]\n+        copy_to_working_directory(ident, ident_file)\n+\n+    cmd = _build_base_cmd(options,args=args)\n+    file_column = options.filter_table_file_column\n+    if not file_column:\n+        # Apply same filters to all files, just create a unviersal filter files\n+        # and run msconvert once.\n+        filters_file_path = _create_filters_file(options, debug=options.debug)\n+        cmd = "%s -c %s" % (cmd, filters_file_path)\n+    else:\n+        # Dispatching on a column to filter different files differently, need to filter\n+        # each input once with msconvert and then merge once.\n+        filtered_files = []\n+        for index, input_file in enumerate(input_files):\n+            filters_file_path = _create_filters_file(options, index + 1, debug=options.debug)\n+            filter_cmd = "%s -c %s" % (cmd, filters_file_path)\n+            filtered_output_file = _run(filter_cmd, output_dir=\'output%d\' % index, inputs=[input_file], debug=options.debug)\n+            filtered_files.append(filtered_output_file)\n+        input_files = filtered_files\n+    if len(input_files) > 1:\n+        cmd = "%s --merge" % cmd\n+    output_file = _run(cmd, output_dir=\'output\', inputs=input_files, debug=options.debug)\n+    shutil.copy(output_file, options.output)\n+    if options.refinement:\n+        # .mzRefinement.tsv\n+        files = os.listdir(os.getcwd())\n+        for fname in files:\n+            if fname.endswith(\'.mzRefinement.tsv\'):\n+                shutil.copy(fname, options.refinement)\n+                break\n+\n+def __main__():\n+    run_script()\n+\n+if __name__ == \'__main__\':\n+    __main__()\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01-etdfilter.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01-etdfilter.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,4759 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="D100930_yeast_SCX10S_rak_ft8E_pc_01" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.74.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="1">\n+        <sourceFile id="RAW1" name="D100930_yeast_SCX10S_rak_ft8E_pc_01.RAW" location="file:///D:\\test\\iPRG_2011">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="5291a8af1478f3ff0295ec296cd7f4766383f1b3"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000556" name="LTQ Orbitrap XL" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN01272B"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="2">\n+      <software id="Xcalibur" version="2.5.5">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8688">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000398" name="nanoelectrospray" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000484" name="orbitrap" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000398" name="nanoelectrospray" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000083" name="radial ejection linear ion trap" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000253" name="electron multiplier" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n'..b'set>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3562">219633</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3563">227670</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3564">234499</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3565">241833</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3566">250294</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3567">256537</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3568">264372</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3569">271470</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3571">277775</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3572">285043</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3573">294074</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3574">302827</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3575">309954</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3576">317054</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3577">322943</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3578">330286</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3580">336266</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3581">342936</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3582">350458</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3583">356358</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3584">364023</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3585">369993</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3586">378020</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3587">384104</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3589">390163</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3590">398641</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3591">405812</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3592">411477</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3593">419417</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3594">425265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3595">431219</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3596">439319</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3598">447462</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3599">454971</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3600">462953</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3601">468414</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3602">474934</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3603">484090</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3604">491242</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3605">498644</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3607">505660</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3608">513576</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3609">520980</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3610">527859</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">534018</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>603077</indexListOffset>\n+  <fileChecksum>8c9fa805c960cad890b823932b1145af8ddc893a</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01.mz5
b
Binary file test-data/D100930_yeast_SCX10S_rak_ft8E_pc_01.mz5 has changed
b
diff -r 000000000000 -r f8cf3be564bb test-data/Rpal_01-mzRefinement.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Rpal_01-mzRefinement.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,6128 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="Rpal_01" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.74.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="1">\n+        <sourceFile id="RAW1" name="Rpal_01.RAW" location="file:///C:\\Users\\chambem2\\.vagrant\\precise64\\bingomics-galaxy\\vagrant\\export\\src\\tools-galaxyp-chambm\\tools\\msconvert\\test-data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4677b1f0c0556933ee113c7712164c37087bfb24"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000449" name="LTQ Orbitrap" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="Slot_81"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="2">\n+      <software id="Xcalibur" version="2.0 RC 2 upd 060213">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8688">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000398" name="nanoelectrospray" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000484" name="orbitrap" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000398" name="nanoelectrospray" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000485" name="nanospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000083" name="radial ejection linear ion trap" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000253" name="electron multiplier" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwar'..b'ffset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=58">317567</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=59">323034</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=60">328552</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=61">334066</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=62">339784</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=63">345237</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=64">350714</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=65">356183</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=66">361667</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=67">367143</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=68">372790</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=69">378442</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=70">383935</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=71">389375</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=72">394943</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=73">400444</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=74">405675</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=75">411429</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=76">417080</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=77">422714</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=78">428297</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=79">433909</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=80">439225</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=81">444950</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=82">450556</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=83">456237</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=84">462063</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=85">467770</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=86">475681</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=87">481511</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=88">487262</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=89">492992</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=90">498686</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=91">504313</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=92">510475</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=93">516311</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=94">522214</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=95">528055</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=96">533685</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=97">539368</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=98">545135</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=99">550804</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=100">556406</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=101">562116</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=102">567769</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">573506</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>611906</indexListOffset>\n+  <fileChecksum>c21cb957af41a486a037923b76bb07f9f883c3b6</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/Rpal_01.mz5
b
Binary file test-data/Rpal_01.mz5 has changed
b
diff -r 000000000000 -r f8cf3be564bb test-data/Rpal_01.pepXML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Rpal_01.pepXML Fri Apr 08 16:09:02 2016 -0400
[
b'@@ -0,0 +1,49047 @@\n+<?xml version="1.0" encoding="ISO-8859-1"?>\n+<msms_pipeline_analysis date="2011-10-31T11:08:11" summary_xml="Rpal_01.pepXML" xmlns="http://regis-web.systemsbiology.net/pepXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://sashimi.sourceforge.net/schema_revision/pepXML/pepXML_v117.xsd">\n+  <analysis_summary analysis="MyriMatch" version="2.1.101" time="2011-10-31T11:08:11"/>\n+  <msms_run_summary base_name="Rpal_01" raw_data_type="" raw_data="">\n+    <sample_enzyme name="Trypsin/P" independent="false" fidelity="specific">\n+      <specificity sense="C" cut="KR" no_cut="" min_spacing="1"/>\n+    </sample_enzyme>\n+    <search_summary base_name="Rpal_01" search_engine="MyriMatch" precursor_mass_type="monoisotopic" fragment_mass_type="monoisotopic" out_data_type="" out_data="">\n+      <search_database local_path="Mark12-Rpal-20050929-reverse.fasta" database_name="SDB" type="AA"/>\n+      <enzymatic_search_constraint enzyme="Trypsin/P" max_num_internal_cleavages="100000" min_number_termini="2"/>\n+      <parameter name="Config: AvgPrecursorMzTolerance" value="1.5mz"/>\n+      <parameter name="Config: ClassSizeMultiplier" value="2"/>\n+      <parameter name="Config: CleavageRules" value="trypsin/p"/>\n+      <parameter name="Config: ComputeXCorr" value="1"/>\n+      <parameter name="Config: DecoyPrefix" value="rev_"/>\n+      <parameter name="Config: DynamicMods" value=""/>\n+      <parameter name="Config: EstimateSearchTimeOnly" value="0"/>\n+      <parameter name="Config: FragmentMzTolerance" value="30ppm"/>\n+      <parameter name="Config: FragmentationAutoRule" value="1"/>\n+      <parameter name="Config: FragmentationRule" value="cid"/>\n+      <parameter name="Config: MaxDynamicMods" value="2"/>\n+      <parameter name="Config: MaxFragmentChargeState" value="0"/>\n+      <parameter name="Config: MaxMissedCleavages" value="100000"/>\n+      <parameter name="Config: MaxPeakCount" value="300"/>\n+      <parameter name="Config: MaxPeptideLength" value="75"/>\n+      <parameter name="Config: MaxPeptideMass" value="10000"/>\n+      <parameter name="Config: MaxPeptideVariants" value="1000000"/>\n+      <parameter name="Config: MaxResultRank" value="2"/>\n+      <parameter name="Config: MinPeptideLength" value="5"/>\n+      <parameter name="Config: MinPeptideMass" value="0"/>\n+      <parameter name="Config: MinResultScore" value="9.9999999999999995e-008"/>\n+      <parameter name="Config: MinTerminiCleavages" value="2"/>\n+      <parameter name="Config: MonoPrecursorMzTolerance" value="10ppm"/>\n+      <parameter name="Config: MonoisotopeAdjustmentSet" value="[-1,2] "/>\n+      <parameter name="Config: NumBatches" value="50"/>\n+      <parameter name="Config: NumChargeStates" value="3"/>\n+      <parameter name="Config: NumIntensityClasses" value="3"/>\n+      <parameter name="Config: NumMzFidelityClasses" value="3"/>\n+      <parameter name="Config: OutputFormat" value="pepXML"/>\n+      <parameter name="Config: OutputSuffix" value=""/>\n+      <parameter name="Config: PrecursorMzToleranceRule" value="auto"/>\n+      <parameter name="Config: PreferIntenseComplements" value="1"/>\n+      <parameter name="Config: ProteinDatabase" value="Mark12-Rpal-20050929-reverse.fasta"/>\n+      <parameter name="Config: ProteinListFilters" value=""/>\n+      <parameter name="Config: ProteinSamplingTime" value="15"/>\n+      <parameter name="Config: ResultsPerBatch" value="200000"/>\n+      <parameter name="Config: SpectrumListFilters" value="peakPicking true 2-"/>\n+      <parameter name="Config: StaticMods" value=""/>\n+      <parameter name="Config: StatusUpdateFrequency" value="5"/>\n+      <parameter name="Config: TicCutoffPercentage" value="0.97999999999999998"/>\n+      <parameter name="Config: UseMultipleProcessors" value="1"/>\n+      <parameter name="Config: UseSmartPlusThreeModel" value="1"/>\n+      <parameter name="Config: WorkingDirectory" value="C:\\test\\rpal-orbi-orbi\\raw"/>\n+      <parameter name="PeakCounts: 1stQuartile: Fil'..b'<search_score name="number of matched peaks" value="8"/>\n+          <search_score name="number of unmatched peaks" value="10"/>\n+          <search_score name="mvh" value="38.772735834122"/>\n+          <search_score name="mzFidelity" value="65.054646326801"/>\n+          <search_score name="xcorr" value="1.6667071547922678"/>\n+        </search_hit>\n+        <search_hit hit_rank="2" peptide="NPALRREVK" peptide_prev_aa="K" peptide_next_aa="L" protein="RPA2977" num_tot_proteins="1" calc_neutral_pep_mass="1081.63562584" massdiff="-0.00118841374" num_tol_term="2" num_missed_cleavages="2" num_matched_ions="4" tot_num_ions="16">\n+          <search_score name="number of matched peaks" value="4"/>\n+          <search_score name="number of unmatched peaks" value="12"/>\n+          <search_score name="mvh" value="17.102844238281"/>\n+          <search_score name="mzFidelity" value="30.837907609603"/>\n+          <search_score name="xcorr" value="0.44266026132227854"/>\n+        </search_hit>\n+        <search_hit hit_rank="3" peptide="AVFVGTLAFR" peptide_prev_aa="K" peptide_next_aa="S" protein="rev_RPA4668" num_tot_proteins="1" calc_neutral_pep_mass="1079.6127651329" massdiff="-0.00671928964" num_tol_term="2" num_missed_cleavages="0" num_matched_ions="4" tot_num_ions="18">\n+          <search_score name="number of matched peaks" value="4"/>\n+          <search_score name="number of unmatched peaks" value="14"/>\n+          <search_score name="mvh" value="16.589879512787"/>\n+          <search_score name="mzFidelity" value="29.849243245154"/>\n+          <search_score name="xcorr" value="0.67468716832110653"/>\n+        </search_hit>\n+      </search_result>\n+    </spectrum_query>\n+    <spectrum_query spectrum="Rpal_01.2436.2436.2" spectrumNativeID="controllerType=0 controllerNumber=1 scan=2436" start_scan="2436" end_scan="2436" precursor_neutral_mass="1149.62544706624" assumed_charge="2" index="4043">\n+      <search_result num_target_comparisons="871" num_decoy_comparisons="890">\n+        <search_hit hit_rank="1" peptide="NPWEVFVEK" peptide_prev_aa="R" peptide_next_aa="H" protein="RPA0064" num_tot_proteins="1" calc_neutral_pep_mass="1147.27922" massdiff="-2.34622706624" num_tol_term="2" num_missed_cleavages="0" num_matched_ions="10" tot_num_ions="16">\n+          <search_score name="number of matched peaks" value="10"/>\n+          <search_score name="number of unmatched peaks" value="6"/>\n+          <search_score name="mvh" value="50.194524645805"/>\n+          <search_score name="mzFidelity" value="86.851865019713"/>\n+          <search_score name="xcorr" value="1.6098698580488562"/>\n+        </search_hit>\n+        <search_hit hit_rank="2" peptide="AWLDFVAEKA" peptide_prev_aa="R" peptide_next_aa="-" protein="RPA3576" num_tot_proteins="1" calc_neutral_pep_mass="1149.2951" massdiff="-0.33034706624" num_tol_term="2" num_missed_cleavages="1" num_matched_ions="9" tot_num_ions="17">\n+          <search_score name="number of matched peaks" value="9"/>\n+          <search_score name="number of unmatched peaks" value="8"/>\n+          <search_score name="mvh" value="42.459152936935"/>\n+          <search_score name="mzFidelity" value="75.613555668398"/>\n+          <search_score name="xcorr" value="1.9848502265699208"/>\n+        </search_hit>\n+        <search_hit hit_rank="3" peptide="DYGLRAGGSTR" peptide_prev_aa="R" peptide_next_aa="V" protein="rev_RPA4459" num_tot_proteins="1" calc_neutral_pep_mass="1152.21798" massdiff="2.59253293376" num_tol_term="2" num_missed_cleavages="1" num_matched_ions="7" tot_num_ions="20">\n+          <search_score name="number of matched peaks" value="7"/>\n+          <search_score name="number of unmatched peaks" value="13"/>\n+          <search_score name="mvh" value="29.204201936722"/>\n+          <search_score name="mzFidelity" value="54.274397630421"/>\n+          <search_score name="xcorr" value="1.0154997527897358"/>\n+        </search_hit>\n+      </search_result>\n+    </spectrum_query>\n+  </msms_run_summary>\n+</msms_pipeline_analysis>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/Rpal_01.pepXML.mzRefinement.tsv
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/Rpal_01.pepXML.mzRefinement.tsv Fri Apr 08 16:09:02 2016 -0400
b
@@ -0,0 +1,2 @@
+ThresholdScore ThresholdValue Excluded (score) Excluded (mass error) MS1 Included MS1 Shift method MS1 Final stDev MS1 Tolerance for 99% MS1 Final MAD MS1 MAD Tolerance for 99% MS2 Included MS2 Shift method MS2 Final stDev MS2 Tolerance for 99% MS2 Final MAD MS2 MAD Tolerance for 99%
+MyriMatch:MVH 40 <= MME <= 1.7976931348623157e+308 4390 175 1024 m/z 3.37955 10.1387 0.519682 2.31144 0 m/z 3.37955 10.1387 0.519682 2.31144
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-activation.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-activation.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46123</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">56639</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">66008</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">76176</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">83265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">95043</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">104067</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">115539</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">124823</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">135095</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">144579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">152361</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">163393</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">172608</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">183898</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">193368</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">202904</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">213762</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">221677</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">230341</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">239558</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">251042</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">261191</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">270761</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">281511</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">289824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">300186</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">311626</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">320997</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">330661</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">339529</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">347100</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">356125</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">365298</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">377583</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">386955</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">397745</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">407705</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">421236</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">432579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">441964</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">453824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">463603</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">473008</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">482238</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>484188</indexListOffset>\n+  <fileChecksum>e18a3d758326d6d1adb2a8f00fa69cfb1dc5b83d</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-analyzer-filter.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-analyzer-filter.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2487 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'eE5R5Ex3zIQxZYRLJxoom8tATs/dTO74TOrIjffMhIRzAEj71gTtcHzCk1j33ETDE0TnSUhAIwVEibL2zKIxTmW0TNssTePES8Du/I+zjY2pO83EJkz+aE3gmI75TErlVeytva8MZ0eNxZmNktROAmBM3Ax</binary>\n+            </binaryDataArray>\n+          </binaryDataArrayList>\n+        </chromatogram>\n+      </chromatogramList>\n+    </run>\n+  </mzML>\n+  <indexList count="2">\n+    <index name="spectrum">\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=2">5578</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3">16484</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">25055</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">36913</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">47429</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">56798</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">66966</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">78744</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">87768</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">99239</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">108522</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">118794</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">128278</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">139310</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">148525</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">159815</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">169285</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">178821</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">189679</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">198343</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">207560</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">219044</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">229193</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">238763</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">249513</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">259875</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">271315</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">280686</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">290350</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">299218</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">308243</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">317416</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">329701</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">339073</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">349863</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">359823</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">371166</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">380551</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">392411</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">402190</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">411595</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">420825</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>422775</indexListOffset>\n+  <fileChecksum>77c22cf716295527c57901738d27ed11ca93608e</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-chargeStatePredictor.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-chargeStatePredictor.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2904 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34673</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46939</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">57863</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">67640</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">78216</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">85305</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">97083</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">106515</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">118395</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">128087</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">138767</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">148659</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">156441</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">167473</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">177096</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">188794</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">198672</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">208616</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">219882</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">227797</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">236461</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">246086</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">257978</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">268535</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">278513</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">289671</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">297984</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">308346</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">320194</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">329973</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">340045</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">349006</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">356577</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">365602</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">375183</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">387876</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">397656</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">408854</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">419222</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">432753</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">444096</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">453889</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">466157</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">476344</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">486157</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">495480</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>497430</indexListOffset>\n+  <fileChecksum>e34f2d83d57a605fa287b515b7432185e40b3806</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-deisotope-poisson.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-deisotope-poisson.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34280</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46056</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">56515</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">65899</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">76034</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">83123</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">94901</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">103896</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">115291</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">124542</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">134809</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">144296</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">152078</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">163110</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">172264</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">183529</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">192958</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">202493</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">213318</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">221233</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">229897</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">239053</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">250472</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">260608</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">270145</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">280874</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">289187</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">299549</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">310960</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">320218</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">329873</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">338776</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">346347</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">355372</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">364524</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">376708</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">386091</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">396780</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">406703</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">420234</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">431577</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">440949</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">452695</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">462465</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">471857</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">481114</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>483064</indexListOffset>\n+  <fileChecksum>cfacf17f1180e532e69ee63a98321d64762e34e5</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-deisotope.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-deisotope.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b' scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">33023</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">42011</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">50349</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">57980</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">66098</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">73187</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">84965</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">92559</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">101358</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">108984</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">117246</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">124908</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">132690</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">143722</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">151327</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">160120</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">167816</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">175526</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">184042</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">191957</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">200621</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">208204</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">217131</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">225098</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">232974</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">241394</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">249707</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">260069</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">268956</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">276577</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">284399</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">291990</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">299561</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">308586</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">316173</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">325436</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">333138</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">341574</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">349448</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">362979</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">374322</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">382137</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">391179</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">398920</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">406655</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">414439</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>416389</indexListOffset>\n+  <fileChecksum>4dc91f54798a123d6d0dd1c8901a443e67ab95c9</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-denoise.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-denoise.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'=1 scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">32543</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">39566</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">46284</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">52702</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">59540</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">66629</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">78407</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">85305</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">92251</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">98752</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">105442</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">111871</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">119653</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">130685</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">137550</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">144522</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">151017</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">157474</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">164178</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">172093</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">180757</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">187584</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">194566</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">201144</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">207687</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">214383</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">222696</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">233058</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">240004</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">246500</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">252969</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">259648</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">267219</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">276244</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">283219</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">290181</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">296710</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">303374</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">309971</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">323502</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">334845</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">341812</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">348809</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">355389</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">361847</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">368631</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>370581</indexListOffset>\n+  <fileChecksum>d847e38185808668a5a4ac0f07bf22539e2dff96</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-index-filter.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-index-filter.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,513 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compone'..b'CWmFUIlOhV8hdFFUCX1FbUlMRWVJZQVByVqFRYVKBVGJRYVeRWoFdoVmBU3FcEVgRXCFTsV0RU2JYMldhWaFYA1qRXcFq1cgVtRVpFZ8VaSXUFU8VJBUKFQElACUaFe0V8iVHFaMV0BUuFVcVqhVSFSkVyRXzJX8VACVaJWsVsCXpFfQVfiYeW8FYUVoSW0Jaw1thSyYkPhJfbV3lXwFYYVsSVWFVUliBVVFWQWT1lhXSJWUVARWSNe4WD1gRZ/VQFaIV7BVRFRIlBhXWFWIVyzVyFawV8BWzFZglMhUTJr9WEV0xVRFVYV5xX3FUQ1axVKFdcV8BUjFSAVxBXLJSgVlxWNFbUVMBWyFVcVPyVAJUMVdxWTFV8VpRXUFTQVExWWJSAVTBUaFScVlBWRFt5aUVQRYdXWFr9SYVUxUMJYgVVRXgJWY1QRbNUiFrtW8VTRbsX3FqlYQVQBbIXBFbkWzlUxXGFRcViRUzFm9dcVYBVKFVQVGhZeUqFl5v9c4WnlBhYrVyFUQlECVTFUMlZhWPFW0VLyUkFGIiTTwVWvVRVZEl0RVjFdsVXRWVFcQm/mOl4BbaUlFSc1eSUhFUsV3hW1JcmFmmUUNfQlNxUGFecVYyUeFb0VDSXmFdQVpBWfFcAVjxX2FcgVdiZcWAFpxYkVXBWWFWcVexVyFQoV2BZMXSFTQlYSWGFboVaxXMFdMVYhWTFacV/SV5FXYlcxV4FTQVCRU4Jh5QIVIhYfVxFeUVKha/VpFZYVpSYfV3FVYVqhZZYLVSFslbolIBUWFQwWvGvV0RZtYPWhFSMWfm+12xW0FbMVoiUJJQQV8BY9W3FbUV/ha8UhFdoW/G7mG1lhXBFttopZMVTCXUFUMWbFrhVkFawVRRX6Jc02ilVRZ+UZFSUVXhUbJRcVECWhFs9WwVARbKbdURJn1qlt8=</binary>\n+            </binaryDataArray>\n+          </binaryDataArrayList>\n+        </spectrum>\n+      </spectrumList>\n+      <chromatogramList count="1" defaultDataProcessingRef="pwiz_Reader_conversion">\n+        <chromatogram index="0" id="TIC" defaultArrayLength="48">\n+          <cvParam cvRef="MS" accession="MS:1000235" name="total ion current chromatogram" value=""/>\n+          <binaryDataArrayList count="2">\n+            <binaryDataArray encodedLength="512">\n+              <cvParam cvRef="MS" accession="MS:1000523" name="64-bit float" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1000576" name="no compression" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1000595" name="time array" value="" unitCvRef="UO" unitAccession="UO:0000031" unitName="minute"/>\n+              <binary>ZjGx+bg2dD+CXqWoICyAPwIjQjaj+YY/yxgMm+5ilz9SJ6CJsOGhPzDw3Hu45Kg/YUwNR2q0rz/cnbXbLjSzP79Qravv6bM/oyv+3L3JtD9PJltKg8i3Px6vLSlk1Lo/jMOZX80Bvj9XaA3LjKTAP2XsccyfXMI/+6bDHYK9wj8lzLT9KyvDP7/ERdseqsQ/N8MN+Pwwxj/upJiWa+THP45AvK5fsMk/HdRY1aVZyz8p2GzSWr7LPze2sexcK8w/LiySiW7QzT/ABG7dzVPPP3qFGMJEltA/dQrf6FBz0T8dEA7jW0XSP9VGYm9PfdI/JpUWG+Bv0z+k374OnDPUP1yfTLaUBtU/p7OTwVHy1T/p/temnvLWP87s4E2kIdc/1VsDWyVY1z9qIIMC3BnYP0Kd3x0G4Ng/Hg4lbb252T/0gfdohJHaPxAO41tFbNs/5B+QXue52z8v2vZQtfDbP1MiiV5Gsdw/0akrn+V53T9t5RI0U0feP2q0L7PiLt8/</binary>\n+            </binaryDataArray>\n+            <binaryDataArray encodedLength="204">\n+              <cvParam cvRef="MS" accession="MS:1000519" name="32-bit integer" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1002313" name="MS-Numpress positive integer compression" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>\n+              <binary>LA+Y4uK9TDci+DLstjyesTt98THb2C4FJ+Jo3tk7Ivw/xfY6BeE5R5Ex3zIQxZYRLJxoom8tATs/dTO74TOrIjffMhIRzAEj71gTtcHzCk1j33ETDE0TnSUhAIwVEibL2zKIxTmW0TNssTePES8Du/I+zjY2pO83EJkz+aE3gmI75TErlVeytva8MZ0eNxZmNktROAmBM3Ax</binary>\n+            </binaryDataArray>\n+          </binaryDataArrayList>\n+        </chromatogram>\n+      </chromatogramList>\n+    </run>\n+  </mzML>\n+  <indexList count="2">\n+    <index name="spectrum">\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3">5577</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">14148</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">26006</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">36522</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">47993</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">57476</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">65257</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">76395</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>78345</indexListOffset>\n+  <fileChecksum>0d5bbd9cad4ad9471eba2e80d0ddea2cddcf3db9</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-ms-level-filter.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-ms-level-filter.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2200 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'dw/0akrn+V53T9t5RI0U0feP2q0L7PiLt8/</binary>\n+            </binaryDataArray>\n+            <binaryDataArray encodedLength="204">\n+              <cvParam cvRef="MS" accession="MS:1000519" name="32-bit integer" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1002313" name="MS-Numpress positive integer compression" value=""/>\n+              <cvParam cvRef="MS" accession="MS:1000515" name="intensity array" value="" unitCvRef="MS" unitAccession="MS:1000131" unitName="number of detector counts"/>\n+              <binary>LA+Y4uK9TDci+DLstjyesTt98THb2C4FJ+Jo3tk7Ivw/xfY6BeE5R5Ex3zIQxZYRLJxoom8tATs/dTO74TOrIjffMhIRzAEj71gTtcHzCk1j33ETDE0TnSUhAIwVEibL2zKIxTmW0TNssTePES8Du/I+zjY2pO83EJkz+aE3gmI75TErlVeytva8MZ0eNxZmNktROAmBM3Ax</binary>\n+            </binaryDataArray>\n+          </binaryDataArrayList>\n+        </chromatogram>\n+      </chromatogramList>\n+    </run>\n+  </mzML>\n+  <indexList count="2">\n+    <index name="spectrum">\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3">5578</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">14149</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">26007</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">36523</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">45892</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">56060</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">65084</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">76555</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">85838</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">96109</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">105592</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">114807</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">126097</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">135567</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">145103</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">155961</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">165178</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">176662</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">186811</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">196381</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">207131</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">218571</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">227942</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">237606</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">246474</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">255647</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">267932</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">277304</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">288094</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">298054</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">307439</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">319299</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">329078</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">338483</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">347713</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>349663</indexListOffset>\n+  <fileChecksum>e47c8b99f8a38261a6a99445767638bda0d81200</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-mzWindow.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-mzWindow.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'er=1 scan=3">15932</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">22747</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">30436</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">37948</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">45349</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">52665</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">57721</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">62818</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">69858</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">77514</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">84734</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">92162</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">99590</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">105128</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">110415</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">117450</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">125084</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">132294</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">139710</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">147220</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">152895</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">157870</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">164987</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">172691</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">180004</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">187246</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">194792</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">200481</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">205775</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">213371</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">220506</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">227942</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">235063</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">240414</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">245583</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">252620</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">260408</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">267584</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">275118</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">282378</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">288000</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">293258</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">300375</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">308050</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">315301</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">322658</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">330016</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>331966</indexListOffset>\n+  <fileChecksum>eb547bb98aaca512c02f4ad9f58e484f3f1b96da</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-numpressL.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-numpressL.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'an=3">29894</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">39977</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">55063</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">68527</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">80188</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">92932</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">100945</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">116031</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">126763</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">141227</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">152747</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">165799</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">177635</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">186581</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">200313</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">211296</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">225530</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">237376</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">249284</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">263242</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">272397</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">283025</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">294010</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">308474</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">321483</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">333505</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">347255</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">356976</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">369714</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">384162</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">395845</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">408025</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">419050</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">427717</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">438638</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">449575</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">465236</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">476928</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">490754</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">503426</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">520361</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">534500</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">545797</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">560921</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">573216</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">584973</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">596555</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>598529</indexListOffset>\n+  <fileChecksum>410562c8610cfbdb6583a856a989b03c6ac82c9b</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-numpressLP.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-numpressLP.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46123</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">56639</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">66008</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">76176</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">83265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">95043</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">104067</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">115539</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">124823</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">135095</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">144579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">152361</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">163393</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">172608</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">183898</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">193368</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">202904</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">213762</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">221677</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">230341</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">239558</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">251042</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">261191</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">270761</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">281511</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">289824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">300186</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">311626</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">320997</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">330661</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">339529</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">347100</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">356125</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">365298</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">377583</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">386955</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">397745</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">407705</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">421236</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">432579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">441964</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">453824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">463603</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">473008</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">482238</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>484188</indexListOffset>\n+  <fileChecksum>e18a3d758326d6d1adb2a8f00fa69cfb1dc5b83d</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-numpressLS.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-numpressLS.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25370</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34197</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46639</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">57911</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">67876</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">78628</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">85485</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">97487</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">106787</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">118779</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">128643</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">139623</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">149715</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">157257</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">168297</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">177776</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">189606</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">199704</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">209852</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">221474</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">229165</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">237961</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">247442</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">259442</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">270387</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">280617</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">292099</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">300196</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">310526</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">322510</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">332489</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">342837</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">352334</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">359673</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">368682</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">378131</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">390992</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">400980</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">412510</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">423210</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">436601</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">447936</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">457641</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">470109</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">480540</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">490577</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">500503</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>502389</indexListOffset>\n+  <fileChecksum>0cc3e1706b43b34a26e6ef49dee8aea5cea8c54e</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-numpressP.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-numpressP.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'n=3">35941</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">47305</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">65289</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">80842</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">94068</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">108801</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">118499</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">137423</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">149660</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">166842</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">179891</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">194896</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">208369</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">219324</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">236506</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">249114</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">265945</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">279404</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">292941</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">309204</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">320444</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">333181</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">345791</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">362941</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">377815</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">391478</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">407441</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">419459</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">435262</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">452384</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">465636</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">479469</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">491818</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">502386</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">515696</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">528202</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">546973</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">560222</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">576309</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">590782</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">612331</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">630088</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">643066</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">661076</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">675076</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">688386</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">701437</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>703387</indexListOffset>\n+  <fileChecksum>f5217742062a1e5f6639fb825a243929c495b377</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-numpressS.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-numpressS.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'n=3">35617</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">47237</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">65805</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">82114</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">95936</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">111253</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">120719</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">139867</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">152380</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">170082</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">183711</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">199424</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">213505</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">224220</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">241410</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">254282</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">271653</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">285740</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">299889</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">316916</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">327932</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">340801</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">353675</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">371341</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">387011</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">401334</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">418029</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">429831</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">445602</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">463268</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">477128</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">491645</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">504623</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">514959</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">528253</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">541035</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">560382</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">574247</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">591074</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">606287</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">627696</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">645445</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">658743</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">677361</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">692013</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">705955</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">719702</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>721588</indexListOffset>\n+  <fileChecksum>2fde9311363a3eb86df6f28007d77e0fe528e033</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-peakpicking-cwt-allMS.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-peakpicking-cwt-allMS.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2771 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="2">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n'..b'an=3">34026</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">43902</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">58585</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">71686</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">83116</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">95605</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">105807</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">122130</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">132635</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">146764</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">158025</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">170726</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">182323</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">193918</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">208627</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">219399</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">233266</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">244857</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">256518</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">270157</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">282085</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">293278</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">304032</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">318093</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">330767</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">342498</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">355893</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">368703</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">382278</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">396363</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">407791</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">419692</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">430518</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">441706</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">453280</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">463974</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">479248</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">490657</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">504140</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">516517</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">539810</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">554970</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">566024</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">580765</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">592749</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">604271</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">615666</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>617676</indexListOffset>\n+  <fileChecksum>31f4ea53a66da1cb213500065e5b564b8d779fd5</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-peakpicking-vendor-ms1.mgf
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-peakpicking-vendor-ms1.mgf Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,25514 @@\n+BEGIN IONS\n+TITLE=small.3.3.\n+RTINSECONDS=0.6731\n+PEPMASS=810.79 183838.71875\n+231.3888397 26.5451126099\n+233.3398285 20.4479541779\n+239.3961487 17.9991588593\n+240.3084717 44.7395210266\n+245.1689453 283.3832702637\n+246.1925354 75.7845687866\n+247.8092346 23.2885246277\n+251.197052 628.9126586914\n+252.3562469 41.6676368713\n+259.3575439 51.3414955139\n+262.2673035 341.8115539551\n+264.271759 19.0200614929\n+266.2132263 111.3928222656\n+272.3408508 27.5777511597\n+273.1651001 46.4653587341\n+276.2359009 66.1921005249\n+277.3269958 36.7716407776\n+279.2734375 151.997756958\n+280.2745056 30.4819164276\n+281.2428894 20.6155757904\n+286.1730042 26.2698879242\n+290.194519 1193.4537353516\n+291.2459717 152.4249267578\n+294.2355957 413.9957275391\n+295.1256409 17.1910572052\n+299.1573792 54.0453262329\n+305.8824768 33.266960144\n+308.1987305 4068.3127441406\n+309.2765503 735.5776367188\n+315.3105774 44.0675201416\n+316.2329102 87.3488922119\n+319.4229736 68.6050643921\n+324.0772705 20.8427391052\n+326.1818848 118.679145813\n+328.2772522 72.1243438721\n+330.1789551 24.7702865601\n+332.6609497 31.4776382446\n+336.117981 115.9179992676\n+337.3536072 167.551864624\n+338.2251587 16.7139282227\n+339.2226563 23.1128787994\n+345.9707947 65.1955108643\n+347.5861206 54.7535209656\n+361.4074097 27.8001232147\n+362.967041 113.9151000977\n+364.2114868 1090.4406738281\n+365.3210449 373.6746826172\n+366.1662598 33.3494911194\n+368.3313599 158.1134490967\n+371.2240601 33.2658576965\n+376.3760376 51.6286468506\n+377.3157349 24.8427410126\n+378.6485596 85.5033416748\n+379.335907 483.3477783203\n+380.5695496 92.3005218506\n+381.4432373 72.2191772461\n+382.2927246 203.6508483887\n+383.3612061 73.57371521\n+384.3339233 14.9419174194\n+389.2349854 17.1471920013\n+390.1678467 33.9905509949\n+391.1951294 23.2546920776\n+393.521637 106.212928772\n+396.4468384 965.7248535156\n+397.2388916 192.6408691406\n+399.2964478 958.1125488281\n+400.3114929 104.8199768066\n+404.0322571 125.9002761841\n+405.5090332 30.9564743042\n+407.2481079 1247.845703125\n+408.3595581 176.9943237305\n+410.0739136 224.5745849609\n+410.7194824 28.7986297607\n+411.328949 789.2263183594\n+412.3978882 234.8574066162\n+413.2665405 46.364944458\n+414.1890564 23.2046947479\n+415.0205994 24.1319637299\n+418.2841187 20.6340103149\n+421.2825317 2117.5646972656\n+422.2232056 488.3966064453\n+425.3339844 48.7375640869\n+435.4447021 25.0716381073\n+437.3118896 20.6613788605\n+438.2470093 422.4036865234\n+439.3153076 2707.2868652344\n+440.3630981 323.9175109863\n+441.3439331 99.6287307739\n+443.0869446 47.2032775879\n+444.3865662 33.6075172424\n+445.2776794 48.506603241\n+448.1124878 23.9672908783\n+450.5443726 148.2024230957\n+451.4112244 36.645565033\n+453.4552612 37.2119216919\n+456.281311 3144.0432128906\n+457.3900146 385.7980957031\n+460.7006226 35.4281997681\n+462.2860107 227.8993530273\n+463.5103149 67.239074707\n+466.0435486 87.3888244629\n+466.7320251 42.8654518127\n+467.3718567 89.4705352783\n+468.9281311 14.3990287781\n+475.1655273 42.1833381653\n+478.3552551 1133.1893310547\n+479.3807068 115.9915161133\n+481.4483948 194.3702087402\n+483.9247131 110.990737915\n+488.4521179 15.0178632736\n+489.1303711 36.0995063782\n+490.2423096 25.124797821\n+492.276825 159.9729614258\n+493.4888611 56.5773239136\n+497.8511047 626.3063354492\n+498.5252991 210.4936523438\n+503.8175964 57.4926986694\n+506.3258667 113.8145599365\n+509.3219299 770.7971801758\n+510.339447 485.1967163086\n+511.4330444 38.0024986267\n+518.7352295 14.7521877289\n+520.0784912 104.4239730835\n+520.8079834 30.3015861511\n+521.4361572 16.4689979553\n+522.7137451 80.7207641602\n+523.4484863 141.6291809082\n+524.6112061 168.6166381836\n+530.3173828 24.2731971741\n+533.5015869 744.3417358398\n+534.4095459 101.6238479614\n+535.2956543 62.6140975952\n+537.2531128 267.9081420898\n+538.3117676 3623.501953125\n+539.5024414 780.409362793\n+540.3429565 71.2631378174\n+546.5721436 132.1098480225\n+547.4824219 20.017791748\n+548.4649658 53.8895492554\n+549.5467529 76.9917449951\n+550.1889648 25.6122589111\n+551.4522705 315.8386535645\n+552.4348755 84.3312683105'..b'38.5579834 126.3169403076\n+839.5831299 43.6097793579\n+840.6853027 133.9269104004\n+842.0955811 43.134223938\n+843.2624512 33.6846427917\n+844.6882324 23.9548950195\n+845.7463379 60.8869514465\n+846.598999 305.3226623535\n+847.4162598 1362.6226806641\n+848.5655518 138.0818481445\n+849.7336426 29.8938598633\n+850.8813477 44.7183456421\n+851.755127 28.3734912872\n+852.5739746 99.8460845947\n+853.5806885 228.8729858398\n+854.5345459 667.1352539063\n+855.8116455 42.7520294189\n+857.2370605 7.1969642639\n+858.2429199 8.9743452072\n+859.2229004 27.7347221375\n+860.5791016 136.5741271973\n+861.4735107 115.2814254761\n+862.1428223 162.1693725586\n+864.4091797 5708.7338867188\n+865.4748535 7228.162109375\n+866.5731201 180.3934326172\n+867.8792725 11.7753839493\n+868.5533447 21.6603469849\n+869.5234375 21.2266597748\n+870.2940674 2.1829288006\n+871.6682129 123.5094146729\n+872.743042 93.5764389038\n+873.7503662 25.9001312256\n+874.5871582 5.8886871338\n+875.1904297 4.9006309509\n+881.7098389 3.8518872261\n+899.6605225 1.4087599516\n+904.5112305 3.7852373123\n+908.9217529 3.0830175877\n+911.2589111 5.3434038162\n+914.9371338 1.7785055637\n+920.6402588 2.1169433594\n+925.75 1.655885458\n+926.3721924 2.5116434097\n+936.4562988 7.4088220596\n+937.40271 1.5776231289\n+948.5820313 2.265226841\n+951.3883057 5.0375561714\n+952.6507568 3.9761536121\n+954.541626 3.7202031612\n+958.5795898 2.2107951641\n+965.0773926 2.9151597023\n+966.6049805 3.6832709312\n+968.6358643 2.8032181263\n+972.3841553 3.5880742073\n+980.3774414 1.6568661928\n+984.6560059 4.0637488365\n+986.4906006 4.1291894913\n+990.0438232 2.6260068417\n+993.7286377 1.9007667303\n+1001.260498 1.4803642035\n+1006.876831 2.8764429092\n+1008.522095 53.8127288818\n+1009.628906 12.3799905777\n+1014.414063 2.7556452751\n+1015.556763 4.6308970451\n+1016.481201 2.1658575535\n+1017.583618 2.205524683\n+1019.872803 2.2133405209\n+1022.634033 3.8962512016\n+1023.393188 2.928747654\n+1033.7677 6.2838768959\n+1040.81958 2.7914690971\n+1047.6875 2.0638942719\n+1048.355347 1.4089440107\n+1050.205933 11.5794849396\n+1050.848877 5.9912528992\n+1051.664917 2.0029451847\n+1053.778809 4.1762371063\n+1058.251709 3.796210289\n+1059.343506 1.6364923716\n+1061.220093 4.8353476524\n+1062.420166 2.2658448219\n+1063.362793 1.9217025042\n+1065.573975 3.2692155838\n+1075.364014 6.5963869095\n+1081.682617 2.3127803802\n+1082.762207 7.2656173706\n+1084.480103 1.4251745939\n+1090.583252 2.3345792294\n+1094.891235 6.471701622\n+1099.777832 2.0249342918\n+1104.693237 4.341299057\n+1109.785767 1.3234817982\n+1110.7771 1.428404212\n+1119.043701 1.9474369287\n+1123.860352 3.5913796425\n+1124.852173 10.4456739426\n+1130.459351 3.4271934032\n+1135.726929 1.5419324636\n+1136.509399 3.007281065\n+1141.776611 3.5984370708\n+1142.512329 3.0221631527\n+1143.572266 1.5546730757\n+1156.492554 1.3021858931\n+1163.406494 1.5143729448\n+1166.769043 1.2579483986\n+1170.411987 2.9120812416\n+1180.438232 7.9711551666\n+1183.333008 10.2348976135\n+1184.567505 5.4730286598\n+1186.245605 2.8282208443\n+1186.957642 1.2442734241\n+1189.147583 2.5938777924\n+1198.795288 1.9462186098\n+1204.636475 1.699367404\n+1207.73291 2.4050841331\n+1209.933716 4.5456461906\n+1211.166138 1.5754752159\n+1213.748413 2.3557806015\n+1214.499146 1.667357564\n+1226.134033 3.3348770142\n+1232.322266 2.368396759\n+1239.252197 1.889105916\n+1260.821777 1.2551330328\n+1262.669312 1.4085662365\n+1269.434937 1.657381773\n+1278.662354 7.5645289421\n+1287.865112 1.8795638084\n+1292.684692 4.626449585\n+1293.764526 3.0295891762\n+1303.470703 2.0078313351\n+1304.783691 4.3526239395\n+1305.963501 3.1246209145\n+1306.924683 2.0755226612\n+1307.847412 3.8471758366\n+1308.730347 1.9038361311\n+1309.668701 6.8470363617\n+1310.563599 1.4334141016\n+1335.653809 2.7239573002\n+1349.935669 2.8618879318\n+1361.784546 1.2564569712\n+1364.838013 2.7277929783\n+1365.635498 1.7941657305\n+1369.533325 2.7822601795\n+1429.61853 2.346054554\n+1446.664429 2.0156695843\n+1483.107544 5.2070007324\n+1547.776733 1.2610274553\n+1723.519287 1.640920639\n+1724.323975 1.2519712448\n+1724.991333 5.1561379433\n+1743.361206 3.1923613548\n+END IONS\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-polarity-filter.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-polarity-filter.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46123</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">56639</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">66008</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">76176</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">83265</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">95043</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">104067</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">115539</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">124823</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">135095</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">144579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">152361</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">163393</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">172608</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">183898</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">193368</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">202904</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">213762</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">221677</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">230341</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">239558</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">251042</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">261191</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">270761</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">281511</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">289824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">300186</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">311626</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">320997</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">330661</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">339529</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">347100</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">356125</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">365298</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">377583</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">386955</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">397745</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">407705</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">421236</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">432579</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">441964</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">453824</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">463603</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">473008</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">482238</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>484188</indexListOffset>\n+  <fileChecksum>e18a3d758326d6d1adb2a8f00fa69cfb1dc5b83d</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-strip-it.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-strip-it.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2487 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'eE5R5Ex3zIQxZYRLJxoom8tATs/dTO74TOrIjffMhIRzAEj71gTtcHzCk1j33ETDE0TnSUhAIwVEibL2zKIxTmW0TNssTePES8Du/I+zjY2pO83EJkz+aE3gmI75TErlVeytva8MZ0eNxZmNktROAmBM3Ax</binary>\n+            </binaryDataArray>\n+          </binaryDataArrayList>\n+        </chromatogram>\n+      </chromatogramList>\n+    </run>\n+  </mzML>\n+  <indexList count="2">\n+    <index name="spectrum">\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=1">5578</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=3">14788</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">23359</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">35217</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">45733</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">55102</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">65270</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">72359</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">81383</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">92854</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">102137</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">112409</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">121893</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">129675</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">138890</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">150180</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">159650</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">169186</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">180044</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">187959</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">197176</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">208660</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">218809</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">228379</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">239129</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">247442</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">258882</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">268253</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">277917</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">286785</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">294356</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">303529</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">315814</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">325186</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">335976</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">345936</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">359467</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">368852</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">380712</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">390491</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">399896</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">409126</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>411076</indexListOffset>\n+  <fileChecksum>f46f8578b4b1f75a5f2b12d15efeb29d29beb88a</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-threshold.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-threshold.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2774 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'umber=1 scan=3">14341</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">20365</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">26387</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">32376</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">38362</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">44383</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">48746</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">53105</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">59134</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">65159</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">71140</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">77129</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">83122</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">87498</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">91883</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">97915</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">103938</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">109917</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">115914</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">121913</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">126286</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">130624</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">136654</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">142683</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">148661</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">154652</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">160667</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">165038</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">169438</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">175463</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">181435</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">187420</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">193366</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">197743</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">202118</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">208148</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">214181</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">220166</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">226169</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">232146</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">236510</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">240906</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">246932</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">252948</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">258916</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">264894</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">270957</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>272907</indexListOffset>\n+  <fileChecksum>39712143d9caed5b0d1d0a476d57644357c23ec8</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-turbocharger.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-turbocharger.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2811 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="3">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+        <sourceFile id="small.mzML" name="small.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="4efa13a2795731b5f2a1ff1c463daf0d24b9a9d9"/>\n+        </sourceFile>\n+        <sourceFile id="small-peakpicking-cwt-allMS.mzML" name="small-peakpicking-cwt-allMS.mzML" location="file:///">\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="8af1e376b6ed33679f7fcf965a5e7fd6b1bf77b7"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="3">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+      <software id="pwiz_3.0.8990" version="3.0.8990">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <compon'..b'scan=3">25694</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=4">34311</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">46215</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">56777</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">66192</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">76768</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">83857</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">95635</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">104705</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">116223</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">125553</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">135871</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">145401</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">153183</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">164215</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">173476</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">184812</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">194329</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">203911</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">214815</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">222730</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">231394</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">240657</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">252187</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">262382</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">271998</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">282794</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">291107</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">301469</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">312955</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">322373</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">332083</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">340996</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">348567</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">357592</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">366810</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">379141</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">388559</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">399395</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">409402</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">422933</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">434276</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">443706</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">455612</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">465437</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">474889</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">484164</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>486114</indexListOffset>\n+  <fileChecksum>e7ec398af412704484453e19bd2bc7578529b5c0</fileChecksum>\n+</indexedmzML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-zlib-32.mzXML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small-zlib-32.mzXML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,1067 @@\n+<?xml version="1.0" encoding="ISO-8859-1"?>\n+<mzXML xmlns="http://sashimi.sourceforge.net/schema_revision/mzXML_3.2"\n+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\n+       xsi:schemaLocation="http://sashimi.sourceforge.net/schema_revision/mzXML_3.2 http://sashimi.sourceforge.net/schema_revision/mzXML_3.2/mzXML_idx_3.2.xsd">\n+  <msRun scanCount="48" startTime="PT0.2961S" endTime="PT29.2342S">\n+    <parentFile fileName="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data/small.RAW"\n+                fileType="RAWData"\n+                fileSha1="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+    <msInstrument msInstrumentID="1">\n+      <msManufacturer category="msManufacturer" value="Thermo Scientific"/>\n+      <msModel category="msModel" value="LTQ FT"/>\n+      <msIonisation category="msIonisation" value="electrospray ionization"/>\n+      <msMassAnalyzer category="msMassAnalyzer" value="fourier transform ion cyclotron resonance mass spectrometer"/>\n+      <msDetector category="msDetector" value="inductive detector"/>\n+      <software type="acquisition" name="Xcalibur" version="1.1 Beta 7"/>\n+    </msInstrument>\n+    <msInstrument msInstrumentID="2">\n+      <msManufacturer category="msManufacturer" value="Thermo Scientific"/>\n+      <msModel category="msModel" value="LTQ FT"/>\n+      <msIonisation category="msIonisation" value="electrospray ionization"/>\n+      <msMassAnalyzer category="msMassAnalyzer" value="radial ejection linear ion trap"/>\n+      <msDetector category="msDetector" value="electron multiplier"/>\n+      <software type="acquisition" name="Xcalibur" version="1.1 Beta 7"/>\n+    </msInstrument>\n+    <dataProcessing>\n+      <software type="conversion" name="ProteoWizard software" version="3.0.8981"/>\n+      <processingOperation name="Conversion to mzML"/>\n+    </dataProcessing>\n+    <dataProcessing centroided="1">\n+      <software type="conversion" name="ProteoWizard software" version="3.0.8990"/>\n+      <processingOperation name="Conversion to mzML"/>\n+      <software type="processing" name="ProteoWizard software" version="3.0.8990"/>\n+    </dataProcessing>\n+    <scan num="1"\n+          scanType="Full"\n+          centroided="1"\n+          msLevel="1"\n+          peaksCount="723"\n+          polarity="+"\n+          retentionTime="PT0.2961S"\n+          lowMz="200.00018816645"\n+          highMz="2000.009946620377"\n+          basePeakMz="810.415283203125"\n+          basePeakIntensity="1.471973875e06"\n+          totIonCurrent="1.5245068e07"\n+          msInstrumentID="1">\n+      <peaks compressionType="zlib"\n+             compressedLen="5247"\n+             precision="32"\n+             byteOrder="network"\n+             contentType="m/z-int">eJwNlGc41n8bxv8J2aQiQoW0qFRGSet3Xt+blOxN4ynak6yWbGmgkBWiUCG37K0ySsNeaZcGkabW09vrOK7zxTk+3NpHgjQov4WzMk2nvUn6nE3BZyLdQc5WJp83begHZ7v9IRmZlHG2Qc/x/ehGzv71WPJM+MU5sjLaUt/HbXbeTrmiy7jdK6sxvCia2/PxFZUXZ3GHd2uTbo0Bd/jPXRodqOeOTT6ATvsKLkB6PPIMe7lA6220c8NZLrBpB5r+MC7wiSDFSMzggnY48Iyt3nHBa27iisVZLjhgLgWYZ3NhAzfJyk6dO+NkxyTkE7goV2WSdN7MnZtgTnu027kLaTHUqV7BXWhZjWc6Q1yqbCZb+zOVS2tXo/nL5bm0gUd0/CCfS/9fD7UJKHPpB75QXvJjLm90Fx0oOc7xZ4cxkQ0hHF+feGuu5HP8tY0U9kqc43tuIm9hd46ff4tKS4jL1x6i4Dd13M35jnQ4I5IrXNBHgdeOcJXTPpORRwVX63uDeu31uNrTIZSxSoC7pX+Cdq6/xd1RSMMDzdVcY0wDmuuWc40VF1FXtJxrXupKU2e/4Vq23ya9nglc21M/2uGXxnUIPqM+aWmuY9IS+qraz3VlHEG+zT2u9+lMOjS3kXse3oBh1su9VClhssdWci9fatPAp4XcK/UoUjFdyb12aKL1iyK51/FCdOzJRO6NkTvdSNrPvRM+iL+DQdxgawSFuz/mBl9p077Xz7mP4/6jb0MC3MfZZbR0y3Xua9pHqux25EbTx9K7PFVu9NUMMk8M536rjWNqf15zf5VesKCdAdzfxIN08S3Df80LyVTQDgIeakyyPxkCpz4TL6IRAsM5vLEKhzF2/COmt2ctxmo30aPl8RCymE3Oh9UhFLGQmSwchlDzPbJUjoWw+kYKnH0JwkZK5Ph+MYTXx5FRdQaE7W2YksEWCO9YzpvRtBzC+xcw0cIjEPZNoLz7wxAOAgXa3YfwqWt0qtQbwrkddHyaJYS/apCF5S6Mi9LAi9JIjMt5QakSbRg3Isiurd4FkQnTmaabDMTMqln69B0Qs5em5j1jIea6jB3flAUx34tM1LgQYi3NFHvzE8TPifK0J1lCPNOUp/HZC+IVnSwmaRDirXOY6N5kSHwRIbdPVZCMCmCyl5ZB6nwUOe6JhVT5QSo0vw+p5o9U8c4PUv0HyLe9BNI1G8g/cRAyMxPpoNcOyBQE8f7LFoZMexXjT8qDzNc3VDGnD+PXn6O29bkY32bBdJ/WQHbSCUr+7gvZ8y+YZdt0yBYIM'..b'2o3hpBLHUv85kdSPykaMj9bk+8ryNcUFUkvqCKbdUeT3xfOETsSCBUjIXAX3KE6z/BvEc7CGvFmWjaYiJlghf8XaItrwCCa4hSJODJk8dkoaMBl7rCyGJDKHQ59pNFoTjblT9IFl3ekO+ynpYq3IbsPg9aukYUOAcvWprSzU7P3EtLO/cyiXPHyFLxF5PUGyVLryheKryYLDOesiX7UsjyWQDLb/lCVuoNzMyxgKz2pLAIvVlkdbeRn2Z8j5ZNNGdeYU9omakeU0wcpGVrU9n5d9a07GQCmKa9omVtXfx4Z2WyVhTgVbbXkbWNBFsdLUPWYUbM3F2QrGvEWGpVEFn/6GH56hdoucVWJt++l5bvKId1YqW0vHgY/McdIxu+hGVHa5BNkhSr7T1KNu3WfP5dT7JVDeI/3ptBtn6pfEdZOdlWCvE+q1eR7atyNN8XQiv0lXjBtiha4X2TLQnooxXpElBVt4tW3EqCF14iZOdUx76G2pJdVgEv+XED2XVrsKVv+milyG2mvyyHVtqK8Qqr02jl8VlsmkETrfxRwCfGapG9eiOebblN9mtX4vnCMrLPvcj/yllK9q8deIPtfuSg34UTP1qTQ5QSP+tIIDm03uWFLs+kVbNE2JXcLFq1rYnfGbuEVhWsxpRiW1rVmUclqz6So4YRTpUYJseAYfZZK4scazbxRi+SyHHQkfX9ekdOGpf4/503IicfPfR+EUpOOfNIq7mInL5+4fXHS9Bqu1nQbxtNq4/HsulJ72l1C7HnPRfJWVMMJyeMkbPnCr7/hDQ5H9FANX13cpGbY3HB5wW5eHpb9PbakEteOZp415DLj6Vsse8ouar7sTIrb3L1OsCKW43JNeEhCFfLk+tAE/9d8CG5Gcbx9drq5LZdiN03Dia3/ES4tF2F3O7OgbQHP8jdPwCCDjnQuoGlXJUDR+tVaiCQOdKGhb/BYqUubWhNgJL/9Mi7fox7WSBOG3XGYFKoAPluF+AeDYuSb/JDUGloIj9FE/goKU5+rje5W5/jyF8TQGx0L/k/7YRs42IK0C2AsH9sKSCnBAKk79O2fBmYtq+UdtAwLIwfox0FNbCl7iIF6lwAY9+PtFMmCXxyx9NuGR3uscRcCtL9BeFTF1FQ5kaIVHOgPeEtoCO2n4IDcrivNqto78qz3OXQkxRSowRm0nkUqurHO8NiCt0EbKnEDtqXegDmuIfRvpc5kDjHjsKU7sLU9M0U5uMG07TtKex7F0wrXEv7ixLhH3cD2t+hB4u2p9JBs3i4JXmIwuUWglFhAIWPCICg1FOKEF7LVblYUsTSZLbAIoEi1ujBlRoXithtCQJzGEXUfIBDuZco0koUAr8pUKTfb+5B8CmKLBSG1Hp9irwXCDMmpFLk+zTu25grHTLyBPuFjylqSwE8kkylw6ZPQUIwhQ67eMPb/YN0+LgHd3GrMkU7lIDk5isU3XUI7ssY0JHgVzAuJYpipAwh5v0HiqnV5Ip9OynmaTd3se0rHe3dyI1apFNsSDT4dOhR7BkLpq0aQsdWVMIaZ3U69h25G57CFCdmC7BnOcXVdMJGmzt/v5wPsC3KFPdlJXfzz2E6cfw6V1A+ieL9x3PXnoxS/NM0LltwFyXYGsLCtTF0Mk4I/sysopMDRUy9UYMSxXWhQn0aJVp2gem4BEr0zOcyyY0S82pBa7wMnerYyY0qnqekRE+uI/IFJX3fBbIf+il5SS/E7/5MyT723K3iWZT871eQuqFAyfdHubYto3SarMEpIItSp64E6ZOtlPpWnBtqWUDpqTZcVpExpbdt4aqW91NG2XvusaYUZbYZwRexTMr6WcENnoql7FPvIFG4h7Jr9gB7dZtyPouBwAE7ypWVgKNWFyjXvA0sR29TrkcyCLZ5UG6IEgSZqVJu8lru67k3lFu9EZ7JfaDch1O4f/cqUsHwBzBwsqeiy0MwX3cWlSyQ57IenaKS1AdgkKhLJVWrudeFC6h07gwwEjtGFyrvgJRmI1W1IYwTqKfaDTugIPMqXQt+xmVvdqX27RncwynnqD3Gk8uCFGrPrIW8P5LU8f442NgV/B+ETGWC</peaks>\n+    </scan>\n+  </msRun>\n+  <index name="scan">\n+    <offset id="1">2080</offset>\n+    <offset id="2">9665</offset>\n+    <offset id="3">19144</offset>\n+    <offset id="4">24664</offset>\n+    <offset id="5">35242</offset>\n+    <offset id="6">44241</offset>\n+    <offset id="7">51421</offset>\n+    <offset id="8">59677</offset>\n+    <offset id="9">64681</offset>\n+    <offset id="10">75596</offset>\n+    <offset id="11">81775</offset>\n+    <offset id="12">91690</offset>\n+    <offset id="13">98725</offset>\n+    <offset id="14">107278</offset>\n+    <offset id="15">114645</offset>\n+    <offset id="16">120539</offset>\n+    <offset id="17">130155</offset>\n+    <offset id="18">136600</offset>\n+    <offset id="19">146297</offset>\n+    <offset id="20">153675</offset>\n+    <offset id="21">161095</offset>\n+    <offset id="22">170617</offset>\n+    <offset id="23">176729</offset>\n+    <offset id="24">183490</offset>\n+    <offset id="25">189935</offset>\n+    <offset id="26">199835</offset>\n+    <offset id="27">208382</offset>\n+    <offset id="28">215936</offset>\n+    <offset id="29">225210</offset>\n+    <offset id="30">231870</offset>\n+    <offset id="31">240581</offset>\n+    <offset id="32">250493</offset>\n+    <offset id="33">257707</offset>\n+    <offset id="34">265415</offset>\n+    <offset id="35">271998</offset>\n+    <offset id="36">277622</offset>\n+    <offset id="37">284712</offset>\n+    <offset id="38">291083</offset>\n+    <offset id="39">302220</offset>\n+    <offset id="40">309440</offset>\n+    <offset id="41">318799</offset>\n+    <offset id="42">327000</offset>\n+    <offset id="43">340330</offset>\n+    <offset id="44">350330</offset>\n+    <offset id="45">357082</offset>\n+    <offset id="46">367693</offset>\n+    <offset id="47">375466</offset>\n+    <offset id="48">382757</offset>\n+  </index>\n+  <indexOffset>389817</indexOffset>\n+  <sha1>352d6c47e7a76389270f5e063a125ae498ad9f9c</sha1>\n+</mzXML>\n'
b
diff -r 000000000000 -r f8cf3be564bb test-data/small-zlib-64.mz5
b
Binary file test-data/small-zlib-64.mz5 has changed
b
diff -r 000000000000 -r f8cf3be564bb test-data/small.RAW
b
Binary file test-data/small.RAW has changed
b
diff -r 000000000000 -r f8cf3be564bb test-data/small.mzML
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/small.mzML Fri Apr 08 16:09:02 2016 -0400
b
b'@@ -0,0 +1,2757 @@\n+<?xml version="1.0" encoding="utf-8"?>\n+<indexedmzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.2_idx.xsd">\n+  <mzML xmlns="http://psi.hupo.org/ms/mzml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://psi.hupo.org/ms/mzml http://psidev.info/files/ms/mzML/xsd/mzML1.1.0.xsd" id="small" version="1.1.0">\n+    <cvList count="2">\n+      <cv id="MS" fullName="Proteomics Standards Initiative Mass Spectrometry Ontology" version="3.79.0" URI="http://psidev.cvs.sourceforge.net/*checkout*/psidev/psi/psi-ms/mzML/controlledVocabulary/psi-ms.obo"/>\n+      <cv id="UO" fullName="Unit Ontology" version="12:10:2011" URI="http://obo.cvs.sourceforge.net/*checkout*/obo/obo/ontology/phenotype/unit.obo"/>\n+    </cvList>\n+    <fileDescription>\n+      <fileContent>\n+        <cvParam cvRef="MS" accession="MS:1000579" name="MS1 spectrum" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000580" name="MSn spectrum" value=""/>\n+      </fileContent>\n+      <sourceFileList count="1">\n+        <sourceFile id="RAW1" name="small.RAW" location="file:///C:\\pwiz-src\\trunk\\pwiz\\example_data">\n+          <cvParam cvRef="MS" accession="MS:1000768" name="Thermo nativeID format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000563" name="Thermo RAW format" value=""/>\n+          <cvParam cvRef="MS" accession="MS:1000569" name="SHA-1" value="b43e9286b40e8b5dbc0dfa2e428495769ca96a96"/>\n+        </sourceFile>\n+      </sourceFileList>\n+    </fileDescription>\n+    <referenceableParamGroupList count="1">\n+      <referenceableParamGroup id="CommonInstrumentParams">\n+        <cvParam cvRef="MS" accession="MS:1000448" name="LTQ FT" value=""/>\n+        <cvParam cvRef="MS" accession="MS:1000529" name="instrument serial number" value="SN06061F"/>\n+      </referenceableParamGroup>\n+    </referenceableParamGroupList>\n+    <softwareList count="2">\n+      <software id="Xcalibur" version="1.1 Beta 7">\n+        <cvParam cvRef="MS" accession="MS:1000532" name="Xcalibur" value=""/>\n+      </software>\n+      <software id="pwiz" version="3.0.8981">\n+        <cvParam cvRef="MS" accession="MS:1000615" name="ProteoWizard software" value=""/>\n+      </software>\n+    </softwareList>\n+    <instrumentConfigurationList count="2">\n+      <instrumentConfiguration id="IC1">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000079" name="fourier transform ion cyclotron resonance mass spectrometer" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000624" name="inductive detector" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </instrumentConfiguration>\n+      <instrumentConfiguration id="IC2">\n+        <referenceableParamGroupRef ref="CommonInstrumentParams"/>\n+        <componentList count="3">\n+          <source order="1">\n+            <cvParam cvRef="MS" accession="MS:1000073" name="electrospray ionization" value=""/>\n+            <cvParam cvRef="MS" accession="MS:1000057" name="electrospray inlet" value=""/>\n+          </source>\n+          <analyzer order="2">\n+            <cvParam cvRef="MS" accession="MS:1000083" name="radial ejection linear ion trap" value=""/>\n+          </analyzer>\n+          <detector order="3">\n+            <cvParam cvRef="MS" accession="MS:1000253" name="electron multiplier" value=""/>\n+          </detector>\n+        </componentList>\n+        <softwareRef ref="Xcalibur"/>\n+      </'..b'f="controllerType=0 controllerNumber=1 scan=4">410680</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=5">425363</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=6">438464</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=7">449894</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=8">462383</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=9">627666</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=10">815848</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=11">826353</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=12">840482</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=13">851743</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=14">864444</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=15">876041</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=16">1064465</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=17">1245485</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=18">1256257</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=19">1270124</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=20">1281715</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=21">1293376</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=22">1307015</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=23">1497624</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=24">1659981</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=25">1670735</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=26">1684796</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=27">1697470</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=28">1709201</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=29">1722596</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=30">1944787</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=31">2121562</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=32">2135647</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=33">2147075</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=34">2158976</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=35">2169802</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=36">2351595</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=37">2516517</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=38">2527211</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=39">2542485</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=40">2553894</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=41">2567377</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=42">2579754</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=43">2937502</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=44">3120057</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=45">3131111</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=46">3145852</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=47">3157836</offset>\n+      <offset idRef="controllerType=0 controllerNumber=1 scan=48">3169358</offset>\n+    </index>\n+    <index name="chromatogram">\n+      <offset idRef="TIC">3180760</offset>\n+    </index>\n+  </indexList>\n+  <indexListOffset>3182770</indexListOffset>\n+  <fileChecksum>3a12c8cc54626511af9d128aab16b0ecb3357b1b</fileChecksum>\n+</indexedmzML>\n'