Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

boxsers-1.0.0.tar.gz (26.2 kB view details)

Uploaded Source

Built Distribution

boxsers-1.0.0-py3-none-any.whl (34.0 kB view details)

Uploaded Python 3

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

Hashes for boxsers-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8294b7456bea013ed67f4e3a3568127cc6ad21df083b87c838d9864eea0d8e33
MD5 8daa013823b750b2d8cdb1e06678eaaa
BLAKE2b-256 a1e245d3e6c65837ddf81f3166ace6348b1a2dc4fa6c1405ad1018862f4e9d28

See more details on using hashes here.

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

Hashes for boxsers-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e3668a80bebbe4b5ee286f3d9be559805822ac28f3d582fb6d733b170eb65bb2
MD5 847caf82652f53ab3f8e48824fc0598a
BLAKE2b-256 be8130424c7bd4cbe6ee4ed5962172b6be07e352651c1aacf9210a604ca016ef

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page