- “The Synthetic Kingdom mirrors synthetic biology’s ideology: it’s a future fashioned by engineering logic, a rationalisation of the complexity of living systems, an engineering solution to an engineering problem.” by Alexandra Daisy Ginsberg
To uncover the ideologies of synthetic biology, refer to the book Synthetic Biology – A Primer
- Synthetic gene circuits have been designed to control and manipulate cellular gene expressions in practical applications including biosensing, biomanufacturing, bioremediation, and biotherapy. It is therefore important to understand the underlying gene circuit design principles.
Refer to the handbook chapter Genetic Circuit Design Principles
- The use of modelling in synthetic biology enables the abstraction of essential aspects of the desired system for simulation and hypothesis testing and the capturing of the steady-state or dynamic behavior in a quantitative manner for rational design optimization.
Refer to chapter 6: Modelling Synthetic Biology Systems and a minireview on kinetic models in industrial biotechnology by Almquist J et al. to understand the general information of modelling.
This is a lecture by nanoHUB-U course on Simple Models of Gene Expression which talks about the basics of the mathematical formulation used to describe the gene expression.
One may refer to the wikipedia to understand the concept of gene expression and the two commonly used formulations: Michaelis-Menten kinetics and Hill equation that form the basis of all the model equations.
Python is a general-purpose interpreted, interactive, object-oriented, and high-level programming language. We have mostly used Python in modelling and developing computational tools in our group. Here are some of the useful resources for your references.
- A simple beginner guide can be found at Tutorialspoint.
- A more detailed tutorial is provided by Python Software Foundation
- To learn python basics in 4 hours, refer to the Quick Guide here.
- Anaconda is a free and open-source distribution of Python. The distribution comes with Spyder IDE for you to code and run your python codes. To begin with, you shall install Anaconda Distribution by choosing the right installer based on your OS (Windows, macOS, or Linux).
- Jupyter Notebook is a web application that allows you to create and share documents that contain: live code (e.g. Python code) visualizations and explanatory text (written in markdown syntax). Refer to the simple guide by Real Python and a more detailed Documentation on how to use the jupyter notebook.
- Git is a version control system installed locally that lets you manage and keep track of your source code history. GitHub is a cloud-based hosting service that lets you manage Git repositories. Here are the two useful tutorials: Intro1 and Intro2, for beginners on how to use Git and GitHub.
Model Simulation and Parameter Inference
In kinetic modelling, the two key emphases focus on solving the ordinary differential equations (ODEs) and estimating free parameters based on the experimental measurements. Some of the useful guidelines are given below:
- In python, odeint from scipy.integrate package is used to integrate/solve the ODEs. Refer to the Scipy documentation to understand the function and the example provided at the bottom as reference.
- There is also a good example here described in Jupyter notebook on how to solve ODEs and plot the results.
- In python, the tools for parameter inference which is also known as optimizers are available in scipy.optimize package, which contains both local and global optimizers. Here is a tutorial provided showing how to use the optimizer to fit a simple model to the data and estimate the parameters.