-
Notifications
You must be signed in to change notification settings - Fork 114
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'master' into multicell-parasite
- Loading branch information
Showing
12 changed files
with
26,610 additions
and
11,377 deletions.
There are no files selected for viewing
23,006 changes: 11,629 additions & 11,377 deletions
23,006
avida-core/tests/demes_loadgermlines_systematics/expected/data/detail-5.spop
Large diffs are not rendered by default.
Oops, something went wrong.
212 changes: 212 additions & 0 deletions
212
avida-core/tests/loadpopulation_divdupbug_regression/config/avida.cfg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,212 @@ | ||
# Let's output a bit about the threads and parasites to stdout | ||
VERBOSITY 3 | ||
# We use a bigger world than default | ||
WORLD_X 25 | ||
WORLD_Y 1000 | ||
NUM_DEMES 40 | ||
RANDOM_SEED 353548561 | ||
|
||
|
||
|
||
# DEME CONFIGURATION | ||
#------------------------------------------------------------------------------ | ||
|
||
# Deme seeding method. | ||
# 0 = Maintain old consistency | ||
# 1 = New method using genotypes | ||
DEMES_SEED_METHOD 0 # this doesn't matter for DEMES_USE_GERMLINE 1 | ||
|
||
# Number of organisms in a deme to trigger its replication (0 = OFF). | ||
DEMES_REPLICATE_ORGS 625 | ||
|
||
# Deme divide method. | ||
# Only works with DEMES_SEED_METHOD 1 | ||
# 0 = Replace source and target demes | ||
# 1 = Replace target deme, reset source deme to founders | ||
# 2 = Replace target deme, leave source deme unchanged | ||
# 3 = Replace the target deme, and reset the number of resources consumed by the source deme. | ||
# 4 = Replace the target deme, reset the number of resources consumed by the source deme, and kill the germ line organisms of the source deme | ||
DEMES_DIVIDE_METHOD 0 | ||
|
||
# divide hosts into separate subpopulations of five deme slots | ||
DEMES_PARTITION_INTERVAL 10 | ||
|
||
# Should demes use a distinct germline? | ||
# 0: No | ||
# 1: Traditional germ lines | ||
# 2: Genotype tracking | ||
# 3: Organism flagging germline | ||
DEMES_USE_GERMLINE 1 | ||
|
||
# Give empty demes preference as targets of deme replication? | ||
DEMES_PREFER_EMPTY 1 | ||
|
||
# Reset resources in demes on replication? | ||
# 0 = reset both demes | ||
# 1 = reset target deme | ||
# 2 = deme resources remain unchanged | ||
DEMES_RESET_RESOURCES 2 | ||
|
||
# Number of offspring produced by a deme to trigger its replication. | ||
# 0 = OFF | ||
DEMES_REPLICATE_BIRTHS 0 | ||
|
||
# Max number of births that can occur within a deme; | ||
# used with birth-count replication | ||
DEMES_MAX_BIRTHS 0 | ||
|
||
# Give empty demes preference as targets of deme replication? | ||
DEMES_PREFER_EMPTY 1 | ||
|
||
# Which demes can an offspring land in when it migrates? | ||
# 0 = Any other deme | ||
# 1 = Eight neighboring demes | ||
# 2 = Two adjacent demes in list | ||
# 3 = Proportional based on the number of points | ||
# 4 = Use the weight matrix specified in MIGRATION_FILE | ||
DEMES_MIGRATION_METHOD 4 # necessary for parasite migration | ||
|
||
# Probability of a parasite migrating to a different deme | ||
# NOTE: only works with DEMES_MIGRATION_METHOD 4 | ||
DEMES_PARASITE_MIGRATION_RATE 0.002 | ||
|
||
# Probability of an offspring being born in a different deme. | ||
DEMES_MIGRATION_RATE 0.0 | ||
|
||
MIGRATION_FILE migration.mat | ||
|
||
# Log deme replications? | ||
LOG_DEMES_REPLICATE 1 | ||
# Log injection of organisms. 0/1 (off/on) | ||
LOG_INJECT 1 | ||
|
||
|
||
# Cell Configuration | ||
#------------------------------------------------------------------------------ | ||
|
||
# Make birth non-spatial | ||
# Which organism should be replaced when a birth occurs? | ||
# 0 = Random organism in neighborhood | ||
# 1 = Oldest in neighborhood | ||
# 2 = Largest Age/Merit in neighborhood | ||
# 3 = None (use only empty cells in neighborhood) | ||
# 4 = Random from population (Mass Action) | ||
# 5 = Oldest in entire population | ||
# 6 = Random within deme | ||
# 7 = Organism faced by parent | ||
# 8 = Next grid cell (id+1) | ||
# 9 = Largest energy used in entire population | ||
# 10 = Largest energy used in neighborhood | ||
# 11 = Local neighborhood dispersal | ||
# 12 = Kill offpsring after recording birth stats (for behavioral trials) | ||
# 13 = Kill parent and offpsring (for behavioral trials) | ||
BIRTH_METHOD 6 # random within deme | ||
# Overide BIRTH_METHOD to preferentially choose empty cells for offsping? | ||
PREFER_EMPTY 0 | ||
|
||
# Hosts get to live a bit longer than usual | ||
# When should death by old age occur? | ||
# When executed genome_length * AGE_LIMIT (+dev) instructions | ||
AGE_LIMIT 30 | ||
|
||
|
||
|
||
# MUTATION CONFIGURATION | ||
#------------------------------------------------------------------------------ | ||
|
||
# should be redundant with disabling indel mutations, but | ||
# parasites are somehow figuring out how to shrink anyways | ||
# (likely due to bug in Avida :/) | ||
# note: hosts have a larger genome size of 240 :) | ||
MIN_GENOME_SIZE 80 | ||
|
||
# Substitution rate (per copy) | ||
# We assign mtuation rates independently for hosts/parasites | ||
COPY_MUT_PROB 0 | ||
# Insertion rate (per copy) | ||
COPY_INS_PROB 0 | ||
# Deletion rate (per copy) | ||
COPY_DEL_PROB 0 | ||
# Uniform mutation probability (per copy) | ||
# Randomly apply insertion, deletion or substition mutation | ||
COPY_UNIFORM_PROB 0 | ||
# Slip rate (per copy) | ||
COPY_SLIP_PROB 0 | ||
|
||
# Substitution rate (per site, applied on divide) | ||
DIV_MUT_PROB 0.001000 | ||
# Insertion rate (per site, applied on divide) | ||
DIV_INS_PROB 0.0 | ||
# Deletion rate (per site, applied on divide) | ||
DIV_DEL_PROB 0.0 | ||
# Uniform mutation probability (per site, applied on divide)\n- Randomly apply insertion, deletion or point mutation | ||
DIV_UNIFORM_PROB 0.0 | ||
# Slip rate (per site, applied on divide) | ||
DIV_SLIP_PROB 0.0 | ||
|
||
# Substitution rate (max one, per divide | ||
DIVIDE_MUT_PROB 0 | ||
# Insertion rate (max one, per divide) | ||
DIVIDE_INS_PROB 0 | ||
# Deletion rate (max one, per divide) | ||
DIVIDE_DEL_PROB 0 | ||
|
||
# Substitution rate (per site, applied on inject) | ||
INJECT_MUT_PROB 0.005625 | ||
# Insertion rate (per site, applied on inject) | ||
INJECT_INS_PROB 0.0 | ||
# Deletion rate (per site, applied on inject) | ||
INJECT_DEL_PROB 0.0 | ||
|
||
# Prob. of copy mutations during germline replication | ||
GERMLINE_COPY_MUT 0.0075 | ||
# Prob. of insertion mutations during germline replication | ||
GERMLINE_INS_MUT 0.0 | ||
# Prob. of deletion mutations during germline replication | ||
GERMLINE_DEL_MUT 0.0 | ||
|
||
# Keep genomes from programatically creating their own variation | ||
# ...because it's complicated enough as is | ||
# Should genotypes that cannot replicate perfectly not be allowed to replicate? | ||
STERILIZE_UNSTABLE 1 | ||
|
||
GENOME_SIZE_RECOVERY 3 # sterilize too-small or too-large genomes | ||
|
||
|
||
# PARASITE CONFIGURATION | ||
#------------------------------------------------------------------------------ | ||
|
||
# Don't reset host thread upon infection | ||
# What should happen to a parasite when it gives birth? | ||
# 0 = Leave the parasite thread state untouched. | ||
# 1 = Resets the state of the calling thread (for SMT parasites, this must be 1) | ||
INJECT_METHOD 1 | ||
|
||
# 0: Infection always succeeds. | ||
# 1: Infection succeeds if parasite matches at least one host task | ||
# 2: Infection succeeds if parasite does NOT match at least one task | ||
# 3: Parasite tasks must match host tasks exactly (Matching Alleles) | ||
INFECTION_MECHANISM 1 | ||
|
||
# If set to 1, at least one reaction is required for a successful divide | ||
REQUIRE_SINGLE_REACTION 1 | ||
|
||
# Infection causes host steralization and takes all cpu cycles | ||
# (setting this to 1 will override inject_virulence) | ||
INJECT_IS_VIRULENT 0 | ||
|
||
# The probabalistic percentage of cpu cycles allocated to the parasite instead of the host. | ||
# Ensure INJECT_IS_VIRULENT is set to 0. | ||
# This only works for single infection at the moment. | ||
# Note that this should be set to a default even if virulence is evolving. | ||
PARASITE_VIRULENCE 0.85 | ||
|
||
# Maximum number of Threads a CPU can spawn | ||
MAX_CPU_THREADS 2 | ||
|
||
# Should inject instruction be a no-op for non-parasites? | ||
# Prevents host-generated pseudo-parasites. 0 for no, 1 for yes. | ||
TRANSSMT_DISABLE_NONPARASITE_INJECT 1 | ||
|
||
#Parasites use the TransSMT simulated hardware, which is setup in this weird way | ||
#include INST_SET=instset-transsmt.cfg |
29 changes: 29 additions & 0 deletions
29
avida-core/tests/loadpopulation_divdupbug_regression/config/environment.cfg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
RESOURCE resECHO:inflow=125:outflow=0.10 | ||
# disable host task rewards to avoid weirdness due to having "fast" and | ||
# "slow" hosts at the same time | ||
|
||
REACTION NAND nand process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION NOT not process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION ORN orn process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3BO logic_3BO process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION AND and process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CI logic_3CI process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION ANDN andn process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3BZ logic_3BZ process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AG logic_3AG process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION OR or process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CP logic_3CP process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3BY logic_3BY process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION NOR nor process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3BS logic_3BS process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3BA logic_3BA process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CJ logic_3CJ process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AH logic_3AH process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AQ logic_3AQ process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CN logic_3CN process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CB logic_3CB process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AX logic_3AX process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AR logic_3AR process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3AO logic_3AO process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CH logic_3CH process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 | ||
REACTION LOG3CC logic_3CC process:resource=resECHO:value=0.0:type=add:frac=1.0:min=0:max=1: requisite:reaction_max_count=1 |
20 changes: 20 additions & 0 deletions
20
avida-core/tests/loadpopulation_divdupbug_regression/config/events.cfg
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
############################################################################## | ||
# | ||
# This is the setup file for the events system. From here, you can | ||
# configure any actions that you want to have happen during the course of | ||
# an experiment, including setting the times for data collection. | ||
# | ||
# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...] | ||
# | ||
# This file is currently setup to record key information every 100 updates. | ||
# | ||
# For information on how to use this file, see: doc/events.html | ||
# For other sample event configurations, see: support/config/ | ||
# | ||
############################################################################## | ||
|
||
# need to prevent extinction abort on startup | ||
i LoadPopulation host-parasite-smt.spop | ||
i LoadGermlines host-smt.sgerm 1 | ||
|
||
u 5 Exit |
Oops, something went wrong.