mzapy.calibration

Module for performing calibration operations.

CCS for single field DTIMS, method based on:

  • Anal. Chem. 2017, 89, 9048-9055

CCS for TWIMS measurements, method based on:

  • Nat. Protoc. 2008, 3, 1139-1152 (dt and CCS correction)

  • Anal. Chem. 2016, 88, 7329-7336 (calibration power function)

  • Anal. Chem. 2020, 92, 14976-14982 (CCS calibration for SLIM)

Module Reference

Base Object

class mzapy.calibration._CalibrationBase

Modular base object for performing calibration

Works similar to BaseEstimator from sklearn, implements fit and transform methods. Subclasses must implement self.fit_function with signature: self.fit_function(X, *params) -> y and they must override the attribute self.init_params with initial parameter values for the fitting function.

Attributes:
init_paramstuple(?)

initial parameter values for fitting function, must be set by subclass

opt_paramstuple(?)

optimized parameter values for fitting function, set by self.fit method, initially set to None to indicate the calibration has not been fit yet

Methods

fit(X, y) -> y_fit

Takes input values (X) and known output values (y), then performs least-squares optimization with subclass defined self.fit_function. Returns the fitted values (y_fit) and sets self.opt_params with the optimized parameters

transform(X) -> y_transform

Takes input values (X) and uses subclass defined self.fit_function with optimized parameters (self.opt_params) to produce output values (y_transform). Requires self.fit method to run successfully first so that self.opt_params gets set

mzapy.calibration._CalibrationBase.fit(self, X, y)

Takes input values (X) and known output values (y), then performs least-squares optimization with subclass defined self.fit_function. Returns the fitted values (y_fit) and sets self.opt_params with the optimized parameters

Parameters:
Xnumpy.ndarray(float)

input values

ynumpy.ndarray(float)

known output values

Returns:
y_fitnumpy.ndarray(float)

fitted output values

mzapy.calibration._CalibrationBase.transform(self, X)

Takes input values (X) and uses subclass defined self.fit_function with optimized parameters (self.opt_params) to produce output values (y_transform). Requires self.fit method to run successfully first so that self.opt_params gets set

Parameters:
Xnumpy.ndarray(float) or float

input values

Returns:
y_transformnumpy.ndarray(float) or float

fitted y values

Mass Calibration

class mzapy.calibration.MassCalibration(mz_ref, mz_obs, fit_func, fit=True)

mass calibration

Attributes:
mz_refnumpy.ndarray(float)
mz_obsnumpy.ndarray(float)

arrays of reference and observed m/z values

fit_funcstr

function to use for fitting

Methods

calibrated_mass(mz)

returns calibrated masses for a set of uncalibrated masses

fit(X, y)

Takes input values (X) and known output values (y), then performs least-squares optimization with subclass defined self.fit_function.

fit_function(X, *params)

! must be overridden by subclass, calling this function raises an exception !

transform(X)

Takes input values (X) and uses subclass defined self.fit_function with optimized parameters (self.opt_params) to produce output values (y_transform).

mzapy.calibration.MassCalibration.__init__(self, mz_ref, mz_obs, fit_func, fit=True)

Initialize a new instance of MassCalibration

Performs fitting at initialization.

Parameters:
mz_refnumpy.ndarray(float)
mz_obsnumpy.ndarray(float)

arrays of reference and observed m/z values

fit_funcstr

function to use for fitting, valid options are: ‘linear’

fitbool, default=True

perform fitting at initialization

mzapy.calibration.MassCalibration.calibrated_mass(self, mz)

returns calibrated masses for a set of uncalibrated masses

Parameters:
mznumpy.ndarray(float) or float

uncalibrated m/z value(s)

Returns:
mz_calnumpy.ndarray(float) or float

calibrated m/z value(s)

mzapy.calibration.mass_calibration_from_params(fit_func, params)

Create a new MassCalibration instance directly from optimized parameters

Parameters:
fit_funcstr

fitting function to use

paramsTuple(?)

optimized calibration parameters

Returns:
calMassCalibration

optimized MassCalibration instance

DTIMS CCS Calibration (Single-Field)

class mzapy.calibration.CCSCalibrationDTsf(mz, arrival_time, ref_ccs, z, buffer_gas='N2', fit=True)

single-field DT CCS calibration

Attributes:
mznumpy.ndarray(float)

calibrant m/z values

arrival_timenumpy.ndarray(float)

calibrant arrival times

ref_ccsnumpy.ndarray(float)

calibrant reference CCS values

zfloat

charge state (converted to float)

buffer_gasstr

buffer gas for IM separation

Methods

calibrated_ccs(mz, arrival_time)

returns calibrated CCS values for a set of m/z values and arrival times (also works for single values)

fit(X, y)

Takes input values (X) and known output values (y), then performs least-squares optimization with subclass defined self.fit_function.

fit_function(X, t_fix, beta)

X should have shape (2, ?) and contain vectors for arrival time and m/z function: CCS = z (arrival_time + t_fix) / (beta * m(mz)) where t_fix and beta are the fit parameters and m(mz) is the mass term [sqrt(m_i / (m_i + m_b))] that accounts for ion and buffer gas masses

