Compare commits
2 Commits
8510c8a083
...
f93a89ebf3
| Author | SHA1 | Date | |
|---|---|---|---|
| f93a89ebf3 | |||
| 32084fe387 |
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
263
bionet/11-feedback.ipynb
Normal file
184
bionet/2-ribosome-traffic.ipynb
Normal file
169
bionet/3-transcription-regulation.ipynb
Normal file
121
bionet/4-phage-statmech.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
@@ -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
293
bionet/8-nucleosomes.ipynb
Normal file
BIN
bionet/combined-feedback-plots/highS_R.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
bionet/combined-feedback-plots/highS_T.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
bionet/combined-feedback-plots/hightau_R.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
bionet/combined-feedback-plots/hightau_T.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
bionet/combined-feedback-plots/normal_R.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
bionet/combined-feedback-plots/normal_T.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
100
biophys-intro/lipid-phases.ipynb
Normal file
BIN
biophys-intro/output1.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
biophys-intro/output2.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
biophys-intro/output3.png
Normal file
|
After Width: | Height: | Size: 32 KiB |