{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# The prozone effect\n", "\n", "The prozone effect, also called the hook effect, refers to when the abundance of a molecular complex first increases then decreases as the relative concentration of a constituent molecule `E` increases.\n", "In this example, we will say that a complex is composed of an `L` molecule, an `M` molecule, and an `E` molecule, which connects the former two together." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "nbsphinx": "hidden" }, "outputs": [], "source": [ "import random\n", "random.seed(0)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "from pykappa.system import System\n", "\n", "system = System.from_ka(\n", " \"\"\"\n", " %init: 100 L(e[.])\n", " %init: 100 M(e[.])\n", "\n", " %obs: 'E' |E()|\n", " %obs: 'Incomplete complexes' |E(l[_], m[.])| + |E(l[.], m[_])|\n", " %obs: 'Complete complexes' |E(l[_], m[_])|\n", "\n", " E(l[.]), L(e[.]) <-> E(l[1]), L(e[1]) @ 1, 1 // Bind L to E\n", " E(m[.]), M(e[.]) <-> E(m[1]), M(e[1]) @ 1, 1 // Bind M to E\n", " . -> E(l[.], m[.]) @ 1 // Inflow of E\n", " \"\"\"\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We've set up the system so that there's no `E` to start but that it flows in at a constant stochastic rate.\n", "Let's now simulate while tracking the corresponding number of complexes:" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "while system.time < 5 * 10 ** 2:\n", " system.update()\n", "system.monitor.plot();" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As we introduce more `E`, at first more complexes can be formed but eventually there are so many `E` that the other components of the complex become more likely to bind separate `E` molecules.\n", "The result is that the full complex is less likely to form." ] } ], "metadata": { "kernelspec": { "display_name": "standard", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.12.3" } }, "nbformat": 4, "nbformat_minor": 2 }