5 releases

0.2.2 Nov 6, 2023
0.2.1 Oct 19, 2023
0.2.0 Oct 19, 2023
0.1.7 Oct 11, 2023
0.1.6 Oct 10, 2023

#3 in #ms

Download history 34/week @ 2023-10-05 26/week @ 2023-10-12 80/week @ 2023-10-19 39/week @ 2023-10-26 50/week @ 2023-11-02 27/week @ 2023-11-09 48/week @ 2023-11-16 40/week @ 2023-11-23 71/week @ 2023-11-30

196 downloads per month


1.5K SLoC

Crates.io docs.rs


A crate to read Bruker TimsTof data.


Add this crate to your Cargo.toml:

timsrust = "x.x.x"


TimsRust is intended to be used as a library and not as a stand-alone application. An example of how to use it is found in e.g. Sage.


Two primary data types are exposed through TimsRust:

  • Spectra: A traditional representation that expresses intensitites in function of mz values for a given precursor.
  • Frames: All recorded data from a single TIMS elution (i.e. at one specific retention_time).

File formats

Two file formats are supported:

  • TDF - Bruker .d folder containing:

    • analysis.tdf
    • analysis.tdf_bin
  • miniTDF - ProteoScape optimized Bruker file-format. Similar to TDF, miniTDF consists of multiple files: a binary '.bin' and an index '.parquet' file. The file-names are made up to the following convention: <producing-engine-name>.<domain-name>.<extension>. e.g. for MS2 spectrum information: <producing-engine-name>.ms2spectrum.<extension>. Therefore the following files are expected in the provided ms2 folder:

    • *.ms2spectrum.bin
    • *.ms2spectrum.parquet

Python bindings

The timsrust_pyo3 package is an example of how the performance of TimsRust can be utilized in Python


~768K SLoC