CiliaSim

An aperiodic Voronoi model for simulating ciliated tissues under exogenous flow forces.

About the project

This software was developed under the Boselli Lab, supervised by Dr. Francesco Boselli, and was kindly supported by the Royal Microscopical Society and the Durham University Biophysical Sciences Institute.

Please Note: This software is still under development, so breaking changes may still occur.

An Introduction

CiliaSim is a 2-dimensional Voronoi tissue model designed specifically for the simulation of ciliated tissues under exogenous flow forces. It achieves this by considering cells as either basic or multiciliated. By modifying parameters in the system (like the density of multiciliated cells, frictional coefficients, cell-cell adhesion forces, etc.) the system can be tuned to represent realistic tissue mechanics.

Once the model is set up, simulations can be run with exogenous flows applied to the system. Simulation parameters like tissue dimensions, tissue layout, flow direction and flow magnitude can be experimented with to observe and measure the morphological changes that occur.

Installation

This project is written in Python 3 and requires the numpy, scipy, matplotlib, and numba libraries.

$ git clone https://github.com/GuillaumeMacneil/CiliaSim
$ cd CiliaSim
$ python3 -m venv venv
$ source venv/bin/activate
$ pip install numpy scipy matplotlib numba

Basic Use

Essentially, CiliaSim provides a framework for defining a 2D ciliated tissue, describing the forces it will experience, and the timescale on which this process will occur. We may define a basic simulation like so:

from tissue import Tissue
    
tissue = Tissue(15, 15, 0.06)
tissue.hexagonal_grid_layout()
tissue.set_plot_spring()
tissue.simulate("Tissue annealing - No forces.", 1000, 100)
tissue.set_uniform_cilia_forces([0, 1], 0.5)
tissue.simulate("Tissue under upward cilia force of magnitude 0.5.", 9000, 100)

This simple definition will generate a 15x15 tissue with a 6% cilia density in a hexagonal grid layout. The ciliated cells will be randomly distributed over the tissue and, when plotted, the tissue will show the springs connecting cell centers coloured by strain. The first 1000 iterations of the simulation is spent "annealing" the tissue, and then a 0.5 magnitude upward force is applied to each ciliated cell and the simulation is continued for a further 9000 iterations.