# PyFasma Documentation **PyFasma** is a [free](https://www.gnu.org/philosophy/free-sw.en.html) and [open source](https://opensource.com/resources/what-open-source) Python package for preprocessing and analyzing Raman spectra. It offers a complete set of tools for: - Preprocessing Raman spectra - Deconvoluting complex Raman bands - Applying multivariate analysis, including Principal Components Analysis (PCA) and Partial Least Squares Discriminant Analysis (PLS-DA) - Generating publication-ready plots The package depends on the following Python libraries: - [LMFIT 1.3+](https://lmfit.github.io/lmfit-py/) - [Matplotlib 3.8+](https://matplotlib.org/) - [NumPy 2.0+](https://numpy.org/) - [pandas 2.2+](https://pandas.pydata.org/) - [pybaselines 1.1+](http://pybaselines.readthedocs.io/) - [Seaborn 0.13+](https://seaborn.pydata.org/) - [SciPy 1.14+](https://scipy.org/) - [scikit-learn 1.5+](https://scikit-learn.org/stable/index.html) - [A fork of rohanisaac's spc](https://github.com/rohanisaac/spc) PyFasma follows a modular structure with seven modules: `helpers`, `fileio`, `numpyfuncs`, `dffuncs`, `plotting`, `modeling`, and `deconvolution`. Each is tailored to support a specific step in a typical Raman spectroscopy workflow, as illustrated below. ![PyFasma Structure](./_static/pyfasma_structure.png) The source code and issue tracker are hosted on GitLab: [PyFasma GitLab Repository](https://gitlab.com/lepa22/pyfasma) ```{toctree} :hidden: :maxdepth: 4 :caption: Contents: installation examples modules how_to_cite license ```