matexp


Namematexp JSON
Version 1.0.0 PyPI version JSON
download
home_page
SummarySimulator for Linear Time-Invariant Kinetic Models using the NMODL file format.
upload_time2023-07-17 13:40:16
maintainer
docs_urlNone
author
requires_python>=3.8
licenseMIT
keywords nmodl neuron
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # matexp

This program solves systems of differential equations for the NEURON simulator
using the matrix-exponential method of integration. This is a new method of
integration. The solution is faster and more accurate than NEURONs built
in "sparse" solver. This method is only applicable to systems which are linear
and time-invariant, such as Markov kinetic models. This method is also limited
to systems with one or two inputs.

This program uses the
[NMODL file format](https://www.neuron.yale.edu/neuron/static/py_doc/modelspec/programmatic/mechanisms/nmodl.html)
(".mod" files). 
The input kinetic model is an NMODL file, and the solution is written to a new NMODL file.

For more information about how this program works see [DETAILS.md](./DETAILS.md).


### Installation

Prerequisites:
* Compiler for the target system.
    + CPU requires `g++`
    + Cuda requires the `cupy` python package.

```
$ pip install matexp
```


### Usage

```
$ matexp --help
usage: matexp [-h] [-v] [--plot] -t TIME_STEP [-c CELSIUS] [-e ERROR]
              [-i NAME MIN MAX] [--log [INPUT]] [--target {host,cuda}]
              [-f {32,64}]
              INPUT_PATH OUTPUT_PATH

positional arguments:
  INPUT_PATH            input filename for the unsolved NMODL file
  OUTPUT_PATH           output filename for the solution

options:
  -h, --help            show this help message and exit
  -v, --verbose         print diagnostic information, give twice for trace mode
  --plot                show the propagator matrix

simulation parameters:
  -t TIME_STEP, --time_step TIME_STEP
  -c CELSIUS, --celsius CELSIUS
                        default: 37°
  -e ERROR, --error ERROR
                        maximum error per time step. default: 10^-4

input specification:
  -i NAME MIN MAX, --input NAME MIN MAX
  --log [INPUT]         scale input logarithmically, for chemical concentrations

computer specification:
  --target {host,cuda}  default: host
  -f {32,64}, --float {32,64}
                        default: 64

```


            

Raw data

            {
    "_id": null,
    "home_page": "",
    "name": "matexp",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": "",
    "keywords": "nmodl,neuron",
    "author": "",
    "author_email": "David McDougall <dam1784@rit.edu>",
    "download_url": "https://files.pythonhosted.org/packages/92/84/3712efbe0a44b784d5a90854d958f2ad7f3d0c5d881cc1cbde03e0033f2d/matexp-1.0.0.tar.gz",
    "platform": null,
    "description": "# matexp\n\nThis program solves systems of differential equations for the NEURON simulator\nusing the matrix-exponential method of integration. This is a new method of\nintegration. The solution is faster and more accurate than NEURONs built\nin \"sparse\" solver. This method is only applicable to systems which are linear\nand time-invariant, such as Markov kinetic models. This method is also limited\nto systems with one or two inputs.\n\nThis program uses the\n[NMODL file format](https://www.neuron.yale.edu/neuron/static/py_doc/modelspec/programmatic/mechanisms/nmodl.html)\n(\".mod\" files). \nThe input kinetic model is an NMODL file, and the solution is written to a new NMODL file.\n\nFor more information about how this program works see [DETAILS.md](./DETAILS.md).\n\n\n### Installation\n\nPrerequisites:\n* Compiler for the target system.\n    + CPU requires `g++`\n    + Cuda requires the `cupy` python package.\n\n```\n$ pip install matexp\n```\n\n\n### Usage\n\n```\n$ matexp --help\nusage: matexp [-h] [-v] [--plot] -t TIME_STEP [-c CELSIUS] [-e ERROR]\n              [-i NAME MIN MAX] [--log [INPUT]] [--target {host,cuda}]\n              [-f {32,64}]\n              INPUT_PATH OUTPUT_PATH\n\npositional arguments:\n  INPUT_PATH            input filename for the unsolved NMODL file\n  OUTPUT_PATH           output filename for the solution\n\noptions:\n  -h, --help            show this help message and exit\n  -v, --verbose         print diagnostic information, give twice for trace mode\n  --plot                show the propagator matrix\n\nsimulation parameters:\n  -t TIME_STEP, --time_step TIME_STEP\n  -c CELSIUS, --celsius CELSIUS\n                        default: 37\u00b0\n  -e ERROR, --error ERROR\n                        maximum error per time step. default: 10^-4\n\ninput specification:\n  -i NAME MIN MAX, --input NAME MIN MAX\n  --log [INPUT]         scale input logarithmically, for chemical concentrations\n\ncomputer specification:\n  --target {host,cuda}  default: host\n  -f {32,64}, --float {32,64}\n                        default: 64\n\n```\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Simulator for Linear Time-Invariant Kinetic Models using the NMODL file format.",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/ctrl-z-9000-times/matexp"
    },
    "split_keywords": [
        "nmodl",
        "neuron"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3b7eeac9be59e99afa31e2ae653e4dddc7b156caba90fe5cb0f29881c1cba7c7",
                "md5": "09a667d9188cf4b232915509e3346b47",
                "sha256": "3ac04afa9b846f492cd1cd6bb9333264cd9f3e198f8f0d0d9402ac96815af140"
            },
            "downloads": -1,
            "filename": "matexp-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "09a667d9188cf4b232915509e3346b47",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 34535,
            "upload_time": "2023-07-17T13:40:14",
            "upload_time_iso_8601": "2023-07-17T13:40:14.796366Z",
            "url": "https://files.pythonhosted.org/packages/3b/7e/eac9be59e99afa31e2ae653e4dddc7b156caba90fe5cb0f29881c1cba7c7/matexp-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "92843712efbe0a44b784d5a90854d958f2ad7f3d0c5d881cc1cbde03e0033f2d",
                "md5": "2d81f1156e27b7ee233e7238ff83e018",
                "sha256": "6fa7a1693033f35cc72f48c1ac5cd3384d5e384563f6b467960c05d267a1695d"
            },
            "downloads": -1,
            "filename": "matexp-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "2d81f1156e27b7ee233e7238ff83e018",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 747635,
            "upload_time": "2023-07-17T13:40:16",
            "upload_time_iso_8601": "2023-07-17T13:40:16.304425Z",
            "url": "https://files.pythonhosted.org/packages/92/84/3712efbe0a44b784d5a90854d958f2ad7f3d0c5d881cc1cbde03e0033f2d/matexp-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-17 13:40:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "ctrl-z-9000-times",
    "github_project": "matexp",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "matexp"
}
        
Elapsed time: 0.09612s