Package: controlSBML
controlSBMLcontrolSBMLis a python packag that assists with control engineering of biological systems that are characterized by models in
theSystems Biology Markup Language (SBML), a community standard for representing
models of biological models, especially chemical reaction networks.controlSBMLprovides 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 libraryCreating Antimony simulations of closed loop systemsDesign of closed loop systemsExamples of usage are in thisdirectoryInstallationpip install controlSBMLTo find the current version:import controlSBML as ctl
ctl.__version__Version History1.1.03 1/20/2024Better error checkingAPI uses parameter names kI, kP, kF1.1.02 12/27/2023Fix bug in dependencies. Update header documentation.1.1.01 12/27/2023Complete 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/2023Ensure that state variables are never negative.1.0.10Fixed bug with unequally spaced timesFixed bug so can start a simulate at a time other than 0 and the correct initial state is obtained.1.0.9 2/14/2023Use temporary directory for plots created in tests1.0.8 2/14/2023Avoid error if Jacobian cannot be calculated.Better handling of warnings1.0.7 2/11/2023Add missing dependency (lmfit)1.0.6  2/11/2023ControlSBML.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 outputsRemove cruft from effector_dctAdded plot option writefig which takes arguments, True, False, str (path)1.0.5  1/22/2023Fix bugs in NonlinearIOSystem relating to states and calculations in updfcn.Changes to documentation1.0.4Fix bug so that makeStateSpace honors the time argumentUpdated Sphinx documentationFix bug withversion1.0.3Fix bug with file path in _version1.0.1src directory contains all pcakages1.0.0Redefined inputs as species adjustment (positive or negative)ControlSBML.equals has an option to do a "quick check"Deprecated the use of an effector dictionary0.2.23 12/18/2022Updates for using toml files0.2.22IOSystemFactor.makeStateFilter creates a vector of filters between 2 systemsSISOClosedLoopSystem.makeFullStateController creates multiple filters if kf != 00.2.21 5/30/2022NonlinearIOSystem creates a logger.SISOClosedLoopSystem.makeFullStateSystem has option for filtersChanged legend of step respoinse plot to use "reference" instead of "step"0.2.20 5/27/2022Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't
handle nan values.0.2.19 5/27/2022Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't
handle nan values.0.2.18 5/26/2022Fix small bug0.2.17 5/26/2022Deleted the callback_log implemented in 0.2.14.0.2.16 5/24/2022Refactored SISOClosedLoopSystemImplemented SISOClosedLoopSystem.makeFullStateControllerFixed bug with makePIDController where ki, kd are ineffective.0.2.15 5/21/2022Fix bug in reverting the semantics of control input to be setting the species
as a static.0.2.14  5/11/2022Provide callback for each manufactured IOsystemFactoryReverted semantics of control input to a NonlinearIOSystem to be
setting the value rather than adding or subtracting a value.0.2.13 5/9/2022SISOClosedLoopSystem 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 log0.2.12 5/3/2022IOSystemFactory creates IOSystem objects for Adder, Multiplier,
Filter, PIDController, Sinusoid, Constant, PassthruState inputs add to state, not replace the state value.0.2.11 4/25/2022Fix bug in calculating transfer function that incorrectly considered state0.2.9 4/19/2022Fluxes can be outputsConstruction of transfer function includes atol option for simplification0.2.8 4/17/2022Added options to plotTrueModelUpdated Using ControlSBML with an example of doing feedback0.2.7 4/11/2022Species can be inputsmakeStateSpace, makeTransferFunction have timepoint argument0.2.6 4/10/2020Default for constructor: is_reduced=FalsemakeTransferFunction0.2.5 4/8/2022Improve performance by not recalculating JacobianFix bugs related to implementation of is_reduced as applied on NonlinearIOSystem0.2.4 3/31/2024 - Create reduced A matrixmat2Df - fixed bug with printing column namesCreate reduced A matrix for makeStateSpace so that A is non-singular
Default output_names is all floating species0.2.3, 3/22/2022 - Bug fix for mat2DF0.2.2, 3/22/2022 - Bug fix0.2.1, 3/22/2022 - Bug fix0.2.0, 3/22/2022 - Version for classppMat - pretty print a matrixplotMat - display a heatmap for a matrixmat2TS - convert a matrix to a timeseriesmat2DF - convert a matrix to a dataframe0.1.6, 3/16/2022Using-Control-SBML.ipynbhas an example of doing feedback control design
withcontrolSBML.control.NonlinearIOSystemwraps an SBML model. Can be used
in the construction of systems usingcontrol.interconnectand 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 simulationsplotBodeInputs are identified by reaction Ids0.1.3, 2/13/2022. First release.