BinderScriptNotebook

mzMl to mzlite Conversion

Disclaimer this tool converts mzML to mzLite if you want to convert the other way around please visit the MzLiteToMzML documentation. We recommend the use of msconvert to convert your raw data into .mzML. A user friendly way to execute msconvert is available through Galaxy Europe.

The success of modern proteomics was made possible by constant progression in the field of mass spectrometry. Over the course of the past years quite a few manufacturers of mass spectrometers have managed to establish themselfes in the field of biological research. Since aquisition and accession of mass spectra are performance critical processes, various performance optimized, but vendor specific and closed source formats have been developed to store raw MS data. This comes to the disadvantage for toolchain developers which want to provide tools for every scientist regardless of the format of their raw data.

In a effort to provide an open format for the storage of MS data the format mzML was developed. While this XML based format is straight forward to implement it falls behind in performance critical scenarios. To be competitive in performance and to comply to the FAIR principles we chose to use mzLite, an open and SQLite based implementation of mzML, within our toolchain.

The tool mzMLToMzLite allows to convert mzML files to mzLite files. Additionally, it allows the user to perform peak picking or filtering of mass spectra.

Parameters

The following table gives an overview of the parameter set:

Parameter

Default Value

Description

Compress

MzIO.Binary.BinaryDataCompressionType.NoCompression

Indicates if peak data should be compressed

StartRetentionTime

None

Minimum scan time for spectra to be copied

EndRetentionTime

None

Maximum scan time for spectra to be copied

MS1PeakPicking

PeakPicking.ProfilePeaks

Parameter to configure peak picking

MS2PeakPicking

PeakPicking.ProfilePeaks

Parameter to configure peak picking

Parameter Generation

Parameters are handed to the cli tool as a .json file. you can download the default file here, or use an F# script, which can be downloaded or run in Binder at the top of the page, to write your own parameter file:

#r "nuget: ProteomIQon, 0.0.5"

open ProteomIQon
open ProteomIQon.Domain

let defaultMzMLToMzLiteParams :Dto.MzMLtoMzLiteParams =   
    {
        Compress                    = MzIO.Binary.BinaryDataCompressionType.NoCompression
        StartRetentionTime          = None
        EndRetentionTime            = None
        MS1PeakPicking = PeakPicking.ProfilePeaks
        MS2PeakPicking = PeakPicking.ProfilePeaks 
    }


let serialized = 
    defaultMzMLToMzLiteParams
    |> Json.serialize

Executing the Tool

Disclaimer this tool converts mzML to mzLite if you want to convert the other way around please visit the MzLiteToMzML documentation. We recommend the use of msconvert to convert your raw data into .mzML. A user friendly way to execute msconvert is available through Galaxy Europe.

To convert a mzML file to mzLite call:

proteomiqon-mzmltomzlite -i "path/to/your/run.mzML" -o "path/to/your/outDirectory" -p "path/to/your/params.json"

It is also possible to call the tool on a list of .mzML files. If you have a mulitcore cpu it is possible to convert multiple runs in parallel using the -c flag:

proteomiqon-mzmltomzlite -i "path/to/your/run1.mzML" "path/to/your/run2.mzML" "path/to/your/run3.mzML" -o "path/to/your/outDirectory" -p "path/to/your/params.json" -c 3

A detailed description of the CLI arguments the tool expects can be obtained by calling the tool:

proteomiqon-mzmltomzlite --help
namespace ProteomIQon
module Domain

from ProteomIQon
val defaultMzMLToMzLiteParams : Dto.MzMLtoMzLiteParams
module Dto

from ProteomIQon
Multiple items
module MzMLtoMzLiteParams

from ProteomIQon.Dto

--------------------
type MzMLtoMzLiteParams = Dto.PreprocessingParams
namespace MzIO
namespace MzIO.Binary
type BinaryDataCompressionType =
  | NoCompression = 0
  | ZLib = 1
  | NumPress = 2
  | NumPressZLib = 3
  | NumPressPic = 4
  | NumPressLin = 5
MzIO.Binary.BinaryDataCompressionType.NoCompression: MzIO.Binary.BinaryDataCompressionType = 0
union case Option.None: Option<'T>
type PeakPicking =
  | ProfilePeaks
  | Centroid of CentroidizationMode
union case PeakPicking.ProfilePeaks: PeakPicking
val serialized : string
module Json

from ProteomIQon
val serialize : obj:'a -> string