OK, here is the description of first metabolism.
The goal of this post is not to iron out all the bugs, but to show you a system that is:
a) related to real chemistry and biology
B) backwards-compatible, allowing old bots to survive without too many changes
c) open-ended, allowing unlimited expansion (within reasonable limits)
So, let's start:
Look
at the picture of catabolism. You see different compounds linked by arrows. Arrows are color-coded: green means ATP is produced, red means ATP is used up, black means no ATP is involved. On this page high-energy compounds are destroyed to produce energy, untill all is left is CO2, NH4 and H2O (I don't keep track of H2O, it would be silly). Each reaction is performed by its own enzyme. For now we assume that bot has all enzymes necessary and they all work with equal efficiency. Still, you say, how can an old bot use all that? Well, destruction of any compound on this page can be activated by "break" command. Just like this:
glucose
break
And old bots can just have a gene that constantly activates a bunch of such break commands.
This command will activate
all enzymes that connect the compound in question (glucose) and final products of degradation (CO2) (in this case three enzymes are activated).
Imagine that a bot just ate (and absorbed) a bunch of glucose. Here is what happens next:
First cycle: All enzymes in glucose-breaking pathway are activated. They perform their actions simultaneously. The last two enzymes don't do anything, because there is no substrate available. The glucose-breaking enzyme takes a pre-determined amount of glucose (say 5) and converts it into 10 pyruvates, releasing 40 energy. The pyruvates are
not immediately converted to AcCoA, they just stay there till next cycle. Total energy gain: 40.
Second cycle: 5 molecules of glucose are split again to get 10 pyruvates (releasing 40 energy) and the previous 10 pyruvates are converted into 10 AcCoA, releasing 60 energy. Total energy gain in this cycle is 100.
Third cycle: 5 glucoses are converted to pyruvate (+40 energy), 10 pyruvates are converted to AcCoA (+60 energy) and 10 AcCoA are converted to CO2 (+ 120 energy). Total energy gain in this cycle is 220.
After that the bot will receive 220 energy every cycle until all glucose is exosted.
All this is done with just one command: "glucose break". So I hope I convinced you that digesting stuff will be very easy and straightforward. Now, a smart bot might improve on this strategy in a number of ways, but we'll get to that later.
With me so far?
Now let's
turn to anabolism. All these reactions are performed by enzymes that are activated by make command. It works just like break command in the sense that it activates
all enzymes connecting the molecule in question and the most basic compound. You were expecting CO2, wern't you? Well, only plants can reduce CO2 to anything useful, so that reaction is hooked up to photosynthesis (we'll talk about it in a bit).
Another thing that is worth mentioning about anabolism is the huge arrow from am.acid to protein. It takes 1200 energy to create a protein! We need a system that would provide quite an advantage to protein-making bots...
We are getting close to the end. Another graph that I want you to look at is
this one. It summarizes both catabolism and anabolism in one scheme. Numbers next to arrows indicate how much ATP is produced or taken up. Also here I added photosynthesis.
Now, photosynthesis does not actually involve creation of new molecules. It is a series of proteins that transfer electrons to each other, generating H+ potential on a membrane. That potential can be used two ways - directly to generate energy or to reduce CO2 and form carbohydrates (glucose). To keep things simple we'll pretend that some molecules are being made during photosynthesis and that these reactions generate energy. Notice that only the last step produces energy. This is made so that only bots that have all of the photosynthetic enzymes are able to use light to generate energy. In addition, photosynthesis
is not regulated by break/make commands - it happens automatically (not to say that it cannot be regulated).
Fun fact: Some of you may have noticed on this last graph a cycle of "glucose-pyruvate-AcCoA-succinate-glucose", which seems to be generating energy for free. Well, it is not. At the end of this post I'll put all the stochiometry of reactions and those of you who are bright enough may figure out how this works...
OK, I hope I have shown you the biological relevance, ease of use and backward-compatability. What about open-endedness? Well, it is very easy to add reactions to this system. For example we'll add something like "silicon -> silicon shell". Just another two molecules and one more enzyme. But it is even better - we can insert new reactions between existing ones! Beacuse make/break system activates
all intermediate enzymes, it will activate the new one as well (as long as bot has the enzyme).
The final part is about regulation:
Regulation is the bread and butter of metabolism. Luckily, make/break system does not allow futile cycles (cycles where a molecule is made and broken down simultaneously is called futile, because it does not result in any molecule being created and just wastes energy). But we need more. And hopefully several different approaches, so that bots can mix and match. Here are some of my ideas:
1. Consecutive break and make command over-write each other. So if bot says
glucose make
glucose break
then the final result is the breaking. We can also have "keep" command (from keep constant). The command would cancel activations of all enzymes leading to formation or degradation of a molecule.
2. Making more enzyme increases the throughput of reactions. I am not sure how to the enzymes are going to be created. One possibility is to allow enzyme creation from DNA (mkenzyme command or something). Another is to have counters of how often the existing enzyme is not enough to process all of available substrate and increase the amount automatically when the counter reaches 10.
3. Efficiency of enzymes (terminal three-bit idea from Nums). The efficiency may be coded in the terminal three bits of enzyme activation system.
4. Bundling enzymes in complexes should increase efficiency and may allow passage of several steps in a single cycle.
5. Some enzymes may remain active for several consecutive cycles (could also be coded in terminal bits).
Well, this is it. Thank you VERY MUCH for reading the whole post! I am sure there will be tons of suggestions, questions and comments. They are certainly welcome!
P.S: Here are the promised stochiometries of reactions:
Catabolism:
CARBS
Glycogen = 15 glucose
starch = 8 glucose
glucose = 2 pyruvate + 8 ATP
pyruvate + 1.5 O2 = AcCoA + CO2 + 6 ATP
AcCoA + 2 O2 = 2 CO2 +12 ATP
FAT
fat + ATP = fatCoA
fatCoA +7 O2=8 AcCoA + 35 ATP
PROTEIN
protein = 8 am.acids
am.acid = pyruvate + NH4
Final summary of how much energy you get from each type of food:
1 fat = -1+35+8x12=130
1 protein = 8x6+8x12-4x3=116
1 carb = 8x36=288
Anabolism:
CARBS
2 pyruvate + 12 ATP = glucose
2 AcCoA = succinate + 3ATP
2 succinate + 4 ATP = glucose + 2 CO2
FAT
8 AcCoA + 49 ATP = fat
PROTEIN
8 am.acid + 1200 ATP = protein
am.acid = pyruvate + NH4
NH4 + pyruvate + 3 ATP = am.acid
N2 + 16 ATP = 2 NH4
Photosynthesis:
12 H + 6 CO2 = glucose + 6 02