/odenlls

Non-linear least squares fitting using ODEs for chemical kinetics

Primary LanguagePythonMIT LicenseMIT

odenlls

odenlls is a Python3 library for simulating and fitting chemical kinetics data. These two pieces are accomplished as follows:

  1. Kinetic models are simulated using numerical simulations of the ordinary differential equations (ODE) for an arbitrary set of chemical reactions. Rate constants and starting concentrations can be varied arbitrarily to observe the predicted changes in concentration with time.

  2. These ODE simulations are fit to experimental kinetic data using non-linear least squares (nlls) methods. These fits yield the best-fit rate constant and concentration parameters for a given set of kinetic data.

Dependencies

This package consists of a single Python module file that was developed using Python 3.6; however, it should work on most other Python 3 versions with the appropriate external dependencies listed below.

  • Numpy >= 1.13.3
  • scipy>=1.0.0
  • pandas>=0.21.1
  • matplotlib>=2.1.1

The package versions above were used during development. Older/newer versions should work as well. Older versions of these modules may work as well, but you may want to run the py.test unit tests (coming soon) to ensure they work properly.

Installation

odenlls is installable using either Python's pip package manager or conda, the package manager for the Anaconda Python distribution.

To get the latest release using pip, use the following command:

$ pip install odenlls

Or to install from the latest GitHub commit:

$ pip install git+https://github.com/rnelsonchem/odenlls.git

Using conda, the following command will install the latest release of this package.

$ conda install -c rnelsonchem odenlls

Usage

The odenlls module capabilities are demonstrated in several Jupyter notebooks, which are located in the "examples" directory on the GitHub project page. A summary of these notebooks is as follows:

  • The TLDR Notebook is a very brief overview of odenlls functionality with very little explanatory text.

  • Notebook 1 demonstrates simulation of a simple first-order irreversible reaction.

  • In Notebook 2, reaction data fitting is shown for a user-generated set of first-order irreversible reaction data.

  • Notebook 3 highlights fitting of a real-world data set using a series of reversible first-order reactions.