<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://fbswiki.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Figure_3.26%3A_The_repressilator_genetic_regulatory_network</id>
	<title>Figure 3.26: The repressilator genetic regulatory network - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://fbswiki.org/wiki/index.php?action=history&amp;feed=atom&amp;title=Figure_3.26%3A_The_repressilator_genetic_regulatory_network"/>
	<link rel="alternate" type="text/html" href="http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;action=history"/>
	<updated>2026-04-24T21:53:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=1272&amp;oldid=prev</id>
		<title>Murray at 18:46, 16 November 2024</title>
		<link rel="alternate" type="text/html" href="http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=1272&amp;oldid=prev"/>
		<updated>2024-11-16T18:46:31Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:46, 16 November 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l101&quot; &gt;Line 101:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 101:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Define the system as an I/O system&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Define the system as an I/O system&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sys = ct.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;NonlinearIOSystem&lt;/del&gt;(&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;sys = ct.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nlsys&lt;/ins&gt;(&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     updfcn=repressilator, outfcn=lambda t, x, u, params: x[3:],&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     updfcn=repressilator, outfcn=lambda t, x, u, params: x[3:],&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     states=6, inputs=0, outputs=3)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;     states=6, inputs=0, outputs=3)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Murray</name></author>
	</entry>
	<entry>
		<id>http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=962&amp;oldid=prev</id>
		<title>Murray at 16:35, 28 May 2023</title>
		<link rel="alternate" type="text/html" href="http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=962&amp;oldid=prev"/>
		<updated>2023-05-28T16:35:40Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:35, 28 May 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Figure&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Figure&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Chapter=System Modeling&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Chapter=System Modeling&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure number=26&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure number=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;3.&lt;/ins&gt;26&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;|Sort key=326&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure title=The repressilator genetic regulatory network&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure title=The repressilator genetic regulatory network&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/example-3.18-repressilator.py&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/example-3.18-repressilator.py&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Murray</name></author>
	</entry>
	<entry>
		<id>http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=864&amp;oldid=prev</id>
		<title>Murray at 21:30, 29 May 2022</title>
		<link rel="alternate" type="text/html" href="http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=864&amp;oldid=prev"/>
		<updated>2022-05-29T21:30:50Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 21:30, 29 May 2022&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Figure&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Figure&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Chapter=System Modeling&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Chapter=System Modeling&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure number=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;36&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure number=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;26&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure title=The repressilator genetic regulatory network&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|Figure title=The repressilator genetic regulatory network&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/example-3.18-repressilator.py&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/example-3.18-repressilator.py&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Murray</name></author>
	</entry>
	<entry>
		<id>http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=749&amp;oldid=prev</id>
		<title>Murray: Created page with &quot;{{Figure |Chapter=System Modeling |Figure number=36 |Figure title=The repressilator genetic regulatory network |GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/e...&quot;</title>
		<link rel="alternate" type="text/html" href="http://fbswiki.org/wiki/index.php?title=Figure_3.26:_The_repressilator_genetic_regulatory_network&amp;diff=749&amp;oldid=prev"/>
		<updated>2021-08-30T16:52:52Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{Figure |Chapter=System Modeling |Figure number=36 |Figure title=The repressilator genetic regulatory network |GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/e...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Figure&lt;br /&gt;
|Chapter=System Modeling&lt;br /&gt;
|Figure number=36&lt;br /&gt;
|Figure title=The repressilator genetic regulatory network&lt;br /&gt;
|GitHub URL=https://github.com/murrayrm/fbs2e-python/blob/main/example-3.18-repressilator.py&lt;br /&gt;
}}&lt;br /&gt;
[[Image:figure-3.26-repressilator_dynamics.png|320px]]&lt;br /&gt;
&lt;br /&gt;
Figure 3.26: The repressilator genetic regulatory network. (b) A simulation of a simple model for the repressilator, showing the oscillation of the individual protein concentrations.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
# example-3.18-repressilator.py - Transcriptional regulation&lt;br /&gt;
# RMM, 29 Aug 2021&lt;br /&gt;
#&lt;br /&gt;
# Figure 3.26: The repressilator genetic regulatory network. (a) A schematic&lt;br /&gt;
# diagram of the repressilator, showing the layout of the genes in the&lt;br /&gt;
# plasmid that holds the circuit as well as the circuit diagram&lt;br /&gt;
# (center). (b) A simulation of a simple model for the repressilator,&lt;br /&gt;
# showing the oscillation of the individual protein concentrations.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
import control as ct&lt;br /&gt;
import numpy as np&lt;br /&gt;
import matplotlib.pyplot as plt&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Repressilator dynamics&lt;br /&gt;
#&lt;br /&gt;
# This function implements the basic model of the repressilator All&lt;br /&gt;
# parameter values were taken from Nature. 2000 Jan 20; 403(6767):335-8.&lt;br /&gt;
#&lt;br /&gt;
# This model was developed by members of the 2003 Synthetic Biology Class&lt;br /&gt;
# on Engineered Blinkers.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Dynamics for the repressilator&lt;br /&gt;
def repressilator(t, x, u, params):&lt;br /&gt;
    # store the state variables under more meaningful names&lt;br /&gt;
    mRNA_cI = x[0]&lt;br /&gt;
    mRNA_lacI = x[1]&lt;br /&gt;
    mRNA_tetR = x[2]&lt;br /&gt;
    protein_cI = x[3]&lt;br /&gt;
    protein_lacI = x[4]&lt;br /&gt;
    protein_tetR = x[5]&lt;br /&gt;
&lt;br /&gt;
    #&lt;br /&gt;
    # set the parameter values&lt;br /&gt;
    #&lt;br /&gt;
&lt;br /&gt;
    # set the max transcription rate in transcripts per second&lt;br /&gt;
    k_transcription_cI = params.get('k_transcription_cI', 0.5)&lt;br /&gt;
    k_transcription_lacI = params.get('k_transcription_lacI', 0.5)&lt;br /&gt;
    k_transcription_tetR = params.get('k_transcription_tetR', 0.5)&lt;br /&gt;
&lt;br /&gt;
    # set the leakage transcription rate (ie transcription rate if&lt;br /&gt;
    # promoter region bound by repressor) in transcripts per second&lt;br /&gt;
    k_transcription_leakage = params.get('k_transcription_leakage', 5e-4)&lt;br /&gt;
&lt;br /&gt;
    # Set the mRNA and protein degradation rates (per second)&lt;br /&gt;
    mRNA_half_life = params.get('mRNA_half_life', 120)          # in seconds&lt;br /&gt;
    k_mRNA_degradation = np.log(2)/mRNA_half_life&lt;br /&gt;
    protein_half_life = params.get('protein_half_life', 600)    # in seconds&lt;br /&gt;
    k_protein_degradation = np.log(2)/protein_half_life&lt;br /&gt;
&lt;br /&gt;
    # proteins per transcript lifespan&lt;br /&gt;
    translation_efficiency = params.get('translation_efficiency', 20)&lt;br /&gt;
    average_mRNA_lifespan = 1/k_mRNA_degradation&lt;br /&gt;
&lt;br /&gt;
    # proteins per transcript per sec&lt;br /&gt;
    k_translation = translation_efficiency/average_mRNA_lifespan &lt;br /&gt;
&lt;br /&gt;
    # set the Hill coefficients of the repressors&lt;br /&gt;
    n_tetR = params.get('n_tetR', 2)&lt;br /&gt;
    n_cI = params.get('n_cI', 2)&lt;br /&gt;
    n_lacI = params.get('n_lacI', 2)&lt;br /&gt;
&lt;br /&gt;
    # Set the dissociation constant for the repressors to their target promoters&lt;br /&gt;
    # in per molecule per second&lt;br /&gt;
    KM_tetR = params.get('KM_tetR', 40)&lt;br /&gt;
    KM_cI = params.get('KM_cI', 40)&lt;br /&gt;
    KM_lacI = params.get('KM_lacI', 40)&lt;br /&gt;
&lt;br /&gt;
    # the differential equations governing the state variables:&lt;br /&gt;
    # mRNA concentration = transcription given repressor concentration - &lt;br /&gt;
    # mRNA degradation + transcription leakage&lt;br /&gt;
    dxdt = np.empty(6)&lt;br /&gt;
    dxdt[0] = k_transcription_cI/(1 + (protein_tetR / KM_tetR) ** n_tetR) - \&lt;br /&gt;
        k_mRNA_degradation * mRNA_cI + k_transcription_leakage&lt;br /&gt;
    dxdt[1] = k_transcription_lacI/(1 + (protein_cI / KM_cI)**n_cI) - \&lt;br /&gt;
        k_mRNA_degradation * mRNA_lacI + k_transcription_leakage&lt;br /&gt;
    dxdt[2] = k_transcription_tetR/(1 + (protein_lacI / KM_lacI) ** n_lacI) - \&lt;br /&gt;
        k_mRNA_degradation * mRNA_tetR + k_transcription_leakage&lt;br /&gt;
&lt;br /&gt;
    # protein concentration = translation - protein degradation&lt;br /&gt;
    dxdt[3] = k_translation*mRNA_cI - k_protein_degradation*protein_cI&lt;br /&gt;
    dxdt[4] = k_translation*mRNA_lacI - k_protein_degradation*protein_lacI&lt;br /&gt;
    dxdt[5] = k_translation*mRNA_tetR - k_protein_degradation*protein_tetR&lt;br /&gt;
&lt;br /&gt;
    return dxdt&lt;br /&gt;
&lt;br /&gt;
# Define the system as an I/O system&lt;br /&gt;
sys = ct.NonlinearIOSystem(&lt;br /&gt;
    updfcn=repressilator, outfcn=lambda t, x, u, params: x[3:],&lt;br /&gt;
    states=6, inputs=0, outputs=3)&lt;br /&gt;
&lt;br /&gt;
# Set up the plotting grid to match the layout in the book&lt;br /&gt;
fig = plt.figure(constrained_layout=True)&lt;br /&gt;
gs = fig.add_gridspec(2, 2)&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# (b) A simulation of a simple model for the repressilator, showing the&lt;br /&gt;
# oscillation of the individual protein concentrations.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
fig.add_subplot(gs[0, 1])       # first row, second column&lt;br /&gt;
&lt;br /&gt;
# Initial conditions and time&lt;br /&gt;
t = np.linspace(0, 20000, 1000)&lt;br /&gt;
x0 = [1, 0, 0, 200, 0, 0]&lt;br /&gt;
&lt;br /&gt;
# Integrate the differential equation&lt;br /&gt;
response = ct.input_output_response(sys, t, 0, x0)&lt;br /&gt;
&lt;br /&gt;
# Plot the results (protein concentrations)&lt;br /&gt;
plt.plot(response.time/60, response.outputs[0], '-')&lt;br /&gt;
plt.plot(response.time/60, response.outputs[1], '--')&lt;br /&gt;
plt.plot(response.time/60, response.outputs[2], '-.')&lt;br /&gt;
&lt;br /&gt;
plt.axis([0, 300, 0, 5000])&lt;br /&gt;
plt.legend((&amp;quot;cI&amp;quot;, &amp;quot;lacI&amp;quot;, &amp;quot;tetR&amp;quot;), loc='upper right')&lt;br /&gt;
&lt;br /&gt;
plt.xlabel(&amp;quot;Time [min]&amp;quot;)                        # Axis labels&lt;br /&gt;
plt.ylabel(&amp;quot;Proteins per cell&amp;quot;)&lt;br /&gt;
plt.title(&amp;quot;Repressilator simulation&amp;quot;)           # Plot title&lt;br /&gt;
&lt;br /&gt;
# Save the figure&lt;br /&gt;
plt.savefig(&amp;quot;figure-3.26-repressilator_dynamics.png&amp;quot;, bbox_inches='tight')&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Murray</name></author>
	</entry>
</feed>