Team:iBowu-China/Model Cell free.py

Sticky Animated Navigation Bar

simple_model_optimize.py

import numpy as np

import random

import matplotlib.pyplot as plt

import argparse

def modl(mr0, pr0, mb0, pb0,

a_mr, r, be_mr, a_pr, be_pr, a_leak, a_mb, k_b, be_mb, a_pb, be_pb,

dt, A, N):

dmr = a_mr * r * N - be_mr * mr0

dpr = a_pr * mr0 - be_pr * pr0

dmb = a_leak + a_mb * r * N * (k_b * A * pr0) ** 2 / (1 + (k_b * A * pr0) ** 2) - be_mb * mb0

dpb = a_pb * mb0 - be_pb * pb0

mr0 = mr0 + dmr * dt

pr0 = pr0 + dpr * dt

mb0 = mb0 + dmb * dt

pb0 = pb0 + dpb * dt

return mr0, pr0, mb0, pb0

mr = [0]

pr = [0]

mb = [0]

pb = [0]

a_mr = 0.161

r = 0.784

be_mr = 2.657

a_pr = 0.36

be_pr = 2.658

a_leak = 1.13E-16

a_mb = 5.269

k_b = 0.696

be_mb = 0.231

a_pb = 0.231

be_pb = 0.181

dt = 0.01

parser=argparse.ArgumentParser()

parser.add_argument("-A", "--AHL", dest = "AHL", help = "AHL concentration")

parser.add_argument("-D", "--DNA", dest = "DNA", help = "DNA concentration")

parser.add_argument("-T", "--TIME", dest = "TIME", help = "Calculation time")

args = parser.parse_args()

A = float(args.AHL)

N = float(args.DNA)

time = float(args.TIME)

T = np.arange(0, time, dt)

for t in T:

if t == 0:

continue

mr1, pr1, mb1, pb1 = modl(mr[-1], pr[-1], mb[-1], pb[-1],

a_mr, r, be_mr, a_pr, be_pr, a_leak, a_mb, k_b, be_mb, a_pb, be_pb,

dt, A, N)

mr.append(mr1)

pr.append(pr1)

mb.append(mb1)

pb.append(pb1)

fig = plt.figure()

ax = fig.add_subplot(111)

ax.plot(T, mr, "--", label = "mRNA of LuxR")

ax.plot(T, pr, "--", label = "Protein of LuxR")

ax2 = ax.twinx()

ax2.plot(T, mb, label = "mRNA of GFP", )

ax2.plot(T, pb, label = "Protein of GFP")

ax.legend(loc='upper left')

ax.grid()

ax.set_xlabel("Time(h)")

ax.set_ylabel("Concentration of LuxR($ng/ul$)")

ax2.set_ylabel("Concentration of GFP($ng/ul$)")

ax2.legend(loc='lower right')

plt.show()