im2deep

IM2Deep: Deep learning framework for peptide collisional cross section prediction.

IM2Deep is a Python package that provides accurate CCS (Collisional Cross Section) prediction for peptides and modified peptides using deep learning models trained specifically for TIMS (Trapped Ion Mobility Spectrometry) data.

Key Features:
  • Single-conformer CCS prediction using ensemble of neural networks

  • Multi-conformer CCS prediction for peptides with multiple conformations

  • Linear calibration using reference datasets

  • Support for modified peptides

  • Ion mobility conversion utilities

  • Command-line interface for easy usage

Example:

Basic usage for CCS prediction:

>>> from im2deep import predict
>>> from psm_utils.psm_list import PSMList
>>> predictions = predict(psm_list)
im2deep.predict(psm_list, model=None, multi=False, predict_kwargs=None)[source]

Predict CCS values for a list of PSMs using a trained model.

Parameters:
  • psm_list (PSMList) – List of PSMs to predict CCS values for.

  • model (Module | PathLike | str | None) – Trained model or path to model file. If None, the default IM2Deep model is used.

  • predict_kwargs (dict | None) – Additional keyword arguments to pass to the prediction function.

Returns:

CCS predictions.

Return type:

np.ndarray

im2deep.predict_and_calibrate(psm_list, psm_list_cal, psm_list_reference=None, model=None, calibration=None, multi=False, predict_kwargs=None, **kwargs)[source]

Calibrate and predict CCS values for a list of PSMs using a reference PSM list.

Parameters:
  • psm_list (PSMList) – List of PSMs to predict CCS values for.

  • psm_list_reference (PSMList | None) – Reference list of PSMs for calibration.

  • model (Module | PathLike | str | None) – Trained model or path to model file. If None, the default IM2Deep model is used.

  • calibration (LinearCCSCalibration | None) – Calibration object to use for calibration. If None, LinearCCSCalibration is applied.

  • predict_kwargs (dict | None) – Additional keyword arguments to pass to the prediction function.

  • psm_list_cal (PSMList)

  • multi (bool)

Returns:

Calibrated CCS predictions.

Return type:

np.ndarray

im2deep.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)
im2deep.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)