Skip to content

Replicating a Multi-Functional Synthetic Gene Network

License

Notifications You must be signed in to change notification settings

baioc/re-multif

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[Re] A Multi-Functional Synthetic Gene Network

Article DOI Code DOI

We hereby replicate the work of Purcell, di Bernardo, Grierson and Savery on "A Multi-Functional Synthetic Gene Network: A Frequency Multiplier, Oscillator and Switch", for ReScience.

SBOL

Reproducing our work

The simulated model is implemented in Octave (tested in versions 5.2.0 and 6.2.0) and needs an additional signal package (1.4.1) - which in turn depends on the control extension (3.2.0). These are available in Octave Forge and can be installed directly from the Octave command line:

> pkg install 'https://octave.sourceforge.io/download.php?package=control-3.2.0.tar.gz'
> pkg install 'https://octave.sourceforge.io/download.php?package=signal-1.4.1.tar.gz'

More recent versions of Octave (e.g., 7.1.0 and later) are not guaranteed to work, but if you wish to use these anyway it might be a better idea to install the latest version of the additional packages as well:

> pkg install -forge control
> pkg install -forge signal

Each experiment is configured in a separate .mat file following Octave's standard human-readable format. They are named after the Figure they generate on the replication document. For the complete set of simulation settings, refer to the provided src/save_parameters.m script, which generates a sample parameters.mat file. Also check out the experiment configurations inside the src/parameters/experiments/ folder for some practical examples. The network's reaction parameters do not change and are separately loaded from src/parameters/network.mat.

To reproduce our experiments, make sure octave is installed and has access to the aforementioned packages, python3 is also required. The script experiments.py drives the execution of all simulations and figure generation, so it takes a while to complete. It uses the pdfcrop command line tool to trim pdf whitespaces, so that is needed as well (albeit figure cropping is optional for the purpose of reproduction). After all is ready, simply run:

$ python3 experiments.py

FYI: Running all simulations takes about 14 minutes on a modest laptop, where approximately 10 minutes are spent on the experiment which generates Figure 8.

Replication paper document

The ReScience paper was written on top of a submission template with a custom makefile. Compiling this document may require several TeX packages and a working Python 3 installation:

$ cd doc
$ make

Project structure

This repository is structured as follows:

.
├── doc                         # article sources
|   |
│   ├── img                     #   generated figures
│   │   ├── bifurcation-1a.pdf
│   │   └── ...
|   |
│   ├── Makefile                #   makefile to compile the article
│   └── ...
|
├── src                         # implementation sources
|   |
│   ├── parameters
|   |   |
│   │   ├── experiments         #   experimental settings
│   │   │   ├── fig1.mat
│   │   │   └── ...
|   |   |
│   │   └── network.mat         #   network parameters
|   |
│   ├── run_experiment.m        #   script to run a single experiment
│   └── ...
|
├── experiments.py              # runs all experiments, generates figures
├── article.pdf                 # compiled replication document
└── ...

License

The replication document, its figures and sources, as well as the implementation and its sources are released under a Creative Commons Attribution 4.0 International license. This does not include the fonts inside the doc/ folder or other parts of the original ReScience Template, which may be subject to different licensing terms.