我正在研究一些生物学数据,利用GFP荧光蛋白和细胞生长数据来模拟细菌系统的行为。基本上,它们是在24小时内测量的两个不同的数据集,我将它们放在两个不同的数据帧中(假设名称为fdata
和odata
)
现在,我有一个系统ODE模型,我需要适合这两个数据:
[dGFP] = a + (d + g(OD))[GFP] #g(OD) is basically another ODE to describe the growth rate
[dOD] = m * (1 - (OD/n)) * OD #this represents g(OD)
我已经编写了一个Python函数来对增长数据进行参数估计,如下所示:
import pandas as pd
import numpy as np
from scipy.integrate import odeint
from scipy.optimize import curve_fit
odata = df3[df3.columns[col]] #reading growth data
t = list(range(0, len(odata.index)))
def testfunc(t, k1, k2):
def cell_density_model(OD, t, m, n):
dOD = m * (1 - (OD[0]/n)) * OD[0]
return dOD
Ca0 = np.abs(odata[0])
rates = (k1, k2)
Casol = odeint(cell_density_model, Ca0, t, rates)
return Casol[:,0]
k_fit, kcov = curve_fit(testfunc, t, odata)
print(k_fit)
fit = testfunc(t, k_fit[0], k_fit[1])
plt.plot(t, odata, '+', label='data')
plt.plot(t, fit, '-', label='fit')
plt.legend(loc='best')
plt.show()
我有一个不同的函数来拟合蛋白质数据(不是工作代码)。我想做的基本上是把它们集成在一起,但我现在知道怎么做了
def fitfunc(t, xa, xd, xCa0):
a = xa
d = xd
Ca0 = xCa0
def andGate(y, t):
[GFP] = y
OD = testfunc(t, amr, amc) #this seems problematic
GFP_ = a - (d + OD) * GFP
return [GFP_]
Casol = odeint(andGate, Ca0, t)
return Casol[:,0]
def modelfit(t, xa, xd):
return fitfunc(t, xa, xd, Ca0)
fdata = df2[df2.columns[col]] #reading fluorescence data
t = list(range(0, len(fdata.index)))
Ca0 = np.abs(fdata[0])
params, cov = curve_fit(modelfit, t, fdata)
fit = fitfunc(t, *params, Ca0)
print(params)
plt.plot(t, fdata, 'x', label='data')
plt.plot(t, fit, '-', label='fit')
plt.legend(loc='best')
plt.show()
有人知道怎么做吗?我从scipy和{
目前没有回答
相关问题 更多 >
编程相关推荐