Control analysis of SBML models
Project description
controlSBML
controlSBML
is a python packag that assists with control engineering of biological systems that are characterized by models in
the Systems Biology Markup Language (SBML), a community standard for representing
models of biological models, especially chemical reaction networks.
controlSBML
provides the following:
- Read SBML models, viewing candidate inputs, and outputs, and running simulations.
- System identification, including the creation of (SISO) transfer function objects from the python control systems library
- Creating Antimony simulations of closed loop systems
- Design of closed loop systems
Examples of usage are in this directory
Installation
pip install controlSBML
To find the current version:
import controlSBML as ctl
ctl.__version__
Version History
- 1.2.1 5/23/2024
- Eliminated the save_path feature since it conflicted with usage in colab.
- 1.2.0 5/22/2024
- Implemented differential control
- Extended noise model to include lognormal distribution, offset, and slope
- Implemented several examples, some of which are based on student projects
- Two algorithms for fitting. gpz fits the transfer function in order by gain (g), poles (p), zeroes (z). poly fits a polynomial in s to the simulations.
- 1.1.03 1/20/2024
- Better error checking
- API uses parameter names kI, kP, kF
- 1.1.02 12/27/2023
- Fix bug in dependencies. Update header documentation.
- 1.1.01 12/27/2023
- Complete change in the architecture. Instead of using NonlinearIOSystems in the python control package, controlSBML generates Antimony code to implement staircase functions and closed loops.
- Creation of a consistent API.
- 1.0.11 3/1/2023
- Ensure that state variables are never negative.
- 1.0.10
- Fixed bug with unequally spaced times
- Fixed bug so can start a simulate at a time other than 0 and the correct initial state is obtained.
- 1.0.9 2/14/2023
- Use temporary directory for plots created in tests
- 1.0.8 2/14/2023
- Avoid error if Jacobian cannot be calculated.
- Better handling of warnings
- 1.0.7 2/11/2023
- Add missing dependency (lmfit)
- 1.0.6 2/11/2023
- ControlSBML.makeSISOTransferFunctionBuilder creates a SISOTransferFunctionBuilder object. The plotStaircaseResponse method of SISOTransferFuntionBuilder indicates the controlability of an input for the output. fitTransferFunction fits a transfer function to the outputs produced by a staircase input.
- plotStaircaseResponse shows effect of a staircase input on outputs
- Remove cruft from effector_dct
- Added plot option writefig which takes arguments, True, False, str (path)
- 1.0.5 1/22/2023
- Fix bugs in NonlinearIOSystem relating to states and calculations in updfcn.
- Changes to documentation
- 1.0.4
- Fix bug so that makeStateSpace honors the time argument
- Updated Sphinx documentation
- Fix bug with version
- 1.0.3
- Fix bug with file path in _version
- 1.0.1
- src directory contains all pcakages
- 1.0.0
- Redefined inputs as species adjustment (positive or negative)
- ControlSBML.equals has an option to do a "quick check"
- Deprecated the use of an effector dictionary
- 0.2.23 12/18/2022
- Updates for using toml files
- 0.2.22
- IOSystemFactor.makeStateFilter creates a vector of filters between 2 systems
- SISOClosedLoopSystem.makeFullStateController creates multiple filters if kf != 0
- 0.2.21 5/30/2022
- NonlinearIOSystem creates a logger.
- SISOClosedLoopSystem.makeFullStateSystem has option for filters
- Changed legend of step respoinse plot to use "reference" instead of "step"
- 0.2.20 5/27/2022
- Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't handle nan values.
- 0.2.19 5/27/2022
- Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't handle nan values.
- 0.2.18 5/26/2022
- Fix small bug
- 0.2.17 5/26/2022
- Deleted the callback_log implemented in 0.2.14.
- 0.2.16 5/24/2022
- Refactored SISOClosedLoopSystem
- Implemented SISOClosedLoopSystem.makeFullStateController
- Fixed bug with makePIDController where ki, kd are ineffective.
- 0.2.15 5/21/2022
- Fix bug in reverting the semantics of control input to be setting the species as a static.
- 0.2.14 5/11/2022
- Provide callback for each manufactured IOsystemFactory
- Reverted semantics of control input to a NonlinearIOSystem to be setting the value rather than adding or subtracting a value.
- 0.2.13 5/9/2022
- SISOClosedLoopSystem provides a way to construct a closed loop system for an SBML model. The system has a PID controller and a filter.
- IOSysemFactory has a log
- 0.2.12 5/3/2022
- IOSystemFactory creates IOSystem objects for Adder, Multiplier, Filter, PIDController, Sinusoid, Constant, Passthru
- State inputs add to state, not replace the state value.
- 0.2.11 4/25/2022
- Fix bug in calculating transfer function that incorrectly considered state
- 0.2.9 4/19/2022
- Fluxes can be outputs
- Construction of transfer function includes atol option for simplification
- 0.2.8 4/17/2022
- Added options to plotTrueModel
- Updated Using ControlSBML with an example of doing feedback
- 0.2.7 4/11/2022
- Species can be inputs
- makeStateSpace, makeTransferFunction have timepoint argument
- 0.2.6 4/10/2020
- Default for constructor: is_reduced=False
- makeTransferFunction
- 0.2.5 4/8/2022
- Improve performance by not recalculating Jacobian
- Fix bugs related to implementation of is_reduced as applied on NonlinearIOSystem
- 0.2.4 3/31/2024 - Create reduced A matrix
- mat2Df - fixed bug with printing column names
- Create reduced A matrix for makeStateSpace so that A is non-singular Default output_names is all floating species
- 0.2.3, 3/22/2022 - Bug fix for mat2DF
- 0.2.2, 3/22/2022 - Bug fix
- 0.2.1, 3/22/2022 - Bug fix
- 0.2.0, 3/22/2022 - Version for class
- ppMat - pretty print a matrix
- plotMat - display a heatmap for a matrix
- mat2TS - convert a matrix to a timeseries
- mat2DF - convert a matrix to a dataframe
- 0.1.6, 3/16/2022
Using-Control-SBML.ipynb
has an example of doing feedback control design withcontrolSBML
.control.NonlinearIOSystem
wraps an SBML model. Can be used in the construction of systems usingcontrol.interconnect
and in simulations usingcontrol.input_output_response
. One caveat is that this may work poorly for models implemented as SBML rate rules.
- 0.1.5, 3/5/2022.
- More options for plotting and simulations
- plotBode
- Inputs are identified by reaction Ids
- 0.1.3, 2/13/2022. First release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
controlsbml-1.2.1.tar.gz
(120.1 kB
view details)
Built Distribution
controlSBML-1.2.1-py3-none-any.whl
(119.6 kB
view details)
File details
Details for the file controlsbml-1.2.1.tar.gz
.
File metadata
- Download URL: controlsbml-1.2.1.tar.gz
- Upload date:
- Size: 120.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b5f4c761b5fb9b5b304d0edfe085224edcbb2d1af3f246adda3713d0d73db1d |
|
MD5 | e580142c275c718e9247b38c50fd3176 |
|
BLAKE2b-256 | 052dae35e4d948d3182dcf31d8679a319971fc89f41c788c1a233d61a0c1c5c4 |
File details
Details for the file controlSBML-1.2.1-py3-none-any.whl
.
File metadata
- Download URL: controlSBML-1.2.1-py3-none-any.whl
- Upload date:
- Size: 119.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 449a5d69e159d4d41c216b4044c29608fd545aea2470cec8172bb9fcae46e388 |
|
MD5 | 9671fadc567bd87767d0a4d6d3c62b24 |
|
BLAKE2b-256 | d1019a1e8620e78fc21d6acafba5ffc39f944858e3a8ec7827bf3644fef19aa4 |