I485: Biologically Inspired Computing
Lab 3: Cellular Automata & Boolean Networks
Summary
- Section 7.3 in de Castro's Fundamentals of Natural Computing describes cellular automata, and Carlos Gershenson provides a good Introduction to Random Boolean Networks.
- Complete the following 5 problems. Each answer is worth 1 point, for a total of 5 points.
- Attach answers as separate Python files to your submission for 'Assignment 2' in Oncourse
- Assignment is due by 1pm on Friday, March 13th (last day before Spring Break)
Questions or problems? See my email and office hours information.
The problems:
- a) Write an elementary cellular-automata simulator, that computes & displays the evolution a given elementary CA from a given initial configuration. Assume periodic boundary conditions. Use it to run the rule specified in Table 7.2 of de Castro's book (p. 345) (also specified here), starting from an initial condition of the whole lattice in state 0 except for a single point in the middle in state 1.
b) Run the CA again, except now with a new rule (whichever one you like), and a random initial condition.
- You will need to install and use a graphics library in order to display the state of the CA lattice. A good choice is the Pygame library.
- Here's a brief demonstration of how to display one line of CA graphics using the pygame library: oneline.py.txt (this displays one randomly-initialized line)
- For the Boolean Network project, we are going to re-implement the BN model of the mammalian cell cycle described in "Dynamical Analysis of a Generic Boolean Model for the Control of the Mammalian Cell Cycle", A. Faure, A. Naldi, C. Chaouiya, D. Thieffry, Bioinformatics, 2006, 22(14), pp. 124-131. PDF
a) Re-implement the transition logic for the 10-Boolean node network described in the article. Run the network from an initial condition of all nodes being off and give the fixed-state attractor reached.
b) Sample the space of initial conditions and output all the attractors found for this network.
c) Use the code for part b to create a 'state transition graph' of this network (in other works, have a vertex for every possible states, and an edge connecting vertices if one transitions to the other). Then, graph this network.
- To graph the state transition graph in part c, you will need to use a graph drawing library. A good one to use is the iGraph library. To see a sample of a simple graph drawn using this library, see simplegraphdraw.py.txt.
More
Acknowledgements
- Lab prepared by Artemy Kolchinsky.
Links
I485/I585 Biologically-inspired Computing

