AdsorptionBreakthroughAnalysis 0.0.3
This program is used to analyse the breakthrough curves generated by the RCCS adsorption rig
License: MIT
Requires Python: >=3.8
Keywords: snekpack,cookiecutter

<!--
<p align="center">
  <img src="https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/raw/main/docs/source/logo.png" height="150">
</p>
-->

<h1 align="center">
  AdsorptionBreakthroughAnalysis
</h1>

<p align="center">
    <a href="https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/actions/workflows/tests.yml">
        <img alt="Tests" src="https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/workflows/tests.yml/badge.svg" />
    </a>
    <a href="https://pypi.org/project/AdsorptionBreakthroughAnalysis">
        <img alt="PyPI" src="https://img.shields.io/pypi/v/AdsorptionBreakthroughAnalysis" />
    </a>
    <a href="https://pypi.org/project/AdsorptionBreakthroughAnalysis">
        <img alt="PyPI - Python Version" src="https://img.shields.io/pypi/pyversions/AdsorptionBreakthroughAnalysis" />
    </a>
    <a href="https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/blob/main/LICENSE">
        <img alt="PyPI - License" src="https://img.shields.io/pypi/l/AdsorptionBreakthroughAnalysis" />
    </a>
    <a href='https://AdsorptionBreakthroughAnalysis.readthedocs.io/en/latest/?badge=latest'>
        <img src='https://readthedocs.org/projects/AdsorptionBreakthroughAnalysis/badge/?version=latest' alt='Documentation Status' />
    </a>
    <a href="https://codecov.io/gh/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/branch/main">
        <img src="https://codecov.io/gh/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/branch/main/graph/badge.svg" alt="Codecov status" />
    </a>  
    <a href="https://github.com/cthoyt/cookiecutter-python-package">
        <img alt="Cookiecutter template from @cthoyt" src="https://img.shields.io/badge/Cookiecutter-snekpack-blue" /> 
    </a>
    <a href='https://github.com/psf/black'>
        <img src='https://img.shields.io/badge/code%20style-black-000000.svg' alt='Code style: black' />
    </a>
    <a href="https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/blob/main/.github/CODE_OF_CONDUCT.md">
        <img src="https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg" alt="Contributor Covenant"/>
    </a>
</p>

# Adsorption Breakthrough Analysis 

This program is used to analyse the breakthrough curves generated by adsorption in the rig created by Dr E.G (in the lab as of 1st of September 2022).

The folders include:

* Code
  * Contains the python script
* Explaining program 
  * This contains a jupyter notebook explaining how to use the Python script and some extra information if neeeded
* Generating results
  * Contains a simple jupyter notebook with the essentials needed to run and produce the required outputs

## 🚀 Package interaction

There are two ways to interact with this package.

<b> 1. Local installation </b>
- Install via pip, (`pip install AdsorptionBreakthroughAnalysis`)
- Cloning the github repo (`git clone https://github.com/dm937/Adsorption_Breakthrough_Analysis/`) 
- Use the jupyter notebook locally. (Check `Explaining program/Explaining_program.ipynb`)

