Huan-Yang / MECAGEN

Simulation platform of animal embryogenesis

Home Page:http://www.mecagen.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

MecaGen - A Simulation Platform of Animal Embryogenesis

MecaGen is a C++ simulation platform of animal multicellular development relying on a realistic agent-based model. It is centered on the physico-chemical coupling of cell mechanics with gene expression and molecular signaling.

This project aims to investigate the multiscale dynamics of the early stages of biological morphogenesis. Embryonic development is viewed as an emergent, self-organized phenomenon based on a myriad of cells and their genetically regulated, and regulating, biomechanical behavior.

Past runs simulate:

  • the collective cell behaviours during the zebrafish epiboly,

  • boundary formation and epithelialization

  • or pattern formation from an external signalling gradient.

More information can be found in the open access article describing the model:

Delile, J., Herrmann, M., Peyriéras, N. and Doursat, R. (2017). A cell-based computational model of early embryogenesis coupling mechanical behaviour and gene regulation. Nat Commun 8, 13929. https://doi.org/10.1038/ncomms13929

Installing MecaGen on Linux

Dependencies

(a) Installing MecaGen requires a few libraries to be installed first. We recommend using a package manager such as "pacman" on Archlinux, or the "Advanced Packaging Tool" (APT) on Ubuntu and Debian. For the last two, you can copy and paste the following command in a terminal window:

sudo apt-get install libsdl2-dev libglew-dev freeglut3-dev libboost-serialization-dev libboost-random-dev qt5-default

These libraries can also be installed manually via the download links below:

(b) Then, if your machine is equipped with an NVIDIA graphics card, we recommend to install the CUDA library, by command or download:

sudo apt-get install nvidia-cuda-toolkit

(c) If you do not have an NVIDIA card, or are not sure, then you must download instead the Thrust template library (a package of header files), and unzip it in the directory of your choice:

  • (Required only if no Cuda is installed) Thrust

Environment variables

(a) Edit the local file on your disk "user_paths_MUST_BE_EDITED_FIRST", which contains the paths for Qt and CUDA, as as indicated inside the file (do not rename it). For that, you can use the 'locate' command to identify the correct paths (if that command is not installed, its package is usually named 'mlocate', so in Ubuntu you can type 'sudo apt-get install mlocate').

Example for QTINCLUDEPATH:

$ locate qapplication.h
/usr/include/qt/QtWidgets/qapplication.h
/usr/include/qt4/Qt/qapplication.h
/usr/include/qt4/QtGui/qapplication.h
/usr/include/qt4-32/Qt/qapplication.h

Our system has both QT4 and QT5 installed, QT5 being the default one, thus we look at the 1st line and the path we want is: QTINCLUDEPATH=/usr/include/qt

Example for QTLIBPATH:

$ locate bin/qmake
/usr/bin/qmake
/usr/bin/qmake-qt4
/usr/bin/qmake-qt5
/usr/lib/qt/bin/qmake
/usr/lib/qt4/bin/qmake

Here, we want the library path, therefore the 4th line: QTLIBPATH=/usr/lib/qt

Example for CUDAPATH (if installed):

$ locate cuda_runtime.h
/opt/cuda/include/cuda_runtime.h

The path we want is: CUDAPATH=/opt/cuda

Otherwise, for THRUSTPATH: specify the path to the folder containing the Thrust library (i.e. where you downloaded the header files). Make sure the final 'thrust' segment is not included in the path.

(b) If you installed the above QT5.x library by download, verify that the following environment variables of your system contain the proper library folders (for example with the 'export' command):

  • PATH must contain the Meta-Object Compiler (moc) program

(c) If you installed CUDA by download, verify that:

  • PATH contains the NVIDIA CUDA Compiler (nvcc)

Compilation

At this stage, compilation options will depend on the examples you want to run. This is because the MecaGen platform was designed to allow integration with external custom code, in order to simulate specific structures such as extraembryonic tissue. Currently, two versions are available: (a) a "default" version executing regular MecaGen simulations without custom code, and (b) a "zebrafish" version that includes special rules for the yolk particles and enveloping layer (EVL) cells.

(a) Go to the root directory of the unzipped MecaGen package (replace "/path/to/" with the actual path containing the MECAGEN-master folder):

cd /path/to/MECAGEN-master

(b) To compile MecaGen in the "default" mode and run Case Study 1 (pattern formation) or Case Study 2 (epithelial differentiation), enter the following command:

make CUSTOM=default

(c) To compile MecaGen in the "zebrafish" mode, and run Case Study 3 (epiboly), enter:

make CUSTOM=zebrafish

(d) If you need to switch modes to run another case study, you must clean all previous compilation files beforehand by typing:

make cleanall

Running MecaGen

MecaGen uses XML files as inputs for the simulations. It requires three input files, which can be automatically generated (see below):

  • a parameter file containing all the parameters describing the gene regulatory network (GRN), molecular interactions, and biomechanical properties
  • a state file containing the initial state of the variables
  • a meta-parameter file containing information related to algorithmic and rendering options

Generating input files

For simulations containing a large number of cells, it is not practical to write the input files by hand. Instead, you can generate them automatically by typing the following commands (must be done again after each new compilation):

cd mecagen
./generate_input_files.sh all

Running the examples

Once input files are generated, you can start MecaGen:

./run_examples.sh

Note: if execution halts prematurely with a "gpuassert" message, you need to start the script as superuser:

sudo ./run_examples.sh

Help videos

Two videos accessible on YouTube demonstrate the previous instructions:

License

MecaGen is released under the GNU General Public License v3.0. See the LICENSE file for details.

About

Simulation platform of animal embryogenesis

http://www.mecagen.org

License:GNU General Public License v3.0


Languages

Language:HTML 71.3%Language:C++ 23.6%Language:JavaScript 1.7%Language:Makefile 1.5%Language:CSS 1.0%Language:Cuda 0.6%Language:Shell 0.2%Language:C 0.1%Language:GLSL 0.1%