The AHA Model  Revision: 12809
Reference implementation 04 (HEDG02_04)
the_genome::gene Type Reference

This describes an individual gene object. See the genome structure for as general description and gene for details. More...

Collaboration diagram for the_genome::gene:

Public Member Functions

procedure, public init_allele => allele_init_random
 init alleles with random values, labels not set here, use this function for startup initialisations of random agents See the_genome::allele_init_random() More...
 
procedure, public create_allele => allele_create_zero
 create empty zero allele object, should be used for offspring inits as we do not need to init them with random values, they will get them from the parents using inherit function set See the_genome::allele_create_zero() More...
 
procedure, public label_random => allele_label_init_random
 init label alleles random See the_genome::allele_label_init_random() More...
 
procedure, public labels => allele_label_set
 set labels for the allele See the_genome::allele_label_set() More...
 
procedure, public label_get => allele_label_get
 get the allele label See the_genome::allele_label_get() More...
 
procedure, public set => allele_value_set
 set individual value of allele See the_genome::allele_value_set() More...
 
procedure, public set_vector => alleles_value_vector_set
 set the vector of additive allele components See the_genome::alleles_value_vector_set() More...
 
procedure, public get => allele_value_get
 get the value of the allele See the_genome::allele_value_get() More...
 
procedure, public get_vector => allele_values_vector_get
 get the vector of additive allele components See the_genome::allele_values_vector_get() More...
 
procedure, public rank => allele_rank_id_set
 set rank_id for the allele See the_genome::allele_rank_id_set() More...
 
procedure, public mutate_point => allele_mutate_random
 Introduce a random point mutation to one (random) of the alleles See the_genome::allele_mutate_random() More...
 
procedure, public mutate_set => allele_mutate_random_batch
 Introduce random mutations to the whole allele components set See the_genome::allele_mutate_random_batch() More...
 

Public Attributes

character(len=label_length) allele_label
 sets a descriptive label of the allele, e.g its role and purpose More...
 
integer, dimension(additive_comps) allele_value
 Sets the value of the allele that is stored and evolved. More...
 
logical dominant
 sets if the allele is dominant More...
 
real(srp) dominance_weight
 sets the multiplicative dominance weight More...
 
integer rank_id
 rank_id of the gene, needed for sorting alleles within the chromosome More...
 

Detailed Description

This describes an individual gene object. See the genome structure for as general description and gene for details.

Definition at line 34 of file m_genome.f90.

Member Function/Subroutine Documentation

◆ init_allele()

procedure, public the_genome::gene::init_allele

init alleles with random values, labels not set here, use this function for startup initialisations of random agents See the_genome::allele_init_random()

Definition at line 65 of file m_genome.f90.

◆ create_allele()

procedure, public the_genome::gene::create_allele

create empty zero allele object, should be used for offspring inits as we do not need to init them with random values, they will get them from the parents using inherit function set See the_genome::allele_create_zero()

Definition at line 70 of file m_genome.f90.

◆ label_random()

procedure, public the_genome::gene::label_random

init label alleles random See the_genome::allele_label_init_random()

Definition at line 73 of file m_genome.f90.

◆ labels()

procedure, public the_genome::gene::labels

set labels for the allele See the_genome::allele_label_set()

Definition at line 76 of file m_genome.f90.

◆ label_get()

procedure, public the_genome::gene::label_get

get the allele label See the_genome::allele_label_get()

Definition at line 79 of file m_genome.f90.

◆ set()

procedure, public the_genome::gene::set

set individual value of allele See the_genome::allele_value_set()

Definition at line 82 of file m_genome.f90.

◆ set_vector()

procedure, public the_genome::gene::set_vector

set the vector of additive allele components See the_genome::alleles_value_vector_set()

Definition at line 85 of file m_genome.f90.

◆ get()

procedure, public the_genome::gene::get

get the value of the allele See the_genome::allele_value_get()

Definition at line 88 of file m_genome.f90.

◆ get_vector()

procedure, public the_genome::gene::get_vector

get the vector of additive allele components See the_genome::allele_values_vector_get()

Definition at line 91 of file m_genome.f90.

◆ rank()

procedure, public the_genome::gene::rank

set rank_id for the allele See the_genome::allele_rank_id_set()

Definition at line 94 of file m_genome.f90.

◆ mutate_point()

procedure, public the_genome::gene::mutate_point

Introduce a random point mutation to one (random) of the alleles See the_genome::allele_mutate_random()

Definition at line 97 of file m_genome.f90.

◆ mutate_set()

procedure, public the_genome::gene::mutate_set

Introduce random mutations to the whole allele components set See the_genome::allele_mutate_random_batch()

Definition at line 100 of file m_genome.f90.

Member Data Documentation

◆ allele_label

character(len=label_length) the_genome::gene::allele_label

sets a descriptive label of the allele, e.g its role and purpose

Definition at line 36 of file m_genome.f90.

◆ allele_value

integer, dimension(additive_comps) the_genome::gene::allele_value

Sets the value of the allele that is stored and evolved.

Note
In the new version allele values are INTEGER rather than REAL. Integer genome is not affected by the CPU precision and does not suffer from FPU rounding errors. This is what is expected from the genome: genes should be atomic, fixed, and never subject to any uncontrollable fluctuations and drift. Otherwise no "inheritance" is guaranteed. Only controlled mutations are allowed. Integer calculations will also have higher calculation speed and may hopefully avoid IEEE float point errors (overflow/underflow). Also, we may in future use more realistic limited-range allele functions to mimic real DNA structure. If we have sufficiently large range of possible allele values, e.g. 1:10000 and integer-to-real conversion function for converting these true integer allele values to real values within 0.:1. in the gamma neural response function, this would not have a much different effect compared with the old real-value gene implementation.

Definition at line 54 of file m_genome.f90.

◆ dominant

logical the_genome::gene::dominant

sets if the allele is dominant

Definition at line 56 of file m_genome.f90.

◆ dominance_weight

real(srp) the_genome::gene::dominance_weight

sets the multiplicative dominance weight

Definition at line 58 of file m_genome.f90.

◆ rank_id

integer the_genome::gene::rank_id

rank_id of the gene, needed for sorting alleles within the chromosome

Definition at line 60 of file m_genome.f90.


The documentation for this type was generated from the following file: