I485: Biologically Inspired Computing
Lab 3: Cellular Automata & Boolean Networks
Topics
- Cellular automata and boolean networks review
- Tips for doing it in Python
- Lab Slides
Assignment #2
- 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.
- Please summarize your answers in one document file (.doc,.pdf)
including pictures. Organize this document well, make it clear which
questions you are answering and provide appropriate labels where you
can. Submit your well-documented code as separate python files. Also,
mention in your summary document the names of the python files I need
to refer for each question.
- Assignment is due by 11am on Thursday, October 20th
Questions or problems? See my email and office hours information.
The problems:
- a) Write an elementary
(1-dimensional) cellular-automata simulator, that computes &
displays the evolution a given elementary CA from a given initial
configuration. Assume that your the 2 edges of your CA fold around. 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. Run it for 500
iterations.
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: cells.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 Table 1 of the article (as a side note, all the update functions that refer to the input as Ubc actually refer to UbcH10). 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.
- Modified by Santosh Manicka
Links
I485/I585 Biologically-inspired Computing

