Proteins are the major functional macromolecules in living cells. Structurally, a protein is a long, flexible chain of amino acids, in which the particular sequence of amino acids is determined by DNA of the gene that encodes the protein in question. However, an unstructured and flexible chain of amino acids would be nonfunctional. In order to perform a specific function a protein must “fold”, or adopt a specific three- dimensional conformation. Since it is now possible to synthesize artificial genes and to insert these into bacteria, it should be possible to create proteins with any desired amino acid sequence, and, by extension, the desired function. In practice, however, the sequence-structure relationship is a complicated one, meaning that it is very difficult to predict structure from sequence, or to design sequences that fold into a desired structures.