R 不同参数值的模拟

R 不同参数值的模拟,r,function,loops,dataframe,R,Function,Loops,Dataframe,我正在使用desolve库运行以下代码。现在,我想为不同的koff\u WT值运行相同的代码。请提出任何简单的方法 kon_WT = 1 koff_WT = 10 R_WT = 20 Complex <- function (t,y,parms){ with(as.list(y), { dC_WT <- koff_WT*RL_WT -kon_WT*R_WT*C_WT dRL_WT <- kon_WT*R

我正在使用
desolve
库运行以下代码。现在,我想为不同的
koff\u WT
值运行相同的代码。请提出任何简单的方法

 kon_WT = 1         
    koff_WT = 10
    R_WT =   20

Complex <- function (t,y,parms){
  with(as.list(y), {
    
    dC_WT <-  koff_WT*RL_WT -kon_WT*R_WT*C_WT 
    dRL_WT <- kon_WT*R_WT*C_WT - koff_WT*RL_WT   #uM
    dR_WT <-  koff_WT*RL_WT -kon_WT*R_WT*C_WT 
      
    
    return(list(c(dC_WT, dRL_WT, dR_WT)))
  })
}
times <- seq(0,1,0.01)
Out <- ode(y = c(C_WT = 10, RL_WT = 0, R_WT= R_WT), 
        times = times, func=Complex, parms=NULL)
Output <- data.frame(Out)
kon_WT=1
koff_WT=10
R_WT=20

Complex最好使用
parms
参数将常量列表传递给
Complex
函数。目前,它什么也没做

如果这样安排,您可以创建第二个函数,该函数将针对您喜欢的
koff_WT
的任何值运行模拟:

库(deSolve)

Complex最好使用
parms
参数将常量列表传递给
Complex
函数。目前,它什么也没做

如果这样安排,您可以创建第二个函数,该函数将针对您喜欢的
koff_WT
的任何值运行模拟:

库(deSolve)

Complex您可以使用函数定义函数
Complex()

library(“deSolve”)
kon_WT=1
##koff_WT=10
R_WT=20

defComplex您可以使用函数定义函数
Complex()

library(“deSolve”)
kon_WT=1
##koff_WT=10
R_WT=20
除杂
new_koffs <- c(0.5, 1, 1.5)

Output <- lapply(new_koffs, ode_frame)
str(Output)
#> List of 3
#>  $ :'data.frame':    101 obs. of  4 variables:
#>   ..$ time : num [1:101] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 ...
#>   ..$ C_WT : num [1:101] 10 8.27 6.95 5.91 5.08 ...
#>   ..$ RL_WT: num [1:101] 0 1.73 3.05 4.09 4.92 ...
#>   ..$ R_WT : num [1:101] 20 18.3 16.9 15.9 15.1 ...
#>  $ :'data.frame':    101 obs. of  4 variables:
#>   ..$ time : num [1:101] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 ...
#>   ..$ C_WT : num [1:101] 10 8.27 6.96 5.94 5.13 ...
#>   ..$ RL_WT: num [1:101] 0 1.73 3.04 4.06 4.87 ...
#>   ..$ R_WT : num [1:101] 20 18.3 17 15.9 15.1 ...
#>  $ :'data.frame':    101 obs. of  4 variables:
#>   ..$ time : num [1:101] 0 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 ...
#>   ..$ C_WT : num [1:101] 10 8.27 6.97 5.96 5.17 ...
#>   ..$ RL_WT: num [1:101] 0 1.73 3.03 4.04 4.83 ...
#>   ..$ R_WT : num [1:101] 20 18.3 17 16 15.2 ...
library("deSolve")
kon_WT = 1         
## koff_WT = 10
R_WT =   20

defComplex <- function(koff) {
  return( function (t, y, parms) {
    with(as.list(y), {
      dC_WT <-  koff*RL_WT - kon_WT*R_WT*C_WT 
      dRL_WT <- kon_WT*R_WT*C_WT - koff*RL_WT   #uM
      dR_WT <-  koff*RL_WT - kon_WT*R_WT*C_WT 
      return(list(c(dC_WT, dRL_WT, dR_WT)))
    })
  })
}

resC_WT <- function(iC_WT) {
  imes <- seq(0,1,0.01)
  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[nrow(Output), ])
}

vectorC_WT <- 1:11

Complex <- defComplex(koff=10)
sapply(vectorC_WT, FUN=resC_WT)

Complex <- defComplex(koff=15)
sapply(vectorC_WT, FUN=resC_WT)