Welcome To Darwinbots > Newbie

Newb question about mutation

(1/3) > >>

Gambrinus:
Hello,

I've just started with DB and I'm really intrigued by it.  But I'm confused by the concept behind these mutations.  I'm a biochemist with a specialization in bioinformatics so I understand the concept of mutation and evolutionary modeling, but I'm interested in exactly what is taking place.  When I see a point mutation is that referring to the change of one character in the code that defines the organism's DNA?  If so, how does this avoid making the code invalid?  I guess the simplest way to ask my question is this:

If I allow an organism to continue for a period of time and it mutates and I save its DNA code and open it in a text editor next to the original non-mutated DNA code, what difference would I see?  Would single integers be changed?  Or would entire genes be rearranged?

googlyeyesultra:
A point mutation will generally change a number to another number, change a sysvar (or, in essence, command (which is the same as a number, sort of)), or change the type of thing (say, a number to a *number or a number to a store or inc). All mutations produce syntatically valid DNA, but there's no assurance that said DNA will do anything useful.

Generally speaking, you'll see numbers and words changed around, some gene structure changes, etc. Genes shouldn't be rearranged without viral propagation or somesuch.

EricL:
Hi and welcome.

Well, let me take a shot at this.  Bot DNA is actually a little more complex than a sequence of integers.  It's actually made up of a sequence of typed values.   Think of it as a string of pairs of numbers where one number is the type and one is the value.   The textual DNA that humans author or the program displays or saves is a tokenized version of this underlying sequence of type-value pairs.  So, when a human writes something like:

cond
*.nrg 100 >
start
10 .up store
stop

it gets represented inside the program as:

9 1
1 310
0 100
5 2
9 2
0 10
1 1
7 1
9 4
10 1

That is the actual underlying type-value representation of the gene above.  That last pair (10 1) is the "end" base pair.  (For historical reasons, we use the term "base pair" to refer to a type-value pair but the term "codon" might actually be a better analogy.)

Anyway, the mutation code knows to only mutate to type-value pairs in the defined genome space.    For example, there are only four values in the space of the "flow control" type (type 9):  cond, start, else and stop.  These are represented interally as:

9 1
9 2
9 3
9 4

Thus, the mutation code will never mutate to a 9 5 for example.  The simulator code prevents this.  But it might mutate to a 0 31987 since the "0" type is the space of all integers -32000 -> 32000 inclusive.

Given this and the way the DNA "language" works, there is no such thing as an invalid genome.   A mutation may break or radically change some functionality, but every genome in the space of all posible genomes are "valid" in the sense that the simulator will handle them just fine.  A particular sequence may not do anything interesting - indeed most probalby do not as the morphospace is vast - but they will exectue and certainly won't cause problems for the simulator.

What the different mutation types actaully do to the genome depends (not surprisingly) on the type of the mutation.  Point mutations change a single base pair for example.  A sequence copy mutation duplicates a sequence of base pairs.  FYI, no mutation type respects gene boundaries.

So, to answer your question, if you compared two homologous genomes in a txt editor, you would see a different sequence of base pairs - the tokenized representations of the underlying type-value base pair sequences - and not a rearrangement of genes.  Since no mutation type respects gene structure, preservation of gene structure is a strong sign of conserving selection pressure or perhaps an indication of horizontal gene flow via viral infection.

If you want more detail, ask away.


--- Quote from: googlyeyesultra ---Generally speaking, you'll see numbers and words changed around, some gene structure changes, etc. Genes shouldn't be rearranged without viral propagation or somesuch.
--- End quote ---
Man, I got to get me some brevity...

Gambrinus:
Thats pretty ingenious then.  I've been running a sim with Alga_minimalis and Animal_minimalis for a while and trying to find mutated individuals to inspect, but I haven't been very successful.  But this explanation helps a lot.

One more question though.  When the total number of bots begins to get really high, the cycles/sec dramatically decreases for obvious reasons.  I've tried turning off the video display to help it run faster but I'm still getting somewhere around 0.1 cycles/sec.  It's an old machine but its the only one I can really afford to have dedicated.  So is there anything else I can be doing to speed it up?

googlyeyesultra:
If you don't care about certain things for certain bots, you can disable them in the new sim menu (say, for instance, disable vision for your vegetables.) That tends to speed things up a bit. You can also just lower the amount of energy going into the sim so that there will be less bots, but that tends to degrade evolution a bit.

Navigation

[0] Message Index

[#] Next page

Go to full version