BKF {BoolFilter}R Documentation

Boolean Kalman Filter


Implements the Boolean Kalman Filter to derive the optimal MMSE estimate of state of a Partially Observed Boolean Dynamical System


BKF(Y, net, p, obsModel)



Time series of noisy observations of the Boolean regulatory network.
Each row and column correspond to a specific Boolean variable and time point respectively.


A Boolean Network object (specified in BoolNet vernacular) that the time series of observations presented in Y is based on


Intensity of Bernoulli process noise


Parameters for the chosen observation model.


A novel state-space signal model has been proposed for stochastic Boolean dynamical systems observed through noisy measurements, of which the Boolean Kalman Filter is the optimal MMSE estimator. State evolution is governed by Boolean functions (i.e. logic gates) and noise. The current system state, in which transitions between Boolean states can be perturbed by some process noise, creating an ergodic state transition matrix, is observed through an arbitrary noisy measurement. The optimal recursive MMSE estimator for this model is called the Boolean Kalman Filter (BKF), and an efficient algorithm has been proposed for its exact computation. This algorithm is presented here.

The Boolean Kalman Filtering algorithm can handle various observation models, including Bernoulli, Gaussian, Poisson, and Negative-Binomial, based on the input to the obsModel parameters.



Estimate the state of of the Partially-Observed Boolean Dynamical System based on the recursive BKF algorithm


Mean Squared Error of the estimate returned by the BKF algorithm for each time instance


Normalized PDV for each time instance


Braga-Neto, U. (2011, November). Optimal state estimation for Boolean dynamical systems. In Signals, Systems and Computers (ASILOMAR), 2011 Conference Record of the Forty Fifth Asilomar Conference on (pp. 1050-1054). IEEE.

Imani, M., & Braga-Neto, U. Maximum-likelihood adaptive filter for partially-observed boolean dynamical systems. IEEE transaction on Signal Processing, 65:359-371, 2017.



obsModel = list(type = 'NB', 
                   s = 10.875, 
                  mu = 0.01, 
               delta = c(2, 2, 2, 2), 
                 phi = c(3, 3, 3, 3))

#Simulate a network with Negative-Binomial observation model
data <- simulateNetwork(p53net_DNAdsb0, n.data = 100, p = 0.02, obsModel)
#Derive the optimal estimate of the network using a BKF approach
Results <- BKF(data$Y, p53net_DNAdsb0, p = 0.02, obsModel)

[Package BoolFilter version 1.0.0 Index]