Team:Technion HS Israel/Software/Simulation

Technion 2015 HS Team's Wiki

Simulation

Introduction

When we've began modelling our system, we had absolutely no background in the field of synthetic biology and mathematical biology. Like anyone who encounter a new field, we wanted to do everything ourselves. In other words, we wanted to solve the problems we face using our knowledge and not to use the already existing solutions. That's how the Simulation Program has begun. When we started to model the system we began with a few ordinary differential equations, which we tried to solve analytically, but over time more and more equations were added to the list and we could achieve less and less using analysis. You can solve analytically when you have two or at most three equations, and five or seven is you assume steady state, but you can’t do anything when you have 17 equations. We understood that the only way to advance is to use a numerical approach.

The Numerical Solver

We then had an idea how to solve this problem: in each short time interval, the function behaves similar to its tangent. Therefore, if we want its derivative to be equal to a certain amount (this is exactly the restriction that an ODE – ordinary differential equations – gives), we can approximate the solution by summing all the additions of such small internals. As we make the steps smaller, the more accurate the result becomes. A full explanation and description of this algorithm is available in the document we wrote back then. Later we found that this way of solving ODE systems is called Euler Method. It didn’t surprised us that someone else has already thought of the algorithm we came up with, but even discovering something that has already been discovered is rewarding.

We implemented this algorithm in Matlab. We have wrote the solver from scratch, as well as the graphical user interface you can see in the pictures.

Features

Our user interface if consisted of three parts. On the left pane you can choose the values of all the constants in our system using sliders. The sliders are in a logarithmic scale, and an information box shows the actual value of the constant and enables to set it directly. The initial conditions can be set in this pan as well.

In the top bar, you can choose the numerical solver. The options include our numerical solver and all the numerical solvers that Matlab supplies. In some cases, our solver converge faster than the solvers of Matlab.

In the rest of the screen, the resulting graph is displayed.

Discussion

We are aware that SimBiology has all these features. In our opinion, the learning curve of our simulation program is less steep than in SimBiology and we think that a modelist will understand what is going on faster in our program (of course, in the cost of relative lack of features). It is less flexible than SimBiology, though.

Conclusion

Even if our solver does not surpass the variety of features or the user interface, we enjoyed writing it and think that the process of writing the program gave us an opportunity to understand how our system works and how dynamic processes simulation is done. We would not have it if we chose to use an existing numerical solver.

Future work

We want to make our program more generic, so each team or researcher will be able to put its equations into it and to simulate it easily. A complete list of improvements we thought of for our system is available here.

Screen Shots


screenshot of the simulation program
screenshot of the simulation program

Source Code

Our simulation program is released under the MIT license. We hope that future iGEM teams will find it useful.

Simple Solver
Simulation V1
Simulation V2
Visualization program