Skip to content

ljelissiry/eCAT

Repository files navigation

eCAT

eCAT, short for electroCatalysis Analysis Tools, is a Python package for loading, organizing, plotting, and analyzing electrochemical data from common lab workflows. The current lab beta focuses on trustworthy cyclic voltammetry workflows, with limited CA and CP support where the existing parsers are covered by tests.

Install

For the lab beta, install from the repository root in a clean environment:

python -m venv .venv
source .venv/bin/activate
python -m pip install -U pip
python -m pip install -e .

For the public beta tag, users can install directly from GitHub:

python -m pip install --upgrade "git+https://github.com/ljelissiry/eCAT.git@v0.1.0b2"

Then verify the install:

python -c "import ecat as e; print(e.__version__)"
pytest -q

The beta version is 0.1.0b2.

Browser App

The browser app is installed with the main package. From a terminal, run:

ecat-browser

From a notebook, launch the same local app with:

import ecat as e

e.open_app()

To embed the app in a notebook cell when supported:

e.open_app(inline=True)

The app runs locally at http://127.0.0.1:8050 by default and automatically uses the next available port if 8050 is busy.

Quickstart

import ecat as e

data = e.get_data({
    "folder path": "path/to/exported/txt/files",
    "recursive search": True,
    "print": False,
    "reference mode": "none",
})

cv = data[0]
ax = cv.plot({"legend": False, "title": True})
peak = cv.peak_potential({"plot": False, "print": False})
print(peak)

For multiple CVs:

grouped = e.sort_and_group(
    data,
    sort_keys=["gas", "scan rate"],
    group_keys="gas",
    options={"print": False},
)

e.multiplot(grouped[0], {"legend": "auto", "title": False})

Beta Scope

See docs/beta_scope.md for the supported file/technique matrix, known limitations, and recommended beta-user guidance.

In short:

  • Recommended beta path: CH, BASI, and EC-Lab CV text exports.
  • Limited path: CH CA, CH CP, and EC-Lab GCPL/CP text exports.
  • Fallback path: generic numeric/header text files.
  • Unsupported for beta: binary files and untested vendor formats.

Reporting Issues

Report beta bugs with the eCAT Beta Bug / Feedback Report Google Form. Include the smallest file example possible, the code you ran, the expected behavior, the actual behavior, and any traceback or screenshot.

Development

Run tests with:

pytest -q

The test suite uses Matplotlib's Agg backend and checks objects, labels, numeric values, and exported files rather than pixel-perfect images.

About

Python tools for electrochemical data import, plotting, and analysis, with support for CV, CA, CP, DPV, and electrocatalysis workflows.

Topics

Resources

License

Stars

Watchers

Forks

Contributors