Skip to main content

Perform baseline removal, baseline correction and baseline substraction for raman spectra using Modpoly, ImodPoly and Zhang fit. Returns baseline-subtracted spectrum

Project description

What is it?

Python package for baseline correction. It has below 3 methods for baseline removal from spectra.

  • Modpoly Modified multi-polynomial fit [1].

It has 3 parameters.

  1. degree, it refers to polynomial degree, and default value is 2.

  2. repitition, it refers to how many iterations to run, and default value is 100.

  3. gradient, it refers to gradient for polynomial loss, default is 0.001. It measures incremental gain over each iteration. If gain in any iteration is less than this, further improvement will stop.

  • IModPoly Improved ModPoly[2], which addresses noise issue in ModPoly.

It has 3 parameters.

  1. degree, it refers to polynomial degree, and default value is 2.

  2. repitition, it refers to how many iterations to run, and default value is 100.

  3. gradient, it refers to gradient for polynomial loss, and default is 0.001. It measures incremental gain over each iteration. If gain in any iteration is less than this, further improvement will stop.

  • ZhangFit Zhang fit[3], which doesn’t require any user intervention and prior information, such as detected peaks.

It has 3 parameters.

  1. lambda_, it can be adjusted by user. The larger lambda is, the smoother the resulting background.

  2. porder refers to adaptive iteratively reweighted penalized least squares for baseline fitting. Default value is 1.

  3. repitition is how many iterations to run, and default value is 15.

We can use the python library to process spectral data through either of the techniques ModPoly, IModPoly or Zhang fit algorithm for baseline subtraction. The functions will return baseline-subtracted spectrum.

How to use it?

from BaselineRemoval import BaselineRemoval

input_array=[10,20,1.5,5,2,9,99,25,47]

polynomial_degree=2 #only needed for Modpoly and IModPoly algorithm

baseObj=BaselineRemoval(input_array)

Modpoly_output=baseObj.ModPoly(polynomial_degree)

Imodpoly_output=baseObj.IModPoly(polynomial_degree)

Zhangfit_output=baseObj.ZhangFit()

print('Original input:',input_array)

print('Modpoly base corrected values:',Modpoly_output)

print('IModPoly base corrected values:',Imodpoly_output)

print('ZhangFit base corrected values:',Zhangfit_output)

Original input: [10, 20, 1.5, 5, 2, 9, 99, 25, 47]

Modpoly base corrected values: [-1.98455800e-04  1.61793368e+01  1.08455179e+00  5.21544654e+00
  7.20210508e-02  2.15427531e+00  8.44622093e+01 -4.17691125e-03
  8.75511661e+00]

IModPoly base corrected values: [-0.84912125 15.13786196 -0.11351367  3.89675187 -1.33134142  0.70220645
 82.99739548 -1.44577432  7.37269705]

ZhangFit base corrected values: [ 8.49924691e+00  1.84994576e+01 -3.31739230e-04  3.49854060e+00
  4.97412948e-01  7.49628529e+00  9.74951576e+01  2.34940300e+01
  4.54929023e+01

Where to get it?

pip install BaselineRemoval

Dependencies

References

  1. Automated Method for Subtraction of Fluorescence from Biological Raman Spectra by Lieber & Mahadevan-Jansen (2003)
  2. Automated Autofluorescence Background Subtraction Algorithm for Biomedical Raman Spectroscopy by Zhao, Jianhua, Lui, Harvey, McLean, David I., Zeng, Haishan (2007)
  3. Baseline correction using adaptive iteratively reweighted penalized least squares by Zhi-Min Zhang, Shan Chena and Yi-Zeng Liang (2010)

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

BaselineRemoval-0.1.0.tar.gz (5.5 kB view details)

Uploaded Source

Built Distribution

BaselineRemoval-0.1.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file BaselineRemoval-0.1.0.tar.gz.

File metadata

  • Download URL: BaselineRemoval-0.1.0.tar.gz
  • Upload date:
  • Size: 5.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/58.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for BaselineRemoval-0.1.0.tar.gz
Algorithm Hash digest
SHA256 66f5e50134a2ba5b7e3c6dd4942ed827b9149e788f451c3985930ee61030a6d3
MD5 d10bdf5d478d3e9c61998492ee1ca80b
BLAKE2b-256 6a26fbbdc12f5dca2fecb5fead02047ec13ce44c8c018883a24407efc002dea9

See more details on using hashes here.

File details

Details for the file BaselineRemoval-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: BaselineRemoval-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/58.3.0 requests-toolbelt/0.9.1 tqdm/4.45.0 CPython/3.6.9

File hashes

Hashes for BaselineRemoval-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ba02bead168275bcb8d80e15a2fbc35addb55bd1b2b4237c0997a29cb26c52d3
MD5 a7e16be70b2ab4278bd204afdd450d29
BLAKE2b-256 45141f3845a1e2c386ff004a162d81619f958d5be6f874527f859d61c7751f04

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