coherence
coherence integrates evolutionary computation and co-simulation for the systematic design of protocols for cell culture and biofabrication.
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.4%) to scientific vocabulary
Keywords
Repository
coherence integrates evolutionary computation and co-simulation for the systematic design of protocols for cell culture and biofabrication.
Basic Info
Statistics
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
- Releases: 1
Topics
Metadata Files
README.md
Coherence - co-simulation-based optimization of biofabrication protocols
Coherence would like to be a distributed multiscale framework for ontogenesis simulation and generation of optimized biofabrication protocols.
Table of Contents
- Overview
- Coherence container
- Coherence from source
- Author
- Publications
- Recommended citation for this project
- Copyright
Overview
Biofabrication processes are complex and often unsatisfactory. Trial-and-error methods are costly and yield only incremental innovation, starting from sub-optimal and poorly represented existing processes. Although computational techniques might support efficient process design to find optimal process configurations, intelligent computational approaches must comprise biological complexity to provide meaningful insights. Coherence is a novel prototypal co-simulation-based optimization methodology for the systematic design of protocols for cell culture and biofabrication. The proposed strategy integrates evolutionary computation and simulation for efficient design space exploration and assessment of candidate protocols. A generic library supports the modular and flexible composition of multiscale and multidomain co-simulation scenarios. The feasibility of the presented approach was demonstrated in the automatic generation of protocols for the biofabrication of an epithelial cell monolayer (see Publications).
Methodological information
Coherence includes a Design Space Exploration (DSE) engine for the generation of biofabrication protocols and a simulation engine for testing them. The framework receives the high-level specification of the target product and iteratively computes a biofabrication protocol optimized to grow it. The DSE assembles potential biofabrication protocols and feeds them to simulation instances. Simulation results are compared against the specifications of the target product used to rank the corresponding protocols and generate new ones at the next iteration. This procedure continues until an optimal protocol is produced, a predetermined number of iterations is reached, or the protocol performance stalls for a given number of iterations.
Additional details and experimental results on a selected use-case can be found in our publications.
Coherence container
The following instructions help you build a Singularity container for running coherence.
Setup
If Singularity is not installed in your system, open a shell and run ~~~~ bash wget https://raw.githubusercontent.com/smilies-polito/coherence/master/singularityinstall.sh && \ sudo chmod +x singularityinstall.sh && \ sudo ./singularity_install.sh ~~~~
Then get the container definition and build it.
This step is going to take a few minutes to complete. ~~~~ bash wget https://raw.githubusercontent.com/smilies-polito/coherence/master/coherencecontainer.def && \ singularity build --fakeroot coherencecontainer.sif coherence_container.def ~~~~
You will obtain a Singularity container (coherence_container.sif) with all the libraries and the code to run experiments with Coherence.
- Create a workspace folder for the experiments. This folder will be bound to the
experimentsfolder in the container, so that results will be written locally. ~~~~ bash mkdir ~/workspace ~~~~
You can download the provided examples and unzip them into your workspace folder. Alternatively, you can set up your own experiments based on the README.
Usage
#### Starting up a container instance
~~~~ bash
singularity instance start --bind ~/workspace/:/packages/coherence/experiments coherence_container.sif coherence
~~~~
A container instance named
coherenceis now running in background.
#### Exploring the container You can open a shell into the container with ~~~~ bash singularity shell instance://coherence ~~~~
A few predefined environment variables are available to the user:
* $COHERENCE points to coherence install directory packages/coherence
* $EXPERIMENTS expands to packages/coherence/experiments, where your local ~/workspace directory is mounted.
You can manually run your experiments from inside the container following the same instructions provided for the container-less version.
#### Shutting down the container To stop the instance use ~~~~ bash singularity instance stop coherence ~~~~
#### Running an experiment
You can automagically run an experiment without dealing with coherence code
~~~~ bash
singularity run instance://coherence half
~~~~
This command executes the singularity script in the coherence_container.sif image root, which is a dump of the code defined in the %runscript section of the coherence_container.def file.
Substitute
halfin the command above with any other${experiment name}in your~/workspace.Instructions on how to define new experiments are available in the
experiments/READMEfile.
The results will be collected locally, in the ~/workspace/${experiment name}/results folder.
If you are running the same experiment again, rename the
resultsfolder first.
Coherence from source
The following sections guide you through the installation of coherence and all its dependencies directly on your system (i.e. the execution is not confined into a container).
### Setup 1. Install system dependencies
If your system is Ubuntu >= 20.04 LTS, run:
~~~~ bash
sudo add-apt-repository ppa:rock-core/qt4 && \
sudo apt-get update && \
sudo apt-get -y install build-essential apt-utils cmake wget bzip2 git curl binutils qt4-default unzip python3-venv python3-virtualenv screen
~~~~
Otherwise, run:
~~~~ bash
sudo apt-get -y install build-essential apt-utils cmake wget bzip2 git curl binutils qt4-default unzip python3-venv python3-virtualenv screen
~~~~
Install python 3.9.5 ~~~~ bash wget https://www.python.org/ftp/python/3.9.5/Python-3.9.5.tgz && \ tar -xf Python-3.9.5.tgz && \ cd Python-3.9.5 && \ ./configure --enable-optimizations && \ make -j 8 && \ make altinstall && \ cd .. && \ rm -rf Python* ~~~~
Get coherence ~~~~ bash git clone https://github.com/smilies-polito/coherence.git && \ virtualenv -p /usr/bin/python3.9 coherence/venv && \ source coherence/venv/bin/activate && \ python -m pip install -r coherence/requirements.txt ~~~~
Install custom libraries
N.B. First check the virtualenv created above is active.
CoSimo
~~~~ bash git clone https://github.com/leonardogian/CoSimo.git && \ python -m pip install -e CoSimo ~~~~PyBoolNet ~~~~ bash git clone -b 2.31.0 --depth 1 https://github.com/hklarner/pyboolnet.git && \ python -m pip install -e PyBoolNet ~~~~
microgp3 ~~~~ bash git clone https://github.com/squillero/microgp3.git && \ cd microgp3/src && \ sed -i '34 a #include
' ./Libs/EvolutionaryCore/Evaluator.h && \ sed -i '40 a #include ' ./Libs/EvolutionaryCore/CandidateSelection.h && \ cmake -DCMAKEBUILDTYPE=DEBUG -DCMAKEINSTALLPREFIX:PATH=$HOME . && \ make && make install && \ mv $HOME/bin/ugp3 /opt && \ mv $HOME/bin/ugp3-extractor /opt && \ cd .. && \ rm -rf microgp3 ~~~~ N.B. Make sure
/optis in your$PATH!
### Usage #### Running an experiment
From inside the coherence folder, run
~~~~ bash
./coherence.sh experiments/half
~~~~
Substitute half in the command above with any other ${experiment name} in your coherence/experiments folder.
The results will be stored in the coherence/experiments/${experiment name}/results folder.
If you are running the same experiment again, rename the
resultsfolder first.
#### Batch mode
From inside the coherence/experiments folder, run
~~~~ bash
./run_batch.sh
~~~~
Edit the
experimentvariable in./run_batch.shwith the list of experiments (i.e. folder names incoherence/experiments) to be run.Each experiment will be run in a dedicated detached screen named after ${experiment name}.
Each ${experiment name} results will be collected in their corresponding
coherence/experiments/${experiment name}/resultsfolder.
Author
Leonardo Giannantoni
Politecnico di Torino - Control and Computer Engineering Department
PhD Candidate @ SMILIES group

E: leonardo.giannantoni@polito.it
P: +39 011 090 7191
M: +39 377 283 4499
A: Corso Duca degli Abruzzi 24 10129 Torino Italy
W: https://www.smilies.polito.it
Publications
- Leonardo Giannantoni, Roberta Bardini, and Stefano Di Carlo. "A methodology for co-simulation-based optimization of biofabrication protocols". IWBBIO 2022.
The experiment presented in this paper is available in the half folder, together with the results.
Recommended citation for this project
APA
Giannantoni, L. (2022). Coherence (Version 1.0.0) [Computer software]. https://github.com/smilies-polito/coherence
BibTeX
@software{Giannantoni_Coherence_2022,
author = {Giannantoni, Leonardo},
month = {4},
title = {{coherence}},
url = {https://github.com/smilies-polito/coherence},
version = {1.0.0},
year = {2022}
}
Copyright
Coherence is licensed under the MIT license. A copy of this license is included in the file LICENSE.
Owner
- Name: smilies @ Politecnico di Torino
- Login: smilies-polito
- Kind: organization
- Email: stefano.dicarlo@polito.it
- Location: Politecnico di Torino (Torino, IT)
- Website: http://www.smilies.polito.it
- Repositories: 1
- Profile: https://github.com/smilies-polito
reSilient coMputer archItectures and LIfE Sciences group
GitHub Events
Total
Last Year
Committers
Last synced: about 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Leonardo Giannantoni | 6****i | 2 |
| leonardogian | l****9@g****m | 1 |
Issues and Pull Requests
Last synced: about 2 years ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0