Skip to main content

Analysis tools for electrochemistry and mass spectrometry and a lot in between

Project description

EC_MS provides a powerful object-oriented interface to electrochemistry data, mass spectrometry data, and especially the combination of these two types of datasets produced by electrochemistry - mass spectrometry (EC-MS) techniques such as differential electrochemical mass spectrometry (DEMS) and chip-based EC-MS.

EC_MS has grown in concert with the chip EC-MS technology sold by Spectro Inlets, but is especially useful data sets from other hardware and software (see below), as it automates the tedious task of ligning up the datasets in time.

EC_MS will soon be replaced by the in-situ experimental data tool ixdat, which will inherit the interface and EC-MS functionality of EC_MS, but with full documentation, better design, plugability for data from any in-situ technique, and a database interface.

The primary object-oriented interface is the Dataset class. For example:

>>> from EC_MS import Dataset
>>> MS_dataset = Dataset('MS_data.txt', data_type='MS')
>>> EC_dataset = Dataset('EC_data.mpt', data_type='EC')
>>> dataset = MS_dataset + EC_dataset  # calls the function EC_MS.synchronize()
>>> dataset.plot_experiment()          # EC data in lower panel, MS data in upper panel

In this example, the MS and EC datasets are combined by lining up all of the time variables based on timestamps read in the headers of the files.

It is easy to manipulate the datasets based on the electrochemistry program

>>> from EC_MS import CyclicVoltammagram
>>> cv = CyclicVoltammagram(Dataset)
>>> cv.normalize(RE_vs_RHE=0.715)
>>> cv.redefine_cycle(V=0.45, redox=1) # defines when the cycle counter increases
>>> cycle_1 = cv[1]                    # selects one cycle
>>> cycle_1.plot(masses=['M2', 'M44']) # electrochemical potential on the x-axis

And that’s just a small teaser. Additional functionality includes:

  • object-oriented interface to mass spectra with the Spectrum and Spectra classes

  • Calibration functions and classes for quantitative data analysis and plotting

  • Thermochemistry and Electrolyte subpackages for calculating standard potentials and chemical equilibrium

  • Mass-transport modelling of products and reactants in the working volume between the electrode and the vacuum inlet

  • ohmic drop correction and automated quantitative comparisons of cyclic voltammagrams

Full documentation will be included from the beginning when EC_MS is replaced by ixdat.

Installation

EC_MS is pip-installable! Just type in your terminal or Anaconda prompt:

$ pip install EC_MS

The in-development version is available on github.

EC_MS requires numpy, scipy, and matplotlib. I recommend using Anaconda python, and writing and running your scripts with spyder. This has proven the easiest to set up on all operating systems I’ve tried.

Supported Data Types

Mass Spectrometry

  • .tsv files from Spectro Inlets’ Zilien (data_type=”SI”)

  • .dat files (both Bin.dat and Scan.dat) from Pfeiffer Vacuum’s PVMassSpec (data_type=”PVMS”)

  • .txt files from cinfdata. (data_type=”MS”)

  • .txt files from Stanford Reasearch Systsms’ Residual Gas Analyzer (data_type=”RGA”)

  • .txt files from MKS’s Process Eye Professional software (data_type=”MKS”)

Electrochemistry

  • .tsv files from Spectro Inlets’ Zilien (data_type=”SI”)

  • .mpt files from BioLogic’s EC-Lab (data_type=”EC”)

  • .txt files from CH Instruments software (data_type=”CHI”)

Full documentation is pending!

If you would like support for another file type, write to me.

References

This python package was first described in:

Daniel B. Trimarco and Soren B. Scott, et al. Enabling real-time detection of electrochemical desorption phenomena with sub-monolayer sensitivity. Electrochimica Acta, 2018.

Its functionality is demonstrated, a bit more up-to-date, in the figures and footnotes of:

Soren B. Scott. Isotope-Labeling Studies in Electrocatalysis for Renewable Energy Conversion and the Net CO2 Impact of this PhD Project. PhD Thesis, 2019..

Other articles with figures and data analysis by EC_MS include:

  • Anna Winiwarter and Luca Silvioli, et al. Towards an Atomistic Understanding of Electrocatalytic Partial Hydrocarbon Oxidation: Propene on Palladium. Energy and Environmental Science, 2019.

  • Claudie Roy, Bela Sebok, Soren B. Scott, et al. Impact of nanoparticle size and lattice oxygen on water oxidation on NiFeOxHy. Nature Catalysis, 2018.

Project Information

EC_MS is poorly documented and, despite my best efforts, can still be a bit buggy.

Please log issues and suggest features on github to help me improve it.

Major imporovements will most likely not come in EC_MS, but instead in its successor ixdat. Feedback is still highly appreciated, so we can get things right from the start in ixdat.

EC_MS is completely free and open-source.

If you have questions or if you’d like to contribute, please contact me.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

EC_MS-0.7.5.tar.gz (160.7 kB view details)

Uploaded Source

Built Distribution

EC_MS-0.7.5-py2.py3-none-any.whl (182.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file EC_MS-0.7.5.tar.gz.

File metadata

  • Download URL: EC_MS-0.7.5.tar.gz
  • Upload date:
  • Size: 160.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for EC_MS-0.7.5.tar.gz
Algorithm Hash digest
SHA256 a869ebdec41f37c816a40bded4ee943d298f3be691837fa514ae469522eab108
MD5 a4ec7a94ed531eab855a8c4fd16d1758
BLAKE2b-256 df169f34344a3d75d5e964b31e8342598e5da117f400372b61a8b0a7f1c571eb

See more details on using hashes here.

File details

Details for the file EC_MS-0.7.5-py2.py3-none-any.whl.

File metadata

  • Download URL: EC_MS-0.7.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 182.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.6.1 requests/2.24.0 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.8.5

File hashes

Hashes for EC_MS-0.7.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 707967997bf22f587d9e47f308a4927c5120ac34bf4956b4c988c44b8d23aa42
MD5 907a33a753350c82d71468fbaa2b2a58
BLAKE2b-256 2e61e9890acca840695e9085f1bbcb62bc6e566f85be4bd5f7437bf52e53bfa1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page