I485: Biologically Inspired Computing

Lab 3: Cellular Automata & Boolean Networks

Topics

Assignment #2

  1. 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.
  2. Complete the following 5 problems. Each answer is worth 1 point, for a total of 5 points.
  3. 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.
  4. Assignment is due by 11am on Thursday, October 20th

    Questions or problems? See my email and office hours information.


The problems:


  1. 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)

    A state transition graph of a Boolean Network (source)


  2. 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

Links

All Class Labs

I485/I585 Biologically-inspired Computing

Life Inspired




For more information contact Artemy Kolchinsky or Luis Rocha.
Last Modified:October 7, 2011