imzML


What is imzML?

imzML is an open specification for storing mass spectrometry imaging data. See imzml.org for more details.

Is my imzML file valid?

Due to the flexibility of the specification, there are a large number of configurations possible for storing data. Most software only implment a subset of these. This has led to varying degrees of adherence to the specification when exporting imzML data, which can cause problems for software reading imzML data. You can use the validator below to check your imzML files to see which parts of the specification they adhere to.

Validator

You can use this validator to validate an imzML file on your computer, or view the validation results from publically available datasets on METASPACE. This validator is a proof of concept and remains a work in progress. If you experience any issues, please let us know.

View validation results from publically available datasets on METASPACE.

Name Name
Ion image thumbnail fpop dan 1min 2-total ion count Ion image thumbnail fpop dan 1min 2-total ion count
Showing 10 of 6000+
Select your .imzML file using the file browser below, and click 'Validate'. Note: This tool is written using WebAssembly, meaning that your data never leaves your computer.

Reading imzML

A number of parsers exist for reading imzML. The table below summarises which language(s) the parsers support and their speed at reading selected publically available datasets. If a parser is missing from the list, please consider letting us know.

Parser Language(s) Used in Speed parsing...
40.6 MB imzML 85.0 MB imzML 132.9 MB imzML
pyimzML
  • Python
1.33 s 3.28 s 4.41 s
jimzMLParser 0.53 s 1.32 s 1.78 s
goimzml
  • Go
1.89 s 4.16 s 6.03 s
imzml-rs
  • Rust
  • Python
0.16 s 0.32 s 0.51 s
MALDIquantForeign
  • R
18.66 s* Failed† Failed†
Cardinal
  • R
1.91 s‡
[0.71 s]
(0.25 s)
5.51 s‡
[0.92 s]
(0.57 s)
11.73 s‡
[1.05 s]
(0.66 s)
*These times include reading the data (.ibd file) into memory as the parser does not support processing large data.
†The parser generates and prints a warning for every spectrum, leading to system crash.
‡Time given is for default use. Time in square brackets is when mass.range and resolution are specified. Time in parentheses is when parse.only=TRUE is specified.