Skip to content
mmaverikk edited this page Oct 27, 2020 · 7 revisions

What is Cytos and morphogenetic systems?

Morphogenetic system (M system) is an abstract model motivated by key aspects of morphogenetic phenomena such as self-assembly, growth, homeostasis, self-reproduction and self-healing of evolving systems. Its original purpose is the study of these phenomena, both theoretically and by experimentation, at a computational level abstracted from a biological implementation. Application in biological modeling and research is also worth considering. Mathematically, M systems rely on basic principles of membrane computing and self-assembly, as well as explicit emphasis on geometrical structures (location and shape) in 3D (or generally, dD) Euclidean space. Theoretical studies have shown that M systems are computational universal, as well as efficient in solving difficult NP problems. Moreover, they have also shown robustness to injuries and self-healing capabilities through extensive computer simulations of specific M systems modeling self-reproduction of a model of a basic eukaryotic cell. As computer simulations play a crucial tool in study and applications of morphogenetics, we have developed a software package to implement M systems in silico. It consists of two modules, a simulation engine and a visualizing tool based on the Unity game engine.

Cytos - M systems simulator

Summary

  • Modular architecture with strong OOP approach
  • Written in .NET 4.6.1
  • Separated simulation engine (standalone DLL) with user friendly interface
    • Soon distributed via NUGET packaging system
  • Main classes coverd by Unit tests

Input/output files

  • Input
    • Created M system is saved to M system description XML
    • Structure is defined in XSD
  • Output
    • So-called Snapshot file in XML structure
    • Contains visualization objects with its shape, in specified position and with defined color
    • Can be used as input file for MSystemVisualization (Unity engine)

Modules

  • MSystemSimulationEngine
    • Main ENGINE of whole project
    • Contains deserialization tool (usage is optional)
    • Simulation methods for simulation run
    • Serialize output data into XML structure called snapshot file
      • Contains objects (created/destroyed/moved) with positions and color information
  • Cytos_v2
    • Main application for running simulator
    • Contains only UI all computation is done by MSystemSimulationEngine
  • MSystemCreator
    • Easy to use XML creator and editor
    • Creates basic XML structures
    • Contains validation features and help
  • SharedComponents
    • Basic library which contains useful and shareable tools across solution
  • Spatial and Numerics
    • Open source mathematical libraries (user for e.g. object shifts and rotations)
  • MSystemVisualization
    • Unity game engine used for visualization
    • Is a multi-platform game engine (Windows, Mac,…)
    • Takes full advantage of the C# language
    • Unity supports two and three-dimensional environment
    • For tile, we use method Mesh drawing
    • For easy control in environment, user can use spectator mode

Modules - dependecy tree

Modules - dependecy tree