A function to find all possible FBM (Fundamental Boolean models) attractors

searchForAttractors(
  fbnNetwork,
  startStates = list(),
  genes,
  type = c("synchronous", "asynchronous"),
  genesOn = c(),
  genesOff = c(),
  maxSearch = 1000
)

Arguments

fbnNetwork

An object of FBNNetwork

startStates

A list of initial states, the row names of each state must be matched with the genes

genes

a list of genes which index order must match with the current state

type

A type of Boolean network update schema chosen from synchronous, asynchronous and time step based

genesOn

It is a vector of genes that are marked as On

genesOff

It is a vector of genes that are marked as Off

maxSearch

The maximum timesteps that the system will try to search.

Value

Attractor objects

References

Chen et al.(2018), Front. Physiol., 25 September 2018, (Front. Physiol.)

Mussel, Hopfensitz et al. 2010, BoolNet - an R package for generation, reconstruction and analysis of Boolean networks

Author

Leshi Chen, leshi, chen@lincolnuni.ac.nz, chenleshi@hotmail.com

Examples

data('ExampleNetwork')
initialStates <- generateAllCombinationBinary(ExampleNetwork$genes)
trainingseries <- genereateBoolNetTimeseries(ExampleNetwork,
                                           initialStates,
                                           43,
                                           type='synchronous')
cube<-constructFBNCube(target_genes = ExampleNetwork$genes,
                       conditional_genes = ExampleNetwork$genes,
                       timeseriesCube = trainingseries,
                       maxK = 4,
                       temporal = 1,
                       useParallel = FALSE)
NETWORK2 <- mineFBNNetwork(cube,ExampleNetwork$genes)

## find attractor with type = synchronous
attractor <- searchForAttractors(NETWORK2,
                               initialStates,
                               ExampleNetwork$genes)
print(attractor)
#> Discovered Attractors via Fundamental Boolean Model :
#> Genes are encoded in the following order::
#> Gene1 Gene2 Gene3 Gene4 Gene5:
#> 
#> Attractor 1 is a simple attractor consisting of 1 state(s):
#> 
#> | --< - - - - - |
#> v               ^
#> 0 0 0 0 1       |
#> |               |
#> v               ^
#> | - - - - - >-- |
#> 
#> 
#> Attractor 2 is a complex attractor consisting of 4 state(s):
#> 
#> | --< - - - - - |
#> v               ^
#> 1 0 0 0 0       |
#> |               |
#> 1 0 0 0 1       |
#> |               |
#> 1 1 0 0 1       |
#> |               |
#> 1 1 0 0 0       |
#> |               |
#> v               ^
#> | - - - - - >-- |
#> 
#> 
#> Attractor 3 is a simple attractor consisting of 1 state(s):
#> 
#> | --< - - - - - |
#> v               ^
#> 0 0 1 1 1       |
#> |               |
#> v               ^
#> | - - - - - >-- |
#> 
#> 
#> Attractor 4 is a complex attractor consisting of 5 state(s):
#> 
#> | --< - - - - - |
#> v               ^
#> 1 0 1 1 1       |
#> |               |
#> 1 0 1 0 1       |
#> |               |
#> 1 1 1 0 1       |
#> |               |
#> 1 1 1 0 0       |
#> |               |
#> 1 0 1 1 0       |
#> |               |
#> v               ^
#> | - - - - - >-- |
#> 
#> 
FBNNetwork.Graph.DrawAttractor(NETWORK2,attractor,3)
## find attractor with type = asynchronous attractor <- searchForAttractors(NETWORK2, initialStates, type = 'asynchronous', ExampleNetwork$genes) print(attractor) #> Discovered Attractors via Fundamental Boolean Model : #> Genes are encoded in the following order:: #> Gene1 Gene2 Gene3 Gene4 Gene5: #> #> Attractor 1 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 0 0 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 2 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 0 0 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 3 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 1 0 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 4 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 1 0 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 5 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 0 1 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 6 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 0 1 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 7 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 1 1 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 8 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 1 1 0 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 9 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 0 0 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 10 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 1 0 0 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 11 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 1 0 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 12 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 1 1 0 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 13 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 0 1 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 14 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 0 1 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 15 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 0 0 1 1 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> #> Attractor 16 is a simple attractor consisting of 1 state(s): #> #> | --< - - - - - | #> v ^ #> 1 0 1 1 1 | #> | | #> v ^ #> | - - - - - >-- | #> #> FBNNetwork.Graph.DrawAttractor(NETWORK2,attractor,3)