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.
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 -qThe beta version is 0.1.0b2.
The browser app is installed with the main package. From a terminal, run:
ecat-browserFrom 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.
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})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.
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.
Run tests with:
pytest -qThe test suite uses Matplotlib's Agg backend and checks objects, labels, numeric values, and exported files rather than pixel-perfect images.