RBAtools is a Python library, which can be imported and used in scripts and other applications.

Furthermore we provide selected standard workflows as scripts and command line tools, to be used from one's terminal.

To exemplify the capabilities, give inspirations for applications and introduce the user to working with RBAtools, we created extensive Jupyter notebooks as intructional tutorials.

**Tutorial Jupyter notebooks:**

Our repository includes various instructional jupyter notebooks, exemplifying the use of rbatools.

Please note that the Jupyter notebooks require additional dependencies, not co-installed with rbatools.

Those can be installed with the following commands:

`pip install notebook`

`pip install ipywidgets`

`pip install matplotlib`

`pip install seaborn`

In order to lauch the jupyter notebook interface, please execute the following command in your terminal:

`jupyter notebook`

Once a file browser opens in your web browser, please navigate in to the "/tutorials/jupyter_notebooks" sub-directory (in your local clone of the rbatools repository) and doubleclick one of the following notebooks.

**Model_components_information_access.ipynb:**

This is a Jupyter notebook with example applications on how to access information on model-components and their relationships in the B.subtilis model.

##### **Example_workflows_rba_tools.ipynb:**

This is a Jupyter notebook with example applications and workflows of rbatools with B.subtilis model.

**Exemplified workflows:**

- Initiating and results handeling:
- Growth-optimal cellular configurations:
- Cellular trade-offs:
- Sensitivity analysis:
- Gene knockout analysis:
- Deriving FBA-problem from RBA:

**Starting of session:**

*
Here we initiate an rbatools session with a model of B.subtilis.
*

**Simulation-results handling:**

*
Here we perform simple simulation runs and record the corresponding set of parameters and results.
*

**Simulation-results export:**

*
Here we export results and parameters into various formats, for inspection and visulaization.
*

**Glucose screen:**

*
Here we determine the maximum growth rates and optimal cellular configurations, corresponding to different concentrations of glucose in the medium.
*

**Search for minimal required glucose concentration at different growth rates:**

*
Here we and determine the required (minimal) concentration of glucose, necessary to obtain specified growth rates.
This analysis approximates the prediction of residual glucose concentration in chemostat cultures, at specified dilution rates.
*

**Derive Biomass functions:**

*
Here we derive biomass-functions (correspunding to cellular composition) for different growth rates, as used as objectives in FBA-modelling, from the RBA-model.
*

**Resource Variability Analysis:**

*
Here we determine the feasible range of cellular variables
(in this case exchange-fluxes of glucose and oxygen),
for all growth rates between 0 and the maximum
(achievable in specified medium).
*

**Determination of maximum production capacity of metabolic compounds:**

*
Here we determine the trade-off between cellular fitness (growth rate) and
production capacity for a metabolite of interest, relevant for biotechnological applications.
*

**Computing Pareto fronts:**

*
Here we determine the pareto efficient tradeoff between additional investment
of resources in ATP-turnover and housepeeking protein, for different growth rates.
*

**Global sensitivity analysis on enzyme capacity parameters:**

*
Here we apply noise to all enzyme efiiciencies and determine the corresponding growth-optimal state.
*

**Sensitivity of cellular fitness to ribosome capacity:**

*
Here we screen the impact of modulation of ribosome-capacity on
the maximum growth rate at different glucose concentrations.
*

**Local sensitivity analysis on selected parameters:**

*
Here we perform local sensitivity analysis of maximum growth rate on ribosome- and glucose-uptake (PTSG-system) efficiency
at different glucose concentrations. Local sensitivity is represented as the partial derivative of maximum growth rate vs. model-parameter values at wild-type.
*

*
Here we apply single knock-outs for all genes, associated with non-transport
metabolic reactions and evaluate their effects on fitness.
*

*
Here we compare the growth rates predicted with FBA, once with a fixed literature-derived biomass function and once with the biomass function, derived from the RBA model.
*

**Adding_custom_constraint_to_RBA_problem.ipynb:**

This is a Jupyter notebook, where we exemplify how to use rbatools to add user-defined constraints to an RBA-problem. The introduced functionality may serve users to develop more advanced methods with RBA.

**Linear_optimization_with_rbatools.ipynb:**

This is a Jupyter notebook, exemplifying the use of rbatools to define and solve linear optimization problems. This example is not related to RBA, but uses rbatools functionality to solve an example LP.

**Import as library in Python:**

When used in own Python code, RBAtools can be imported as follows:

`import rbatools`

For instructions on usage, please refer to our tutorials and API reference.

**Command line interface:**

When installing the rbatools library, command line tools for basic applications are co-installed.

**run-growth-rate-optimization**

This tool runs a growth rate optimisation and stores the obtained results as sbtab. The arguments to provide are an rba-model and the optional arguments for the used lp-solver (default: swiglpk, alternative: cplex) and the path where the results should be stored. To run it, execute the following command in your terminal:

`run-growth-rate-optimization path/to/rba/model --lp-solver swiglpk --output-dir ...`

**generate-sbtab-of-model-for-html**

This tool imports an rba-model and exports its component-structure as tabular sbtab (as presented on https://rba.inrae.fr/models) The arguments to provide are an rba-model and the optional argument for the path where the results should be stored. To run it, execute the following command in your terminal:

`generate-sbtab-of-model-for-html path/to/rba/model --output-dir ...`

**Scripts:**

We provided scripts with basic functionalities of rbatools in the subdirectory "scripts":

**run_growth_rate_optimization.py:**
This script runs a growth rate optimisation and stores the obtained results as sbtab. The arguments to provide are an rba-model and the optional arguments for the used lp-solver (default: swiglpk, alternative: cplex) and the path where the results should be stored. To run it, execute the following command in your terminal:

`python run_growth_rate_optimization.py path/to/model --lp-solver swiglpk --output-dir ...`

**generate_sbtab_of_model_for_html.py:**
This script imports an rba-model and exports its component-structure as tabular sbtab (as presented on https://rba.inrae.fr/models) The arguments to provide are an rba-model and the optional argument for the path where the results should be stored. To run it, execute the following command in your terminal:

`python generate_sbtab_of_model_for_html.py path/to/model --output-dir ...`