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:
- 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)