在下面的模型(R中内置)中,我想在参数Rec_den_WT
和v
上包含20%的总体变异性,然后对100个人进行蒙特卡洛模拟。因此,我希望这些参数的对数正态分布具有标准偏差= 20%。在每个模拟中,模型从每个人的分布中选取一个随机数,然后运行模拟以为每个人提供输出Per_RO_WT
。然后,它还会绘制每个人的输出。在可能的情况下,使用相同的代码文件时,任何人都可以指导如何做到这一点。
library(ggplot2)
library(deSolve)
v = 0.001
kon_WT = 1e-4
koff_WT = 1e-3
Rec_den_WT = 10367
Total_cells = 10000
R_WT = Rec_den_WT*Total_cells
Complex <- function (t,y,parms){
with(as.list(y,parms),{
dC_WT <- koff_WT*RL_WT -kon_WT*R_WT*C_WT
dRL_WT <- kon_WT*R_WT*C_WT - koff_WT*RL_WT #nm
dR_WT <- koff_WT*RL_WT -kon_WT*R_WT*C_WT
return(list(c(dC_WT,dRL_WT,dR_WT)))
})
}
## plotting for different initial values of C
resC_WT <- function(iC_WT) {
times <- seq(0,10000,100)
Out <- ode(y = c(C_WT = iC_WT,RL_WT = 0,R_WT= R_WT),times = times,func=Complex,parms=NULL)
Output <- data.frame(Out)
#return(Output)
return(Output[nrow(Output),])
}
vectorC_WT <- c(0.001,0.01,0.1,0.2,0.5,1,2,5,10,50,100,200,500,1000,1500,2000,3000,5000,20000,50000) #nm
table<- sapply(vectorC_WT,FUN=resC_WT); table
table <- as.data.frame(t(table)) ; table
Per_RO_WT <- as.numeric(table$RL_WT)/R_WT;
table <- cbind(table,vectorC_WT,Per_RO_WT);table