Table of Content

  1. Terms and Definitions
  2. Workflow
  3. Tools
  4. Publications
  5. Contact
  6. Download

Terms and Definitions

  • Sirael - it is a general name for the metabolic-simulation, which has its own metabolic language to describe metabolic processes.
  • Sirael Metabolic Language aka Sirael Languge is the language, which describes metabolic processes in a human readable form. Purpose of this language is to be friendly to both engineers and physicians.
  • Sirael IR aka Siraela Intermediate Language is a compiled product of a source code written in the Sirael Metabolic Language.
  • SC is the Sirael compiler of the Sirael Metabolic Language to Sirael IR and vice versa.
  • Sirael VM is the virtual metabolic machine (VM), which executes Sirael IR.
  • Siraela is an alternative name for Sirael VM and other Sirael-related tools, produced by Tomas Koutny. Note that other vendors may produce their own VM and tools.
  • Sirael State represents a simulated-subject state at a particular time. It is represented with levels of various substances across multiple compartments. In a computer-science analogy, the most close comes the thread context represented with CPU registers. Sirael Metabolic Language and Sirael IR may represent multiple states. Before executing simulation, it is necessary to choose the initial state.
  • Simulated Subject aka digital twin (etc.) is the Siraela Metablic Language or Sirael IR encoded subject with at least one state and all information needed to execute the simulation.
  • Sirael stands for Simulated Reality as the simulated subject can be fitted 1:1 from real subject. To make the name sound nice, it was twisted to a popular medieval-like times word Sirael, sometimes written as Zirael.

Workflow

  1. Using the current state of the art of internal medicine, and other relevant scientific fields, an expert like a physician defines compartments, substances (including acting substances of drugs) and their interactions using the Sirael Metabolic Language. For example, a physician can translate a physiology text book to the Sirael Metabolic Language as it is a physician-friendly language. Alternatively, Aritificial-Intelligence (AI) expert can configure e.g.; Grammatical Evolution to produce the code.
  2. As human will likely produce a source code in the Sirael Metabolic Language, it has to be compiled using the Sirael Compiler to the Sirael IR code. AI is likely to produce the IR code directly.
  3. Using an external solver, a computer/data scientist has to determine initial quantities of the substances and parameters of their interactions based on the input data.
  4. Using Siraela Terminal, dynamic library or any other tool Siraela VM is created and it loads the VM with identified metabolism, encoded in the IR code.
  5. The created VM is initialized with simulated Subject's state and the VM is commnanded to execute the simulation, while observing specified quantities as they change during the simulation.

For a convenience, the Sirael repository contain pre-prepared subjects with already identified metabolism and states. Moreover, there are realistic scenarios for a daily-behavior simulation, as they were extracted from real patients.

Siraela Tools

SC aka Sirael Compiler

This compiler takes Sirael Language encoded metabolism and compiles it to Sirael IR, or vice versa. Before executing Sirael VM, you need Sirael IR to avoid the costs of parsing and validating textual metabolism representation.

Console aka Sirael Terminal

Sirael Terminal is a command-line utility, which accepts the following commands. It creates Siraela VM, to subsequently modify its state and observe levels of designated substances in particular compartments. For example, glucose in blood and tissue represents arterial blood-glucose level and simulate CGM sensor respectively. Note that metabolism description and its parameters need to be coupled with subject's state - particular levels of substances in respective compartments. Therefore, the VM must load both the metabolism and the state.

  • reset state_index Sirael_IR_file_path - resets the VM to a particular state (identified by its ordinal number) to be simulated with a particular, IR-encoded metabolism
  • advance seconds - advances the simulation by a specified number of seconds
  • emit - emit the sample state as a collection of signals specified in the Sirael IR file path
  • cho grams - makes the subject to ingest specified number of carbohydrate grams
  • bolus units - delivers the given amount of insulin units
  • activity physical_load - sets the current physical activity, 1.0 is the basal-metabolism level
  • heartbeat bpm - sets current heartbeats per minute
  • consume signal_id quantity - it makes VM to consume a quantity of GUID identified signal

Building the Tools

The preferred way for all platforms is to use CMake. You will need C++ compiler, capable of C++17 or C++20 (preferably). With MS Windows, you can use one of the batch files, if you experience difficulties with CMake. In such a case, you need to have the C++ compiler in the path system-variable.

  1. As a first step, navigate to the Siraela source code repository.
  2. Download the repository to a specific folder. You can use git or dowland & extract the archive.
  3. Create a sub-folder called build, where to place the built binaries
  4. Build the binaries in of the following ways:
    • CMake in general
      Navigate to the build folder and call cmake ... Once done, execute cmake --build .
    • CMake on Windows
      Just call the build.bat batch file.
    • Without CMake on Windows
      Call one of the compile-[compiler_name].bat batch files according to the chosen compiler. Note that you need to have the compiler on your path. With Visual Studio, you may need to do it from the Native Tools Commnad Prompt.

Eventually, you should obtain binaries for the

  • Sirael Terminal aka the console application
  • Sirael Compiler
  • Siraela Library for performing the simulation with Siraela VM being:
    • wrapped inside a dynamically loaded library with C-interface for easy binding with other languages,
    • or, wasm or js library depending on the used compiler

Publications

Download

This page uses cookies.