I’ve been studying from Biological Modeling: a free course. These are some of my notes for Chapter 1, about gene networks. I wanted to implement the section on autoregulation myself instead of using their recommended software.
The context: DNA leads to RNA leads to proteins. These proteins can do a wide range of things, but the ones covered here are transcription factors, which affect the rate of protein production (gene expression). Surprisingly, some proteins affect their own rate of production, a process called autoregulation. To understand this, let’s first look at a simple model of protein production:
- In the book there are two proteins,
Xis constant, so I’m going to focus on
Yin my code.
- The first reaction is
Xis constant, that means
Yis being produced at a constant rate, which I’ll call reaction.
- The second reaction is
Y→ null. This means
Yis being removed at a rate recycle proportional to the amount of
Yin the system.
These two reactions lead to equilibrium for the level of
By playing with the sliders I can see that reaction is a pure scaling factor, and recycle is the main parameter affecting shape. The chart is afrom a simulation but this simple case also can be represented as a closed form
Y(t) = reaction/recycle * (1 - e^(-recycle * t)).
Now it’s time to add autoregulation.
- The autoregulation reaction is
Y. This means Y is being removed at a rate
This also leads to an equilibrium, but it’s lower than the original system:
But why would we ever want this? It seems weird to evolve a new mechanism to reach a lower equilibrium, since it can already do that without autoregulation. We can reduce the
reaction parameter instead.
The way to think about it is that instead of the input parameters reaction and recycle being fixed, it’s the equilibrium value that’s fixed. Let’s set the equilibrium to always be 1.0 and see what autoregulation does:
This explains why we want autoregulation! For any value of the reaction rate, we reach equilibrium faster if we also have
autoregulation > 0.
So that’s interesting! I learned a bit by studying this and implementing the simulation.
Other notes I made while studying this section:
- without autoregulation, the differential equation is solved by
Y(t) = reaction / recycle * (1 - exp(-recycle * t))and equilibrium is at
Y = reaction / recycle.
- with autoregulation, I can find the equilibrium by solving dy = 0 or
reaction - recycle * y - autoregulation * y * y = 0. This is a quadratic equation with a = autoregulation , b = recycle, c = -reaction, so the solution is
y = recycle/autoregulation/2 * (-recycle ± sqrt(recycle² + 4 * autoregulation * reaction)), or with Muller’s method we get
y = -2*reaction / (-recycle ± sqrt(recycle² + 4 * autoregulation * reaction)). The latter has the advantage of working with a is zero, which is a case I want to handle, since I want to allow setting autoregulation to 0.
Read the course material for a lot more detail!