Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (16.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: sebastianreinke
  • Language: Python
  • Default Branch: main
  • Size: 191 KB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created over 1 year ago · Last pushed 12 months ago
Metadata Files
Readme Citation

README.md

Welcome to the GitHub page for CVCaRe!

CVCaRe is an analysis tool for cyclic voltammograms (CVs). It can read CV data, parse cycles, calculate capacitance using both conventional methods, and implement a new CaRe technique to determine capacitance and resistance from a CV. Additionally, CVCaRe provides a GUI built with PySimpleGUI for easy interaction.

How to use it

If you would like a simple executable file, download from the repository the file cvcarev7_2.exe. You may alternatively find the same file here: https://drive.proton.me/urls/6E5JR995SG#7HNMXmInDhLB The executable removes the need for an active python installation, but is usually somewhat slower to start up.

You can also run the python files directly. For this, download this repository, for example by following these steps:

  1. Clone the repository: bash git clone https://github.com/sebastianreinke/CVCaRe.git cd CVCaRe

  2. Set up a Python virtual environment (optional but recommended): bash python3 -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`

  3. Install the necessary dependencies: bash pip install -r requirements.txt

  4. Run the application: bash python gui.py

Features

  • Data Parsing: Reads cyclic voltammograms and parses them into cycles. If provided, cycle data will be used. Otherwise, cycles are inferred from the potential waveform.
  • Capacitance Calculation:
    • Conventional Methods: Calculates capacitance using the current difference at selected potentials.
    • MinMax: Calculates the capacitance based on the current difference between the maximum and minimum current.
    • CaRe Analysis: A new technique that calculates both capacitance and resistance, factoring in distortion.
  • CV Analysis Tools:
    • True scanrate plots
    • Cycle splitting
    • Integral calculations within specific voltage bounds
    • Distorted capacitive CV analysis
  • Data Export: You may export your data files themselves in a universal format, or export a cycle-split version of your dataset to process further, as well as the results from the capacitance calculation.
  • User-friendly GUI: Built with PySimpleGUI, making the analysis process interactive and accessible.

Issues

If you find bugs or errors in the program, please notify me at mailto:cvcare_github@sreinke.slmail.me

Typical issues:

  • The menu bar is not displayed correctly for some zoom settings of the monitor. If you do not use 100% zoom, set your monitor to 100% zoom before starting CVCaRe. This will fix the issue, even if you then return to your previous setting.
  • A data file is not loaded. If it is a standard CSV file (comma as separator, dot as decimal marker) check the "Assume default CSV format" checkbox and retry. If the issue persists, the file format cannot yet be parsed by CVCaRe. In this case, please send me an e-mail with an example data file that enables me to reproduce the issue.

Usage

GUI

  • Loading CV Files: Select your files using the Browse File(s) button and click the "Load and preview CVs" button. Only after loading the CVs are they available for other calculations.
  • Save Files: Save your data files in a uniform format by clicking the "Write CVs to file" button next to "Load and preview CVs". There, you may choose filenames, comments, and whether to save individual files or one composite file.
  • Capacitance Calculation: Choose between
    • At selected voltage
    • Min/Max Current
    • CaRe analysis (for distortion-corrected capacitance)
  • Save Results: After calculating capacitance or performing analysis, save the data to a file via the "Save Capacitance" button.
  • Additional Analysis: Perform various analyses such as calculating integrals, bias analysis, and cycle splitting.

Example

Here is a basic workflow to determine capacitance and resistance of CVs in the GUI:

  1. Load CV files using "Load and preview CVs."
  2. Enter a scan rate and the cycle number you wish to evaluate. If the cycle number is too high, it will default to the highest available.
  3. On the right-hand side, under advanced CV calculations, enter which CV you wish to analyse in "Use CV No.". As there can be multiple CVs loaded at any one time on the left, they are numbered from top to bottom starting at 1.
  4. Click "Perform distorted capacitive CV analysis". The results appear below to be copied for further use.
  5. If you wish to perform this calculation in bulk and save it automatically, repeat steps 1 and 2 for all CVs.
  6. On the left-hand side, find "Export to file:" and use the "Save As..." button to select a filename to save to.
  7. Click "Save bulk distortion analysis" to write the results to the selected file.

If you would like to automate a traditional current vs. scan rate calculation of capacitance:

  1. Load CV files using "Load and preview CVs." and enter their scan rates.
  2. Choose the capacitance calculation mode:
    • "At selected voltage"
    • "MinMax Current"
    • "CaRe analysis"
  3. Click "Calculate Capacitance".
  4. A current-difference vs. scan rate plot will be generated, and a linear fit performed. If you select "Force fit through origin", the linear fit will have zero offset.
  5. Review and save the calculated capacitance data by clicking "Save Capacitance." after selecting the export file.

Dependencies

Please find the required packages listed in the requirements.txt file.

Contributing

Contributions are welcome! Feel free to fork the project and submit a pull request or open an issue for suggestions or bug reports.

Steps to contribute:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature-branch).
  3. Make your changes.
  4. Push to the branch (git push origin feature-branch).
  5. Open a pull request.

License

This project is licensed under GPL-3.0-or-later. Copyright (C) 2022-2024 Sebastian Reinke

Shape-dependent Electrochemistry

Find our work also at https://shape-ec.ruhr-uni-bochum.de/

Owner

  • Login: sebastianreinke
  • Kind: user

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: CVCaRe
message: >-
  If you use this software, please cite it using the
  metadata from this file.
type: software
authors:
  - given-names: Sebastian
    family-names: Reinke
    email: github@sreinke.slmail.me
    affiliation: Ruhr University Bochum
    orcid: 'https://orcid.org/0009-0005-1029-7877'
identifiers:
  - type: doi
    value: 10.5281/zenodo.13941014
    description: CVCaRe v7.2
repository-code: 'https://github.com/sebastianreinke/CVCaRe'
keywords:
  - capacitance
  - resistance
  - cyclic voltammetry
  - distortion
  - supercapacitor
license: GPL-3.0

GitHub Events

Total
  • Release event: 2
  • Watch event: 2
  • Push event: 3
  • Create event: 1
Last Year
  • Release event: 2
  • Watch event: 2
  • Push event: 3
  • Create event: 1

Dependencies

setup.py pypi
requirements.txt pypi
  • PySimpleGUI ==4.70.1
  • altgraph ==0.17.4
  • contourpy ==1.2.1
  • cycler ==0.12.1
  • fonttools ==4.53.1
  • kiwisolver ==1.4.5
  • llvmlite ==0.43.0
  • matplotlib ==3.9.2
  • numba ==0.60.0
  • numpy ==2.0.1
  • packaging ==24.1
  • pefile ==2024.8.26
  • pillow ==10.4.0
  • pyinstaller ==6.10.0
  • pyinstaller-hooks-contrib ==2024.8
  • pyparsing ==3.1.2
  • python-dateutil ==2.9.0.post0
  • pywin32-ctypes ==0.2.3
  • quantities ==0.15.0
  • scipy ==1.14.1
  • setuptools ==73.0.1
  • six ==1.16.0