https://github.com/brsynth/damn
New hybrid machine learning model combining artificial neural network and a dynamic flux balance analysis on a metabolic model to predict bacterial growth curve.
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.8%) to scientific vocabulary
Repository
New hybrid machine learning model combining artificial neural network and a dynamic flux balance analysis on a metabolic model to predict bacterial growth curve.
Basic Info
- Host: GitHub
- Owner: brsynth
- Language: Python
- Default Branch: main
- Size: 500 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
dAMN Hybrid Neural Network for Dynamical FBA
First usable release of the dAMN software.
This version corresponds to the implementation used to generate results for the associated publication.
Overview
dAMN is a hybrid machine learning model that combines: - A neural network for metabolic flux inference; - A dynamical FBA to simulate metabolite and biomass evolution over time
It is designed to predict time-course biomass growth under various media conditions, integrating stoichiometry and transport constraints from genome-scale metabolic models (GEMs).
Applied on E.coli dataset.
Project Structure
| File/Folder | Description |
|---------------------------|----------------------------------------------------------------|
| dAMN.ipynb | Notebook to train, test and parametrize the model with a given dataset |
| dAMN_train.py | Script to train the model on a given dataset |
| dAMN_test.ipynb | Notebook to test and visualize the prediction |
| dAMN_parameter_search.py| Script for model parametrization |
| utils.py | Core functions for data preprocessing, model training, testing and plotting |
| data/ | Input datasets: media, OD, and metabolic model (SBML) |
| model/ | Folder where trained models and validation arrays are stored |
| figure/ | Plots for training and testing curves |
| environment.yml | conda environment configuration file |
Setup and Environment
This project uses Python 3.8, TensorFlow 2.19.0, and COBRApy.
Create the Conda environment (recommended)
To recreate the required environment from the environment.yml file:
bash
conda env create -n dAMN_env -f environment.yml
conda activate dAMN_env
Contributors
Pr. Jean-Loup Faulon (jean-loup.faulon@inrae.fr): conceptualization, coding, modeling
Danilo Dursoniah, Postdoc (danilo.dursoniah@inrae.fr): testing, maintenance
Owner
- Name: BioRetroSynth
- Login: brsynth
- Kind: organization
- Website: http://www.jfaulon.com
- Repositories: 33
- Profile: https://github.com/brsynth
Our group is interested in synthetic biology and systems metabolic engineering in whole-cell and cell-free systems.
GitHub Events
Total
- Push event: 6
- Public event: 1
Last Year
- Push event: 6
- Public event: 1
Dependencies
- absl-py ==2.1.0
- alembic ==1.14.0
- altair ==5.5.0
- altair-data-server ==0.4.1
- altair-saver ==0.5.0
- altair-viewer ==0.4.0
- anndata ==0.11.3
- annotated-types ==0.7.0
- anyio ==4.8.0
- appdirs ==1.4.4
- argon2-cffi ==23.1.0
- argon2-cffi-bindings ==21.2.0
- array-api-compat ==1.10.0
- arrow ==1.3.0
- arviz ==0.21.0
- astunparse ==1.6.3
- async-lru ==2.0.5
- attrs ==25.1.0
- autograd ==1.8.0
- babel ==2.17.0
- beautifulsoup4 ==4.13.3
- bleach ==6.2.0
- certifi ==2025.4.26
- cffi ==1.17.1
- charset-normalizer ==3.4.1
- chex ==0.1.88
- click ==8.2.1
- cloudpickle ==3.1.1
- cobra ==0.29.1
- colorlog ==6.9.0
- contourpy ==1.3.1
- cycler ==0.12.1
- cython ==3.1.1
- dask ==2025.5.1
- defusedxml ==0.7.1
- deneb ==1.0.1
- depinfo ==2.2.0
- diffeqtorch ==1.0.0
- diffrax ==0.6.2
- diskcache ==5.6.3
- distributed ==2025.5.1
- docrep ==0.3.2
- elfi ==0.8.7
- equinox ==0.11.11
- escher ==1.8.1
- etils ==1.11.0
- fastjsonschema ==2.21.1
- filelock ==3.16.1
- flatbuffers ==25.2.10
- flatlatex ==0.15
- fonttools ==4.55.3
- formulaic ==1.1.1
- formulaic-contrasts ==1.0.0
- fqdn ==1.5.1
- fsspec ==2024.12.0
- future ==1.0.0
- gast ==0.6.0
- gitdb ==4.0.12
- gitpython ==3.1.44
- google-pasta ==0.2.0
- gpy ==1.13.2
- greenlet ==3.1.1
- grpcio ==1.71.0
- h11 ==0.14.0
- h5netcdf ==1.6.1
- h5py ==3.12.1
- httpcore ==1.0.7
- httpx ==0.28.1
- idna ==3.10
- importlib-resources ==6.5.2
- inflect ==7.5.0
- iniconfig ==2.1.0
- interface-meta ==1.3.0
- ipyparallel ==9.0.1
- ipython-genutils ==0.2.0
- ipywidgets ==7.8.5
- isoduration ==20.11.0
- jabbar ==0.0.16
- jax ==0.5.0
- jax-cuda12-pjrt ==0.5.0
- jax-cuda12-plugin ==0.5.0
- jax-tqdm ==0.3.1
- jaxlib ==0.5.0
- jaxopt ==0.8.3
- jaxtyping ==0.2.36
- jinja2 ==3.1.5
- jinns ==1.2.0
- joblib ==1.4.2
- json5 ==0.12.0
- jsonpointer ==3.0.0
- jsonschema ==4.23.0
- jsonschema-specifications ==2024.10.1
- julia ==0.6.2
- juliacall ==0.9.25
- juliapkg ==0.1.17
- jupyter-events ==0.12.0
- jupyter-lsp ==2.2.5
- jupyter-server ==2.15.0
- jupyter-server-terminals ==0.5.3
- jupyterlab ==4.4.0
- jupyterlab-pygments ==0.3.0
- jupyterlab-server ==2.27.3
- jupyterlab-widgets ==1.1.11
- keras ==3.9.1
- kiwisolver ==1.4.8
- libclang ==18.1.1
- lineax ==0.0.7
- locket ==1.0.0
- mako ==1.3.8
- markdown ==3.7
- markdown-it-py ==3.0.0
- markupsafe ==3.0.2
- matplotlib ==3.10.0
- mdurl ==0.1.2
- mergedeep ==1.3.4
- mistune ==3.1.3
- ml-dtypes ==0.5.1
- more-itertools ==10.6.0
- mpmath ==1.3.0
- msgpack ==1.1.0
- namex ==0.0.8
- narwhals ==1.41.0
- natsort ==8.4.0
- nbclient ==0.10.2
- nbconvert ==7.16.6
- nbformat ==5.10.4
- networkx ==3.4.2
- nflows ==0.14
- notebook ==7.4.0
- notebook-shim ==0.2.4
- numdifftools ==0.9.41
- numpy ==1.24.4
- nvidia-cublas-cu12 ==12.4.5.8
- nvidia-cuda-cupti-cu12 ==12.4.127
- nvidia-cuda-nvcc-cu12 ==12.6.85
- nvidia-cuda-nvrtc-cu12 ==12.4.127
- nvidia-cuda-runtime-cu12 ==12.4.127
- nvidia-cudnn-cu12 ==9.1.0.70
- nvidia-cufft-cu12 ==11.2.1.3
- nvidia-curand-cu12 ==10.3.5.147
- nvidia-cusolver-cu12 ==11.6.1.9
- nvidia-cusparse-cu12 ==12.3.1.170
- nvidia-nccl-cu12 ==2.21.5
- nvidia-nvjitlink-cu12 ==12.4.127
- nvidia-nvtx-cu12 ==12.4.127
- omnipath ==1.0.8
- opt-einsum ==3.4.0
- optax ==0.2.4
- optimistix ==0.0.10
- optlang ==1.8.3
- optree ==0.14.1
- optuna ==4.1.0
- outcome ==1.3.0.post0
- overrides ==7.7.0
- pandas ==2.2.3
- pandocfilters ==1.5.1
- paramz ==0.9.6
- partd ==1.4.2
- path ==17.1.0
- path-py ==12.5.0
- pillow ==11.1.0
- pluggy ==1.5.0
- portpicker ==1.6.0
- prometheus-client ==0.21.1
- protobuf ==5.29.4
- pyabc ==0.12.16
- pyabcranger ==0.0.72
- pycall ==2.3.2
- pycparser ==2.22
- pydantic ==2.10.6
- pydantic-core ==2.27.2
- pydeseq2 ==0.5.0
- pyknos ==0.16.0
- pyparsing ==3.2.1
- pyro-api ==0.1.2
- pyro-ppl ==1.9.1
- pysocks ==1.7.1
- pytest ==8.3.5
- python-json-logger ==3.3.0
- python-libsbml ==5.20.4
- pytz ==2024.2
- pyyaml ==6.0.2
- redis ==6.1.0
- referencing ==0.36.2
- regex ==2024.11.6
- requests ==2.32.3
- rfc3339-validator ==0.1.4
- rfc3986-validator ==0.1.1
- rich ==13.9.4
- rpds-py ==0.24.0
- ruamel-yaml ==0.18.10
- ruamel-yaml-clib ==0.2.12
- sbi ==0.21.0
- sbibm ==1.1.0
- scikit-learn ==1.6.1
- scipy ==1.12.0
- selenium ==4.33.0
- semver ==3.0.4
- send2trash ==1.8.3
- session-info ==1.0.0
- smmap ==5.0.2
- sniffio ==1.3.1
- sortedcontainers ==2.4.0
- soupsieve ==2.6
- sqlalchemy ==2.0.36
- stdlib-list ==0.11.0
- swiglpk ==5.0.12
- sympy ==1.13.1
- tblib ==3.1.0
- tensorboard ==2.19.0
- tensorboard-data-server ==0.7.2
- tensorflow ==2.19.0
- tensorflow-io-gcs-filesystem ==0.37.1
- termcolor ==3.0.0
- terminado ==0.18.1
- threadpoolctl ==3.5.0
- tinycss2 ==1.4.0
- toolz ==1.0.0
- torch ==2.5.1
- tqdm ==4.67.1
- trio ==0.30.0
- trio-websocket ==0.12.2
- triton ==3.1.0
- typeguard ==4.4.1
- types-python-dateutil ==2.9.0.20241206
- typing-extensions ==4.13.2
- tzdata ==2024.2
- uri-template ==1.3.0
- urllib3 ==2.4.0
- vega-datasets ==0.9.0
- webcolors ==24.11.1
- webencodings ==0.5.1
- websocket-client ==1.8.0
- werkzeug ==3.1.3
- widgetsnbextension ==3.6.10
- wrapt ==1.17.2
- wsproto ==1.2.0
- xarray ==2025.4.0
- xarray-einstats ==0.8.0
- zict ==3.0.0