controlSBML


NamecontrolSBML JSON
Version 1.1.3 PyPI version JSON
download
home_page
SummaryControl analysis of SBML models
upload_time2024-01-20 18:12:01
maintainer
docs_urlNone
author
requires_python>=3.6
licenseMIT License Copyright (c) 2022 Joseph Hellerstein Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
keywords
VCS
bugtrack_url
requirements numpy build coverage control docstring-expander jupyterlab lmfit matplotlib nose2 nose pandas pip pylint python-libsbml SBMLDiagrams seaborn sympy tabulate tellurium tomli tqdm twine urllib3
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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)](https://co.mbine.org/standards/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](https://github.com/ModelEngineering/controlSBML/tree/main/examples)

## Installation
``pip install controlSBML``

To find the current version:
```
import controlSBML as ctl
ctl.__version__
```

## Version History
* 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
with ``controlSBML``.
  * ``control.NonlinearIOSystem`` wraps an SBML model. Can be used
    in the construction of systems using ``control.interconnect`` and in simulations using ``control.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.

            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "controlSBML",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "",
    "author": "",
    "author_email": "Joseph Hellerstein <joseph.hellerstein@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/cb/5c/102af764eec11d157d62ec374da4adebad01093f38c29bae58e4b4ed6dbb/controlSBML-1.1.3.tar.gz",
    "platform": null,
    "description": "# controlSBML\n``controlSBML`` is a python packag that assists with control engineering of biological systems that are characterized by models in\n the [Systems Biology Markup Language (SBML)](https://co.mbine.org/standards/sbml), a community standard for representing\nmodels of biological models, especially chemical reaction networks.\n``controlSBML`` provides the following:\n  * Read SBML models, viewing candidate inputs, and outputs, and running simulations.\n  * System identification, including the creation of (SISO) transfer function objects from the python control systems library\n  * Creating Antimony simulations of closed loop systems\n  * Design of closed loop systems\n\nExamples of usage are in this [directory](https://github.com/ModelEngineering/controlSBML/tree/main/examples)\n\n## Installation\n``pip install controlSBML``\n\nTo find the current version:\n```\nimport controlSBML as ctl\nctl.__version__\n```\n\n## Version History\n* 1.1.03 1/20/2024\n    * Better error checking\n    * API uses parameter names kI, kP, kF\n* 1.1.02 12/27/2023\n    * Fix bug in dependencies. Update header documentation.\n* 1.1.01 12/27/2023\n    * 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.\n    * Creation of a consistent API.\n* 1.0.11 3/1/2023\n    * Ensure that state variables are never negative.\n* 1.0.10\n    * Fixed bug with unequally spaced times\n    * Fixed bug so can start a simulate at a time other than 0 and the correct initial state is obtained.\n* 1.0.9 2/14/2023\n    * Use temporary directory for plots created in tests\n* 1.0.8 2/14/2023\n    * Avoid error if Jacobian cannot be calculated.\n    * Better handling of warnings\n* 1.0.7 2/11/2023\n    * Add missing dependency (lmfit)\n* 1.0.6  2/11/2023\n    * 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.\n    * plotStaircaseResponse shows effect of a staircase input on outputs\n    * Remove cruft from effector_dct\n    * Added plot option writefig which takes arguments, True, False, str (path)\n* 1.0.5  1/22/2023\n    * Fix bugs in NonlinearIOSystem relating to states and calculations in updfcn.\n    * Changes to documentation\n* 1.0.4\n    * Fix bug so that makeStateSpace honors the time argument\n    * Updated Sphinx documentation\n    * Fix bug with __version__\n* 1.0.3\n    * Fix bug with file path in _version\n* 1.0.1\n    * src directory contains all pcakages\n* 1.0.0\n    * Redefined inputs as species adjustment (positive or negative)\n    * ControlSBML.equals has an option to do a \"quick check\"\n    * Deprecated the use of an effector dictionary\n* 0.2.23 12/18/2022\n    * Updates for using toml files\n* 0.2.22\n  * IOSystemFactor.makeStateFilter creates a vector of filters between 2 systems\n  * SISOClosedLoopSystem.makeFullStateController creates multiple filters if kf != 0\n* 0.2.21 5/30/2022\n  * NonlinearIOSystem creates a logger.\n  * SISOClosedLoopSystem.makeFullStateSystem has option for filters\n  * Changed legend of step respoinse plot to use \"reference\" instead of \"step\"\n* 0.2.20 5/27/2022\n  * Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't\n    handle nan values.\n* 0.2.19 5/27/2022\n  * Fix bug in SISOClosedLoopSystem.evaluateControllability because scipy didn't\n    handle nan values.\n* 0.2.18 5/26/2022\n  * Fix small bug\n* 0.2.17 5/26/2022\n  * Deleted the callback_log implemented in 0.2.14.\n* 0.2.16 5/24/2022\n  * Refactored SISOClosedLoopSystem\n  * Implemented SISOClosedLoopSystem.makeFullStateController\n  * Fixed bug with makePIDController where ki, kd are ineffective.\n* 0.2.15 5/21/2022\n  * Fix bug in reverting the semantics of control input to be setting the species\n    as a static.\n* 0.2.14  5/11/2022\n  * Provide callback for each manufactured IOsystemFactory\n  * Reverted semantics of control input to a NonlinearIOSystem to be\nsetting the value rather than adding or subtracting a value.\n* 0.2.13 5/9/2022\n  * SISOClosedLoopSystem provides a way to construct a closed loop system\n    for an SBML model. The system has a PID controller and a filter.\n  * IOSysemFactory has a log\n* 0.2.12 5/3/2022\n  * IOSystemFactory creates IOSystem objects for Adder, Multiplier,\n    Filter, PIDController, Sinusoid, Constant, Passthru\n  * State inputs add to state, not replace the state value.\n* 0.2.11 4/25/2022\n  * Fix bug in calculating transfer function that incorrectly considered state\n* 0.2.9 4/19/2022\n  * Fluxes can be outputs\n  * Construction of transfer function includes atol option for simplification\n* 0.2.8 4/17/2022\n  * Added options to plotTrueModel\n  * Updated Using ControlSBML with an example of doing feedback \n* 0.2.7 4/11/2022\n  * Species can be inputs\n  * makeStateSpace, makeTransferFunction have timepoint argument\n* 0.2.6 4/10/2020\n  * Default for constructor: is_reduced=False\n  * makeTransferFunction\n* 0.2.5 4/8/2022\n  * Improve performance by not recalculating Jacobian\n  * Fix bugs related to implementation of is_reduced as applied on NonlinearIOSystem\n* 0.2.4 3/31/2024 - Create reduced A matrix\n  * mat2Df - fixed bug with printing column names\n  * Create reduced A matrix for makeStateSpace so that A is non-singular\n    Default output_names is all floating species\n* 0.2.3, 3/22/2022 - Bug fix for mat2DF\n* 0.2.2, 3/22/2022 - Bug fix\n* 0.2.1, 3/22/2022 - Bug fix\n* 0.2.0, 3/22/2022 - Version for class\n  * ppMat - pretty print a matrix\n  * plotMat - display a heatmap for a matrix\n  * mat2TS - convert a matrix to a timeseries\n  * mat2DF - convert a matrix to a dataframe\n* 0.1.6, 3/16/2022\n  * ``Using-Control-SBML.ipynb`` has an example of doing feedback control design\nwith ``controlSBML``.\n  * ``control.NonlinearIOSystem`` wraps an SBML model. Can be used\n    in the construction of systems using ``control.interconnect`` and in simulations using ``control.input_output_response``. One caveat is that this may work poorly for models implemented as SBML rate rules.\n* 0.1.5, 3/5/2022.\n  * More options for plotting and simulations\n  * plotBode\n  * Inputs are identified by reaction Ids\n* 0.1.3, 2/13/2022. First release.\n",
    "bugtrack_url": null,
    "license": "MIT License  Copyright (c) 2022 Joseph Hellerstein  Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:  The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.  THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ",
    "summary": "Control analysis of SBML models",
    "version": "1.1.3",
    "project_urls": {
        "Homepage": "https://github.com/ModelEngineering/controlSBML"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "5c00e3a5e893df987f6ddc13716830b861a637e6d930ec271bb65f316373b5d4",
                "md5": "bc30e31b12204f1c1f9fdcd0e2e0254f",
                "sha256": "f584680f66a96d8c570253f95e0b7b1fc1b6f7e54ae31108895eba634a43fb66"
            },
            "downloads": -1,
            "filename": "controlSBML-1.1.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bc30e31b12204f1c1f9fdcd0e2e0254f",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 106526,
            "upload_time": "2024-01-20T18:11:58",
            "upload_time_iso_8601": "2024-01-20T18:11:58.977799Z",
            "url": "https://files.pythonhosted.org/packages/5c/00/e3a5e893df987f6ddc13716830b861a637e6d930ec271bb65f316373b5d4/controlSBML-1.1.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cb5c102af764eec11d157d62ec374da4adebad01093f38c29bae58e4b4ed6dbb",
                "md5": "a7d4184c31a6c9feb7696ea807105a54",
                "sha256": "7d068532628a8826dda69fe4ca441ca8de552beea23e13327a46cfa3727f6410"
            },
            "downloads": -1,
            "filename": "controlSBML-1.1.3.tar.gz",
            "has_sig": false,
            "md5_digest": "a7d4184c31a6c9feb7696ea807105a54",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 104068,
            "upload_time": "2024-01-20T18:12:01",
            "upload_time_iso_8601": "2024-01-20T18:12:01.550620Z",
            "url": "https://files.pythonhosted.org/packages/cb/5c/102af764eec11d157d62ec374da4adebad01093f38c29bae58e4b4ed6dbb/controlSBML-1.1.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-01-20 18:12:01",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ModelEngineering",
    "github_project": "controlSBML",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [
        {
            "name": "numpy",
            "specs": []
        },
        {
            "name": "build",
            "specs": []
        },
        {
            "name": "coverage",
            "specs": []
        },
        {
            "name": "control",
            "specs": []
        },
        {
            "name": "docstring-expander",
            "specs": []
        },
        {
            "name": "jupyterlab",
            "specs": []
        },
        {
            "name": "lmfit",
            "specs": []
        },
        {
            "name": "matplotlib",
            "specs": []
        },
        {
            "name": "nose2",
            "specs": []
        },
        {
            "name": "nose",
            "specs": []
        },
        {
            "name": "pandas",
            "specs": []
        },
        {
            "name": "pip",
            "specs": [
                [
                    ">",
                    "20"
                ]
            ]
        },
        {
            "name": "pylint",
            "specs": []
        },
        {
            "name": "python-libsbml",
            "specs": []
        },
        {
            "name": "SBMLDiagrams",
            "specs": []
        },
        {
            "name": "seaborn",
            "specs": []
        },
        {
            "name": "sympy",
            "specs": []
        },
        {
            "name": "tabulate",
            "specs": []
        },
        {
            "name": "tellurium",
            "specs": []
        },
        {
            "name": "tomli",
            "specs": []
        },
        {
            "name": "tqdm",
            "specs": []
        },
        {
            "name": "twine",
            "specs": []
        },
        {
            "name": "urllib3",
            "specs": []
        }
    ],
    "lcname": "controlsbml"
}
        
Elapsed time: 0.20312s