Description
Critters! Version 2.0 ©2012
Read Me! File - Updated 2/20/06 ©2012
I. SYSTEM REQUIREMENTS (Apple Macintosh)
A. Apple PowerMac (400 MHz G4 or better recommended)
B. Mac OS 10.x.x (OS 10.4.4 recommended)
C. 50 MB free Hard Drive space
D. 100 MB free RAM
I. SYSTEM REQUIREMENTS (Microsoft Windows)
A. Pentium-class PC (400 MHz P4 or better recommended)
B. Microsoft Windows XP (with latest Service Packs)
C. 50 MB free Hard Drive space
D. 100 MB free RAM
II. PROGRAM DESCRIPTION
Critters! is a 2D simulation of virtual organisms for the study
of mutation, selection, resource supply, and fitness. Critters
are born, acquire resources, grow, mate, reproduce, and die in
a virtual world. Students of evolutionary biology can study allele
frequencies and/or individual fitness by analyzing the results
of simulations.
III. MODEL PARAMETERS/DESIGN
A. General
1. A clock runs continuously in the model. There are two time
units: clock ticks and clock units. A clock tick is the smallest
unit of time; each critter can commit one action in a clock tick
(e.g., birth, take a step, turn, mate, consume a resource, or
die). A clock unit is 100 clock ticks. In the overlay display,
whole numbers in the clock readout are clock units, while the
decimal portion of the number is clock ticks.
2. Individuals move on a 2D field.
3. Spatial structure (blocks) are on the field that critters can't
see through or move through.
4. Three types of resources are on the field to support critters'
growth and metabolism (STR, structural resource, markers on the
field are 5, 10, and 15 units; SHT, short-term energy resource,
markers on the field are 5, 10, and 15 units; LNG, long-term energy
resource, markers on the field are 1, 2, and 3 units). The required
amount of SHT to reach the next size class when growing is double
the amount required for the previous size class. The required
amount of STR is the cube of the size class.
Growth Requirements for Each Size Class Size STR SHT LNG 1 1 1 0 2 8 2 0 3 27 4 0 4 64 8 0 5 125 16 0 6 216 32 0 7 343 64 0 8 512 128 0 9 729 256 0 10 1000 512 0
5. The capacity for STR and SHT is the total of (1) the amount needed to reach the next size class, and (2) the amount needed to lay 10 eggs at the maximum investment level times the size class (i.e., the capacity of egg laying climbs by a factor of 10 for each size class). The capacity for LNG is the amount needed to lay 10 eggs at the maximum investment level times the size class plus 1 unit.
Limit on Capacity for Each Size Class Size STR SHT LNG 1 278 278 61 2 567 567 121 3 874 874 181 4 1205 1205 241 5 1566 1566 301 6 1963 1963 361 7 2402 2402 421 8 2889 2889 481 9 3430 3430 541 10 2700 2700 601
6. Consumed resources are resupplied at each clock unit (100
clock ticks). The resupplied resources are randomly placed on
the field. The user can change the frequency of resource resupply
in the interface.
7. Traits: Egg hatching period (0-10 clock units+1 clock unit
per egg investment of STR resource), sensing range (10-200 pixels
for resource sensing, double that distance for mate sensing in
males), adult size (1-10), speed limit (1-10), color (red, green,
and blue genes), gender (male or female), egg investment, fertility
trigger (females only; 5-20 clock units after reaching adult size),
turning trigger (0-10% chance when no attractive resource is in
the area), resource attractiveness alleles for all nine resources
(0-10 for each resource type/size; note that the size (small=3,
medium=6, large=9) and distance (scaled 0-10 value based upon
the distance within the range of view) are equally considered
in choosing the most attractive local resource), number of matings
(1-3). All traits are additive except for gender, which is controlled
by a single gene (heterozygotes are male).
List of Traits, Number of Genes for Each Trait, and Allele Values for Traits number number possible haploid diploid phenotypic Trait genes genes allele1 allele2 range 1. Egg Hatching Period 3 6 1.0 0.0 0-6 2. Sensing Range 5 10 20.0 1.0 10-20 3. Adult Size 5 10 1.0 0.0 1*-10 4. Speed Limit 5 10 1.0 0.0 1*-10 5. Color (red) 5 10 0.1 0.0 0-1Ý 6. Color (green) 5 10 0.1 0.0 0-1Ý 7. Color (blue) 5 10 0.1 0.0 0-1Ý 8. Gender 1 2 1.0 2.0 m/f 9. STR egg investment 3 6 5.0 1.0 6-30 10. SHT egg investment 3 6 5.0 1.0 6-30 11. LNG egg investment 3 6 1.0 0.0 0-6 12. Fertility Period 5 10 2.0 0.5 5-20 13. LNG-small attractiveness 5 10 1.0 0.0 0-10 14. LNG-med attractiveness 5 10 1.0 0.0 0-10 15. LNG-large attractiveness 5 10 1.0 0.0 0-10 16. SHT-small attractiveness 5 10 1.0 0.0 0-10 17. SHT-med attractiveness 5 10 1.0 0.0 0-10 18. SHT-large attractiveness 5 10 1.0 0.0 0-10 19. STR-small attractiveness 5 10 1.0 0.0 0-10 20. STR-med attractiveness 5 10 1.0 0.0 0-10 21. STR-large attractiveness 5 10 1.0 0.0 0-10 22. Turning Genes 5 10 1.0 0.0 0-10 23. # matings 3 6 0.5 0.0 1*-3 *Note: One (1) is the minimum value of this trait. Even if all alleles are zero (0), the phenotype is set to a value of one (1). !Note: Allele frequencies shown in the 'Population Data' file is for the 'high value' allele, which is shown in this column. ÝNote: Color values are always adjusted to percentages of maximum (0-1); therefore, changing the value of the alleles only changes the variation associated with color and/or the relative contributions of each color.
B. Life History
1. Critters are obligate sexual reproducing organisms.
2. Females become fertile at a genetically-predisposed period
(Fertility Period) following growth to adult size.
3. Females lay as many eggs as they can at their genetically-predisposed
investment levels (STR investment, SHT investment, LNG investment).
The range of investment levels are: STR: 6-30 units/offspring;
SHT: 6-30 units/offspring; LNG: 0-6 units/offspring.
4. An egg will hatch after a period of time determined by its
genetic-predisposition (Egg Hatching Period) and investment of
STR resource (STR investmentl; i.e., larger eggs take longer to
hatch).
5. After laying eggs, a female's fertility timer starts again.
However, females are genetically-predisposed to lay eggs 1-3 times,
and males may mate 1-3 times (# matings). Death immediately follows
the final mating event.
6. Critters live for a maximum of 100 clock units, unless the
Maximum Lifespan is changed by the user in the interface (a special
feature of Critters!+).
7. Mating conforms to scramble competition polygynandry.
C. Genetics
1. Critters carry genes on 27 haploid chromosomes (100 gene positions
per chromosome).
2. The phenotypic values of traits are determined by alleles,
which come in two forms for each trait and have a numerical value
[see allele1 and allele2 columns in Trait chart (above)]. These
allele values are added to determine the phenotype for that trait.
3. Meiosis occurs at gamete formation with recombination (random;
1-3 crossover events per homologous chromosome pair).
4. Critters' genomes mutate at gamete formation; the frequency
depends on the user specified mutation rate, which is the approximate
number of mutations per gamete.
5. The mutations are simple allele conversion mutations.
6. The alleles and gene positions are determined randomly at the
start of an experiment. For each replicate, the gene positions
are redistributed on the chromosomes. Therefore, for each population
generated, the linkage groups will change.
D. Physiology
1. There exists a dynamic equilibrium between LNG and SHT resources.
One SHT = 100 LNG, but there is a 10% loss in converting between
the two types of resources.
2. Resources are depleted proportional to size [basal cost (energy
cost x critter size)], speed [movement (energy cost x critter
speed)], and sensing range [distance (energy cost x sensing range)].
3. Critters die when short-term energy (SHT) equals zero.
E. Behavior
1. Critters seek out and consume resources based upon the size
of the resource, its distance, and the genetic predisposition
for that resource type. There exist nine attractiveness traits,
one for each type and size of resource on the field. Size, distance,
and attractiveness are weighted about equal in determining which
resource to approach. While moving toward an attractive resource,
an even more attractive resource may come into view. The critter
will alter its course to move toward the new, more attractive
resource.
2. If no resource is in the vicinity, critters usually take a
step forward, but occasionally they turn the frequency of
these turns are based upon behavior turning genes (Turning Genes,
0-10% chance of turning per step).
F. Mechanics
1. User input to set up the simulation is recorded from the graphical
user interface (GUI).
2. The program outputs the results of simulations over time (allele
frequencies, population sizes, reproductive rates, death rates,
average fitness, average speed, average sensing range, average
size, proportion of males in populations, death rates, and intrinsic
replication rates).
3. The program outputs the characteristics of individuals. The
user can specify a fitness cutoff level for writing out critters
(e.g., 0 = write out all critters, 1 = write out critters that
laid at least 1 egg, 2 = 2 eggs laid, etc.)
4. The model will run in graphics ON and graphics OFF modes. Graphics-off
mode is much faster for obtaining results for analysis. Graphics-on
mode is useful for visualization, conceptualization, and education.
5. Non-random mating may be studied by activating a color switch
in the interface.
6. Migration may be studied by setting up the model to introduce
a randomly-generated group of migrants at a specified time.
7. Frequency-dependant selection or predator schemes may be studied
by targeting and killing critters during the model runs using
keyboard commands (a special feature of Critters!+).
8. Competition may be studied by targeting and killing resources
on the field during the model runs using keyboard commands.
9. Bottleneck events may be simulated by specifying a time and
percentage of the population to kill.
IV. DATA FILES
The model will write out an "Info" file, which contains
information on the user-specified parameters. Three other data
files are available at the conclusion of a simulation. One file
contains the population parameters for each replicate. Another
file contains the coefficient's of variation for the population
parameters. The final file contains the individual parameters
of critters at the time of death.
In addition to the 'allele1' frequency codes listed above, the following labels are used in data files generated by the program. The metrics are calculated on the user specified Output Step (there is more information on setting the Output Step in the 'Program Operation' section below).
N - Number of critters at the time of output.
rR - Replication (birth) rate; the number of eggs laid per clock
unit over the Output Step time interval.
avFit - Average fitness; the average number of eggs laid per living
individual (includes males and females) at the time of output.
avSp - Average speed; the average speed of critters at the time
of output.
avSR - Average sensing range; the average sensing range of critters
at the time of output.
avSz - Average size; the average size of critters at the time
of output.
pMale - Proportion males; the proportion of males in the population
at the time of output.
dR - Death rate; the number of critters that die per clock unit
over the Output Step time interval.
r - Intrinsic rate of increase (the instantaneous rate of increase);
birth rate minus death rate at the time of output.
V. PROGRAM OPERATION
Double-click the application's icon to run the software.
A. The user must accept the License Agreement for the program
to run.
B. The user selects the field size. The sizes available are 1000x1000, 2000x2000, and 3000x3000. Larger field sizes will slow the model with graphics turned on due to the higher graphic demands.
C. A control screen allows the user to set up the simulation(s).
Note that an asterisk ("*") below indicates the default
value.
1. Filename - ("Sim 1"*) If you run additional simulations
in the same folder, you can use a different name in this field.
If you leave "Sim 1" in this field, the program will
overwrite the results of the previous simulation(s).
2. Graphics - (OFF, ON*) The simulation uses OpenGL graphics to
display the critters and their virtual world. Running with graphics
on will enable you to see what is occurring in real time. If you
are running a longer simulation, the program runs much faster
with graphics turned off. When running with the graphics off,
the Escape (esc) key will terminate the simulations.
3. Number of Critters (200*) This is the initial population size
of critters that will be generated for populations.
4. Blocks? (OFF, ON*) Critters cannot see through or move through
blocks on the field.
5. Block Placement (Even*, Random) Only available if blocks are
turned on. This option allows the user to request an even distribution
of blocks on the field or random placement of blocks. If 'Even'
is chosen, blocks are placed evenly on the field.
6. Number of Blocks (25*) Only used if blocks are turned on and
Block Placement is set to Random. The user can click in this edit
field and type in the number of blocks they would like to appear
on the field.
7. Sim End (100*) This is the end time for simulations.
8. Mutation Rate (0.1*) This is the mutation rate to be applied.
The units are 'average number of mutations per gamete.' The value
is an approximation because random number generators determine
when to apply a mutation to a given loci and recombination tends
to scramble the alleles on homologous chromosomes; therefore,
the value entered here will reflect the average number of mutations
in a gamete.
9. Number of Replicates (1*) This is the number of simulations
to be run. The program can handle up to 8 replicates.
10. Energy Cost: Basal (0.001*) This is the basal energy cost
that all critters pay each clock tick in the model. It is multiplied
by the critter size to determine the loss of short-term energy
units on that time step.
11. Energy Cost: Sensing (0.000025*) This is the energy cost applied
to the sensing range of the critter. It is multiplied by the distance
that the critter can see and subtracted from their short-term
energy supply.
12. Energy Cost: Movement (0.04*) This is the energy cost of movement.
It is multiplied by the speed of the critter and deduced from
the short-term energy supply.
13. Output Step (10*) The program calculates metrics and writes
out data files as the simulation proceeds. This edit field controls
the frequency of output. It is recommended that you start by determining
the number of data points that you would like (number of columns
that your spreadsheet data will occupy). Divide the length of
simulation by the number of data points you would like, and that
will provide you with the proper entry for the Output Step. For
example, if you want 50 data points (a 50 column spreadsheet of
data over time) and selected a Simulation End of 500, then you
would set the Output Step to 10 (500/50 = 10 ). The program would
write output every 10 clock units over the simulation period,
which would provide you with a 50 column spreadsheet. Note that
most spreadsheet applications will choke on datasets larger than
250 columns, so plan accordingly.
14. Resource Supply Rate (100*) This is the percent chance that
resources will be resupplied on a given clock unit during the
run. The value may range from 1 to 100. If set to 100, resources
will be resupplied every clock unit during simulation. If set
to 10, there is a 10% chance on each clock unit that the resources
will be resupplied.
15. Reports - These checkboxes allow the user to control which
data files are produced during simulation.
16. Fitness Cutoff for Individual Critter Output (0*) - Use this
field to specify a cutoff value for writing out individual critter
data during the simulations. For example, a value of 0 here will
result in writing all of the critters' individual parameters.
A value of 2 will result in writing only those critters that laid
at least 2 eggs. WARNING: Critters! will generate THOUSANDS of
individuals under long runs. If you set this value to '0' and
write out all critters to the data files, you will end up with
huge data files. Unless you need to know critter parameters for
critters that laid no eggs (zero-fitness critters), then it is
suggested that you use a value of at least 1 here (i.e., only
record critter data if the critter laid at least one egg). Otherwise,
you may be limited to shorter runs or resource-starved critters
who do not lay too many eggs. If your experimental design calls
for use of the individuals' data files, a few test runs should
help you determine proper settings for this parameter.
17. Resources (the defaults for 9 resource types/sizes will appear
when program is run) These edit fields allow the user to specify
precisely the type and number of resources in the simulations.
The total number of resources should not exceed 1000.
18. Migration Switch (OFF*, ON) Turns on a migrant introduction
feature. The user specifies the number of randomly generated migrants
to introduce and the time of their introduction.
19. Mate Choice (Red: OFF*/ON; Green: OFF*/ON; Blue: OFF*/ON)
Turns on color preferences by males for females. When set
to on, males only mate with females that have a higher than average
color value for that color. Only one of these switches can be
set.
20. Maximum Lifespan (100*) Critters die when they reach
this age.
21. Bottleneck event switch (OFF*, ON) Turns on the bottleneck
even feature.
22. Bottleneck time (50*) Specifies when the bottleneck
event is to occur.
23. Bottleneck percentage of population to kill (70*) The
fraction of the population to kill during the bottleneck event.
24. Migration event switch (OFF*, ON) Turns on the migration
even feature.
25. Migration time (50*) Specifies when the migration event
is to occur.
26. Number of migrants (30*) The number of randomly generated
migrants that will enter the population at the migration time.
27. Run Simulation - Will start the simulation(s).
28. Exit Program - Will exit the program.
D. Keyboard controls [only available during graphics-on simulations,
except for Escape (esc)]
1. Arrow keys - move forward, move back, turn left, turn right
2. G - toggle the graphics on and off
3. K - elevate the camera
4. , (comma) - lower the camera
5. L - tilt camera up
6. . (period) - tilt camera down
7. Escape (esc) - exit simulation
8. P - pause the simulation [Note: Camera controls work when the
simulation is paused (i.e., the user can move about the field
during a paused simulation)]
9. A - toggle the allele frequency monitor on/off
10. W OpenGL wire frame mode (shows the polygon nature of
3D graphics)
11. O toggles the overlay on and off
12. I provides a target cross-hair to get information on
a specific critter (run the cross-hair under a critter to see
its characteristics)
13. T enter target mode to kill critters or resources
14. R toggle between 'TARGET: Critter" and "TARGET:
Resource" modes
15. (spacebar) kill critter/resource in the cross-hair
16. C toggle fast and slow camera speed modes
E. Screen Abbreviations
FPS Frames per second
The following data is shown as the model runs:
Time Current time
Rep/Total Replicate # underway/Total number of replicates
requested
Total New Total critters generated so far
#Critters Number of organisms in the current population
Avg. Fitness The average number of eggs laid per living
individual
Rep Rate The number of eggs laid over the output step time
interval
Death Rate The number of dead critters over the output step
time interval
The following data is shown when looking at individual critters:
Code The unique code number of the critter marked on the
screen
Gender Male/female
Age Current age
Adult Size The adult size for this critter
Size The current size of this critter
Speed The speed of this critter (pixels/step)
Color1(red) The red value for this critter (range: 0-1)
Color2(green) The green value (0-1)
Color3(blue) The blue value (0-1)
SensRange The sensing (vision) range for this critter (pixels)
FertFlag For females: 0=egg, 1=juvenile, 2=adult, non-fertile,
3 = adult, fertile
FertTimePer Period of time between reaching adult size and
becoming fertile
FertTime The actual time that an adult female will become
fertile
X The x coordinate of this critter
Y The y coordinate
Dir The direction that this critter is moving
NumEggsLaid Number of eggs laid by this critter
LNGunit Current number of long energy units held by this
critter
SHTunit Number of short energy units
STRunit Number of structural units
EggHatchPer The length of time for this critter to hatch
EggHatchTime The actual time of egg hatching for this critter
RepEvntsRem Number of mating attempts remaining for this
critter
ResAtt_ Resource attractiveness figures (0-10) for each
size/type of resource
Parent1 The critter's father code number
Parent2 The critter's mother code number
VI. VERSION HISTORY
11/23/02 v.1.0 Final Release
02/20/03 v1.1 Interface provided in one screen; numerous
bug fixes; OpenGL enhancements
06/15/03 v1.2 New feature: An individual's parents'
code numbers are recorded in the individual data file, which makes
it possible to lookup the parents' phenotypes
01/19/04 v1.3 New features: Predator/competitor and
critter information features added with keyboard controls; added
'cause of death' information to the individual data files; added
migration tool; added mate choice by color tool; added ability
to change default maximum lifespan, added bottleneck event feature.
03/08/04 v1.4 Changed camera controls to allow for
z-axis elevations as high as 2000 pixels. New feature: Ability
to run model on multiple field sizes.
06/25/04 v1.5 Updated genetics model using floats
and longs over strings for genetic trait codes.
02/3/06 v2.0 PC version complete.