During the 20th century our understanding of genetics and the processes of gene expression have undergone revolutionary change. Improved technology has identified the components of the living cell, and knowledge of the genetic code allows us to visualize the pathway from genotype to phenotype. We can now sequence entire genes, and improved cloning techniques enable us to transfer genes between organisms, giving a better understanding of their function. Due to the improved power of analytical tools databases of sequence information are growing at an exponential rate. Soon complete sequences of genomes and the three–dimensional structure of all proteins may be known. The question we face in the new millennium is how to apply this data in a meaningful way. Since the genes carry the specification of an organism, and because they also record evolutionary changes, we need to design a theoretical framework that can take account of the flow of information through biological systems.