Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Bion App

Bion is a Rust-based application developed as part of a thesis project focused on bioreactor modeling using Runge-Kutta and Nelder-Mead methods.

App

Getting the App

Instalation

Downloading the binary

Bion can be installed by downloading a release binary from the release.

Building from source

Alternatively you can build the package from source by downloading the git repository and building it

git clone https://github.com/Tiggax/bion.git
cd bion
cargo build --release

There is also a Nix flake present for better dependency managment.

Usage

To see the code documentation see the Docs

App

The app is divided into two sections.

  • the control panel on the left with:

    • Simulation tab

    • Data tab

    • Minimization tab

  • the graph of the simulation on the right

Control panel

Control panel is the left panel of the software. It contains all of the controls of the sofware.

It has a Menu bar and content devided into three sections:

menu bar contains the following controls:

Reset

That resets the simulation parameters

Load Simulation

Loads a simulation from <file>.json state file

Previuous Simulation

Go to the previous simulation state

Simulation parameters tab

This section contains all of the model parameters. Changing any of the parameters updates the model accordingly. The constants and variables of the model are devided into subsections to classify them further.

  • Mu Max [MVC / (mL min)]:

  • Power input [W/m^3]:

  • KS glucose [g/L]:

  • KS glutamine [g/L]:

  • Initial

    • VCD [MVC/mL]:
    • Volume [L]:
    • Glucose [g/L]:
    • Glutamine [g/L]:
    • Oxigen part [%]:
  • Constants

    • Product [mg/(MVC min)]:
    • Glucose [mg/(MVC min)]:
    • Glutamine [mg/(MVC min)]:
    • k DO [mol/L]:
    • k P [/]:
    • Henry's constant [mol/(bar L)]:
  • Time shift

    • Time shift
      • shift day [day]:
      • post shift growth [%]:
    • Airation
      • Cell metabolism [mol/(cell min)]:
      • Air Flow [L/min]:
      • PID
        • Minimum [%]:
        • Max Flow [L/min]:
        • FI Oxygen Max [L/min]:
    • Feeding
      • Start [day]:
      • Rate [%]:
      • Glucose [g/L]:
      • Glutamine [g/L]:

Data tab

This tab contains three buttons.

Load Data

Loads a csv with data points into the simulation. The csv must include the following columns:

minutesvcdglnglucdo_50product
the ammount of time passed in minutesViable cell densityglutamine concentrationglucose concentrationdissolved oxygenproduct concentration

Clear Nodes

This button clears the experimental data nodes from the graph.

Export data

You can use this button to export simulation data. The program saves a csv file with the data nodes of each of the parameters, with step size of 1 minute. It also saves a json file with the same name containing all of the simulation parameters. This file can then be used with Load Simulation to recreate the simulation state.

Minimization

The remaining parts include all of the options and controls retaining to the minimization of the simulation.

Minimization Target

This section contains the target selection of the minimization. The target is the value getting changed and minimized by the function with each iteration. The available choices are:

mu_maxn_vcdFeed rateGlucoseGlutamineDOProduct

Minimization mode

You have a choice of selectin the mode of operation for the minimization function value. Each iteration of the minimization returns a value, that is then read to grade the best minimization. This is done by selecting the simulation values at each experimental nodes position in time, and returning the sum of the difference between the experimental value and the simulation. Selecting the specific mode will only look at values of that parameter, while selecting Mixed will simply look at each one and returning the sum of all differences.

Running the minimization

after importing the experimental nodes and selecting your wanted target and mode, you can click the Minimize button and the software will try to minimize the simulation to the experimental data.

For minimization to work best, it is best, to first try to manually aproximate the simulation to the experimental data.

The simulation parameters will automatically update to reflect the minimized solution.

Visualization panel

An image of the visualization panel

Viewing data

You can view specific data by hovering over the wanted data point.

double left clicking resets the plot to the default position.

Moving around the plot

You can move around the graph using scroll-wheel for y axis and shift + scroll-wheel for the x axis. It should support touch gestures, and trackpad gestures.

Zooming

You are able to zoom in and out by using ctrl + scroll-wheel or by using touch gestures on interfaces that support them.

holding right mouse button and selecting an area, zooms into that area.