A comprehensive toolbox for the interpretation of results across various electrochemical techniques.
To run Envismetrics locally, you will need:
- Python 3.10 or higher (required): Check here
- Git: Install Git
- (Optional) Anaconda: Install Anaconda
To check if Git and Python are installed:
git --version
python --versionYou can use Envismetrics online without installation:
β‘οΈ Click here to use the online version
Or, for local use (recommended for developers or offline analysis), follow the steps below.
git clone https://github.com/Woffee/Envismetrics.git
cd Envismetricsπ» Linux / macOS
python3 -m venv myenv
source myenv/bin/activateπ₯ Windows (Command Prompt)
python -m venv myenv
myenv\Scripts\activateπ₯ Windows (PowerShell)
python -m venv myenv
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
myenv\Scripts\Activate.ps1
π° We recommend keeping the virtual environment inside the local repository for simplicity, especially for beginners. Advanced users may choose a centralized folder for their environments.
Install Required Packages
pip install -r requirements.txtconda create -n envismetrics python=3.10
conda activate envismetrics
pip install -r requirements.txtπ» Linux / macOS
python src/app.pyπ₯ Windows (Command Prompt)
python src\app.pyThen visit http://localhost:8080/ in your browser.
The Envismetrics repository is organized as follows:
Envismetrics/
βββ data/
β βββ test_data/ # Full experimental datasets used for testing (CV, CA, HDV)
β βββ Data_Format.md # Documentation on supported data formats
β βββ readme_data.md # Data-specific documentation
β βββ reproducibility_guide.md # Guide for reproducing analysis results
βββ src/
β βββ app.py # Flask application entry point
β βββ CV.py # Cyclic Voltammetry analysis module
β βββ CA.py # Chronoamperometry analysis module
β βββ HDV.py # Hydrodynamic Voltammetry analysis module
β βββ BaseModule.py # Base class for analysis modules
β βββ utils.py # Utility functions
β βββ config.py # Configuration settings
β βββ static/ # Static web resources (CSS, JS, images)
β βββ templates/ # HTML templates for web UI
β βββ uploads/ # User-uploaded data files (temporary storage)
β βββ outputs/ # Generated analysis results and figures
β βββ logs/ # Application logs
β βββ demo/ # Jupyter notebooks demonstrating module usage
βββ tests/
β βββ test_CV.py # Unit tests for CV module
β βββ test_CA.py # Unit tests for CA module
β βββ test_HDV.py # Unit tests for HDV module
βββ joss-paper/
β βββ paper.md # JOSS manuscript source
β βββ bibliography.bib # BibTeX-formatted references
β βββ Image_Set/ # Figures used in the manuscript
βββ LICENSE.txt
βββ readme.md
βββ requirements.txt # Python dependencies
data/test_data/: Contains real experimental datasets to test and validate the software functionality.src/: Core application code including Flask backend, analysis modules, and web interface components.tests/: Unit tests for validating module functions and ensuring code quality.
The test data is now available in the data/test_data folder.
When using the online version of Envismetrics, uploaded data is stored temporarily to allow users to revisit their analysis via a unique session link. For example:
http://1.14.137.123:8083/step_methods/version_0627_040023?step=2
This link is automatically generated after uploading data and can be bookmarked for future access.
To protect user privacy:
- Uploaded files are not publicly listed, and links are sufficiently unique to prevent accidental discovery.
- All stored data is automatically deleted on the 1st of each month.
- Currently, there is no login or authentication system, as this is an early-stage prototype intended for demonstration and testing purposes.
Please do not upload sensitive or confidential data at this time. We plan to introduce access control and permanent storage options in future releases.
In terms of data handling, typical electrochemical kinetic analysis solutions have relied on instrument-specific proprietary software provided with potentiostats, homemade scripts for specific data, or manual processing in Excel. Compared with the proprietary tools available from potentiostat manufacturers, these often lack the flexibility, cross-platform support, and comprehensive functionality that Envismetrics offers. Compared with homegrown solutions and packages, Envismetrics provides a more general function that saves time and eliminates the need to re-edit code when changing potentiostats or experimental methods in kinetic analysis. Users can rely on Envismetrics to streamline their workflow and enhance efficiency.
Envismetrics provides an open-source, cross-platform (Windows, MacOS, and Linux) online software focused on electrochemical kinetic analysis. No installation or updates are required, making it convenient and always up-to-date. Envismetrics offers a full toolbox for processing raw voltammogram data, extracting parameters, and generating publication-ready figures. The analysis can be applied to any scan, cycle, or range of voltammogram data. At any stage of the analysis, users can export the results for further use or to create new figures. Whether users are professional researchers seeking to save time or individuals lacking basic knowledge of the relevant equations, Envismetrics encourages reproducible, easy-to-use, and transparent analysis.
Envismetrics not only facilitates data collection and analysis from electrochemical experiments but also provides educational resources to help users understand the terminology and concepts they encounter. This dual approach ensures that both seasoned researchers and newcomers can effectively utilize the software.
Envismetrics is dedicated to continuous improvement and innovation. Future plans include incorporating widely used kinetic electrochemical analysis methods and expanding support for additional data formats from various potentiostat brands. The software's modular design enables the seamless integration of new features and methods, ensuring Envismetrics remains a leading tool in electrochemical analysis.
Envismetrics is an online tool (click here) that requires no download or installation. The software updates automatically whenever new modules are released, ensuring you always have access to the latest features.
- Access the Software
- Visit Envismetrics Online.
- Select the Module
- Choose the module that corresponds to your experiment from the list of available options.
- Upload Your Data
- Select or drag and drop your data files from a folder into the designated area. The software supports various file formats such as XLSX, TXT, and CSV.
- Input Parameters
- Enter your desired figure settings and initial experimental parameters. This ensures that the analysis is tailored to your specific needs.
- Submit for Analysis
- Press the "Submit" button to start the analysis. The software will process your data and generate the results based on the selected module and input parameters.
- Review and Adjust Parameters
- If you need to edit any parameters from the previous page, press the "Go Back" button to make the necessary adjustments.
- Analyze New Data
- If you want to analyze a new set of data, press the "Try Again" button to restart the process.
By following these simple steps, you can efficiently utilize Envismetrics for your electrochemical kinetic analysis, ensuring accurate and reproducible results.
- Data Import, Plotting, and Gaussian Filtering
- Import data from supported potentiostats and file formats.
- Visualize data sorted by RPM (rotations per minute).
- Apply Gaussian filtering with user-defined sigma for noise reduction.
- Levich and KouteckΓ½βLevich Analysis
- Levich Analysis: Generate plots and calculate diffusion coefficients from slope.
- KouteckΓ½βLevich Analysis: Produce plots, perform linear regression, and analyze diffusion coefficients at selected potentials.
Planned Features
- Automatic detection of limiting current plateaus for improved Levich/KL regression accuracy.
- Enhanced fitting diagnostics with linearity feedback and outlier detection.
- Sliding-range selection for potential window fitting.
-
Plotting and Gaussian Filtering
- Plot CV data sorted by rate constant value.
- Apply Gaussian filtering with adjustable sigma values.
-
Peak Searching
- Identify peaks within defined potential ranges (max/min detection).
- Record peak coordinates for downstream analysis.
-
RandlesβΕ evΔΓk Analysis
- Calculate diffusion coefficients from peak current vs. scan rate.
-
Standard Rate Constant Calculation
- Estimate
$k^0$ using peak separation and Nicholson/Lavagnini models.
- Estimate
-
Tafel Analysis
- Determine anodic and cathodic transfer coefficients.
- Implement mass-transport correction for improved accuracy.
Planned Features
- Fully automated peak detection across voltammetric cycles.
- Regime diagnostics based on scan-rate normalization (e.g.,
$i_p$ vs.$\sqrt{v}$ ) to identify non-planar diffusion behavior. - Automatic exclusion of non-conforming voltammograms.
- Real-time validation of input parameters (e.g., electrode radius,
$D$ ,$C_0$ ) with warnings for unphysical values.
- Plotting and Gaussian Filtering
- Plot applied potential vs. time and current vs. time.
- Apply Gaussian smoothing for noise reduction.
- Cottrell Analysis
- Calculate diffusion coefficients using the Cottrell equation.
- Display regression plots and tabulated results.
Planned Features
- Additional step techniques beyond CA (e.g., Chronopotentiometry).
- User-defined fitting intervals with interactive selection.
- Additional filtering options (e.g., SavitzkyβGolay) for noisy data preprocessing.
- Interactive, user-defined fitting regions in regression plots.
- Export of results and figures in CSV/JSON formats for reproducibility.
- Early-stage EIS module development for impedance spectroscopy integration.
- Improved error handling and user messages: Refine runtime diagnostics, with automatic suggestions for axis ranges and data domains.
- Pixi-based environment management: Transition from conda/requirements.txt to Pixi for reproducible, task-based environments.
- Pyodide/WebAssembly deployment: Explore browser-based execution to allow users to run Envismetrics directly from GitHub Pages without installing Python locally.
We welcome user feedback and contributions via GitHub Issues and Pull Requests.
Distributed under the MIT License. See LICENSE.txt for more information.
I confirm that I have read the JOSS conflict of interest policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.
I confirm that I read and will adhere to the JOSS code of conduct.
Huize Xue - [email protected]
Project Link: https://github.com/Woffee/Envismetrics