Goldbeter - Koshland loop - RuleBase

# Goldbeter - Koshland loop

Author: Russ Harmer
tags: exercises

This model extends the simple enzyme-substrate model. Read the classic paper by Goldbeter and Koshland for a detailed analysis.

We still have a single substrate agent `S` but now have two different enzyme agents, `K` and `P`, one catalyzing the state change of the substrate from `0` to `1`, the other doing the reverse.

Try running the system with 5000 `S` agents, all initially in state `0`, with 50 `K`s and 100 `P`s. What is the steady state of `S` in state `1`, i.e. `S(s~1?)` ? How long does it take to get there?

Try varying the number of `K`s, keeping `P` constant. For example, reduce `K` to 10, increase it to 200 and then 1000. How does this affect the steady state? Do a few more cases and plot a rough dose-response curve.

In cases where there are very few `K`s, you might want to rescale the system by modifying the variable `rescale` to 10 (say); this increases the size of the system 10-fold, while preserving the dynamics, thus minimizing stochastic fluctuations. This is a very useful general trick which can also be used to make a rough, but quick, simulation of a big system: to do this, change `rescale` to (say) 0.1 which decreases the system 10-fold at the cost of increasing stochastic fluctuations.

What happens if, instead, the number of `S`s is similar to the number of `K`s and `P`s?

```%agent: K(s)
%agent: P(s)
%agent: S(s~0~1)

%var: 'fast' 10
%var: 'medium' 1
%var: 'slow' 0.1
%var: 'BND' 0.00001
%var: 'BRK' 0.1
%var: 'MOD' 0.1

K(s), S(s~0) -> K(s!0), S(s~0!0) @ 'BND'*'fast'/'rescale'
K(s!0), S(s!0) -> K(s), S(s) @ 'BRK'
K(s!1), S(s~0!1) -> K(s!1), S(s~1!1) @ 'MOD'

P(s), S(s~1) -> P(s!0), S(s~1!0) @ 'BND'*'fast'/'rescale'
P(s!0), S(s!0) -> P(s), S(s) @ 'BRK'
P(s!1), S(s~1!1) -> P(s!1), S(s~0!1) @ 'MOD'

%var: 'rescale' 1
%var: 'numk' 50 * 'rescale'
%var: 'nump' 100 * 'rescale'
%var: 'nums' 5000 * 'rescale'

%init: 'numk' K(s)
%init: 'nump' P(s)
%init: 'nums' S(s~0)

%var: 'numS1' S(s~1?)
%obs: 'S1' 'numS1' / 'rescale'```