Python package that provides a full range of functionality to process and analyze vibrational spectra (Raman, SERS, FTIR, etc.).
Project description
BoxSERS, a powerful and ready-to-use python package providing several tools for the analysis of vibrational spectra (Raman, FTIR, SERS, etc.), including features for data augmentation, dimensional reduction, spectral correction and both supervised and unsupervised machine learning.
Table of contents
BoxSERS Installation
From PypY
pip install boxsers
From Github
pip install git+https://github.com/ALebrun-108/BoxSERS.git
Requirements
Listed below are the main modules needed to operate the codes:
- Sklearn
- Scipy
- Numpy
- Pandas
- Matplotlib
- Tensor flow (GPU or CPU)
Label information
The labels associated with the spectra can be either integer values (single column) or binary values (multiple columns).
####Example of labels for three classes that correspond to three bile acids:
Bile acid | Integer label (1 column) | Binary label (3 columns) |
---|---|---|
Cholic acid | 0 | [1 0 0] |
Lithocholic acid | 1 | [0 1 0] |
Deoxycholic acid | 2 | [0 0 1] |
Included Features
Module misc_tools
This module provides functions for a variety of utilities.
-
data_split : Randomly splits an initial set of spectra into two new subsets named in this function: subset A and subset B.
-
ramanshift_converter : Converts wavelength [nm] to Raman shifts [cm-1].
-
wavelength_converter : Convert Raman shifts [cm-1] to wavelengths [nm].
-
load_rruff : Export a subset of Raman spectra from the RRUFF database in the form of three related lists containing Raman shifts, intensities and mineral names.
Module visual_tools
This module provides different tools to visualize vibrational spectra quickly.
-
spectro_plot : Returns a plot with the selected spectrum(s)
-
random_plot : Plot a number of randomly selected spectra from a set of spectra.
-
distribution_plot : Return a bar plot that represents the distributions of spectra for each classes in a given set of spectra
Module preprocessing
This module provides functions to preprocess vibrational spectra. These features improve spectrum quality and can improve performance for machine learning applications.
-
als_baseline_cor : Subtracts the baseline signal from the spectrum(s) using an Asymmetric Least Squares estimation.
-
intensity_normalization : Normalizes the spectrum(s) using one of the available norms in this function.
-
savgol_smoothing : Smoothes the spectrum(s) using a Savitzky-Golay polynomial filter.
-
cosmic_filter : Applies a median filter to the spectrum(s) to remove cosmic rays.
-
spectral_cut : Subtracts or sets to zero a delimited spectral region of the spectrum(s).
-
spline_interpolation : Performs a one-dimensional interpolation spline on the spectra to reproduce them with a new x-axis.
Module data_augmentation
This module provides funtions to generate new spectra by adding different variations to existing spectra.
-
aug_mixup : Randomly generates new spectra by mixing together several spectra with a Dirichlet probability distribution.
-
aug_noise : Randomly generates new spectra with Gaussian noise added.
-
aug_multiplier : Randomly generates new spectra with multiplicative factors applied.
-
aug_offset : Randomly generates new spectra shifted in intensity.
-
aug_xshift : Randomly generates new spectra shifted in wavelength.
-
aug_linslope : Randomly generates new spectra with additional linear slopes
Module dimension_reduction
This module provides different techniques to perform dimensionality reduction of vibrational spectra.
- SpectroPCA : Principal Component Analysis (PCA) model object.
Module clustering
This module provides unsupervised learning models for vibrational spectra cluster analysis.
-
SpectroKmeans : K-Means clustering model.
-
SpectroGmixture : Gaussian mixture probability distribution model.
Module classification
This module provides supervised learning models for vibrational spectra classification.
-
SpectroRF : Random forest classification model.
-
SpectroSVM : Support Vector Machine classification model.
-
SpectroLDA : Linear Discriminant Analysis classification model
Module neural_networks
This module provides neural network model specifically designed for the classification of vibrational spectra.
- SpectroCNN : Convolutional Neural Network (CNN) for vibrational spectra classification.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file boxsers-1.0.0.tar.gz
.
File metadata
- Download URL: boxsers-1.0.0.tar.gz
- Upload date:
- Size: 26.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8294b7456bea013ed67f4e3a3568127cc6ad21df083b87c838d9864eea0d8e33 |
|
MD5 | 8daa013823b750b2d8cdb1e06678eaaa |
|
BLAKE2b-256 | a1e245d3e6c65837ddf81f3166ace6348b1a2dc4fa6c1405ad1018862f4e9d28 |
File details
Details for the file boxsers-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: boxsers-1.0.0-py3-none-any.whl
- Upload date:
- Size: 34.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.6.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3668a80bebbe4b5ee286f3d9be559805822ac28f3d582fb6d733b170eb65bb2 |
|
MD5 | 847caf82652f53ab3f8e48824fc0598a |
|
BLAKE2b-256 | be8130424c7bd4cbe6ee4ed5962172b6be07e352651c1aacf9210a604ca016ef |