This is the source code of the computational program that I developed in my doctoral research to simulate the isotropic spreading process of a fibroblast cell triggered by extracellular fibronectin.
The computational model built in this research work uses three actin filament biochemical reactions to drive the reorganization of actin cytoskeleton inside cell, push cell membrane outward, and cause cell to spread isotropically.
The pictures below show a schematic view of actin filament dynamics inside a cell and an early phase of a simulated cell spreading process:
| Actin Filament Dynamics | Cell Spreading Simulation |
|---|---|
![]() |
![]() |
To compile the source code, GCC version 9+, Clang version 5+, and CMake version 3.8+ are requireded to support C++17 features and the compilation includes the following steps:
-
Creating Build Directory
Open a command-line terminal, change to the directory of the source tree, and issue the commands:
mkdir build && cd build
-
Configuring CMake for Source Code
Use the command below to configure CMake's compilation options for the source code:
cmake ..
-
Compiling Source Code
Compile the source code using CMake with the command:
cmake --build .
When compilation finishes, an executable binary file CellMotility will be generated in the build directory.
To run the simulation, one needs to provide two parameter files in the INI format to the CellMotility executable:
- A parameter file
parameters.inithat includes a set of parameters for cell geometry, molecular concentrations, cytoskeleton structure and other aspects of the simulation. - A reaction file
reactions.inithat contains the definitions of a set of biochemical reactions with forward and backward rate constants.
Note: an example of both parameter files are included in the input directory in the source code directory.
Then one can launch the CellMotility executable with either of the following two ways to start running the simulation:
Providing the two parameter files to the executable directly at the command line:
${BUILD_DIR}/CellMotility "${SRC_TREE}/input/parameters.ini" "${SRC_TREE}/input/reactions.ini"where ${BUILD_DIR} is the directory containing the CellMotility executable file.
Once the simulation starts, a series of output data files will be generated in the current directory where the CellMotility executable is invoked.
Setting up an environment variable MOTILITY_HOME to point to a directory that includes two sub-directories: input and output, such that the input directory contains the two parameter files for the simulation and the output directory will be used to host all the output date files generated during the simulation.
For example, one can set MOTILITY_HOME with the command:
export MOTILITY_HOME="${HOME}/Cell-Motility"where the ${HOME}/Cell-Motility directory contains an input and an output directories.
Then one can start the simulation using the command:
${BUILD_DIR}/CellMotilityNote: many parameters in the parameters.ini file can be fine tuned, especially the molecular concentrations in the [molecule] section.
Enjoy the simulation!

