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)