im2deep.utils

Utility functions for IM2Deep package.

This module provides utility functions for converting between different mobility measurements and configuration settings for multi-conformer models.

Functions:

im2ccs: Convert ion mobility to collisional cross section ccs2im: Convert collisional cross section to ion mobility

Constants:

multi_config: Configuration dictionary for multi-conformer model MULTI_BACKBONE_PATH: Path to the multi-conformer model backbone

im2deep.utils.im2ccs(reverse_im, mz, charge, mass_gas=28.013, temp=31.85, t_diff=273.15)[source]

Convert reduced ion mobility to collisional cross section.

This function converts reduced ion mobility (1/K0) values to collisional cross section (CCS) using the Mason-Schamp equation. The conversion is temperature and gas-dependent.

Parameters:
  • reverse_im (float or array-like) – Reduced ion mobility (1/K0) in V⋅s/cm².

  • mz (float or array-like) – Precursor m/z ratio.

  • charge (int or array-like) – Precursor charge state.

  • mass_gas (float, optional) – Mass of drift gas in atomic mass units. Default is 28.013 (N₂).

  • temp (float, optional) – Temperature in Celsius. Default is 31.85°C

  • t_diff (float, optional) – Temperature conversion factor (°C to K). Default is 273.15.

Returns:

Collisional cross section in Ų (square Angstroms).

Return type:

float or np.ndarray

Notes

The conversion uses the Mason-Schamp equation:

\[\Omega = \frac{C \cdot z}{\sqrt{\mu \cdot T} \cdot K_0}\]

where \(\Omega\) is the CCS, \(C\) is a summary constant (18509.8632163405), \(z\) is the charge, \(\mu\) is the reduced mass, \(T\) is the temperature in Kelvin, and \(K_0\) is the reduced ion mobility.

References

Adapted from theGreatHerrLebert/ionmob.

Examples

>>> im2ccs(0.7, 500.0, 2)
425.3
>>> # For arrays
>>> import numpy as np
>>> ims = np.array([0.7, 0.8, 0.9])
>>> mzs = np.array([500.0, 600.0, 700.0])
>>> charges = np.array([2, 2, 3])
>>> ccs_values = im2ccs(ims, mzs, charges)
im2deep.utils.ccs2im(ccs, mz, charge, mass_gas=28.013, temp=31.85, t_diff=273.15)[source]

Convert collisional cross section to reduced ion mobility.

This function converts collisional cross section (CCS) values to reduced ion mobility (1/K0) using the inverse of the Mason-Schamp equation.

Parameters:
  • ccs (float or array-like) – Collisional cross section in Ų (square Angstroms).

  • mz (float or array-like) – Precursor m/z ratio.

  • charge (int or array-like) – Precursor charge state.

  • mass_gas (float, optional) – Mass of drift gas in atomic mass units. Default is 28.013 (N₂).

  • temp (float, optional) – Temperature in Celsius. Default is 31.85°C (typical for TIMS).

  • t_diff (float, optional) – Temperature conversion factor (°C to K). Default is 273.15.

Returns:

Reduced ion mobility (1/K0) in V⋅s/cm².

Return type:

float or np.ndarray

Notes

The conversion uses the inverse Mason-Schamp equation:

\[\frac{1}{K_0} = \frac{\sqrt{\mu \cdot T} \cdot \Omega}{C \cdot z}\]

where \(\Omega\) is the CCS, \(C\) is a summary constant (18509.8632163405), \(z\) is the charge, \(\mu\) is the reduced mass, and \(T\) is the temperature in Kelvin.

References

Adapted from theGreatHerrLebert/ionmob.

Examples

>>> ccs2im(425.3, 500.0, 2)
0.7
>>> # For arrays
>>> import numpy as np
>>> ccs_values = np.array([425.3, 510.2, 680.5])
>>> mzs = np.array([500.0, 600.0, 700.0])
>>> charges = np.array([2, 2, 3])
>>> ims = ccs2im(ccs_values, mzs, charges)