File: truthTableToSymbolic.R

package info (click to toggle)
r-cran-boolnet 2.1.9-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,016 kB
  • sloc: ansic: 12,452; sh: 16; makefile: 2
file content (35 lines) | stat: -rw-r--r-- 1,377 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

# Convert a BooleanNetwork object 
# <network> to a SymbolicBooleanNetwork object
truthTableToSymbolic <- function(network, generateDNFs=FALSE)
{
  stopifnot(inherits(network, "BooleanNetwork"))
  
  res <- list(genes = network$genes,
              fixed = as.integer(network$fixed),
              interactions = lapply(network$interactions, function(int)
              {
                func <- tryCatch(
                {
                  if (generateDNFs != FALSE)
                    parseBooleanFunction(getDNF(int$func, network$genes[int$input], mode=generateDNFs),
                                              network$genes)
                  else                                              
                    parseBooleanFunction(int$expression,
                                              network$genes)
                },
                error =  function(e)
                {
                  parseBooleanFunction(getDNF(int$func, network$genes[int$input], mode=generateDNFs),
                                            network$genes)
                })
                return(func)
              }))

  names(res$fixed) <- res$genes
  res$internalStructs <- .Call("constructNetworkTrees_R",res)
  res$timeDelays <- apply(sapply(res$interactions,maxTimeDelay,genes=res$genes),1,max)
              
  class(res) <- "SymbolicBooleanNetwork"
  return(res)
}