biological networks
This commit is contained in:
123
bionet/1-cyclic-error-correction.ipynb
Normal file
123
bionet/1-cyclic-error-correction.ipynb
Normal file
@@ -0,0 +1,123 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 8,
|
||||||
|
"id": "3b5b09c5-9188-49d8-a6c8-2f89ea1c7d7a",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"from random import random\n",
|
||||||
|
"import numpy as np\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"def decide (prob):\n",
|
||||||
|
" return True if random() <= prob else False\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "markdown",
|
||||||
|
"id": "6e68a721",
|
||||||
|
"metadata": {},
|
||||||
|
"source": [
|
||||||
|
"Question A: Try to simulate Figure. 1.11, assuming that probability to return to start if right is 0.9 while probability to return to start if attempt is wrong is 0.99. Assume that right and wrong are produced equally often and start 100000 times and for each time count how many end in right, respectively wrong state with 1 sorting step, and with 2 sorting steps."
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 24,
|
||||||
|
"id": "56a4b642-2454-4021-98dd-dc95b07ae5bf",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"244509.0\n",
|
||||||
|
"270193.0\n",
|
||||||
|
"485298\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"N = int(1e6)\n",
|
||||||
|
"\n",
|
||||||
|
"isright = True\n",
|
||||||
|
"n = 0\n",
|
||||||
|
"\n",
|
||||||
|
"n_wrong = np.zeros(N)\n",
|
||||||
|
"n_right = np.zeros(N)\n",
|
||||||
|
"n_0 = 0\n",
|
||||||
|
"\n",
|
||||||
|
"for i in range(0,N):\n",
|
||||||
|
" if n == 0:\n",
|
||||||
|
" isright = decide(.5)\n",
|
||||||
|
" n += 1\n",
|
||||||
|
" n_0 += 1\n",
|
||||||
|
" \n",
|
||||||
|
" elif isright:\n",
|
||||||
|
" n_right[n] += 1\n",
|
||||||
|
" if decide(0.9):\n",
|
||||||
|
" n = 0\n",
|
||||||
|
" else:\n",
|
||||||
|
" n += 1\n",
|
||||||
|
" else:\n",
|
||||||
|
" n_wrong[n] += 1\n",
|
||||||
|
" if decide(0.99):\n",
|
||||||
|
" n = 0\n",
|
||||||
|
" else:\n",
|
||||||
|
" n += 1\n",
|
||||||
|
" \n",
|
||||||
|
" \n",
|
||||||
|
"print(np.sum(n_wrong))\n",
|
||||||
|
"print(np.sum(n_right))\n",
|
||||||
|
"print(n_0)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "8b1131fa-c7f8-4ff6-81cd-5ae6eec2d03c",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "81e08034-a023-4309-8314-44bcca4b052c",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"id": "3356adc3-ef39-4e63-8f2c-d1e4cec9c503",
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "Python 3",
|
||||||
|
"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.7.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 5
|
||||||
|
}
|
||||||
201
bionet/10-combined-feedback.ipynb
Normal file
201
bionet/10-combined-feedback.ipynb
Normal file
File diff suppressed because one or more lines are too long
263
bionet/11-feedback.ipynb
Normal file
263
bionet/11-feedback.ipynb
Normal file
File diff suppressed because one or more lines are too long
184
bionet/2-ribosome-traffic.ipynb
Normal file
184
bionet/2-ribosome-traffic.ipynb
Normal file
File diff suppressed because one or more lines are too long
169
bionet/3-transcription-regulation.ipynb
Normal file
169
bionet/3-transcription-regulation.ipynb
Normal file
File diff suppressed because one or more lines are too long
121
bionet/4-phage-statmech.ipynb
Normal file
121
bionet/4-phage-statmech.ipynb
Normal file
File diff suppressed because one or more lines are too long
453
bionet/5-lattice-polymer.ipynb
Normal file
453
bionet/5-lattice-polymer.ipynb
Normal file
@@ -0,0 +1,453 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 2,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import numpy as np\n",
|
||||||
|
"from random import random\n",
|
||||||
|
"\n",
|
||||||
|
"def choose012 ():\n",
|
||||||
|
" rand = random()\n",
|
||||||
|
" if rand <= 1/3:\n",
|
||||||
|
" return 0\n",
|
||||||
|
" elif rand <= 2/3:\n",
|
||||||
|
" return 1\n",
|
||||||
|
" else:\n",
|
||||||
|
" return 2\n",
|
||||||
|
"\n",
|
||||||
|
"def choosedir ():\n",
|
||||||
|
" return 1 if random() <= .5 else -1\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 11,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"0.41\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"# Question 4.5.5\n",
|
||||||
|
"# No self interaction\n",
|
||||||
|
"\n",
|
||||||
|
"M = int(1e4)\n",
|
||||||
|
"N = 20\n",
|
||||||
|
"\n",
|
||||||
|
"back_at_origin = 0\n",
|
||||||
|
"\n",
|
||||||
|
"for m in range(0,M):\n",
|
||||||
|
" current = np.zeros(3) \n",
|
||||||
|
"\n",
|
||||||
|
" for n in range(0,N):\n",
|
||||||
|
" current[choose012()] += choosedir()\n",
|
||||||
|
" \n",
|
||||||
|
" if not np.all(current):\n",
|
||||||
|
" back_at_origin += 1\n",
|
||||||
|
"\n",
|
||||||
|
"print(round(back_at_origin / M,2))"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 52,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"-1\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., -6., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 8., -7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([7., 2., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([2., 3., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., 0., 7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., -2., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., 0., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., 0., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., -1., -5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., -6., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 1., -2., 2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 4., 11., 10.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 1., -8., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-5., -2., 2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 4., 12., 1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., -2., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., -7., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -10., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ -5., -10., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-11., -2., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ -1., -10., -10.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., 13., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., 1., -5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., -8., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -6., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-12., -1., 6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 8., 1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., 8., -8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., -6., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -5., -11.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 0., -13.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -15., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 1., -6., 10.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 10., 3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([17., -2., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -6., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-5., 2., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 9., 2., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., -5., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 6., 2., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 8., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., -3., 14.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 6., 4., -7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -11., -8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-10., -5., -12.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., 3., -8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 4., 8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 6., -7., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-6., -1., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -3., 3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., 6., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., -8., -5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., 6., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-7., -9., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 6., -2., 5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([2., 3., 4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., 1., -6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 11., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 10., 3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -7., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([4., 4., 5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., -6., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., -1., 1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 8., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 8., -3., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([10., -1., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., -3., 7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-12., -8., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([12., -9., -6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., 5., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., -1., 8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([7., 5., 5.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., 8., -4.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., -6., -2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -12., -9.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 4., -4., 7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-8., -3., 6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-11., -16., 2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ -8., 1., -14.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., -11., 11.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., -3., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([13., -1., 3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 2., 4., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ -4., -12., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 5., 9., -3.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([3., 0., 6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ -8., -10., 1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 7., -6., 2.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 4., -2., -7.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 6., 11., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., 0., -1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., -4., 6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., -4., -1.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 8.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([-1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-3., 6., 0.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 1., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-2., -7., -6.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([0., 0., 1.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([ 0., -9., 10.])]\n",
|
||||||
|
"[array([0., 0., 0.]), array([1., 0., 0.])]\n",
|
||||||
|
"1\n",
|
||||||
|
"[array([0., 0., 0.]), array([-4., 1., 4.])]\n",
|
||||||
|
"0.0\n",
|
||||||
|
"1.0\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"# With self interaction\n",
|
||||||
|
"\n",
|
||||||
|
"M = int(1e2)\n",
|
||||||
|
"N = 12\n",
|
||||||
|
"\n",
|
||||||
|
"back_at_origin = 0\n",
|
||||||
|
"aborted = 0\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"def simulate_walk (): \n",
|
||||||
|
" current = np.zeros(3) \n",
|
||||||
|
" walk = [np.zeros(3)]\n",
|
||||||
|
"\n",
|
||||||
|
" for n in range(0,N-1):\n",
|
||||||
|
" newcurrent = current\n",
|
||||||
|
" max_attempts = 100\n",
|
||||||
|
" attempts = 0\n",
|
||||||
|
"\n",
|
||||||
|
" while np.any([np.array_equal(newcurrent, arr) for arr in walk]):\n",
|
||||||
|
" attempts += 1\n",
|
||||||
|
" if attempts > max_attempts:\n",
|
||||||
|
" print(n)\n",
|
||||||
|
" print(walk)\n",
|
||||||
|
" return False\n",
|
||||||
|
" newcurrent = current\n",
|
||||||
|
" newcurrent[choose012()] += choosedir()\n",
|
||||||
|
" \n",
|
||||||
|
" current = newcurrent\n",
|
||||||
|
" walk.append(current) \n",
|
||||||
|
" print(walk) \n",
|
||||||
|
" \n",
|
||||||
|
" current[choose012()] += choosedir()\n",
|
||||||
|
" walk.append(current)\n",
|
||||||
|
"\n",
|
||||||
|
" return current\n",
|
||||||
|
" \n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"for m in range(0,M):\n",
|
||||||
|
" walked = simulate_walk()\n",
|
||||||
|
" if walked and not np.all(walked):\n",
|
||||||
|
" back_at_origin += 1\n",
|
||||||
|
" elif not walked:\n",
|
||||||
|
" aborted += 1\n",
|
||||||
|
"\n",
|
||||||
|
"print(back_at_origin / M)\n",
|
||||||
|
"print(aborted / M)\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "venv",
|
||||||
|
"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.8.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 2
|
||||||
|
}
|
||||||
119
bionet/6-promoter-interference.ipynb
Normal file
119
bionet/6-promoter-interference.ipynb
Normal file
@@ -0,0 +1,119 @@
|
|||||||
|
{
|
||||||
|
"cells": [
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 6,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": [
|
||||||
|
"import numpy as np\n",
|
||||||
|
"from random import random\n",
|
||||||
|
"import matplotlib.pyplot as plt\n",
|
||||||
|
"from matplotlib.animation import FuncAnimation\n",
|
||||||
|
"\n",
|
||||||
|
"def decide (prob):\n",
|
||||||
|
" return 1 if random() <= prob else 0\n"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": 12,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"name": "stdout",
|
||||||
|
"output_type": "stream",
|
||||||
|
"text": [
|
||||||
|
"pS activity: 0.016666666666666666\n",
|
||||||
|
"pA activity: 0.06666666666666667\n"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"source": [
|
||||||
|
"# Question 5.3.5\n",
|
||||||
|
"\n",
|
||||||
|
"L = 100\n",
|
||||||
|
"dt = .01\n",
|
||||||
|
"T = 60\n",
|
||||||
|
"\n",
|
||||||
|
"pA_rate = .1\n",
|
||||||
|
"pS_rate = .05\n",
|
||||||
|
"\n",
|
||||||
|
"pA = np.zeros(L)\n",
|
||||||
|
"pS = np.zeros(L)\n",
|
||||||
|
"\n",
|
||||||
|
"pS_counts = 0\n",
|
||||||
|
"pA_counts = 0\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"def check_collisions ():\n",
|
||||||
|
" collisions = np.where((pA == 1) & (pS == 1))\n",
|
||||||
|
" pA[collisions] = 0\n",
|
||||||
|
" pS[collisions] = 0\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
" \n",
|
||||||
|
"for n in range(0,int(T / dt)):\n",
|
||||||
|
" if pA[0] == 0:\n",
|
||||||
|
" pA[0] = decide(dt * pA_rate)\n",
|
||||||
|
"\n",
|
||||||
|
" if pS[L-1] == 0:\n",
|
||||||
|
" pS[L-1] = decide(dt * pS_rate)\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
" if pA[L-1] == 1 and decide(.4):\n",
|
||||||
|
" pA[L-1] = 0\n",
|
||||||
|
" pA_counts += 1\n",
|
||||||
|
" \n",
|
||||||
|
" if pS[0] == 1 and decide(.4):\n",
|
||||||
|
" pS[0] = 0\n",
|
||||||
|
" pS_counts += 1\n",
|
||||||
|
"\n",
|
||||||
|
" for i in range(1,L):\n",
|
||||||
|
" if pA[L-1-i] == 1 and decide(.4) and pA[L-i] == 0:\n",
|
||||||
|
" pA[L-1-i] = 0\n",
|
||||||
|
" pA[L-i] = 1\n",
|
||||||
|
" check_collisions()\n",
|
||||||
|
" \n",
|
||||||
|
" if pS[i] == 1 and decide(.4) and pS[i-1] == 0:\n",
|
||||||
|
" pS[i-1] = 1\n",
|
||||||
|
" pS[i] = 0\n",
|
||||||
|
" check_collisions()\n",
|
||||||
|
"\n",
|
||||||
|
"\n",
|
||||||
|
"print(f\"pS activity: {pS_counts / T}\")\n",
|
||||||
|
"print(f\"pA activity: {pA_counts / T}\")\n",
|
||||||
|
" \n",
|
||||||
|
" "
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"cell_type": "code",
|
||||||
|
"execution_count": null,
|
||||||
|
"metadata": {},
|
||||||
|
"outputs": [],
|
||||||
|
"source": []
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"metadata": {
|
||||||
|
"kernelspec": {
|
||||||
|
"display_name": "venv",
|
||||||
|
"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.8.10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nbformat": 4,
|
||||||
|
"nbformat_minor": 2
|
||||||
|
}
|
||||||
261
bionet/7-gillespie.ipynb
Normal file
261
bionet/7-gillespie.ipynb
Normal file
File diff suppressed because one or more lines are too long
293
bionet/8-nucleosomes.ipynb
Normal file
293
bionet/8-nucleosomes.ipynb
Normal file
File diff suppressed because one or more lines are too long
BIN
bionet/combined-feedback-plots/highS_R.png
Normal file
BIN
bionet/combined-feedback-plots/highS_R.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
BIN
bionet/combined-feedback-plots/highS_T.png
Normal file
BIN
bionet/combined-feedback-plots/highS_T.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 30 KiB |
BIN
bionet/combined-feedback-plots/hightau_R.png
Normal file
BIN
bionet/combined-feedback-plots/hightau_R.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
BIN
bionet/combined-feedback-plots/hightau_T.png
Normal file
BIN
bionet/combined-feedback-plots/hightau_T.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
BIN
bionet/combined-feedback-plots/normal_R.png
Normal file
BIN
bionet/combined-feedback-plots/normal_R.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
BIN
bionet/combined-feedback-plots/normal_T.png
Normal file
BIN
bionet/combined-feedback-plots/normal_T.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 27 KiB |
Reference in New Issue
Block a user