Skip to main content

Fit exponential and harmonic functions using Chebyshev polynomials

Project description

Chebyfit is a Python library that implements the algorithms described in:

Analytic solutions to modelling exponential and harmonic functions using Chebyshev polynomials: fitting frequency-domain lifetime images with photobleaching. G C Malachowski, R M Clegg, and G I Redford. J Microsc. 2007; 228(3): 282-295. doi: 10.1111/j.1365-2818.2007.01846.x
Author:Christoph Gohlke
Organization:Laboratory for Fluorescence Dynamics. University of California, Irvine
License:BSD 3-Clause
Version:2020.1.1

Requirements

Revisions

2020.1.1
Remove support for Python 2.7 and 3.5. Update copyright.
2019.10.14
Support Python 3.8. Fix numpy 1type FutureWarning.
2019.4.22
Fix setup requirements.
2019.1.28
Move modules into chebyfit package. Add Python wrapper for _chebyfit C extension module. Fix static analysis issues in _chebyfit.c.

Examples

Fit two-exponential decay function:

>>> deltat = 0.5
>>> t = numpy.arange(0, 128, deltat)
>>> data = 1.1 + 2.2 * numpy.exp(-t / 33.3) + 4.4 * numpy.exp(-t / 55.5)
>>> params, fitted = fit_exponentials(data, numexps=2, deltat=deltat)
>>> numpy.allclose(data, fitted)
True
>>> params['offset']
array([1.1])
>>> params['amplitude']
array([[4.4, 2.2]])
>>> params['rate']
array([[55.5, 33.3]])

Fit harmonic function with exponential decay:

>>> tt = t * (2 * math.pi / (t[-1] + deltat))
>>> data = 1.1 + numpy.exp(-t / 22.2) * (3.3 - 4.4 * numpy.sin(tt)
...                                          + 5.5 * numpy.cos(tt))
>>> params, fitted = fit_harmonic_decay(data, deltat=0.5)
>>> numpy.allclose(data, fitted)
True
>>> params['offset']
array([1.1])
>>> params['rate']
array([22.2])
>>> params['amplitude']
array([[3.3, 4.4, 5.5]])

Fit experimental time-domain image:

>>> data = numpy.fromfile('test.b&h', dtype='float32').reshape((256, 256, 256))
>>> data = data[64:64+64]
>>> params, fitted = fit_exponentials(data, numexps=1, numcoef=16, axis=0)
>>> numpy.allclose(data.sum(axis=0), fitted.sum(axis=0))
True

Project details


Download files

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

Files for chebyfit, version 2020.1.1
Filename, size File type Python version Upload date Hashes
Filename, size chebyfit-2020.1.1-cp36-cp36m-win32.whl (28.8 kB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size chebyfit-2020.1.1-cp36-cp36m-win_amd64.whl (27.2 kB) File type Wheel Python version cp36 Upload date Hashes View
Filename, size chebyfit-2020.1.1-cp37-cp37m-win32.whl (29.2 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chebyfit-2020.1.1-cp37-cp37m-win_amd64.whl (27.4 kB) File type Wheel Python version cp37 Upload date Hashes View
Filename, size chebyfit-2020.1.1-cp38-cp38-win32.whl (29.2 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chebyfit-2020.1.1-cp38-cp38-win_amd64.whl (27.4 kB) File type Wheel Python version cp38 Upload date Hashes View
Filename, size chebyfit-2020.1.1.tar.gz (15.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page