<b> 2. Using the online notebook (easy) </b>
- Using the [online notebook](https://deepnote.com/workspace/fmcil-1f244322-b560-46a9-bfe3-cb29fad834c7/project/AdsorptionBreakthroughAnalysis-06bd4f69-f127-42b0-bbc2-792ba35155d4/%2FExplaining_program.ipynb)

If you are unfamiliar with pip then we recommend using online notebook.


## Usage 

The program takes in MS and coriolis readings and then creates a dataframe containing only the relevant breakthrough data

This is done by the use of classes. Each part of the experiment will be an object containing the related data. for example 14%_CO2_UiO66_sample may be one object.

To create the object setup the ExperimentalSetup dictionary with the relevant values and the MS and coriolis files must be in the same folder and inputted to the ExperimentalSetup aswell. The object is then created by calling the class and inputting the relevant conditions.

Once a blank and sample object are created you can call the standard output function in order to produce the standard set of results.

This is all explained further (with functions/methods called in code cells) in the "Explaining program" notebook

## Acknowledgements

This work is part of the PrISMa Project (299659), funded through the ACT Programme (Accelerating CCS Technologies, Horizon 2020 Project 294766). Financial contributions from the Department for Business, Energy & Industrial Strategy (BEIS) together with extra funding from the NERC and EPSRC Research Councils, United Kingdom, the Research Council of Norway (RCN), the Swiss Federal Office of Energy (SFOE), and the U.S. Department of Energy are gratefully acknowledged. Additional financial support from TOTAL and Equinor is also gratefully acknowledged. This work is also part of the USorb-DAC Project, which is supported by a grant from The Grantham Foundation for the Protection of the Environment to RMI’s climate tech accelerator program, Third Derivative.


### ⚖️ License

The code in this package is licensed under the MIT License.

<!--
### 📖 Citation

Citation goes here!
-->

<!--
### 🎁 Support

This project has been supported by the following organizations (in alphabetical order):

- [Harvard Program in Therapeutic Science - Laboratory of Systems Pharmacology](https://hits.harvard.edu/the-program/laboratory-of-systems-pharmacology/)

-->

<!--
### 💰 Funding

This project has been supported by the following grants:

| Funding Body                                             | Program                                                                                                                       | Grant           |
|----------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|-----------------|
| DARPA                                                    | [Automating Scientific Knowledge Extraction (ASKE)](https://www.darpa.mil/program/automating-scientific-knowledge-extraction) | HR00111990009   |
-->

### 🍪 Cookiecutter

This package was created with [@audreyfeldroy](https://github.com/audreyfeldroy)'s
[cookiecutter](https://github.com/cookiecutter/cookiecutter) package using [@cthoyt](https://github.com/cthoyt)'s
[cookiecutter-snekpack](https://github.com/cthoyt/cookiecutter-snekpack) template.

## 🛠️ For Developers

<details>
  <summary>See developer instructions</summary>

### Development Installation

To install in development mode, use the following:

```bash
$ git clone git+https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis.git
$ cd Adsorption_Breakthrough_Analysis
$ pip install -e .
```

### 🥼 Testing

After cloning the repository and installing `tox` with `pip install tox`, the unit tests in the `tests/` folder can be
run reproducibly with:

```shell
$ tox
```

Additionally, these tests are automatically re-run with each commit in a [GitHub Action](https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis/actions?query=workflow%3ATests).

### 📖 Building the Documentation

The documentation can be built locally using the following:

```shell
$ git clone git+https://github.com/RCCS-CaptureTeam/Adsorption_Breakthrough_Analysis.git
$ cd Adsorption_Breakthrough_Analysis
$ tox -e docs
$ open docs/build/html/index.html
``` 

The documentation automatically installs the package as well as the `docs`
extra specified in the [`setup.cfg`](setup.cfg). `sphinx` plugins
like `texext` can be added there. Additionally, they need to be added to the
`extensions` list in [`docs/source/conf.py`](docs/source/conf.py).

### 📦 Making a Release

After installing the package in development mode and installing
`tox` with `pip install tox`, the commands for making a new release are contained within the `finish` environment
in `tox.ini`. Run the following from the shell:

```shell
$ tox -e finish
```

This script does the following:

1. Uses [Bump2Version](https://github.com/c4urself/bump2version) to switch the version number in the `setup.cfg`,
   `src/AdsorptionBreakthroughAnalysis/version.py`, and [`docs/source/conf.py`](docs/source/conf.py) to not have the `-dev` suffix
2. Packages the code in both a tar archive and a wheel using [`build`](https://github.com/pypa/build)
3. Uploads to PyPI using [`twine`](https://github.com/pypa/twine). Be sure to have a `.pypirc` file configured to avoid the need for manual input at this
   step
4. Push to GitHub. You'll need to make a release going with the commit where the version was bumped.
5. Bump the version to the next patch. If you made big changes and want to bump the version by minor, you can
   use `tox -e bumpversion -- minor` after.
</details>