transform(X)

Takes input values (X) and uses subclass defined self.fit_function with optimized parameters (self.opt_params) to produce output values (y_transform).

mzapy.calibration.CCSCalibrationDTsf.__init__(self, mz, arrival_time, ref_ccs, z, buffer_gas='N2', fit=True)

Initialize a new instance of CCSCalibrationDTsf

Performs fitting at initialization.

Parameters:
mznumpy.ndarray(float)

calibrant m/z values

arrival_timenumpy.ndarray(float)

calibrant arrival times

ref_ccsnumpy.ndarray(float)

calibrant reference CCS values

zint

charge state

buffer_gasstr, default=’N2’

specify buffer gas for IM separation

fitbool, default=True

perform fitting at initialization

mzapy.calibration.CCSCalibrationDTsf.calibrated_ccs(self, mz, arrival_time)

returns calibrated CCS values for a set of m/z values and arrival times (also works for single values)

Parameters:
mznumpy.ndarray(float) or float

m/z value(s)

arrival_timenumpy.ndarray(float) or float

arrival time(s)

Returns:
calibrated_ccsnumpy.ndarray(float) or float

calibrated CCS value(s)

mzapy.calibration.dtsf_ccs_calibration_from_params(z, t_fix, beta)

Create a new CCSCalibrationDTsf instance directly from optimized parameters

Parameters:
zint

charge state

t_fixfloat
betafloat

single-field calibration parameters

Returns:
calCCSCalibrationDTsf

optimized CCSCalibrationDTsf instance

TWIMS CCS Calibration

class mzapy.calibration.CCSCalibrationTW(mz, arrival_time, ref_ccs, z, fit_func, correct_ccs=True, correct_dt=False, edc=None, buffer_gas='N2', fit=True)

TWIMS CCS calibration

Attributes:
mznumpy.ndarray(float)

calibrant m/z values

arrival_timenumpy.ndarray(float)

calibrant arrival times

ref_ccsnumpy.ndarray(float)

calibrant reference CCS values

zfloat

charge state (converted to float)

fit_funcstr

specify the type of function to use for fitting the calibration curve. Valid options are: ‘’

correct_ccsbool

perform CCS correction for charge state and reduced mass with buffer gas

correct_dtbool

perform arrival time correction for mass-dependent flight time outside of mobility region, this only really applies for cases where the mobility separation region is sufficiently small so that the time outside this region must be accounted for and is instrument-specific.

buffer_gasstr

buffer gas for IM separation

edcfloat

EDC delay coefficient for arrival time correction (if used)

Methods

calibrated_ccs(mz, arrival_time)

returns calibrated CCS values for a set of m/z values and arrival times (also works for single values)

fit(X, y)

Takes input values (X) and known output values (y), then performs least-squares optimization with subclass defined self.fit_function.

fit_function(X, *params)

! must be overridden by subclass, calling this function raises an exception !

transform(X)

Takes input values (X) and uses subclass defined self.fit_function with optimized parameters (self.opt_params) to produce output values (y_transform).

mzapy.calibration.CCSCalibrationTW.__init__(self, mz, arrival_time, ref_ccs, z, fit_func, correct_ccs=True, correct_dt=False, edc=None, buffer_gas='N2', fit=True)

Initialize a new instance of CCSCalibrationTW

Performs fitting at initialization.

Parameters:
mznumpy.ndarray(float)

calibrant m/z values

arrival_timenumpy.ndarray(float)

calibrant arrival times

ref_ccsnumpy.ndarray(float)

calibrant reference CCS values

zint

charge state

fit_funcstr

specify the type of function to use for fitting the calibration curve. Valid options are: ‘linear’, ‘quadratic’, ‘power1’, ‘power2’

correct_ccsbool, default=True

perform CCS correction for charge state and reduced mass with buffer gas

correct_dtbool, default=False

perform arrival time correction for mass-dependent flight time outside of mobility region, this only really applies for cases where the mobility separation region is sufficiently small so that the time outside this region must be accounted for and is instrument-specific. If this is set to True, then the edc kwarg is also expected to be set.

edcfloat, optional

if arrival times should be corrected, set this as the EDC delay coefficient

buffer_gasstr, default=’N2’

specify buffer gas for IM separation

fitbool, default=True

perform fitting at initialization

mzapy.calibration.CCSCalibrationTW.calibrated_ccs(self, mz, arrival_time)

returns calibrated CCS values for a set of m/z values and arrival times (also works for single values)

Parameters:
mznumpy.ndarray(float) or float

m/z value(s)

arrival_timenumpy.ndarray(float) or float

arrival time(s)

Returns:
calibrated_ccsnumpy.ndarray(float) or float

calibrated CCS value(s)

mzapy.calibration.tw_ccs_calibration_from_params(z, fit_func, params)

Create a new CCSCalibrationTW instance directly from optimized parameters

Parameters:
zint

charge state

fit_funcstr

fitting function to use

paramsTuple(?)

optimized parameters

Returns:
calCCSCalibrationTW

optimized CCSCalibrationTW instance