1

R 有一个名为 BoolNet 的包,它有一个名为reconstructNetwork 的函数。

也许对 R 数据格式有更好理解的人可以帮助我使用它。这是一个悬而未决的问题。以防万一有人想尝试新的 R 包。

我想我正在关注文档

BoolNet 的reconstructNetwork 函数的文档:

reconstructNetwork(measurements, 
                   method = c("bestfit", "reveal"), 
                   maxK = 5, 
                   readableFunctions = FALSE,
                   allSolutions = FALSE)

"measurements must be a list of matrices, each corresponding to one time series. 
Each row of these matrices contains measurements for one gene on a time line, 
i. e. column i+1 contains the successor states of column i. 
The genes must be the same for all matrices in the list."

所以我认为我的矩阵应该看起来像

 t0 t1
[[1 0]
 [0 0]
 ...
 [0 1]]

我的实际数据是 8 个可能的状态和 2 个时间点。所以一个 8x2 矩阵。

A <- matrix( c(0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0), nrow = 8, ncol = 2)

B <- matrix( c(0,0,1,1,0,0,1,1,0,0,1,1,1,1,0,0), nrow = 8, ncol = 2)

C <- matrix( c(0,1,0,1,0,1,0,1,0,0,1,1,0,1,1,0), nrow = 8, ncol = 2)

list_mats = list(A,B,C)

reconstructNetwork(list_mats, method = "reveal", maxK = 3, readableFunctions = TRUE, allSolutions = FALSE))

但我的结果是我有 8 个单位而不是 3 个(我的 A、B 和 C)。我试过转置每个矩阵。我使用这个函数是因为我想运行REVEAL 算法来从转换表中推断出一个布尔网络。

4

1 回答 1

1

您希望数据按状态而不是基因格式化:

state1 <- data.frame(t1=c(0,0,0),t2=c(1,0,0))
state2 <- data.frame(t1=c(0,0,1),t2=c(1,0,0))
state3 <- data.frame(t1=c(0,1,0),t2=c(1,1,1))
state4 <- data.frame(t1=c(0,1,1),t2=c(1,1,1))

list_mats = list(state1,state2,state3,state4)

reconstructNetwork(list_mats, method = "reveal", maxK = 3, readableFunctions = TRUE, allSolutions = FALSE)

我只做了 8 个州中的前 4 个,但你明白了。

于 2013-10-03T18:47:11.360 回答