Lesson 10 of 20
All at once vs one at a time — the update scheme changes the answer
Synchronous, asynchronous, and artefacts of the model
In lesson 3 we agreed to update every gene at the same instant. It makes the computation easy and the results reproducible.
But does a real cell have such a clock? It does not. Transcription time, translation time and protein degradation time all differ from gene to gene.
So there is an alternative — asynchronous update. At each step you pick one gene at random and update only that one.
| Synchronous | Asynchronous | |
|---|---|---|
| Update | All together | One at a time, at random |
| Result | Same start → same ending | Same start → several possible endings |
| Long oscillations | Show up often | Usually disappear |
| Computation | Exhaustive enumeration possible | Requires many sampled runs |
Here is what matters — a good share of the long oscillations that come out of synchronous update are artefacts of the model. Fixed points generally survive; cycles are sensitive to the update scheme.
The oscillation that was so tidy under synchronous update scatters under asynchronous.
Python
Runs in your browser
This result matters. The cancer fixed point we base our search for targets on is not an artefact.
Python
Runs in your browser
🎮 Update-scheme bench
Roll the same starting point synchronously and asynchronously and compare.
🤔 Check yourself
What happens if you run the same initial state twice under asynchronous update?
Answer Which gene gets picked at each step is random, so the path differs. To talk about a 'fate' you have to run it many times and look at the proportions.
🤔 Check yourself
Which synchronous result is most sensitive to the update scheme?
Answer A fixed point keeps its value whichever gene you update, so it survives regardless of scheme. A long cycle leans on the assumption that everyone moves in step, and breaks easily.
🤔 Check yourself
What does it mean that the cancer fixed point survives asynchronous update?
Answer It confirms that the thing we base our target selection on is not a ghost created by the model's convenience. Publishing a result without that check is asking for trouble.