Skip to content

ljelissiry/eCAT

Repository files navigation

eCAT

eCAT, short for electroChemical 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. This requires Git to be installed and available on your PATH; check with git --version if the command fails.

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

Then verify the install:

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

The beta version is 0.1.0b3.

eCAT App

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

ecat-app

From a notebook, launch the native app window with:

import ecat as e

e.open_app()

If a native window is not convenient, run the same local app in browser mode:

ecat-app --browser

or from Python:

e.open_app(browser=True)

To embed browser mode in a notebook cell when supported:

e.open_app(inline=True)

Browser mode 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

Stars

Watchers

Forks

Releases

Contributors

Languages