<script type="text/x-mathjax-config"> MathJax.Hub.Config({ tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]} }); </script> <script src="https://2018.igem.org/common/MathJax-2.5-latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script>
Modeling
Evolutionary Algorithm
Introduction
Once a model describing the biological circuit system of interest is constructed, many users select to validate their circuits by choosing parts with different tensity or optimize product's gene, which both can be shown by dynamics parameters in ODE system, so that users can adjust its expression level to fit their desire. Therefore, we built this evolution model to help the users determine these parameters.
<img src="" style="width: 50%" />
Algorithm used in the model
Evolutionary Algorithm(EA)
EA is a generic population-based metaheuristic optimization algorithm, which uses mechanisms inspired by biological evolution, such as reproduction, crossover and mutation. The algorithm simply performs as follows:
- Use a population of possible solutions to the search space and each solution can be called a chromosome.
- Replace the current population with a new population by applying reproduction, crossover and mutation.
Fitness
$F(k) = \frac{1}{|y_{target} - y|}$ where $y_{target}$ denotes the expected output of specify protein in the circuit while $y$ denotes the real output.
Crossover
Specify the probability $p_c$ for crossover and then randomly choose two chromosomes and respectively choose one position to crossover.
Mutation
Randomly choose the $j^{th}$ node in $i^{th}$ chromosome $k_i$ to do this operation.
$$k_{ij} = k_{ij} + (\textrm{upperbound} – k_{ij}) f(k_i)$$
if $r > 0.5$
$$k_{ij} = k_{ij} - (k_{ij} – \textrm{lowerbound}) f(k_i)$$
if $r \leq 0.5$
$$f(k_i) = r^{'} * (1 – \frac{F(k_i)}{F_{best}})^2$$
$F$ is the fitness function,
$F_{best}$ denotes the best fitness in this generation, $r$ and $r^{'}$ is the random numbers between $[0,1]$, upperbound is $k_{ij}$'s upperbound and the $\textrm{lowerbound}$ is $k_{ij}$'s lowerbound.
We can evaluate the fitness of the chromosomes in each generation and chromosomes that are more fit have high probability of surviving. By iterating enough generations, we can finally find the best fit chromosome.