Metadata-Version: 2.4
Name: chromstream
Version: 0.1.0
Summary: A Python package for online gas chromatography.
Author-email: Sebastian Rejman <s.rejman@uu.nl>
License: MIT
Project-URL: repository, https://github.com/Quantum-Accelerators/chromstream
Project-URL: documentation, https://quantum-accelerators.github.io/chromstream/
Project-URL: changelog, https://github.com/Quantum-Accelerators/chromstream/blob/main/CHANGELOG.md
Keywords: GC
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: matplotlib>=3.9.4
Requires-Dist: numpy
Requires-Dist: pandas>=2.2.2
Requires-Dist: scipy>=1.13.1
Provides-Extra: dev
Requires-Dist: pytest>=7.4.0; extra == "dev"
Requires-Dist: pytest-cov>=3.0.0; extra == "dev"
Requires-Dist: ruff>=0.0.285; extra == "dev"
Provides-Extra: docs
Requires-Dist: mkdocs>=1.6.1; extra == "docs"
Requires-Dist: ipympl>=0.9.7; extra == "docs"
Requires-Dist: ipykernel>=6.30.1; extra == "docs"
Requires-Dist: mkdocs-autorefs>=1.4.3; extra == "docs"
Requires-Dist: mkdocs-gen-files>=0.5.0; extra == "docs"
Requires-Dist: mkdocs-include-markdown-plugin>=7.1.7; extra == "docs"
Requires-Dist: mkdocs-jupyter>=0.25.1; extra == "docs"
Requires-Dist: mkdocs-literate-nav>=0.6.2; extra == "docs"
Requires-Dist: mkdocs-material>=9.6.19; extra == "docs"
Requires-Dist: mkdocstrings>=0.30.0; extra == "docs"
Requires-Dist: mkdocstrings-python>=1.18.2; extra == "docs"
Requires-Dist: pillow>=10.0.0; extra == "docs"
Requires-Dist: cairosvg>=2.7.1; extra == "docs"
Dynamic: license-file

# ChromStream

<p align="center">
  <img src="docs/assets/chromstream_logo.svg" alt="pyGCxGC Logo" width="200"/>
</p>

A Python package for processing on-line gas chromatography data. ChromStream provides tools to parse, analyze, and visualize chromatographic data from various GC systems, and combine it with data from logfiles such as temperature and pressure.

## Features

- Parse chromatographic data from multiple formats:
  - Chromeleon (exported txt)
  - Agilent .d directories
  - Agilent .dx files
- Access to data at experiment, channel and chromatogram level
- Quick plotting of chromatograms
- Small selection of baseline corrections, possibility to use custom ones
- Integration using a dict of peaks
- Addition of logfiles

## Installation

### Installing using pip

```bash
pip install ChromStream
```

### Install using uv

If you're using [uv](https://github.com/astral-sh/uv) for fast Python package management:

```bash
uv add ChromStream
```
## Quick Start

Check the Quickstart Notebook to see a full demonstration of the most important features of the package. 
Here's a simple example of how to set up an experiment, add chromatograms and plot them:

```python
import chromstream as cs

exp = cs.Experiment(name='hello there')
exp.add_chromatogram('path-to-your-chromatogram') #loop over files to add multiple
exp.plot_chromatograms()
```

To access specific channels:
```python
exp.channels['channel-name'].plot()
```

For specific chromatograms:

```python
exp.channels['channel-name'].chromatograms[0].plot()
```

## Supported File Formats

ChromStream currently supports parsing data from:

- Chromeleon software exports (`.txt`)
- (software names) (ascii files)
- simple log files (e.g. exported from labview)

## Documentation

- You can find the full documentation of the package [here](https://myonics.github.io/ChromStream/).

## Example Notebooks

Check out the `example_notebooks/` directory for comprehensive examples:

- `example_calibration.ipynb` - GC calibration procedures


## Roadmap
- Support for more files formats
- Addition of more data sources such as spectroscopy
- JSON/HDF5 saving and parsings
- tests

## Contributing
This package is in active development. Any help is appreciated. You can submit feature requests or bug reports as issues on the repository.
If you have a specific file format which presently is nto supported please provide an example file.
PRs are more than welcome.

## Authors

Sebastian Rejman - Fritz-Haber-Institute / Utrecht University


