Skip to main content

FreeFlux is a package for 13C metabolic flux analysis

Project description

FreeFlux is a Python package designed for 13C metabolic flux analysis of biological systems at isotopic steady state or transient state, making it suitable for both heterotrophic and autotrophic organisms. With FreeFlux, you can:

  • Estimate metabolic fluxes

  • Simulate labeling patterns of metabolite (fragments)

  • Conduct constraint-based optimizations such as flux balance analysis and flux variability analysis

Our goal is to increase the accessibility of 13C fluxomics techniques to researchers in the metabolic phenotyping and engineering community.

To get started, check out our documentation, which provides an overview of FreeFlux’s fundamental functions using a toy model. We’ve also included tutorials for practical models of E. coli and Synechocystis.

FreeFlux now supports 15N labeling data, which can be enabled by specifying nitrogen as the labeled atom when defining the labeling strategy.

Installation

FreeFlux was tested in Python 3.7, 3.8, 3.9 and 3.10. It can be installed using pip from PyPI:

python -m pip install --upgrade pip
pip install freeflux

or from source (assuming you have git installed):

git clone https://github.com/Chaowu88/freeflux.git /path/to/freeflux
pip install /path/to/freeflux

Installation within an virtual environment is recommendated.

If FreeFlux is installed on a Linux platform with Python>=3.8, using JAX can significantly speed up the preparation step before flux estimation. JAX can be installed using the following command:

pip install "jax[cpu]>=0.4,<=0.4.18"

Solver installation

FreeFlux requires the numerical optimization framework OpenOpt for nonlinear regression. It can be installed by the following commands:

pip install openopt
pip install FuncDesigner

Note that OpenOpt is known to work well in Python 3.7, but may have compatibility issues in Python 3.8 and above. FreeFlux now automatically applies the necessary patches to ensure compatibility. If you prefer to apply the patch manually, please refer to this link for solutions.

FreeFlux uses the modeling language Pyomo to formulate linear optimization problem. By default, solvers are not installed together with Pyomo and should be installed independently. For example, to install the glpk solver, run the following command:

conda install -c conda-forge glpk

Example Usage

A typical workflow with FreeFlux starts by building a model through reading metabolic reactions with atom transitions. Users can then call a handler, such as the fitter, simulator, or optimizer, to perform flux estimation, labeling pattern simulation, or constraint-based flux analysis, respectively. Various methods are provided for these handlers for data input and computation.

Below is an example script that performs flux estimation at steady state using the toy model:

MODEL_FILE = 'path/to/reactions.tsv'

from freeflux import Model

model = Model('demo')
model.read_from_file(MODEL_FILE)

with model.fitter('ss') as fit:
    fit.set_labeling_strategy(
        'AcCoA',
        labeling_pattern = ['01', '11'],
        percentage = [0.25, 0.25],
        purity = [1, 1],
        label_atom = 'C'
    )
    fit.set_flux_bounds('all', bounds = [-100, 100])
    fit.set_measured_MDV(
        'Glu_12345',
        mean = [0.328,0.276,0.274,0.088,0.03,0.004],
        sd = [0.01,0.01,0.01,0.01,0.01,0.01]
    )
    fit.set_measured_flux('v1', mean = 10, sd = 1)
    fit.prepare()
    res = fit.solve()

For more information, please refer to the documentation.

License

FreeFlux is released under the GPL version 3 license, please see here for more details.

Citation

Wu et al.. FreeFlux: A Python Package for Time-Efficient Isotopically Nonstationary Metabolic Flux Analysis. ACS Synthetic Biology. 2023.

Feel free to provide feedback at chao.wu@nrel.gov or chaowu09@gmail.com.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freeflux-0.3.8.tar.gz (60.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freeflux-0.3.8-py3-none-any.whl (68.2 kB view details)

Uploaded Python 3

File details

Details for the file freeflux-0.3.8.tar.gz.

File metadata

  • Download URL: freeflux-0.3.8.tar.gz
  • Upload date:
  • Size: 60.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for freeflux-0.3.8.tar.gz
Algorithm Hash digest
SHA256 fe0bfd16430cb4aa98fd689a34db17f6c3cdbd4534a40d557746837e9e3c8bce
MD5 64489b4041b6b5d8d904a728729a6fcc
BLAKE2b-256 fec1c1cbdd3a56364c48dd7838f2c3869c5a0252f1cf80bdbda01f999222e556

See more details on using hashes here.

File details

Details for the file freeflux-0.3.8-py3-none-any.whl.

File metadata

  • Download URL: freeflux-0.3.8-py3-none-any.whl
  • Upload date:
  • Size: 68.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.18

File hashes

Hashes for freeflux-0.3.8-py3-none-any.whl
Algorithm Hash digest
SHA256 0c907487b38178599aa953ea1fbb293eeaaa4196077dd2701a2a46ac8050c6a8
MD5 ed717d941075ae25b4cdf97b5bd155a9
BLAKE2b-256 c5b577a99c35d54d29be818425292521c26d51e87900c5ecf8d96324838765f9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page