Introduction
ExfilMS is a cross-platform, command line interface (CLI) tool to extract mass spectrometry (MS) data from mzML formatted files, with filtering capabilities.
Features
-
MS data extraction (spectrum and chromatogram)
-
Precision value rounding
-
Spectra filtering (m/z and intensity)
- Targeted (target file, m/z tolerance and ppm tolerance)
- Range (minimum and maximum m/z)
-
Spectrum data filtering
- Type (profile / centroid)
- MS level (i.e., 1, 2, ..., n)
- Polarity (positive / negative)
- Exclude spectra (m/z and intensity)
Supported MS Platforms
Data extraction and spectrum filtration have been tested on data files acquired on the following MS platforms:
Instrument Vendor | MS Platform | Status / Description |
---|
Bruker | EVOQ TQ-MS | Untested (Conversion not supported by ProteoWizard) |
ImpactII QToF-MS | Working |
solariX MRMS | Working |
timsTOFPro TIMS-ToF-MS | Not Working (File size > 2GB) |
Waters | XEVOTQXS TQ-MS | Working |
XEVOG2XSQTOF DESI-MS | Working |
XEVOG2XSQTOF REIMS | Working |
SCIEX | QTRAP6500+ TQ-MS | Working (Untested on wiff2 scan files acquired using the new SCIEX OS acquisition software - Conversion not supported by ProteoWizard) |
Installation
ExfilMS has been tested on Windows, macOS and Linux.
CLI
[!IMPORTANT]
Prerequisite: Node.js®
$ npm i -g exfilms
Docker
[!IMPORTANT]
Prerequisite: Docker
# Clone repository
$ git clone https://github.com/vmalnathnambiar/exfilms.git
# Navigate into repository
$ cd exfilms
# Build Docker image
$ docker build -t exfilms .
Usage
CLI
# Using command line flags
$ exfilms -i "/path/to/input/directory/containing/mzML/data/files/" ...
# Running interactive mode
$ exfilms -x
Docker
# Using command line flags
$ docker run --rm -it -v "/path/to/input/directory/":/inputDirectory -v "/path/to/output/directory/":/outputDirectory -v "/path/to/log/directory/":/logDirectory exfilms -i /inputDirectory -o /outputDirectory -l /logDirectory ....
# Running interactive mode
$ docker run --rm -it -v "/path/to/input/directory/":/inputDirectory -v "/path/to/output/directory/":/outputDirectory -v "/path/to/log/directory/":/logDirectory exfilms -x
[!NOTE]
Running ExfilMS using Docker requires the use of volume mapping in the Docker command. For example,
-v "/path/on/the/local/machine/":/tmpPath
Once the volume mapping is done, you would use /tmpPath as the input data where required, instead of the actual path on the local machine. For the successful execution of ExfilMS, you are REQUIRED to provide the following:
- -v "/path/to/input/directory/":/inputDirectory
- -v "/path/to/output/directory/":/outputDirectory
- -v "/path/to/log/directory/":/logDirectory
For more guidance on how to use ExfilMS, please refer to our available guides below:
Limitations
[!WARNING]
-
Unable to extract MS data from Bruker EVOQ instruments and SCIEX wiff2 scan files (Unsupported file formats by ProteoWizard).
-
Unable to parse mzML data with a file size > 2GB.
-
Large MS data may cause Node environment to terminate abruptly due to memory limit exhaustion.
-
May have slow output write speed due to build architecture difference (i.e, Intel vs AMD vs ARM) when running ExfilMS with Docker.
-
Unable to perform chromatogram filtering as of now.
Citations
If you use ExfilMS in your work, please cite it using the following:
Nambiar, V., & Nambiar, S. (2024). ExfilMS (Version 1.2.8) [Computer software]. https://doi.org/10.5281/zenodo.10976761
License
Please refer to our license information here.