Skip to content

Genomes

Clifford Bohm edited this page Jan 24, 2018 · 8 revisions

Genomes are lists of values which can be read from, written to, mutated and recombined. All genome types share some common characteristics

genomes have a alphabet size. This is the base of the genome. A bit genome has alphabet size 2. A byte genome has alphabet size 8. Biological genomes ave an alphabet size of 4 (ATCG). It is possible to set the alphabet size to any value (that the computer can handle).

genomes have a site type. The type of the site defines how the computer will represent this genome in memory. A genome with alphabet size 2 will behave the same if its sites are chars (bytes), bools (bits), or integers. The alphabet size must be less than or equal to the greatest number that can be represented by the chosen type.

Genomes all provide methods to produce mutated copies from single or multiple parents.

Genome Types

Circular Genome
a simple genome constructed from a single circular chromosome
Multi-Genome
a genome with one or more non-circular chromosomes which can be multi ploidy

Mutations

Different types of genomes allow different methods of mutation. Provided here is a summary of common mutation methods. Different genome types may provide different mutation options which can be seen the settings_organism.cfg file.
  • Point Mutation - a single site in the genome is selected and it's value is randomized.
  • Insertion Mutation - one or more sites is inserted into the genome at a random location. The values of these sites are randomized.
  • Copy Mutation - a section of the genome is selected, copied and inserted at a random location in the genome.
  • Deletion Mutation - a section of the genome is selected and deleted.

Making Offspring Genomes

Genomes can produce offspring (copies with mutation) asexually (from one parent) or sexually (from many parents).

When asexual reproduction is invoked the parent genome is copied and then mutations are applied to the copy.

When sexual reproduction is invoked then either crossover or recombination is used and then mutations are applied.
  • If the parent genomes are single ploidy then crossover will be performed between the parent chromosomes to produce the child genome which will then be subjected to mutation.
  • If the parents are multi ploidy then recombination will be used. That is each parent will use crossover to product a new version of each of it's own chromosomes. The child genome will be the collection from all of the resulting chromosomes.

Using Genomes in Code:

Genome Handlers

Genome Handlers are created by genomes upon request. A genome may have multiple genome handlers at the same time. Genome Handlers are used to interact with the Genome which created them (reading, writing, etc). In addition to allowing random access to genomes, genome handlers standardize the interface between genomes and the rest of the code. Any module that works will genomes will likely do so through a handler.
Clone this wiki locally