MADAP 1.2.8
This is MADAP, a software package for the analysis of electrochemical data.
License: MIT license
Requires Python: >=3.8
Keywords: madap



MADAP
~~~~~

.. image:: https://github.com/fuzhanrahmanian/MADAP/blob/master/logo.png?raw=true
    :align: center
    :width: 240px

Modular and Autonomous Data Analysis Platform (MADAP) is a
well-documented python package which can be used for electrochmeical
data analysis.

This package consists of 3 main classes for analysis:

-  Voltammetry
-  Impedance spectroscopy
-  Arrhenius

This package allows user to upload any common file format of data and
the select the data of choice. The user can use to scientifically plot
and get correspondence analysis from each procedure (i.e. by calling
“eis_analysis” , Nyquist, bode as well as the correspondence equivalent
circuit and its parameters will be drawn). This package can be installed
via pip/conda and can be utilized with a GUI, command line or just
directly importing the module in a python script.

Documentation
~~~~~~~~~~~~~

A documentation for the implementation and use of MADAP can be found
`here <https://fuzhanrahmanian.github.io/MADAP/>`__


Installation
~~~~~~~~~~~~

MADAP can be installed via pip:

.. code:: bash

   pip install MADAP


Usage
~~~~~

A brief tutorial video of the basic of MADAP usage can found  `here <https://youtu.be/nL-eJpb1AxI>`_. 

MADAP can be used in a python script as follows: 

.. code:: python

    from madap.echem.arrhenius import arrhenius
    from madap.echem.e_impedance import e_impedance
    from madap.data_acquisition import data_acquisition as da


    # Load the data
    data = da.acquire_data('data.csv')
    # Define the desired plots for Arrhenius analysis
    plots_arr = ["arrhenius", "arrhenius_fit"]
    # Define the desired plots for impedance analysis
    plots_eis = ["nyquist", "nyquist_fit", "bode", "residual"]
    # Define a save location#
    save_dir = "/results"

    ### Arrhenius
    # Instantiate the Arrhenius class for analysis (column names do not have to match exactly, this is just an example)
    Arr = arrhenius.Arrhenius(da.format_data(data["temperature"], da.format_data(data["conductivity"])))
    # Perform analysis and plotting
    Arr.perform_all_actions(save_dir, plots = plots_arr)

    ### Impedance
    # Initialize the Impedance class for analysis (column names do not have to match exactly, this is just an example)
    Im = e_impedance.EImpedance(da.format_data(data["freq"]), da.format_data(data["real"]), da.format_data(data["img"]))
    # Initialis the EIS procedure. The initial value is the initial guess for the equivalent circuit (can also be left empty)
    Eis  = e_impedance.EIS(Im, suggested_circuit = "R0-p(R1,CPE1)",initial_value =[860, 3e+5, 1e-09, 0.90])
    # Analyze the data
    Eis.perform_all_actions(save_dir, plots = plots_eis)

    # More usages and options can be found in the documentation.

MADAP can also be used via command line:

.. code:: bash

   python -m madap_cli --file <path_to_file> --procedure <procedure> --results <path_to_results> --header_list <header_list> --plot <list_of_plots>

MADAP can also be used via a GUI:

.. code:: bash

   python -m madap_gui

.. image:: https://github.com/fuzhanrahmanian/MADAP/raw/master/GUI.png
    :align: center
    :width: 800px


License
~~~~~~~

MADAP is licensed under the MIT license. See the LICENSE file for more
details.


Citation
~~~~~~~~

If you use MADAP in your research, please cite this GitHub repository https://github.com/fuzhanrahmanian/MADAP.

.. image:: https://zenodo.org/badge/494354435.svg
   :target: https://zenodo.org/badge/latestdoi/494354435

Please also cite the following work:
`[Rahmanian2023] <https://doi.org/10.1038/s41597-023-01936-3>`_ Rahmanian, F., Vogler, M., Wölke, C. et al. "Conductivity experiments for electrolyte formulations and their automated analysis." Sci Data 10, 43 (2023).

References
~~~~~~~~~~

This package is based relies on the following packages and papers:
- Impedance GitHub repository by Matthew D. Murbach and Brian Gerwe and Neal Dawson-Elli and Lok-kun Tsui: `link <https://github.com/ECSHackWeek/impedance.py>`__
- A Method for Improving the Robustness of linear Kramers-Kronig Validity Tests DOI: https://doi.org/10.1016/j.electacta.2014.01.034

Acknowledgement
~~~~~~~~~~~~~~~

This project has received funding from the European Union’s [Horizon 2020 research and innovation programme](https://ec.europa.eu/programmes/horizon2020/en) under grant agreement [No 957189](https://cordis.europa.eu/project/id/957189). The project is part of BATTERY 2030+, the large-scale European research initiative for inventing the sustainable batteries of the future.


=======
History
=======

1.2.8 (2025-04-28)
-------------------
* Fixed bug from merge conflict

1.2.7 (2025-04-24)
-------------------
* Added support for no time data in CV
* Fixed bug in CV for no time data and CLI

1.2.6 (2023-12-16)
-------------------
* Fixed bug in CP for differential capacity plot
* Handled None and Infinite values in CP plots
* Fixed index in CV


1.2.5 (2023-12-15)
-------------------
* Fixed bug in CA for zero reaction rate constant
* Fixed bug in index handling for CA
* Fixed bug in plot ticks

1.2.3 (2023-12-11)
-------------------
* Include python 3.8

1.2.1 (2023-12-11)
-------------------
* Added Ciclic Voltammetry to the functions
* CA, CP and CV can be used with multiple plots to chose from
* New and Imrpoved GUI
* Fixed saving bug

1.1.0 (2023-08-07)
-------------------
* Fixes issue with mismatch array length when positive imaginary data is given

0.11.0 (2022-10-16)
-------------------

* Fixed bugs concering the package installation.
* Improved the documentation.
* Imrpoved the file structure.
* madap_gui and madap_cli are now in the same package and can be used as standalone scripts/commands.

0.10.0 (2022-10-03)
-------------------

* Updated support of the python versions

0.9.0 (2022-10-02)
------------------

* Update documentation

0.8.0 (2022-10-02)
------------------

* First release on PyPI.