MzMLToMzLiteIonMobility converts mzML files from ion mobility instruments such as the Bruker timsTOF into mzlite files. In these files every peak carries an ion mobility value next to its m/z and intensity, and the tool keeps that value in the mzlite. It is the ion mobility counterpart of MzMLToMzLite, which also explains how to get mzML from raw files and what mzlite is. The tool reads the same parameter record as MzMLToMzLite. The spectra are written with their m/z, intensity and ion mobility arrays as they are in the mzML, and Compress decides how those arrays are stored.
Flag |
Meaning |
Comes from |
|---|---|---|
|
one or more mzML files with ion mobility data per peak, or a directory that is searched for |
msconvert |
|
the output directory, created when missing |
|
|
the parameter file in JSON, by default TIMsMzMLtoMzLiteParams.json |
this page |
|
number of files converted at the same time, default 1 |
|
|
switch: rewrite every input file in place and remove |
The reader fails on mzML without ion mobility data. -f rewrites every input file in place and removes the string ", for mzML exports where that string breaks the XML reader.
The tool writes one <run>.mzlite per input into the output directory. Spectra with an MS level other than 1 or 2 stop the conversion with an error. Scan times are stored in minutes.
The mzlite is read by MsFraggerToPSM and PSMBasedQuantificationTIMs.
The output directory also receives MzMLToMzLite_log.txt and one <run>_log.txt per input.
Parameter |
Default |
Meaning |
|---|---|---|
Compress |
Compression.NoCompression |
Compression of the peak arrays in the mzlite. Compression.ZLib and Compression.NumPress are the other options, Compression.NumPressZLib combines both. |
StartRetentionTime |
None |
Same field as in MzMLToMzLite. Keep None, the spectra are copied as they are. |
EndRetentionTime |
None |
Same field as in MzMLToMzLite. Keep None. |
MS1PeakPicking |
PeakPicking.Centroid (CentroidizationMode.Wavelet ms1Wavelet) |
Same field as in MzMLToMzLite. The default file carries the wavelet record shown in the script below, and the MS1 peaks are copied as they are. |
MS2PeakPicking |
PeakPicking.Centroid (CentroidizationMode.Wavelet ms2Wavelet) |
Same field as in MzMLToMzLite, with padding settings in the default file. The MS2 peaks are copied as they are. |
The wavelet parameters are explained on the MzMLToMzLite page. The default file is TIMsMzMLtoMzLiteParams.json.
open ProteomIQon
open ProteomIQon.Domain
let ms1Wavelet : WaveletPeakPickingParams =
{
NumberOfScales = 3
YThreshold = YThreshold.Fixed 1.0
Centroid_MzTolerance = 0.1
SNRS_Percentile = 95.0
MinSNR = 1.0
RefineMZ = false
SumIntensities = false
PaddingParams = None
}
let ms2Padding : PaddingParams =
{
MaximumPaddingPoints = Some 7
Padding_MzTolerance = 0.05
WindowSize = 150
SpacingPerc = 95.0
}
let ms2Wavelet : WaveletPeakPickingParams =
{
NumberOfScales = 10
YThreshold = YThreshold.MinSpectrumIntensity
Centroid_MzTolerance = 0.1
SNRS_Percentile = 95.0
MinSNR = 1.0
RefineMZ = false
SumIntensities = false
PaddingParams = Some ms2Padding
}
let timsMzMLToMzLiteParams : Dto.MzMLtoMzLiteParams =
{
Compress = Compression.NoCompression
StartRetentionTime = None
EndRetentionTime = None
MS1PeakPicking = PeakPicking.Centroid (CentroidizationMode.Wavelet ms1Wavelet)
MS2PeakPicking = PeakPicking.Centroid (CentroidizationMode.Wavelet ms2Wavelet)
}
// Replace the temp folder with your project folder.
let outputPath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), "TIMsMzMLtoMzLiteParams.json")
Json.serializeAndWrite outputPath timsMzMLToMzLiteParams
Install the tool with dotnet tool install --global ProteomIQon.MzMLToMzLiteIonMobility, then convert one run:
|
Several runs, three of them converted at the same time:
|
A file that fails to parse because of a stray ":
|
All flags:
|