Ode не решает уравнения должным образом

#r #bioinformatics #modeling #ode

#r #биоинформатика #моделирование #ode

Вопрос:

Я совершенно новичок в R, решении уравнений и тому подобном, но у меня есть университетская задача, которая включает дифференциальные уравнения и R, и я вообще не могу выполнить ее должным образом…

 ```{r}
library(deSolve)
```

```{r}
model9 <- function(t, y, parms) {
  with(as.list(y, parms), {
  Ptbs1 <- 1/(1 (TALe/Kd1)) 
  #Ptbs8 <- 1/(1 (TALe/Kd8))  

  dy    <- numeric(6)
  dy[1] <- a.tale*Pbad - gamma.mRNA*RiboTALe.mRNA 
  dy[2] <- kon*RiboTALe.mRNA*theo-koff*RiboTALe.mRNAw 
  dy[3] <- b.tale*RiboTALe.mRNAw - gamma.protein*TALe 
  dy[4] <- a.gfp*Ptet*Ptbs1-gamma.mRNA*GFP.mRNA # CONSIDERAR PTBS8 LUEGO
  # dy[4] <- a.gfp*Ptet*Ptbs8-gamma.mRNA*GFP.mRNA 
  dy[5] <- b.gfp*GFP.mRNA-gamma.protein*GFP.int-beta*GFP.int 
  dy[6] <- beta*GFP.int-gamma.lvatag*GFP 

  list(dy)})
}
```

# Incognitas

```{r}
y <- c(RiboTALe.mRNA = 0,
  RiboTALe.mRNAw = 0,
  GFP.mRNA = 0,
  GFP.int = 0,
  GFP = 0,
  TALe = 0)
```

# Parametros

```{r}
parms <- c(Cobad <- (10*10^{-6}),
  Cotet <- (10*10^{-6}),
  nbad <- 2.8,
  ntet  <- 1,
  Kdbad <- (9*10^{-5}),
  Kdtet <- (3.83*10^{-9}),

  K1bad <- 9*10^{-3},
  K1tet <- 350,
  Kd1 <- 240*10^{-9},
  Kd8 <- 1.3*10^{-9},
  K2bad <- 37.5/(10*10^{-6}),
  K3bad <- 3.4/(10*10^{-6}),
  K2tet <- 160/(10*10^{-6}),

  koff <- 0.3*10^{-9},
  kon <- 1*10^{-3},

  gamma.lvatag  <- 2*10^{-4},
  gamma.mRNA <- 1.7*10^{-3},
  gamma.protein <- 5.6*10^{-5},
  a.gfp <- 0.03,
  a.tale  <- 0.01,
  b.gfp <- 0.06,
  b.tale <- 0.02,
  beta <- 6.7*10^{-4},
  Lbad <- 0.01,
  Ltet <- 25,
  theo <- 0,
  C1 <- (Cobad*(Lbad^nbad))/((Kdbad^nbad) (Lbad^nbad)),
  C2 <- (Cotet*(Ltet^ntet))/((Kdtet^ntet) (Ltet^ntet)),
  Cf1 <-  Cobad - C1,
  Cf2 <-  Cotet - C2,
  Pbad <- (K1bad K2bad*C1)/(1 K1bad K2bad*C1 K3bad*Cf1),
  Ptet <- K1tet/(1 K1tet 2*K2tet*Cf2 (K2tet^2)*(Cf2^2)) )
```

```{r}
times <- seq(from = 0, to = 3600, by = 1)
```

```{r}
out <- ode(y = y, times = times, func = model9, parms = parms)
```

```{r}
plot(out)
```
  

Это моделирование биологической системы, включающей различные молекулы, РНК и т.д.
Идея заключается в том, что, когда параметр «тео» равен нулю, не должно быть никаких изменений в TALe, но если вы нанесете все это на график, TALe увеличится.

С другой стороны, если «тео» больше 0, я получаю сообщение об ошибке:

Ошибка в lsoda (y, times, func, parms, …): обнаружен недопустимый ввод до выполнения каких-либо шагов интеграции — см. письменное сообщение

Идея состоит в том, чтобы получить результаты, как здесь: http://2013.igem.org/Team:UC_Davis/Modeling , но я не понимаю, что я делаю неправильно.

Пожалуйста, помогите.

Спасибо.

Комментарии:

1. При определении именованного списка или вектора используйте = , а не <- . В дополнение к созданию именованного вектора с именем parms , вы также делаете каждый элемент отдельной переменной в глобальной среде. Это повышает вероятность всевозможных конфликтов пространств имен с непредсказуемыми последствиями. Попробуйте исправить это и убедитесь, что проблема та же