Development repository for Kipet.

salvadorgarciamunoz, updated 🕥 2022-08-23 18:46:37

KIPET

KIPET is a Python package designed to simulate, and estimate parameters from chemical reaction systems through the use of maximum likelihood principles, large-scale nonlinear programming and discretization methods.

  • Documentation: - https://kipet.readthedocs.io
  • Examples and Tutorials - https://github.com/kwmcbride/kipet_examples
  • Source code: - https://github.com/salvadorgarciamunoz/kipet
  • Bug reports: - https://github.com/salvadorgarciamunoz/kipet/issues

It has the following functionality:

  • Simulate a reactive system described with DAEs
  • Solve the DAE system with collocation methods
  • Pre-process data
  • Estimate variances of noise from the model and measurements
  • Estimate kinetic parameters from spectra or concentration data across 1 or multiple experiments with different conditions
  • Estimate confidence intervals of the estimated parameters
  • Able to estimate variances and parameters for problems where there is dosing / inputs into the system
  • Provide a set of tools for estimability analysis
  • Allows for wavelength selection of most informative wavelengths from a dataset
  • Visualize results


Installation

There are many options for installing KIPET.

PyPi


A packaged version of KIPET can be installed using:

pip install kipet

If you run into errors when installing KIPET using pip (such as when installing into a clean virtual environment), try installing the following packages beforehand:

pip install Cython numpy six
pip install kipet

Anaconda

Anaconda-Server Badge

If you are using Anaconda, KIPET can be installed using:

conda install -c kwmcbride kipet

The anaconda packages have the benefit of including pynumero ready to go, which is needed for some of the methods included in KIPET. You will need to compile these on your own if you choose to install KIPET using a different method. See the pynumero readme for more information. Otherwise, you can also use k_aug for these methods as well.

Poetry

You may also install KIPET with poetry:

poetry add kipet

GitHub

