Electrochemistry - Mass Spectrometry (EC-MS)¶
The main class for EC-MS data is the ECMSMeasurement.
It comes with the EC-MS plotter which makes EC-MS plots like this one:
Other than that it doesn’t have much but inherits from both ECMeasurement and MSMeasurement.
An ECMSMeasurement can be created either by adding an ECMeasurement and an MSMeasurement
using the + operator, or by directly importing data using an EC-MS reader
such as “zilien”.
ECMSCyclicVoltammogram adds to ECMSMeasurement the tools for selecting and analyzing data
based on an electrochemical cyclic voltammatry program that are implemented in CyclicVoltammogram
(see The cv module).
is implemented in the deconvolution module, in a class inheriting from ECMSMeasurement.
ixdat has all the functionality and more for EC-MS data and analysis as the
legacy EC_MS package. This includes the tools
behind the EC-MS analysis and visualization in the puplications:
- Daniel B. Trimarco and Soren B. Scott, et al. Enabling real-time detection of electrochemical desorption phenomena with sub-monolayer sensitivity. Electrochimica Acta, 268, 520-530, 2018
- Claudie Roy, Bela Sebok, Soren B. Scott, et al. Impact of nanoparticle size and lattice oxygen on water oxidation on NiFeOxHy. Nature Catalysis, 1(11), 820-829, 2018
- Anna Winiwarter and Luca Silvioli, et al. Towards an Atomistic Understanding of Electrocatalytic Partial Hydrocarbon Oxidation: Propene on Palladium. Energy and Environmental Science, 12, 1055-1067, 2019
- Soren B. Scott and Albert Engstfeld, et al. Anodic molecular hydrogen formation on Ru and Cu electrodes. Catalysis Science and Technology, 10, 6870-6878, 2020
- Anna Winiwarter, et al. CO as a Probe Molecule to Study Surface Adsorbates during Electrochemical Oxidation of Propene. ChemElectroChem, 8, 250-256, 2021
ixdat is used for the following EC-MS articles:
Soren B. Scott, et al. Tracking oxygen atoms in electrochemical CO oxidation –Part I: Oxygen exchange via CO2 hydration. Electrochimica Acta, 374, 137842, 2021.
Repository: https://github.com/ScottSoren/pyCOox_public
Soren B. Scott, et al. Tracking oxygen atoms in electrochemical CO oxidation –Part II: Lattice oxygen reactivity in oxides of Pt and Ir. Electrochimica Acta, 374, 137844, 2021.
Repository: https://github.com/ScottSoren/pyCOox_public
Kevin Krempl, et al. Dynamic Interfacial Reaction Rates from Electrochemistry - Mass Spectrometry. Journal of Analytical Chemistry. 93, 7022-7028, 2021
Repository: https://github.com/kkrempl/Dynamic-Interfacial-Reaction-Rates
Junheng Huang, et al. Online Electrochemistry−Mass Spectrometry Evaluation of the Acidic Oxygen Evolution Reaction at Supported Catalysts. ACS Catal. 11, 12745-12753, 2021
Repository: https://github.com/ScottSoren/Huang2021
The ec_ms module¶
Source: https://github.com/ixdat/ixdat/tree/user_ready/src/ixdat/techniques/ec_ms.py
Module for representation and analysis of EC-MS measurements
-
class
ixdat.techniques.ec_ms.ECMSCalibration(name=None, date=None, setup=None, ms_cal_results=None, RE_vs_RHE=None, A_el=None, L=None)[source]¶ Class for calibrations useful for ECMSMeasurements
- FIXME: A class in a technique module shouldn’t inherit directly from Saveable. We
- need to generalize calibration somehow. Also, ECMSCalibration should inherit from or otherwise use a class MSCalibration
-
class
ixdat.techniques.ec_ms.ECMSCyclicVoltammogram(*args, **kwargs)[source]¶ Class for raw EC-MS functionality. Parents: CyclicVoltammogram, ECMSMeasurement
-
class
ixdat.techniques.ec_ms.ECMSMeasurement(**kwargs)[source]¶ Class for raw EC-MS functionality. Parents: ECMeasurement and MSMeasurement
-
ec_plotter¶ The default plotter for ECMSMeasurement is ECMSPlotter
-
ecms_calibration(mol, mass, n_el, tspan, tspan_bg=None)[source]¶ Calibrate for mol and mass based on one period of steady electrolysis
Parameters: - mol (str) – Name of the molecule to calibrate
- mass (str) – Name of the mass at which to calibrate
- n_el (str) – Number of electrons passed per molecule produced (remember the sign! e.g. +4 for O2 by OER and -2 for H2 by HER)
- tspan (tspan) – The timespan of steady electrolysis
- tspan_bg (tspan) – The time to use as a background
Return MSCalResult: The result of the calibration
-
ecms_calibration_curve(mol, mass, n_el, tspan_list=None, tspan_bg=None, ax='new', axes_measurement=None)[source]¶ Fit mol’s sensitivity at mass based on steady periods of EC production
Parameters: - mol (str) – Name of the molecule to calibrate
- mass (str) – Name of the mass at which to calibrate
- n_el (str) – Number of electrons passed per molecule produced (remember the sign! e.g. +4 for O2 by OER and -2 for H2 by HER)
- tspan_list (list of tspan) – THe timespans of steady electrolysis
- tspan_bg (tspan) – The time to use as a background
- ax (Axis) – The axis on which to plot the calibration curve result. Defaults to a new axis.
- axes_measurement (list of Axes) – The EC-MS plot axes to highlight the calibration on. Defaults to None.
- Return MSCalResult(, Axis(, Axis)): The result of the calibration
- (and requested axes)
-
exporter¶ The default plotter for ECMSMeasurement is ECMSExporter
-
ms_plotter¶ The default plotter for ECMSMeasurement is ECMSPlotter
-
plotter¶ The default plotter for ECMSMeasurement is ECMSPlotter
-
The deconvolution module¶
Source: https://github.com/ixdat/ixdat/tree/user_ready/src/ixdat/techniques/deconvolution.py
Module for deconvolution of mass transport effects.
-
class
ixdat.techniques.deconvolution.DecoMeasurement(**kwargs)[source]¶ Class implementing deconvolution of EC-MS data
-
extract_kernel(signal_name, cutoff_pot=0, tspan=None, tspan_bg=None)[source]¶ Extracts a Kernel object from a measurement.
Parameters: - signal_name (str) – Signal name from which the kernel/impule response is to be extracted.
- cutoff_pot (int) – Potential which the defines the onset of the impulse. Must be larger than the resting potential before the impulse.
- tspan (list) – Timespan from which the kernel/impulse response is extracted.
- tspan_bg (list) – Timespan that corresponds to the background signal.
-
grab_partial_current(signal_name, kernel_obj, tspan=None, tspan_bg=None, snr=10)[source]¶ Return the deconvoluted partial current for a given signal
Parameters: - signal_name (str) – Name of signal for which deconvolution is to be carried out.
- kernel_obj (Kernel) – Kernel object which contains the mass transport parameters
- tspan (list) – Timespan for which the partial current is returned.
- tspan_bg (list) – Timespan that corresponds to the background signal.
- snr (int) – signal-to-noise ratio used for Wiener deconvolution.
-
-
class
ixdat.techniques.deconvolution.Kernel(parameters={}, MS_data=None, EC_data=None)[source]¶ Kernel class implementing datatreatment of kernel/impulse response data.
-
calculate_kernel(dt=0.1, duration=100, norm=True, matrix=False)[source]¶ Calculates a kernel/impulse response.
Parameters: - dt (int) – Timestep for which the kernel/impulse response is calculated. Has to match the timestep of the measured data for deconvolution.
- duration (int) – Duration in seconds for which the kernel/impulse response is calculated. Must be long enough to reach zero.
- norm (bool) – If true the kernel/impulse response is normalized to its area.
- matrix (bool) – If true the circulant matrix constructed from the kernel/ impulse reponse is returned.
-
charge¶ Integrates the measured current over the time.
-
plot(dt=0.1, duration=100, ax=None, norm=True, **kwargs)[source]¶ Returns a plot of the kernel/impulse response.
-
sig_area¶ Integrates a measured impulse response and returns the area.
-