Skip to main content

Provide interfaces for M2aia.

Project description

Features

Data Input

  • Support for centroid and profile data stored in imzML format:
    • Range-based ion images
    • Individual spectra
    • imzML metadata
  • Gray-scale images (ie. ion images, mask images, normalization images) are accessible as SimpleITK's Image objects.
    • ImzML images and images exported using SimpleITK (e.g. in NRRD format) can be explored interactively in M²aia desktop application.

Data Structures & Functions:

  • Signal Processing for profile imzML files:
    • Baseline correction
    • Normalization
    • Smoothing
  • Batch generators (TensorFlow/PyTorch):
    • Spectral, spatial, and spatio-spectral access
    • Optional in-memory or on-disk batch/data buffering

Data Output

  • Write Continuous Centroid imzML files

Examples@ https://github.com/m2aia/pym2aia-examples.git

Installation

Requirements on Windows

Microsoft Visual C++ Redistributable latest supported downloads: https://learn.microsoft.com/de-de/cpp/windows/latest-supported-vc-redist?view=msvc-170

Requirements on Ubuntu/Linux

apt-get install -q -y --no-install-recommends \
    libglu1-mesa-dev \
    libgomp1 \
    libopenslide-dev \
    python3 \
    python3-pip \
    python3-venv

Package installation

Consider to install pyM²aia in an virtual environment.

Install pyM²aia on windows or linux using pip.

# cd projectDir/
python3 -m venv .venv
pip3 install --upgrade pip

source .venv/bin/activate
# 

pip install m2aia

Note: Different versions of the pypi package exists for windows and linux based systems:

  • Linux: m2aia-x.x.x-py3-none-manylinux_2_31_x86_64.whl
  • Windows: m2aia-x.x.x-py3-none-win-amd64.whl
  • Source: m2aia-x.x.x.tar.gz

The Source distribution contains *.so and *.dll library files for both, windows and linux. You can try to install pyM²aia by extracting the archive and using the following command within the project folder:

python setup.py install

Getting started

pyM2aia offers a interface to M2aia’s imzML reader and signal processing utilities. Complete processing examples can be found on pym2aia-examples

Example create ion images:

import m2aia as m2

I = m2.ImzMLReader("path/to/imzMl/file.imzML")
I.SetNormalization(m2.m2NormalizationTIC)
I.SetIntensityTransformation(m2.m2IntensityTransformationSquareRoot)
ys_2 = I.GetMeanSpectrum()
# get the ion image as array
center_mz = 1123.43
i_2 = I.GetArray(center_mz, 75)

Example write continuous centroid imzML:

import m2aia as m2
import numpy as np

# load a coninuous profile imzML
I = m2.ImzMLReader("path/to/imzMl/file.imzML")

# Find/load centroids ...
# centroids = [x for x in range(2000,3000,20)]

# csv with i.e. 3 columns with header line ('mz','min','max')
centroids = np.genfromtxt("path/to/csv/centroids.csv", delimiter=',', skip_header=1)[:,0]

I.SetTolerance(50)
I.WriteContinuousCentroidImzML("/tmp/continuous_centroid.imzML", centroids)

Developer Documentation

Known issues

The following Warnings can be ignored:

  • "WARNING: In AutoLoadModulesFromPath at /opt/mitk/Modules/CppMicroServices/core/src/util/usUtils.cpp:176 : Auto-loading of module /usr/local/lib/python3.10/dist-packages/m2aia/binaries/bin/MitkCore/libMitk<XY>IO.so failed."

  • "WARNING: In load_impl at /opt/mitk/Modules/CppMicroServices/core/src/util/usUtils.cpp:76 : libMitk<XY>.so: cannot open shared object file: No such file or directory"

Development

New python features for MSI processing

Python side processing utilities are currently limited. To change this, you can add new Python based features by adding new utilities. New tools should focus on the utilization of pyM²aia's data access and structures.

./utils/<toolName>.py

To promote your work you can just create a pull request or contact me personally.

Improve the C++-Python interface

To Further enhance the C++-Python interface it is required to make changes in m2PythonWrapper.cpp. By using MITK's super build approach, a development environment can be setup following these instructions. It is required to change the library search path for pyM2aia to the modified libraries. This can be realized by setting a system environment variable. Following the example shown in the above mentioned instructions, ie. it is required to set it in windows to

M2AIA_PATH=C:/M2aiaWorkDir/build/MITK-build/lib

For linux you can add the following lines to the end of your ~/.profile file:

M2AIA_PATH=/home/username/M2aiaWorkDir/build/MITK-build/lib

All pyM2aia libraries on the system will now use this custom library search path.

To promote your work you can just create a pull requests in both repositories or contact me personally.

Cite M²aia

M²aia is an interactive desktop application for visualization and processing of mass spectrometry (MS) imaging data. Please visit https://m2aia.github.io/m2aia for further information.

Cordes J; Enzlein T; Marsching C; Hinze M; Engelhardt S; Hopf C; Wolf I (July, 2021): M²aia - Interactive, fast and memory efficient analysis of 2D and 3D multi-modal mass spectrometry imaging data https://doi.org/10.1093/gigascience/giab049

DOI

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

m2aia-0.5.10.tar.gz (93.3 MB view details)

Uploaded Source

Built Distributions

m2aia-0.5.10-py3-none-win_amd64.whl (48.0 MB view details)

Uploaded Python 3 Windows x86-64

m2aia-0.5.10-py3-none-manylinux_2_31_x86_64.whl (45.9 MB view details)

Uploaded Python 3 manylinux: glibc 2.31+ x86-64

File details

Details for the file m2aia-0.5.10.tar.gz.

File metadata

  • Download URL: m2aia-0.5.10.tar.gz
  • Upload date:
  • Size: 93.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for m2aia-0.5.10.tar.gz
Algorithm Hash digest
SHA256 4c880751f2235e1ee77f8a5b233036ad23db62662a4cf30ec23a502dd447cad5
MD5 09714788e1df3c2cb08fd59031de98d4
BLAKE2b-256 e7321ff057c9d52dca00e6a2a61a4774ea208e8d9d21e6d1118dc95ec33b9789

See more details on using hashes here.

File details

Details for the file m2aia-0.5.10-py3-none-win_amd64.whl.

File metadata

  • Download URL: m2aia-0.5.10-py3-none-win_amd64.whl
  • Upload date:
  • Size: 48.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/4.0.2 CPython/3.11.6

File hashes

Hashes for m2aia-0.5.10-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 b12c4f89c61d9e67695f80ef817d9be52d89ecb42ef985612054b0088adbf069
MD5 8cfbab6a2d1addc6e7c85eadd4205517
BLAKE2b-256 56b019613a7dbf15340b59ef997d668c410fb44544dedd9c7097a73cb3071edb

See more details on using hashes here.

File details

Details for the file m2aia-0.5.10-py3-none-manylinux_2_31_x86_64.whl.

File metadata

File hashes

Hashes for m2aia-0.5.10-py3-none-manylinux_2_31_x86_64.whl
Algorithm Hash digest
SHA256 cbc627eb5b65ad860b71e758f0357d143ad186a30f51d13804f57de0ed113d42
MD5 377c2637d4390392e174a47432a517a9
BLAKE2b-256 1b866f8544fd10c35997bbf7550ccb2d4b33982482400a54d8398c7ad6e13d58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page