enzax 0.1.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- enzax-0.1.2/.github/pull_request_template.md +7 -0
- enzax-0.1.2/.github/workflows/count-lines-of-code.yml +26 -0
- enzax-0.1.2/.github/workflows/lighthouserc.json +40 -0
- enzax-0.1.2/.github/workflows/release.yml +46 -0
- enzax-0.1.2/.github/workflows/run_tests.yml +42 -0
- enzax-0.1.2/.github/workflows/test_docs.yml +35 -0
- enzax-0.1.2/.gitignore +167 -0
- enzax-0.1.2/.pre-commit-config.yaml +15 -0
- enzax-0.1.2/.readthedocs.yaml +21 -0
- enzax-0.1.2/CODE_OF_CONDUCT.md +79 -0
- enzax-0.1.2/CONTRIBUTING.md +37 -0
- enzax-0.1.2/PKG-INFO +72 -0
- enzax-0.1.2/README.md +53 -0
- enzax-0.1.2/docs/accessibility.md +33 -0
- enzax-0.1.2/docs/api/kinetic_model.md +9 -0
- enzax-0.1.2/docs/api/mcmc.md +13 -0
- enzax-0.1.2/docs/api/rate_equations.md +12 -0
- enzax-0.1.2/docs/api/steady_state.md +7 -0
- enzax-0.1.2/docs/contributing.md +1 -0
- enzax-0.1.2/docs/getting_started.md +190 -0
- enzax-0.1.2/docs/index.md +11 -0
- enzax-0.1.2/mkdocs.yml +48 -0
- enzax-0.1.2/pdm.lock +1443 -0
- enzax-0.1.2/pyproject.toml +47 -0
- enzax-0.1.2/scripts/mcmc_demo.py +126 -0
- enzax-0.1.2/scripts/steady_state_demo.py +62 -0
- enzax-0.1.2/src/enzax/__init__.py +3 -0
- enzax-0.1.2/src/enzax/examples/linear.py +100 -0
- enzax-0.1.2/src/enzax/examples/methionine.py +515 -0
- enzax-0.1.2/src/enzax/kinetic_model.py +74 -0
- enzax-0.1.2/src/enzax/mcmc.py +184 -0
- enzax-0.1.2/src/enzax/parameters.py +58 -0
- enzax-0.1.2/src/enzax/rate_equation.py +19 -0
- enzax-0.1.2/src/enzax/rate_equations/__init__.py +19 -0
- enzax-0.1.2/src/enzax/rate_equations/drain.py +27 -0
- enzax-0.1.2/src/enzax/rate_equations/generalised_mwc.py +94 -0
- enzax-0.1.2/src/enzax/rate_equations/michaelis_menten.py +193 -0
- enzax-0.1.2/src/enzax/steady_state.py +63 -0
- enzax-0.1.2/tests/__init__.py +0 -0
- enzax-0.1.2/tests/test_examples.py +19 -0
- enzax-0.1.2/tests/test_rate_equations.py +116 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
name: Count Lines of Code
|
|
2
|
+
|
|
3
|
+
# Controls when the action will run. Triggers the workflow on push or pull request
|
|
4
|
+
# events but only for the main branch
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches: [ main ]
|
|
8
|
+
tags-ignore: '**'
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [ main ]
|
|
11
|
+
|
|
12
|
+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
|
|
13
|
+
jobs:
|
|
14
|
+
# This workflow contains a single job called "build"
|
|
15
|
+
cloc:
|
|
16
|
+
# The type of runner that the job will run on
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
|
|
19
|
+
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
20
|
+
steps:
|
|
21
|
+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
|
|
22
|
+
- uses: actions/checkout@v3
|
|
23
|
+
|
|
24
|
+
# Runs djdefi/cloc-action
|
|
25
|
+
- name: Count Lines of Code (cloc)
|
|
26
|
+
uses: djdefi/cloc-action@5
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{
|
|
2
|
+
"ci": {
|
|
3
|
+
"collect": {
|
|
4
|
+
"staticDistDir": "./site/",
|
|
5
|
+
"settings": {
|
|
6
|
+
"skipAudits": [
|
|
7
|
+
"canonical"
|
|
8
|
+
]
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"assert": {
|
|
12
|
+
"assertions": {
|
|
13
|
+
"categories:performance": [
|
|
14
|
+
"error",
|
|
15
|
+
{
|
|
16
|
+
"minScore": 0.8
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"categories:accessibility": [
|
|
20
|
+
"error",
|
|
21
|
+
{
|
|
22
|
+
"minScore": 0.8
|
|
23
|
+
}
|
|
24
|
+
],
|
|
25
|
+
"categories:best-practices": [
|
|
26
|
+
"error",
|
|
27
|
+
{
|
|
28
|
+
"minScore": 0.8
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"categories:seo": [
|
|
32
|
+
"error",
|
|
33
|
+
{
|
|
34
|
+
"minScore": 0.7
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
name: Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
# Sequence of patterns matched against refs/tags
|
|
6
|
+
tags:
|
|
7
|
+
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
release-build:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
|
|
16
|
+
- uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.12"
|
|
19
|
+
|
|
20
|
+
- name: build release distributions
|
|
21
|
+
run: |
|
|
22
|
+
python -m pip install pdm
|
|
23
|
+
pdm build
|
|
24
|
+
|
|
25
|
+
- name: upload windows dists
|
|
26
|
+
uses: actions/upload-artifact@v4
|
|
27
|
+
with:
|
|
28
|
+
name: release-dists
|
|
29
|
+
path: dist/
|
|
30
|
+
|
|
31
|
+
pypi-publish:
|
|
32
|
+
runs-on: ubuntu-latest
|
|
33
|
+
needs:
|
|
34
|
+
- release-build
|
|
35
|
+
permissions:
|
|
36
|
+
id-token: write
|
|
37
|
+
|
|
38
|
+
steps:
|
|
39
|
+
- name: Retrieve release distributions
|
|
40
|
+
uses: actions/download-artifact@v4
|
|
41
|
+
with:
|
|
42
|
+
name: release-dists
|
|
43
|
+
path: dist/
|
|
44
|
+
|
|
45
|
+
- name: Publish release distributions to PyPI
|
|
46
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
name: Run tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- '**'
|
|
7
|
+
tags-ignore:
|
|
8
|
+
- '**'
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
build:
|
|
12
|
+
|
|
13
|
+
runs-on: ${{ matrix.os }}
|
|
14
|
+
|
|
15
|
+
strategy:
|
|
16
|
+
matrix:
|
|
17
|
+
os: [ubuntu-latest, windows-latest]
|
|
18
|
+
python-version: [3.12]
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
|
|
22
|
+
- name: checkout code
|
|
23
|
+
uses: actions/checkout@v2
|
|
24
|
+
|
|
25
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
26
|
+
uses: actions/setup-python@v2
|
|
27
|
+
with:
|
|
28
|
+
python-version: ${{ matrix.python-version }}
|
|
29
|
+
|
|
30
|
+
- name: Install pdm
|
|
31
|
+
run: pip install pdm
|
|
32
|
+
|
|
33
|
+
- name: pre-commit checks
|
|
34
|
+
uses: pre-commit/action@v2.0.3
|
|
35
|
+
|
|
36
|
+
- name: Run tests
|
|
37
|
+
run: |
|
|
38
|
+
pdm install --dev
|
|
39
|
+
pdm run pytest tests --cov=src/enzax
|
|
40
|
+
|
|
41
|
+
- name: Upload coverage reports to Codecov
|
|
42
|
+
uses: codecov/codecov-action@v3
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# This workflow tests whether the documentation builds correctly and runs a
|
|
2
|
+
# lighthouse audit.
|
|
3
|
+
|
|
4
|
+
name: Docs check
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches:
|
|
9
|
+
- '**'
|
|
10
|
+
tags-ignore:
|
|
11
|
+
- '**'
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
docs:
|
|
15
|
+
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
|
|
18
|
+
steps:
|
|
19
|
+
|
|
20
|
+
- uses: actions/checkout@v4
|
|
21
|
+
- name: Set up Python 3.12
|
|
22
|
+
uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: 3.12
|
|
25
|
+
- name: install enzax with development packages
|
|
26
|
+
run: pip install -e .\[docs\]
|
|
27
|
+
- name: build docs with mkdocs
|
|
28
|
+
run: mkdocs build
|
|
29
|
+
- name: Audit with Lighthouse
|
|
30
|
+
uses: treosh/lighthouse-ci-action@v12
|
|
31
|
+
with:
|
|
32
|
+
configPath: ".github/workflows/lighthouserc.json"
|
|
33
|
+
temporaryPublicStorage: true
|
|
34
|
+
uploadArtifacts: true
|
|
35
|
+
runs: 3 # Multiple runs to reduce variance
|
enzax-0.1.2/.gitignore
ADDED
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
.DS_Store
|
|
2
|
+
|
|
3
|
+
# scratchpads
|
|
4
|
+
scratch.md
|
|
5
|
+
|
|
6
|
+
# Byte-compiled / optimized / DLL files
|
|
7
|
+
__pycache__/
|
|
8
|
+
*.py[cod]
|
|
9
|
+
*$py.class
|
|
10
|
+
|
|
11
|
+
# C extensions
|
|
12
|
+
*.so
|
|
13
|
+
|
|
14
|
+
# Distribution / packaging
|
|
15
|
+
.Python
|
|
16
|
+
build/
|
|
17
|
+
develop-eggs/
|
|
18
|
+
dist/
|
|
19
|
+
downloads/
|
|
20
|
+
eggs/
|
|
21
|
+
.eggs/
|
|
22
|
+
lib/
|
|
23
|
+
lib64/
|
|
24
|
+
parts/
|
|
25
|
+
sdist/
|
|
26
|
+
var/
|
|
27
|
+
wheels/
|
|
28
|
+
share/python-wheels/
|
|
29
|
+
*.egg-info/
|
|
30
|
+
.installed.cfg
|
|
31
|
+
*.egg
|
|
32
|
+
MANIFEST
|
|
33
|
+
|
|
34
|
+
# PyInstaller
|
|
35
|
+
# Usually these files are written by a python script from a template
|
|
36
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
37
|
+
*.manifest
|
|
38
|
+
*.spec
|
|
39
|
+
|
|
40
|
+
# Installer logs
|
|
41
|
+
pip-log.txt
|
|
42
|
+
pip-delete-this-directory.txt
|
|
43
|
+
|
|
44
|
+
# Unit test / coverage reports
|
|
45
|
+
htmlcov/
|
|
46
|
+
.tox/
|
|
47
|
+
.nox/
|
|
48
|
+
.coverage
|
|
49
|
+
.coverage.*
|
|
50
|
+
.cache
|
|
51
|
+
nosetests.xml
|
|
52
|
+
coverage.xml
|
|
53
|
+
*.cover
|
|
54
|
+
*.py,cover
|
|
55
|
+
.hypothesis/
|
|
56
|
+
.pytest_cache/
|
|
57
|
+
cover/
|
|
58
|
+
|
|
59
|
+
# Translations
|
|
60
|
+
*.mo
|
|
61
|
+
*.pot
|
|
62
|
+
|
|
63
|
+
# Django stuff:
|
|
64
|
+
*.log
|
|
65
|
+
local_settings.py
|
|
66
|
+
db.sqlite3
|
|
67
|
+
db.sqlite3-journal
|
|
68
|
+
|
|
69
|
+
# Flask stuff:
|
|
70
|
+
instance/
|
|
71
|
+
.webassets-cache
|
|
72
|
+
|
|
73
|
+
# Scrapy stuff:
|
|
74
|
+
.scrapy
|
|
75
|
+
|
|
76
|
+
# Sphinx documentation
|
|
77
|
+
docs/_build/
|
|
78
|
+
|
|
79
|
+
# PyBuilder
|
|
80
|
+
.pybuilder/
|
|
81
|
+
target/
|
|
82
|
+
|
|
83
|
+
# Jupyter Notebook
|
|
84
|
+
.ipynb_checkpoints
|
|
85
|
+
|
|
86
|
+
# IPython
|
|
87
|
+
profile_default/
|
|
88
|
+
ipython_config.py
|
|
89
|
+
|
|
90
|
+
# pyenv
|
|
91
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
92
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
93
|
+
# .python-version
|
|
94
|
+
|
|
95
|
+
# pipenv
|
|
96
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
97
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
98
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
99
|
+
# install all needed dependencies.
|
|
100
|
+
#Pipfile.lock
|
|
101
|
+
|
|
102
|
+
# poetry
|
|
103
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
104
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
105
|
+
# commonly ignored for libraries.
|
|
106
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
107
|
+
#poetry.lock
|
|
108
|
+
|
|
109
|
+
# pdm
|
|
110
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
111
|
+
#pdm.lock
|
|
112
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
113
|
+
# in version control.
|
|
114
|
+
# https://pdm-project.org/#use-with-ide
|
|
115
|
+
.pdm.toml
|
|
116
|
+
.pdm-python
|
|
117
|
+
.pdm-build/
|
|
118
|
+
|
|
119
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
120
|
+
__pypackages__/
|
|
121
|
+
|
|
122
|
+
# Celery stuff
|
|
123
|
+
celerybeat-schedule
|
|
124
|
+
celerybeat.pid
|
|
125
|
+
|
|
126
|
+
# SageMath parsed files
|
|
127
|
+
*.sage.py
|
|
128
|
+
|
|
129
|
+
# Environments
|
|
130
|
+
.env
|
|
131
|
+
.venv
|
|
132
|
+
env/
|
|
133
|
+
venv/
|
|
134
|
+
ENV/
|
|
135
|
+
env.bak/
|
|
136
|
+
venv.bak/
|
|
137
|
+
|
|
138
|
+
# Spyder project settings
|
|
139
|
+
.spyderproject
|
|
140
|
+
.spyproject
|
|
141
|
+
|
|
142
|
+
# Rope project settings
|
|
143
|
+
.ropeproject
|
|
144
|
+
|
|
145
|
+
# mkdocs documentation
|
|
146
|
+
/site
|
|
147
|
+
|
|
148
|
+
# mypy
|
|
149
|
+
.mypy_cache/
|
|
150
|
+
.dmypy.json
|
|
151
|
+
dmypy.json
|
|
152
|
+
|
|
153
|
+
# Pyre type checker
|
|
154
|
+
.pyre/
|
|
155
|
+
|
|
156
|
+
# pytype static type analyzer
|
|
157
|
+
.pytype/
|
|
158
|
+
|
|
159
|
+
# Cython debug symbols
|
|
160
|
+
cython_debug/
|
|
161
|
+
|
|
162
|
+
# PyCharm
|
|
163
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
164
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
165
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
166
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
167
|
+
#.idea/
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v4.6.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-yaml
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: trailing-whitespace
|
|
8
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
9
|
+
# Ruff version.
|
|
10
|
+
rev: v0.6.0
|
|
11
|
+
hooks:
|
|
12
|
+
# Run the linter.
|
|
13
|
+
- id: ruff
|
|
14
|
+
# Run the formatter.
|
|
15
|
+
- id: ruff-format
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Read the Docs configuration file for MkDocs projects
|
|
2
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
3
|
+
# Required
|
|
4
|
+
|
|
5
|
+
version: 2
|
|
6
|
+
|
|
7
|
+
# Set the version of Python and other tools you might need
|
|
8
|
+
build:
|
|
9
|
+
os: ubuntu-22.04
|
|
10
|
+
tools:
|
|
11
|
+
python: "3.12"
|
|
12
|
+
|
|
13
|
+
mkdocs:
|
|
14
|
+
configuration: mkdocs.yml
|
|
15
|
+
|
|
16
|
+
python:
|
|
17
|
+
install:
|
|
18
|
+
- method: "pip"
|
|
19
|
+
path: .
|
|
20
|
+
extra_requirements:
|
|
21
|
+
- docs
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
|
|
5
|
+
We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
6
|
+
|
|
7
|
+
We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
|
|
8
|
+
|
|
9
|
+
## Our Standards
|
|
10
|
+
|
|
11
|
+
Examples of behaviour that contributes to a positive environment for our community include:
|
|
12
|
+
|
|
13
|
+
* Demonstrating empathy and kindness toward other people
|
|
14
|
+
* Being respectful of differing opinions, viewpoints, and experiences
|
|
15
|
+
* Giving and gracefully accepting constructive feedback
|
|
16
|
+
* Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
|
|
17
|
+
* Focusing on what is best not just for us as individuals, but for the overall community
|
|
18
|
+
|
|
19
|
+
Examples of unacceptable behaviour include:
|
|
20
|
+
|
|
21
|
+
* The use of sexualized language or imagery, and sexual attention or advances of any kind
|
|
22
|
+
* Trolling, insulting or derogatory comments, and personal or political attacks
|
|
23
|
+
* Public or private harassment
|
|
24
|
+
* Publishing others' private information, such as a physical or email address, without their explicit permission
|
|
25
|
+
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
|
26
|
+
|
|
27
|
+
## Enforcement Responsibilities
|
|
28
|
+
|
|
29
|
+
Community leaders are responsible for clarifying and enforcing our standards of acceptable behaviour and will take appropriate and fair corrective action in response to any behaviour that they deem inappropriate, threatening, offensive, or harmful.
|
|
30
|
+
|
|
31
|
+
Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
|
|
32
|
+
|
|
33
|
+
## Scope
|
|
34
|
+
|
|
35
|
+
This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
|
|
36
|
+
|
|
37
|
+
## Enforcement
|
|
38
|
+
|
|
39
|
+
Instances of abusive, harassing, or otherwise unacceptable behaviour may be reported to the community leaders responsible for enforcement at tedgro@biosustain.dtu.dk. All complaints will be reviewed and investigated promptly and fairly.
|
|
40
|
+
|
|
41
|
+
All community leaders are obligated to respect the privacy and security of the reporter of any incident.
|
|
42
|
+
|
|
43
|
+
## Enforcement Guidelines
|
|
44
|
+
|
|
45
|
+
Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
|
|
46
|
+
|
|
47
|
+
### 1. Correction
|
|
48
|
+
|
|
49
|
+
**Community Impact**: Use of inappropriate language or other behaviour deemed unprofessional or unwelcome in the community.
|
|
50
|
+
|
|
51
|
+
**Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behaviour was inappropriate. A public apology may be requested.
|
|
52
|
+
|
|
53
|
+
### 2. Warning
|
|
54
|
+
|
|
55
|
+
**Community Impact**: A violation through a single incident or series of actions.
|
|
56
|
+
|
|
57
|
+
**Consequence**: A warning with consequences for continued behaviour. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
|
|
58
|
+
|
|
59
|
+
### 3. Temporary Ban
|
|
60
|
+
|
|
61
|
+
**Community Impact**: A serious violation of community standards, including sustained inappropriate behaviour.
|
|
62
|
+
|
|
63
|
+
**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
|
|
64
|
+
|
|
65
|
+
### 4. Permanent Ban
|
|
66
|
+
|
|
67
|
+
**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behaviour, harassment of an individual, or aggression toward or disparagement of classes of individuals.
|
|
68
|
+
|
|
69
|
+
**Consequence**: A permanent ban from any sort of public interaction within the community.
|
|
70
|
+
|
|
71
|
+
## Attribution
|
|
72
|
+
|
|
73
|
+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0, available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
|
74
|
+
|
|
75
|
+
Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
|
|
76
|
+
|
|
77
|
+
[homepage]: https://www.contributor-covenant.org
|
|
78
|
+
|
|
79
|
+
For answers to common questions about this code of conduct, see the FAQ at https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# How to contribute to enzax
|
|
2
|
+
|
|
3
|
+
All contributions are very welcome!
|
|
4
|
+
|
|
5
|
+
Make sure to read the [code of conduct](https://github.com/dtu-qmcm/CODE_OF_CONDUCT.md) and follow its recommendations.
|
|
6
|
+
|
|
7
|
+
If you have a specific suggestion for how enzax could be improved, or if you find a bug then please file an issue or submit a pull request.
|
|
8
|
+
|
|
9
|
+
Alternatively, if you have any more general thoughts or questions, please post them in the [discussions page](https://github.com/dtu-qmcmc/enzax/discussions).
|
|
10
|
+
|
|
11
|
+
If you would like to contribute code changes, just follow the normal [GitHub workflow](https://docs.github.com/en/get-started/quickstart/github-flow): make a local branch with the changes then create a pull request.
|
|
12
|
+
|
|
13
|
+
## Developing enzax locally
|
|
14
|
+
|
|
15
|
+
To develop enzax locally you will probably need to install it with development dependencies. Here is how to do so:
|
|
16
|
+
|
|
17
|
+
```sh
|
|
18
|
+
$ pip install enzax'[dev]'
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
You can see what these dependencies are by checking the `[tool.pdm.dev-dependencies]` table in enzax's [`pyproject.toml` file](https://github.com/dtu-qmcm/enzax/blob/main/pyproject.toml).
|
|
22
|
+
|
|
23
|
+
## Releasing new versions of enzax
|
|
24
|
+
|
|
25
|
+
To release a new version of enzax, edit the field `version` in `pyproject.toml`, e.g. to `0.2.1` then make a pull request with this change.
|
|
26
|
+
|
|
27
|
+
Once the changes are merged into the `origin/main` branch, add a tag whose name begins with `v`, followed by the new version number to your local `main` branch, for example like this:
|
|
28
|
+
|
|
29
|
+
```sh
|
|
30
|
+
$ git tag v0.2.1
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Now push the new tag to GitHub:
|
|
34
|
+
|
|
35
|
+
```sh
|
|
36
|
+
$ git push origin "v0.2.1"
|
|
37
|
+
```
|
enzax-0.1.2/PKG-INFO
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: enzax
|
|
3
|
+
Version: 0.1.2
|
|
4
|
+
Summary: Differentiable models of enzyme-catalysed reaction networks
|
|
5
|
+
Author-email: Teddy Groves <tedgro@dtu.dk>
|
|
6
|
+
License: MIT
|
|
7
|
+
Requires-Python: >=3.12
|
|
8
|
+
Requires-Dist: arviz>=0.19.0
|
|
9
|
+
Requires-Dist: blackjax>=1.2.1
|
|
10
|
+
Requires-Dist: diffrax>=0.6.0
|
|
11
|
+
Requires-Dist: jaxtyping>=0.2.31
|
|
12
|
+
Provides-Extra: docs
|
|
13
|
+
Requires-Dist: mkdocs-material>=9.5.32; extra == 'docs'
|
|
14
|
+
Requires-Dist: mkdocs>=1.6.0; extra == 'docs'
|
|
15
|
+
Requires-Dist: mkdocstrings-python>=1.10.8; extra == 'docs'
|
|
16
|
+
Requires-Dist: mkdocstrings>=0.25.2; extra == 'docs'
|
|
17
|
+
Requires-Dist: pymdown-extensions>=10.9; extra == 'docs'
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
# Enzax
|
|
21
|
+
|
|
22
|
+
[](https://github.com/dtu-qmcm/enzax/actions/workflows/run_tests.yml)
|
|
23
|
+
[](https://www.repostatus.org/#wip)
|
|
24
|
+
[](https://www.python.org/)
|
|
25
|
+
[](https://enzax.readthedocs.io/en/latest/?badge=latest)
|
|
26
|
+
|
|
27
|
+
Enzax is a library of automatically differentiable equations and solvers for modelling networks of enzyme-catalysed reactions, written in [JAX](https://jax.readthedocs.io/en/latest/).
|
|
28
|
+
|
|
29
|
+
Enzax provides straightforward, fast and interoperable access to the gradients of realistic metabolic network models, allowing you to incorporate these models in your MCMC and machine learning algorithms when you want to, for example, predict the effect of down-regulating an enzyme on the yield of a fermentation experiment.
|
|
30
|
+
|
|
31
|
+
## Installation
|
|
32
|
+
|
|
33
|
+
```sh
|
|
34
|
+
pip install enzax
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Usage
|
|
38
|
+
|
|
39
|
+
### Find a kinetic model's steady state
|
|
40
|
+
|
|
41
|
+
```python
|
|
42
|
+
from enzax.examples import methionine
|
|
43
|
+
from enzax.steady_state import get_kinetic_model_steady_state
|
|
44
|
+
from jax import numpy as jnp
|
|
45
|
+
|
|
46
|
+
guess = jnp.full((5,) 0.01)
|
|
47
|
+
|
|
48
|
+
steady_state = get_kinetic_model_steady_state(methionine.model, guess)
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Find a steady state's Jacobian with respect to all parameters
|
|
52
|
+
|
|
53
|
+
```python
|
|
54
|
+
import jax
|
|
55
|
+
from enzax.examples import methionine
|
|
56
|
+
from enzax.steady_state import get_kinetic_model_steady_state
|
|
57
|
+
from jax import numpy as jnp
|
|
58
|
+
from jaxtyping import PyTree
|
|
59
|
+
|
|
60
|
+
guess = jnp.full((5,) 0.01)
|
|
61
|
+
model = methionine.model
|
|
62
|
+
|
|
63
|
+
def get_steady_state_from_params(parameters: PyTree):
|
|
64
|
+
"""Get the steady state with a one-argument non-pure function."""
|
|
65
|
+
_model = RateEquationModel(
|
|
66
|
+
parameters, model.structure, model.rate_equations
|
|
67
|
+
)
|
|
68
|
+
return get_kinetic_model_steady_state(_model, guess)
|
|
69
|
+
|
|
70
|
+
jacobian = jax.jacrev(get_steady_state_from_params)(model.parameters)
|
|
71
|
+
|
|
72
|
+
```
|
enzax-0.1.2/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Enzax
|
|
2
|
+
|
|
3
|
+
[](https://github.com/dtu-qmcm/enzax/actions/workflows/run_tests.yml)
|
|
4
|
+
[](https://www.repostatus.org/#wip)
|
|
5
|
+
[](https://www.python.org/)
|
|
6
|
+
[](https://enzax.readthedocs.io/en/latest/?badge=latest)
|
|
7
|
+
|
|
8
|
+
Enzax is a library of automatically differentiable equations and solvers for modelling networks of enzyme-catalysed reactions, written in [JAX](https://jax.readthedocs.io/en/latest/).
|
|
9
|
+
|
|
10
|
+
Enzax provides straightforward, fast and interoperable access to the gradients of realistic metabolic network models, allowing you to incorporate these models in your MCMC and machine learning algorithms when you want to, for example, predict the effect of down-regulating an enzyme on the yield of a fermentation experiment.
|
|
11
|
+
|
|
12
|
+
## Installation
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
pip install enzax
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
### Find a kinetic model's steady state
|
|
21
|
+
|
|
22
|
+
```python
|
|
23
|
+
from enzax.examples import methionine
|
|
24
|
+
from enzax.steady_state import get_kinetic_model_steady_state
|
|
25
|
+
from jax import numpy as jnp
|
|
26
|
+
|
|
27
|
+
guess = jnp.full((5,) 0.01)
|
|
28
|
+
|
|
29
|
+
steady_state = get_kinetic_model_steady_state(methionine.model, guess)
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Find a steady state's Jacobian with respect to all parameters
|
|
33
|
+
|
|
34
|
+
```python
|
|
35
|
+
import jax
|
|
36
|
+
from enzax.examples import methionine
|
|
37
|
+
from enzax.steady_state import get_kinetic_model_steady_state
|
|
38
|
+
from jax import numpy as jnp
|
|
39
|
+
from jaxtyping import PyTree
|
|
40
|
+
|
|
41
|
+
guess = jnp.full((5,) 0.01)
|
|
42
|
+
model = methionine.model
|
|
43
|
+
|
|
44
|
+
def get_steady_state_from_params(parameters: PyTree):
|
|
45
|
+
"""Get the steady state with a one-argument non-pure function."""
|
|
46
|
+
_model = RateEquationModel(
|
|
47
|
+
parameters, model.structure, model.rate_equations
|
|
48
|
+
)
|
|
49
|
+
return get_kinetic_model_steady_state(_model, guess)
|
|
50
|
+
|
|
51
|
+
jacobian = jax.jacrev(get_steady_state_from_params)(model.parameters)
|
|
52
|
+
|
|
53
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# Accessibility
|
|
2
|
+
|
|
3
|
+
The enzax developers want as many people as possible to be able to use this
|
|
4
|
+
website. For example, that means you should be able to:
|
|
5
|
+
|
|
6
|
+
- change colours, contrast levels and fonts
|
|
7
|
+
|
|
8
|
+
- zoom in up to 300% without the text spilling off the screen
|
|
9
|
+
|
|
10
|
+
- navigate most of the website using just a keyboard
|
|
11
|
+
|
|
12
|
+
- navigate most of the website using speech recognition software
|
|
13
|
+
|
|
14
|
+
- listen to most of the website using a screen reader
|
|
15
|
+
|
|
16
|
+
- We’ve also made the website text as simple as possible to understand.
|
|
17
|
+
|
|
18
|
+
## How accessible this website is
|
|
19
|
+
|
|
20
|
+
We test the website's accessibility using [Lighthouse](https://developer.chrome.com/docs/lighthouse/overview/). Check out the latest results [here](https://github.com/dtu-qmcm/enzax/actions/workflows/test_docs.yml).
|
|
21
|
+
|
|
22
|
+
## Feedback and contact information
|
|
23
|
+
|
|
24
|
+
If you need information on this website in a different format like accessible
|
|
25
|
+
PDF, large print, easy read, audio recording or braille, please contact us by
|
|
26
|
+
[email](mailto:groves.teddy@gmail.com) or raise an issue on the [enzax GitHub repository](https://github.com/dtu-qmcm/enzax/).
|
|
27
|
+
|
|
28
|
+
## Reporting accessibility problems with this website
|
|
29
|
+
|
|
30
|
+
We’re always looking to improve the accessibility of this website. If you find
|
|
31
|
+
any problems not listed on this page or think we’re not meeting accessibility
|
|
32
|
+
requirements, contact us by [email](mailto:groves.teddy@gmail.com) or raise
|
|
33
|
+
an issue on our [GitHub repository](https://github.com/dtu-qmcm/enzax/).
|