Additionally, KIPET may be installed directly from the repository (for example, if using poetry, simply install the desired branch (#branch) in the following manner):

poetry add git+https://github.com/salvadorgarciamunoz/kipet#master

Naturally you can simply clone or download the repository if you wish.

cd <installation directory>
git clone https://github.com/salvadorgarciamunoz/kipet.git
cd kipet
python setup.py install

Ipopt and k_aug

To use KIPET to its full potential, you should install Ipopt and k_aug. Ipopt is a popular solver for non-linear programs and k_aug is a new method to calculate sensitivities from the KKT matrix. The latter is required if covariances are to be calculated.

TODO: add links to the installation of each here.

To help ease the installation of these software tools, there are two scripts written for Linux OS (Debian) for installing Ipopt and k_aug. These are available here https://github.com/kwmcbride/Linux-Setup-Scripts

Examples and Tutorials

All of the example problems can be easily downloaded from the examples repository:

cd <example directory>
git clone https://github.com/kwmcbride/kipet_examples.git

To validate your installation, you can now run the test script included with the examples:

cd <example directory>/kipet_examples
python run_examples.py


License

GPL-3

Authors

- Kevin McBride - Carnegie Mellon University
- Kuan-Han Lin - Carnegie Mellon University
- Christina Schenk - Basque Center for Applied Mathematics
- Michael Short - University of Surrey
- Jose Santiago Rodriguez - Purdue University
- David M. Thierry - Carnegie Mellon University
- Salvador García-Muñoz - Eli Lilly
- Lorenz T. Biegler - Carnegie Mellon University

Please cite


  • C. Schenk, M. Short, J.S. Rodriguez, D. Thierry, L.T. Biegler, S. García-Muñoz, W. Chen (2020) Introducing KIPET: A novel open-source software package for kinetic parameter estimation from experimental datasets including spectra, Computers & Chemical Engineering, 134, 106716. https://doi.org/10.1016/j.compchemeng.2019.106716

  • M. Short, L.T. Biegler, S. García-Muñoz, W. Chen (2020) Estimating variances and kinetic parameters from spectra across multiple datasets using KIPET, Chemometrics and Intelligent Laboratory Systems, https://doi.org/10.1016/j.chemolab.2020.104012

  • M. Short, C. Schenk, D. Thierry, J.S. Rodriguez, L.T. Biegler, S. García-Muñoz (2019) KIPET–An Open-Source Kinetic Parameter Estimation Toolkit, Computer Aided Chemical Engineering, 47, 299-304.

Issues

Bump nbconvert from 6.1.0 to 6.5.1

opened on 2022-08-23 18:46:33 by dependabot[bot]

Bumps nbconvert from 6.1.0 to 6.5.1.

Release notes

Sourced from nbconvert's releases.

Release 6.5.1

No release notes provided.

6.5.0

What's Changed

New Contributors

Full Changelog: https://github.com/jupyter/nbconvert/compare/6.4.5...6.5

6.4.3

What's Changed

New Contributors

Full Changelog: https://github.com/jupyter/nbconvert/compare/6.4.2...6.4.3

6.4.0

What's Changed

New Contributors

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Bump mistune from 0.8.4 to 2.0.3

opened on 2022-07-29 23:35:17 by dependabot[bot]

Bumps mistune from 0.8.4 to 2.0.3.

Release notes

Sourced from mistune's releases.

Version 2.0.2

Fix escape_url via lepture/mistune#295

Version 2.0.1

Fix XSS for image link syntax.

Version 2.0.0

First release of Mistune v2.

Version 2.0.0 RC1

In this release, we have a Security Fix for harmful links.

Version 2.0.0 Alpha 1

This is the first release of v2. An alpha version for users to have a preview of the new mistune.

Changelog

Sourced from mistune's changelog.

Changelog

Here is the full history of mistune v2.

Version 2.0.4


Released on Jul 15, 2022
  • Fix url plugin in &lt;a&gt; tag
  • Fix * formatting

Version 2.0.3

Released on Jun 27, 2022

  • Fix table plugin
  • Security fix for CVE-2022-34749

Version 2.0.2


Released on Jan 14, 2022

Fix escape_url

Version 2.0.1

Released on Dec 30, 2021

XSS fix for image link syntax.

Version 2.0.0


Released on Dec 5, 2021

This is the first non-alpha release of mistune v2.

Version 2.0.0rc1

Released on Feb 16, 2021

Version 2.0.0a6


</tr></table> 

... (truncated)

Commits
  • 3f422f1 Version bump 2.0.3
  • a6d4321 Fix asteris emphasis regex CVE-2022-34749
  • 5638e46 Merge pull request #307 from jieter/patch-1
  • 0eba471 Fix typo in guide.rst
  • 61e9337 Fix table plugin
  • 76dec68 Add documentation for renderer heading when TOC enabled
  • 799cd11 Version bump 2.0.2
  • babb0cf Merge pull request #295 from dairiki/bug.escape_url
  • fc2cd53 Make mistune.util.escape_url less aggressive
  • 3e8d352 Version bump 2.0.1
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Bump ujson from 4.0.2 to 5.4.0

opened on 2022-07-05 22:32:12 by dependabot[bot]

Bumps ujson from 4.0.2 to 5.4.0.

Release notes

Sourced from ujson's releases.

5.4.0

Added

Fixed

5.3.0

Added

Changed

Fixed

5.2.0

Added

Fixed

5.1.0

Changed

... (truncated)

Commits
  • 9c20de0 Merge pull request from GHSA-fm67-cv37-96ff
  • b21da40 Fix double free on string decoding if realloc fails
  • 67ec071 Merge pull request #555 from JustAnotherArchivist/fix-decode-surrogates-2
  • bc7bdff Replace wchar_t string decoding implementation with a uint32_t-based one
  • cc70119 Merge pull request #548 from JustAnotherArchivist/arbitrary-ints
  • 4b5cccc Merge pull request #553 from bwoodsend/pypy-ci
  • abe26fc Merge pull request #551 from bwoodsend/bye-bye-travis
  • 3efb5cc Delete old TravisCI workflow and references.
  • 404de1a xfail test_decode_surrogate_characters() on Windows PyPy.
  • f7e66dc Switch to musl docker base images.
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Bump numpy from 1.21.0 to 1.22.0

opened on 2022-06-22 04:55:30 by dependabot[bot]

Bumps numpy from 1.21.0 to 1.22.0.

Release notes

Sourced from numpy's releases.

v1.22.0

NumPy 1.22.0 Release Notes

NumPy 1.22.0 is a big release featuring the work of 153 contributors spread over 609 pull requests. There have been many improvements, highlights are:

  • Annotations of the main namespace are essentially complete. Upstream is a moving target, so there will likely be further improvements, but the major work is done. This is probably the most user visible enhancement in this release.
  • A preliminary version of the proposed Array-API is provided. This is a step in creating a standard collection of functions that can be used across application such as CuPy and JAX.
  • NumPy now has a DLPack backend. DLPack provides a common interchange format for array (tensor) data.
  • New methods for quantile, percentile, and related functions. The new methods provide a complete set of the methods commonly found in the literature.
  • A new configurable allocator for use by downstream projects.

These are in addition to the ongoing work to provide SIMD support for commonly used functions, improvements to F2PY, and better documentation.

The Python versions supported in this release are 3.8-3.10, Python 3.7 has been dropped. Note that 32 bit wheels are only provided for Python 3.8 and 3.9 on Windows, all other wheels are 64 bits on account of Ubuntu, Fedora, and other Linux distributions dropping 32 bit support. All 64 bit wheels are also linked with 64 bit integer OpenBLAS, which should fix the occasional problems encountered by folks using truly huge arrays.

Expired deprecations

Deprecated numeric style dtype strings have been removed

Using the strings "Bytes0", "Datetime64", "Str0", "Uint32", and "Uint64" as a dtype will now raise a TypeError.

(gh-19539)

Expired deprecations for loads, ndfromtxt, and mafromtxt in npyio

numpy.loads was deprecated in v1.15, with the recommendation that users use pickle.loads instead. ndfromtxt and mafromtxt were both deprecated in v1.17 - users should use numpy.genfromtxt instead with the appropriate value for the usemask parameter.

(gh-19615)

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Bump paramiko from 2.7.2 to 2.10.1

opened on 2022-03-29 22:17:39 by dependabot[bot]

Bumps paramiko from 2.7.2 to 2.10.1.

Commits
  • 286bd9f Cut 2.10.1
  • 4c491e2 Fix CVE re: PKey.write_private_key chmod race
  • aa3cc6f Cut 2.10.0
  • e50e19f Fix up changelog entry with real links
  • 02ad67e Helps to actually leverage your mocked system calls
  • 29d7bf4 Clearly our agent stuff is not fully tested yet...
  • 5fcb8da OpenSSH docs state %C should also work in IdentityFile and Match exec
  • 1bf3dce Changelog enhancement
  • f6342fc Prettify, add %C as acceptable controlpath token, mock gethostname
  • 3f3451f Add to changelog
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Bump pillow from 8.2.0 to 9.0.1

opened on 2022-03-12 01:07:30 by dependabot[bot]

Bumps pillow from 8.2.0 to 9.0.1.

Release notes

Sourced from pillow's releases.

9.0.1

https://pillow.readthedocs.io/en/stable/releasenotes/9.0.1.html

Changes

  • In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [@​radarhere, @​hugovk]
  • Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]

9.0.0

https://pillow.readthedocs.io/en/stable/releasenotes/9.0.0.html

Changes

... (truncated)

Changelog

Sourced from pillow's changelog.

9.0.1 (2022-02-03)

  • In show_file, use os.remove to remove temporary images. CVE-2022-24303 #6010 [radarhere, hugovk]

  • Restrict builtins within lambdas for ImageMath.eval. CVE-2022-22817 #6009 [radarhere]

9.0.0 (2022-01-02)

  • Restrict builtins for ImageMath.eval(). CVE-2022-22817 #5923 [radarhere]

  • Ensure JpegImagePlugin stops at the end of a truncated file #5921 [radarhere]

  • Fixed ImagePath.Path array handling. CVE-2022-22815, CVE-2022-22816 #5920 [radarhere]

  • Remove consecutive duplicate tiles that only differ by their offset #5919 [radarhere]

  • Improved I;16 operations on big endian #5901 [radarhere]

  • Limit quantized palette to number of colors #5879 [radarhere]

  • Fixed palette index for zeroed color in FASTOCTREE quantize #5869 [radarhere]

  • When saving RGBA to GIF, make use of first transparent palette entry #5859 [radarhere]

  • Pass SAMPLEFORMAT to libtiff #5848 [radarhere]

  • Added rounding when converting P and PA #5824 [radarhere]

  • Improved putdata() documentation and data handling #5910 [radarhere]

  • Exclude carriage return in PDF regex to help prevent ReDoS #5912 [hugovk]

  • Fixed freeing pointer in ImageDraw.Outline.transform #5909 [radarhere]

... (truncated)

Commits
  • 6deac9e 9.0.1 version bump
  • c04d812 Update CHANGES.rst [ci skip]
  • 4fabec3 Added release notes for 9.0.1
  • 02affaa Added delay after opening image with xdg-open
  • ca0b585 Updated formatting
  • 427221e In show_file, use os.remove to remove temporary images
  • c930be0 Restrict builtins within lambdas for ImageMath.eval
  • 75b69dd Dont need to pin for GHA
  • cd938a7 Autolink CWE numbers with sphinx-issues
  • 2e9c461 Add CVE IDs
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language You can disable automated security fix PRs for this repo from the [Security Alerts page](https://github.com/salvadorgarciamunoz/kipet/network/alerts).

Releases

New version of KIPET 2021-02-16 20:11:49

We are moving back the release numbers to coincide with the PyPi packages that are now available. This is why we now use 0.1.3 instead of continuing from the 1.1.0 from almost two years ago.

The code is ready, but the documentation will be coming soon. Once the documentation is complete and all of the older methods that have not yet been updated to the new format have been renewed, I will be using version 1.0.0 again.

Stable Release with Multiple Experimental Datasets 2020-03-21 16:26:46

New KIPET Version 1.1.0!

New stable release, which includes the features and code of the latest KIPET publication.

Major Features:

Multiple Experimental Datasets

The major addition to the KIPET package since the last release is the inclusion of the MultipleExperimentsEstimator class that allows for multiple experimental datasets to be analyzed simultaneously. The class allows for different models or the same model to be inputted, with parameters that are local or global to the specific datasets automatically detected. The class contains functions to run separate variance estimation upon each dataset that can also be used to initialize the problem. In addition the parameter estimation can be done simultaneously across multiple datasets and models for both spectra and concentration problems with or without shared spectra between species.

Among some of the additional useful features are:

  • Added initialization techniques for parameter estimation from multiple experiments: Initialize from simulation (FESimulator and PyomoSimulator) and previous results files as is possible in single experiment cases (mostly for concentration data).
  • Initial values of complementary states, as well as regular states can now be estimated, and their confidence intervals determined.

New Variance Estimation Method

The new variance estimation method described in the second KIPET paper is also included, providing a more rigorous approach to the variance estimation.

Minor Features:

  • Made changes such that Casadi can still be used with new syntax from last merge.
  • Added option to rerun failed parameter estimation in estimability analysis (running according to ranking) with additional IPOPT options.
  • Parameter estimation from multiple experiments is working now with new version of k_aug using ma57.
  • New ability to read data directly from Mettler Toledo csv files, removing negative values through either setting to zero or by performing a baseline shift (See data_tools).
  • A host of new examples to showcase the multiple experiments estimation, new documentation, as well as a few minor bug fixes.

Stable release including H/UPLC data technique 2019-09-25 14:24:44

  • Includes new feature to exclude the C-Z term and only perform parameter estimation using the measurement error. 2 new examples show how to do this and including confidences with k_aug
  • Also a new requirements.txt file that should be good across Python 2.7 and Python 3.5 and up
  • A new KIPET documentation via readthedocs to make it easier to collaborate and host and also to adhere to Python package standards
  • Contains the new variance estimation techniques with new examples.
  • Includes some new tools to analyze the pseudo-equivalency matrix, although these tools will still be improved to be more general.
  • Addition of option to take H/UPLC data with just liquids or liquids and solids into account
  • Addition of option for quadratic penalty term for penalizing values deviating from the defined optimal parameter values in the objective of the parameter estimation problem
  • Addition of option to read values for mutable parameter from file, interpolate and use in the modeling context
  • Addition of option to write eigenvalues of reduced Hessian automatically to a file
  • Fixed bugs and other small enhancements

Stable release with new features 2019-06-03 21:38:06

New KIPET Version 1.0.99!

New stable release, which coincides with the first paper submission, includes a few useful new features as well as a slew of smaller features for convenience, slight syntax changes, as well as new documentation.

Major Features

Wavelength selection based on lack of fit

Useful tool to firstly find which wavelength correlate to the concentration profiels the most and then tools to remove wavelengths that are the least correlated to the concentration profile. Helps reduce problem sizes as well as increase the lack of fit. Examples and documentation included.

Diagnostic tools

Added in a basic PCA feature and SVD as well as the ability to easily identify the lack of fit of the solution.

Upgrade to Python 3.7 and Pyomo 5.6

Number of fixes to include new versions of dependencies.

Minor Features

Can now fix the device variance in VarianceEstimator

Useful for problems where the variance estimation algorithm struggles to converge to useful variance values, putting too much variance into the instrument. Also useful if manufacturer provides variance of instrument.

Can now read spectra directly from device CSV

While it doesn't allow data to be read from other file types, it automatically transforms timestamped data into seconds and also can be used to remove negative values

New data_tools

New data tools for baseline shift, removing negative values and removing certain wavelengths to decrease problem size.

Added ability to set bounds on certain profiles

This is a really useful new feature for when we know of certain peak behaviour or know that a certain species' concentration does not go below a certain value.

New structure for non-absorbing species

A new structure was implemented for the case with non-absorbing species. They are not included in the S matrix any more and are taken out of the first term in the objective of the parameter estimation problem. The user interface is still the same.

Warmstart options now included

When solving the optimization problem the user can now use the ipopt warmstart option as well, such that we can use the dual variables from a previous problem for the solution of the current problem.

New installation validation script and setup.py

Can now ask to report time spent on variance estimator and parameter estimator

New examples and documentation

Bug fixes

  • Added using ipopt for least squares into a standard example as it is actually faster and users did not have an example of its implementation.

  • fixed issue in variance estimator where solver options were not passed onto suboptimizations correctly

  • spotted the use of the wrong keyword in example for variance estimation ("solver_options" instead of "solver_opts"

  • spotted and fixed issue where negative D values were not being sensed by the VarianceEstimator and therefore the S matrix was still bounded to 0.

  • Estimability analysis for concentrations is now fully functional.

  • Lack of fit tool works for non-absorbing species as well.

New stable release 2018-12-13 15:53:23

The first major announced/labelled release since May. This new version includes a host of new features and tutorial examples, as well as being far more stable, user-friendly, and customizable. I will list some of the additions since the previous release here. There may be others that have been forgotten, however these are all included in the documentation.

Major Features

Inclusion of dosing

It is now possible to do both variance and parameter estimation in systems with dosing using the fe_factory to do the initialization and problem setup. Examples showing how this can be implemented are included:

'Ex_2_estimationfefactoryTempV.py' 'Ex_5_sim_fe_by_fe_multjumpsandinputs.py'

Pre-processing

We can now use Kipet to perform data pre-processing, including the Savitzky-Golay filter, Standard Normal Variate, and Multiplicative Scatter Correction. Examples included:

'Ex_2_estimation_filter.py' 'Ex_2_estimation_filter_deriv.py' 'Ex_2_estimation_filter_msc.py' 'Ex_2_estimation_filter_snv.py'

Inclusion of parameter estimation for problems with concentration data

Kipet can now do estimation of kinetic parameters for problems where only concentration data is provided. New examples are found in: 'Ex_7_concentration_input.py' 'Ex_7_conc_input_conf.py" 'Ex_7_conc_input_conf_k_aug.py'

Inclusion of estimability analysis for problems with concentration data.

Adding of a new class for estimability analysis, EstimabilityAnalyzer. EstimabilityAnalyzer includes new tools to perform the estimability using the method of Wu et al. (2011) for problems that have concentration data. The method first does parameter ranking using the method of Yao (2003) using scaled matrix sensitivities obtained at the initial parameter values using k_aug. After this, the list of ranked parameters is used to calculate the number of parameters to estimate using the method of Wu et al, where a sequence of parameter estimation problems is solved using the ParameterEstimator with different numbers of parameters fixed and variable. These simplified models and the extended model are compared using the mean squared error. Finally a list of which parameters should be made variable and which should be fixed is returned to the user. Examples that show how this feature works and is used: 'Ex_8_estimability.py' 'Ex_9_estimability_with_problem_gen.py'

Minor Features

Non-reacting components / interfering components

This is done for two situations. First where the interfering species' absorbance is not known ahead of time. This example is found in: 'Ex_2_abs_not_react.py'

The second example is when the interfering component is known ahead of time. This can be shown in: 'Ex_2_abs_known_non_react.py'

setting species' absorbances easily

With this, it is now also possible to fix any species' absorbance easily using set_known_absorbing_species() function. It is possible for cases where species are reacting or not, however care should be taken in these cases, especially when using the confidence intervals as fixing these absorbances results in fewer degrees of freedom.

Adding noise to simulated data

New function add_noise_to_signal() adds random normally distributed noise to any dataframe input.

k_aug can be used for confidences

k_aug has now been integrated for providing the reduced hessian information from Ipopt output. The utility of k_aug and its preference over sIpopt is shown in a number of examples and the additional advantage that k_aug provides, that of easily providing sensitivity information is utilized in the estimability analysis examples.

Bug fixes for aspirin and Michael's examples

kipet @may 2018-05-18 18:57:22

This release includes: - Fixed several bugs - Comprehensible unit tests. - Lambda selection - fe_factory.

Salvador Garcia-Munoz

Visiting Professor at Imperial College London Scientist at Eli Lilly

GitHub Repository