因此,我试图绘制ODE系统的零线图,但是我似乎无法以正确的方式绘制它们。当我绘制它们时,我设法根据时间(t vs x和t vs y)绘制它们,而不是根据(x vs y)绘制它们。我不确定如何解释它,我认为只显示它会更好。 I am trying to replicate this.给出了方程式和参数,但是这是在名为XPP的程序中完成的(我将在底部将其发布),并且有些参数我不明白它们的含义。
我的整个代码是:
import numpy as np
from scipy import integrate
import matplotlib.pyplot as plt
# define system in terms of a Numpy array
def Sys(X, t=0):
# here X[0] = x and x[1] = y
#protien [] is represented with y, and mRNA [] is represented by x
return np.array([ (k1*S*Kd**p)/(Kd**p + X[1]**p) - kdx*X[0], ksy*X[0] - (k2*ET*X[1])/(Km + X[1])])
#variables
k1=.1
S=1
Kd=1
kdx=.1
p=2
ksy=1
k2=1
ET=1
Km=1
# generate 1000 linearly spaced numbers for x-axes
t = np.linspace(0, 50,100)
# initial values
Sys0 = np.array([1, 0])
#Solves the ODE
X, infodict = integrate.odeint(Sys, Sys0, t, full_output = 1, mxstep = 50000)
#assigns appropriate equations to x and y
x,y = X.T
#plot's the graph
fig = plt.figure(figsize=(15,5))
fig.subplots_adjust(wspace = 0.5, hspace = 0.3)
ax1 = fig.add_subplot(1,2,1)
ax1.plot(x, color="blue")
ax1.plot(y, color = 'red')
ax1.set_xlabel("Protien concentration")
ax1.set_ylabel("mRNA concentration")
ax1.set_title("Phase space")
ax1.grid()
给定的方程式和参数为:
一个简单的负反馈回路模型
蛋白质(y)抑制其mRNA(x)的合成
dx / dt = k1 S Kd ^ p /(Kd ^ p + y ^ p)-kdx * x
dy / dt = ksy x-k2 ET * y /(Km + y)
p k1 = 0.1,S = 1,Kd = 1,kdx = 0.1,p = 2
p ksy = 1,k2 = 1,ET = 1,Km = 1
@ XP = y,YP = x,TOTAL = 100,METH = stiff,XLO = 0,XHI = 4,YLO = 0,YHI = 1.05(我不太清楚这是怎么回事)>
同样,它使用一个名为XPP或WINPP的程序。 对此的任何帮助将不胜感激,我尝试从中复制的原始论文是:Bela Novak和John J. Tyson的生化振荡器的设计原理