Skip to content

Woffee/Envismetrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

377 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


Logo

Envismetrics

username:admin password:Alpha@123

A comprehensive toolbox for the interpretation of results across various electrochemical techniques.

About The Project

Built With

(back to top)

System Requirements

To run Envismetrics locally, you will need:

⚠️ Important: This project requires Python 3.10+ due to dependency compatibility (numpy, pandas, etc.). If you're using Python 3.7-3.9, please upgrade your Python version.

To check if Git and Python are installed:

git --version
python --version

Getting Started

You 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.

1. Clone the Repository

git clone https://github.com/Woffee/Envismetrics.git
cd Envismetrics

2. Create a Virtual Environment and Install Required Packages

πŸ’» 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.txt

Alternatively, Anaconda users can create a new environment:

conda create -n envismetrics python=3.10
conda activate envismetrics
pip install -r requirements.txt

4. Run the Application

πŸ’» Linux / macOS

python src/app.py

πŸ–₯ Windows (Command Prompt)

python src\app.py

Then visit http://localhost:8080/ in your browser.

πŸ“ Project Directory Overview

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.

Test data

The test data is now available in the data/test_data folder.

(back to top)

Data Privacy and Retention

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.

Statement of Need

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.

Usage

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.

  1. Access the Software
    • Visit Envismetrics Online.
  2. Select the Module
    • Choose the module that corresponds to your experiment from the list of available options.
  3. 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.
  4. Input Parameters
    • Enter your desired figure settings and initial experimental parameters. This ensures that the analysis is tailored to your specific needs.
  5. 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.
  6. 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.
  7. 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.

(back to top)

Roadmap

Hydrodynamic Voltammetry (HDV) Module

  1. 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.
  2. 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.

Cyclic Voltammetry (CV) Module

  1. Plotting and Gaussian Filtering
    • Plot CV data sorted by rate constant value.
    • Apply Gaussian filtering with adjustable sigma values.
  2. Peak Searching
    • Identify peaks within defined potential ranges (max/min detection).
    • Record peak coordinates for downstream analysis.
  3. Randles–Ševčík Analysis
    • Calculate diffusion coefficients from peak current vs. scan rate.
  4. Standard Rate Constant Calculation
    • Estimate $k^0$ using peak separation and Nicholson/Lavagnini models.
  5. 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.

Step Techniques Module – Chronoamperometry (CA)

  1. Plotting and Gaussian Filtering
    • Plot applied potential vs. time and current vs. time.
    • Apply Gaussian smoothing for noise reduction.
  2. 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.

Global Features

  • 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.

Deployment & Environment Management (Planned)

  • 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.

(back to top)

License

Distributed under the MIT License. See LICENSE.txt for more information.

(back to top)

Conflict of interest

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.

Code of Conduct

I confirm that I read and will adhere to the JOSS code of conduct.

Contact

Huize Xue - [email protected]

Project Link: https://github.com/Woffee/Envismetrics

(back to top)

Acknowledgments

(back to top)

About

A comprehensive toolbox for the interpretation of results across various electrochemical techniques.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors