My favorites | Sign in
Project Logo
Project hosting will be READ-ONLY Wednesday at 8am PST due to brief network maintenance.
                
Code license: MIT License
Labels: boolean, simulation, modeling
Feeds:
People details
Project owners:
  istvan.albert
Project committers:
reka.albert

Boolean Network Modeling

The goal of this software package is to provide intuitive and accessible tools for simulating biological regulatory networks in a boolean formalism. Using this simulator biologist and bioinformaticians can specify their system in a simple textual language then explore various dynamic behaviors via a web interface or an application programming interface (API) each designed to facilitate scientific discovery, data collection and reporting.

The software is primarly distributed as Python source code and requires that Python 2.5 (or later) be installed on the target computer.

Bugfix Note

January 7, 2010. Please note that versions 1.2.0 to 1.2.4 of the BooleanNet package have a bug that cause the node updates to execute in original (listed) order during the first iteration, before randomizing the order of nodes for subsequent iterations. This bug affects only the asynchronous update mechanism.

The net effect of the bug is that for certain type of rules the first execution of them may funnel the states into the basin of one of the attractors. Overall the answers will not be incorrect but, depending on the rules and order of nodes they may be incomplete. Please update to the latest version. My apologies. Istvan Albert

Publication

Boolean network simulations for life scientist by István Albert, Juilee Thakar, Song Li, Ranran Zhang, and Réka Albert in Source Code for Biology and Medicine (2008)

Introduction

When trying to understand the role and functioning of a regulatory network, the first step is to assemble the components of the network and the interactions between them. The experimental advances in the large scale mapping of regulatory networks are fairly recent, but modeling efforts date back to the end of 1960s thanks to the pioneering work of Stuart Kauffman and Rene Thomas.

In a Boolean representation we assume that nodes are equivalent, and their interactions form a directed graph in which each node receives inputs from its neighbors (nodes that are connected to it). The state of nodes is described by binary (ON/OFF) variables, and the dynamic behavior of each variable, that is, whether it will be ON or OFF at next moment, is governed by a Boolean function. In general, a Boolean or logical function is written as a statement acting on the inputs using the logical operators and, or and not and its output is ON(OFF) if the statement is true (false).

Documentation

A detailed documentation is available on our external website. This documentation is also included in the source code distribution. See the:

for a quick overview on how the make the library work for you.

About the library

Note as of version 1.2 (Nov 12, 2008) the library has acquired several new features (see below) and underwent a substantial reorganization. To keep old code from interfering with new one the library namespace has been changed to boolean2

In this software package, we implement mutliple advanced methodologies which combine discrete logical rules with more realistic assumptions regarding the relative timescales of the processes:

Example Rules

Here are a few example rules for BooleanNet covering various research projects. Most of these rules were collected via a thorough literature search and were manually curated into their final form. These rules are available in the examples/samples directory of the source code distribution.

Some of the resulting plots based on the rules above:

Credits

The library has been designed and implemented by István Albert using previous work, ideas and contributions from:

None of us would be thinking about Boolean Networks if it weren't for Réka Albert.

Our software relies on the following third party libraries that are distributed with the software:

The following library must be also installed if the engine will be used in plde mode (piece-wise linear differential equations):









Hosted by Google Code