Revised 2006-09-03 DMB
Generated Thu Apr 15 16:24:30 2010 by make_actions_html

Return to the Index | The Events File | The Analyze File

# List of Actions

## Action Categories

There is a large library of actions available for scheduling as events. Additionally, all of these actions can be used within analyze scripts. Below you will find a listing of the high level groupings of these actions, along with detailed sections for each them.

Print
  Print actions are the primary way of saving data from an Avida experiments.
Population
  Population actions modify the state of the population, and will actually change the course of the run.
Environment
  Actions that allow user to change properties of the environment, including resources.
Save and Load
  Actions that allow for saving and loading large data sets, such as full populations.
Landscape Analysis
  Actions that use data from the current state of Avida, process it and then output the results.
Driver
  Actions that allow user to control program execution, including experiment termination.

For a brief overview of writing a new action, please see Creating an Action below.

## Alphabetical Listing of Available Actions

AnalyzeLandscape AnalyzePopulation apocalypse AssignRandomCellData AvidianConjugation CalcConsensus ChangeEnvironment compete_demes CompeteDemes CompeteDemes_AttackKillAndEnergyConserve CompeteDemesByEnergyDistribution CompeteDemesByNetwork CompeteDemesByTaskCount CompeteDemesByTaskCountAndEfficiency CompeteOrganisms compete_organisms connect_cells ConnectCells copy_deme CopyDeme CountMultipleOpinions CountOpinions DecayPoints DelayedDemeEvent DelayedDemeEventsPerSlots DeletionLandscape DemeBalanceTwoTasks DemeReactionDiversity DemeResourceThresholdPredicate Desynchronization detail_parasite_pop detail_pop detail_sex_pop DiffuseHGTGenomeFragments DisconnectCells disconnect_cells DistributeData DistributeDataEfficiently DivideDemes DumpCellDataGrid dump_donor_grid DumpDonorGrid DumpEnergyGrid DumpExecutionRatioGrid dump_fitness_grid DumpFitnessGrid dump_genotype_grid DumpGenotypeColorGrid DumpGenotypeIDGrid dump_historic_pop dump_historic_sex_pop DumpLandscape DumpLineageGrid dump_memory DumpMemory dump_phenotype_grid DumpPhenotypeIDGrid dump_pop DumpPopulation dump_receiver_grid DumpReceiverGrid DumpSleepGrid dump_task_grid DumpTaskGrid Echo echo exit Exit ExitAveGeneration ExitAveLineageLabelGreater ExitAveLineageLabelLess ExitElapsedTime exit_if_ave_lineage_label_larger exit_if_ave_lineage_label_smaller Flash FullLandscape genetic_distance_pop_dump HillClimb inject Inject inject_all InjectAll inject_all_random_repro InjectAllRandomRepro InjectDemes InjectDemesFromNest InjectDemesRandom InjectModuloDemes InjectParasite InjectParasitePair InjectRandom inject_random InjectRange inject_range InjectResource inject_resource inject_scaled_resource InjectScaledResource inject_sequence InjectSequence InjectSequenceWDivMutRate InsertionLandscape IteratedConsensus join_grid_col join_grid_row JoinGridCol JoinGridRow KillDemePercent KillFractionInSequence KillFractionInSequence_PopLimit KillInstLimit KillInstPair KillNBelowResourceThreshold KillProb KillRate KillRectangle kill_rectangle KillWithinRadiusBelowResourceThreshold KillWithinRadiusBelowResourceThresholdTestAll KillWithinRadiusMeanBelowResourceThreshold LoadClone load_clone load_dump_file LoadPopulation LoadSexPopulation | LoadStructuredPopulation MigrateDemes MixPopulation ModMutProb MutationalNeighborhood new_trial NewTrial outflow_scaled_resource OutflowScaledResource PairTestLandscape Pause PrecalcLandscape Pred_DemeEventMoveBetweenTargets Pred_DemeEventMoveCenter Pred_DemeEventNUniqueIndividualsMovedIntoTarget PredictNuLandscape PredictWLandscape PrintAveNumTasks print_average_data PrintAverageData PrintAvgDemeTasksExeData PrintAvgTreatableDemeTasksExeData PrintAvgUntreatableDemeTasksExeData PrintCCladeCounts PrintCCladeFitnessHistogram PrintCCladeRelativeFitnessHistogram PrintCellData PrintCellVisitsData PrintCompetitionData PrintConsensusData print_count_data PrintCountData PrintCurrentMeanDemeDensity PrintCurrentOpinions PrintCurrentReactionData PrintCurrentReactionRewardData PrintCurrentTaskCounts print_data PrintData PrintDebug print_deme_stats PrintDemeAllStats PrintDemeAverageData PrintDemeCompetitionData PrintDemeCurrentTaskExeData PrintDemeDonorStats PrintDemeEnergyDistributionStats PrintDemeEnergySharingStats PrintDemeFoundersData PrintDemeGlobalResources PrintDemeMigrationSuicidePoints PrintDemeOrgReactionData PrintDemeOrgTasksData PrintDemeOrgTasksExeData PrintDemeReactionData PrintDemeReplicationData PrintDemeResourceStats PrintDemeResourceThresholdPredicate PrintDemeSpacialEnergyStats PrintDemeSpacialSleepStats PrintDemeStats PrintDemesTotalAvgEnergy PrintDemeTasksData PrintDemeTasksExeData PrintDemeTestamentStats PrintDemeTreatableCount PrintDemeTreatableReplicationData PrintDemeUntreatableReplicationData print_depth_histogram PrintDepthHistogram print_detailed_fitness_data PrintDetailedFitnessData PrintDetailedSynchronizationData PrintDirectReciprocityData print_divide_mut_data PrintDivideMutData print_dom print_dom_parasite print_dominant_data PrintDominantData PrintDominantGenotype PrintDominantParasiteGenotype print_donation_stats PrintDynamicMaxMinData PrintEditDistance print_error_data PrintErrorData PrintExtendedTimeData PrintFlowRateTuples print_genetic_distance_data PrintGeneticDistanceData PrintGenomicSiteEntropy print_genotype_abundance_histogram print_genotype_map PrintGenotypeAbundanceHistogram PrintGenotypeMap print_genotypes PrintGenotypes PrintGermlineData PrintGroupIds PrintGroupsFormedData PrintHGTData print_instruction_abundance_histogram print_instruction_data PrintInstructionAbundanceHistogram PrintInstructionData PrintInternalTasksData PrintInternalTasksQualData PrintInterruptData print_lineage_counts print_lineage_totals PrintLineageCounts PrintLineageTotals PrintLogFitnessHistogram print_market_data PrintMarketData PrintMessageData PrintMigrationData print_mutation_rate_data PrintMutationRateData PrintNewReactionData PrintNewTasksData PrintNewTasksDataPlus print_number_phenotypes PrintNumOrgsInDeme | PrintNumOrgsKilledData PrintOpinionsSetPerDeme PrintParasiteData PrintPerDemeGenPerFounderData PrintPerDemeReactionData PrintPerDemeTasksData PrintPerDemeTasksExeData print_phenotype_status PrintPhenotypeData PrintPhenotypeStatus PrintPhenotypicPlasticity PrintPlasticGenotypeSummary PrintPopulationDistanceData PrintPredicatedMessages PrintReactionData PrintReactionExeData PrintReactionRewardData PrintRelativeFitnessHistogram PrintReputationData print_resource_data PrintResourceData PrintSenseData PrintSenseExeData PrintShadedAltruists PrintSimpleConsensusData PrintSleepData print_species_abundance_histogram PrintSpeciesAbundanceHistogram print_stats_data PrintStatsData PrintStringMatchData PrintSynchronizationData PrintTaskProbHistogram print_tasks_data print_tasks_exe_data print_tasks_qual_data PrintTasksData PrintTasksExeData PrintTaskSnapshot PrintTasksQualData print_time_data PrintTimeData print_totals_data PrintTotalsData print_tree_depths PrintTreeDepths print_variance_data PrintVarianceData print_viable_tasks_data PrintViableTasksData RandomLandscape rate_kill ReplaceFromGermline replicate_demes ReplicateDemes reset_demes ResetDemes SampleLandscape save_clone SaveClone SaveDemeFounders SaveHistoricPopulation SaveHistoricSexPopulation SaveParasitePopulation SavePopulation SaveSexPopulation SaveStructuredPopulation SerialTransfer serial_transfer SetCellResource SetConfig SetDemeResource SetDemeResourceInflow SetDemeResourceOutflow SetDemeTreatmentAges SetEnvironmentInputs SetEnvironmentRandomMask SetFracDemeTreatable SetMigrationRate SetMutProb SetNumInstBefore0Energy SetOptimizeMinMax SetPeriodicResource set_reaction_inst set_reaction_value set_reaction_value_mult SetReactionInst SetReactionMaxTaskCount SetReactionMinTaskCount SetReactionTask SetReactionValue SetReactionValueMult SetResource set_resource SetResourceInflow SetResourceOutflow SetSeasonalResource SetSeasonalResource10Kyears_1To_1 SetSeasonalResource1Kyears_1To_1 SetTaskArgDouble SetTaskArgInt SetTaskArgString SetVerbose sever_grid_col sever_grid_row SeverGridCol SeverGridRow StopFastForward swap_cells SwapCells Synchronization task_snapshot test_dom TestDominant TherapyDecayDemeResource TherapyStructuralNumInst TherapyStructuralRatioDistBetweenNearest ToggleFitnessValley ToggleRewardInstruction TrackAllMessages UnitFitness VERBOSE zero_muts ZeroMuts ZeroResources

## Driver Actions

These actions control the driver object responsible for executing the current run.

- exit No Arguments

  DEPRECATED

- Exit No Arguments

  Unconditionally terminate the current run.

- ExitAveGeneration <double generation>

- ExitAveLineageLabelGreater <double threshold>

  Halts the run if the current average lineage label is larger than threshold.

- ExitAveLineageLabelLess <double threshold>

  Halts the run if the current average lineage label is smaller than threshold.

- ExitElapsedTime <int elapsed time [seconds]>

- exit_if_ave_lineage_label_larger <double threshold>

  DEPRECATED

- exit_if_ave_lineage_label_smaller <double threshold>

  DEPRECATED

- Pause No Arguments

- StopFastForward none

## Environment Actions

Events that allow user to change environment properties, such as resources and reaction parameters.

- ChangeEnvironment <string env_string>

  Action designed to read in and process a line formatted as if it were in the environment file. This will change environmental settings on the fly. You should create all resources and reactions in the environment file and only use this file to change these resources and reactions.

- DelayedDemeEvent <int x1> <int y1> <int x2> <int y2> <int delay> <int duraion> <bool static_position> <int total_events>

- DelayedDemeEventsPerSlots <int x1> <int y1> <int x2> <int y2> <int delay> <int duraion> <bool static_position> <int total_slots_per_deme> <int total_events_per_slot_max> <int total_events_per_slot_min> <int tolal_event_flow_levels>

- InjectResource <string res_name> <double res_count>

  Inject (add) a specified amount of a specified resource. res_name must already exist as a resource in environment file.

- inject_resource <string res_name> <double res_count>

  DEPRECATED

- inject_scaled_resource <string res_name> <double res_count>

  DEPRECATED

- InjectScaledResource <string res_name> <double res_count>

- outflow_scaled_resource <string res_name> <double res_percent>

  DEPRECATED

- OutflowScaledResource <string res_name> <double res_percent>

- SetCellResource <int cell_id> <string res_name> <double res_count>

- SetConfig <string config_var> <string value>

- SetDemeResource <string res_name> <double res_count>

- SetDemeResourceInflow <int deme id> <string resource_name> <int inflow>

- SetDemeResourceOutflow <int deme id> <string resource_name> <int outflow>

- SetEnvironmentInputs <int input_1> <int input_2> <int input_3>

  Set the inputs that all organisms get from the environment when doing IO to these specific values. There must be exactly three inputs, and they must have the usual values for the top 8 "key" bits, i.e. they must be of the form 0x0F?????? 0x33?????? 0x55?????? where ? can be replaced with any hexadecimal digit.

- SetEnvironmentRandomMask <int mask>

- SetFracDemeTreatable

- SetNumInstBefore0Energy <int new_value>

- SetOptimizeMinMax No Arguments

- SetPeriodicResource <string reaction_name> <string amplitude> <string pi/frequence> <phaseShift*pi> <string initial_Y>

- set_reaction_inst <string reaction_name> <string inst>

  DEPRECATED

- set_reaction_value <string reaction_name> <double value>

  DEPRECATED

- set_reaction_value_mult <string reaction_name> <double value>

  DEPRECATED

- SetReactionInst <string reaction_name> <string inst>

  Set the instruction triggered by this reaction. reaction_name must already exist in the environment file. inst must be in the instruction set.

- SetReactionMaxTaskCount <string reaction_name> <int max_count>

  Set the max task count required to trigger a reaction to task_count. reaction_name must already exist in the environment file.

- SetReactionMinTaskCount <string reaction_name> <int min_count>

  Set the min task count required to trigger a reaction to task_count. reaction_name must already exist in the environment file.

- SetReactionTask <string reaction_name> <string task_name>

  Set the task required to trigger a reaction to task_name. reaction_name and task_name must already exist in the environment file.

- SetReactionValue <string reaction_name> <double value>

  Set the reaction value to a specific level. reaction_name must already exist in the environment file. value can be negative.

- SetReactionValueMult <string reaction_name> <double value>

  Multiply the reaction value by the value. reaction_name must already exist in the environment file. value can be negative.

- SetResource <string res_name> <double res_count>

  Set the resource amount to a specific level. res_name must already exist as a resource in environment file.

- set_resource <string res_name> <double res_count>

  DEPRECATED

- SetResourceInflow <string resource_name> <int inflow>

  Set the resource inflow to a specific level. res_name must already exist as a resource in environment file.

- SetResourceOutflow <string resource_name> <int outflow>

  Set the resource outflow to a specific level. res_name must already exist as a resource in environment file.

- SetSeasonalResource

  Sets resource availiblity to seasonal

- SetSeasonalResource10Kyears_1To_1

  Sets resource availiblity to seasonal 1 to -1 for 10K years of 365 updates

- SetSeasonalResource1Kyears_1To_1

  Sets resource availiblity to seasonal 1 to -1 for 1K years of 365 updates

- SetTaskArgDouble <int task> <int arg> <double value>

- SetTaskArgInt <int task> <int arg> <int value>

- SetTaskArgString <int task> <int arg> <string value>

- ZeroResources none

  Set all resurce levels to zero.

## Landscape Analysis Actions

Landscape analysis actions perform various types mutation studies to calculate properties of the fitness landscape for a particular genome. When scheduled as an event during a run, these actions will typically perform analysis on the dominant genotype. In analyze mode, analysis is performed on the entire currently selected batch.

These actions are often very computationally intensive, thus will take a long time to compute. In order to take advantage of increasingly available multi-processor/multi-core systems, a number of these actions have been enhanced to make use of multiple threads to parallize work. Set the configuration setting `MT_CONCURRENCY` to the number of logical processors available to make use of all processor resources for these compuations.

- AnalyzeLandscape [filename="land-analyze.dat"] [int trials=1000] [int min_found=0] [int max_trials=0] [int max_dist=10]

- AnalyzePopulation [double sample_prob=1] [int landscape=0] [int save_genotype=0] [string filename=""]

- DeletionLandscape [string filename="land-del.dat"] [int distance=1] [string sitecount_file=""]

- DumpLandscape [string filename="land-dump.dat"]

- FullLandscape [string filename="land-full.dat"] [int distance=1] [string entropy_file=""] [string sitecount_file=""]

  Do a landscape analysis of the dominant genotype or current batch of genotypes, depending on the current mode. The resulting output is a collection of statistics obtained from examining all possible mutations at the distance specified. The default distance is one.

- HillClimb [string filename="hillclimb.dat"]

  Does a hill climb with the dominant genotype.

- InsertionLandscape [string filename="land-ins.dat"] [int distance=1] [string sitecount_file=""]

- MutationalNeighborhood [string fname="mut-neighborhood.dat"] [int target=-1]

- PairTestLandscape [string filename=""] [int sample_size=0]

  If sample_size = 0, pairtest the full landscape.

- PrecalcLandscape No Arguments

  Precalculate the distance 1 full landscape for the current batch in parallel using multiple threads. The resulting data is stored into the current batch and can be used by many subsequent output commands within Analyze mode.

- PredictNuLandscape [string filename="land-predict.dat"]

- PredictWLandscape [string filename="land-predict.dat"]

- RandomLandscape [string filename="land-random.dat"] [int distance=1] [int trials=0]

- SampleLandscape [string filename="land-sample.dat"] [int trials=0]

## Population Actions

Population events modify the state of the population, and will actually change the course of the run. There are a wide variety of these.

- apocalypse [double probability=0.9]

  DEPRECATED

- AssignRandomCellData [num_cells=deme_size]

- AvidianConjugation

- compete_demes [int type=1]

  DEPRECATED

- CompeteDemes [int type=1]

- CompeteDemes_AttackKillAndEnergyConserve No Arguments

- CompeteDemesByEnergyDistribution Competes demes according to the distribution of energy among the organisms

- CompeteDemesByNetwork

- CompeteDemesByTaskCount Competes demes according to the number of times a given task has been completed within that deme

  Competes demes based on the total number of times that a task has been completed by an organism in the deme since the was initialized. This action takes one integer parameter representing number of the task that is to be used for competition. If no parameter supplied, the class uses the first task defined in the environment file compete the demes.

- CompeteDemesByTaskCountAndEfficiency Competes demes according to the number of times a given task has been completed within that deme and the efficiency with which it was done

- CompeteOrganisms [int type=0] [int parents_survive=0] [double scaled_time=1.0] [int dynamic_scaling=0]

  Calculates fitness of each organism in the population and creates a new population of descendants where each organism has a chance of replication proportional to its fitness. Can be used to make Avida operate without population dynamics and asynchronous replication, i.e. like a genetic algorithm. If NewTrial events have occurred since the last CompeteOrganisms event, then the average fitness over those trials will be used.

  `competition_type` controls how the fitnesses of multiple trials determine the overall fitness used for the competition: 0=geometric mean of fitnesses, 1=scaled geometric mean of fitnesses (the greatest fitness of each trial is scaled to 1.0 before taking the geometric mean), 2=arithmetic mean, 3=geometric mean plus rescales effective fitness values by the geometric mean of the difference from the top score and the median.

  Setting `parents_survive` to 1, causes the first copy of an organism that makes it into the new population to be the original (unmutated) parent organism.

- compete_organisms [int type=1]

  DEPRECATED

- connect_cells <int cellA_x> <int cellA_y> <int cellB_x> <int cellB_y>

  DEPRECATED

- ConnectCells <int cellA_x> <int cellA_y> <int cellB_x> <int cellB_y>

  Connects a pair of specified cells.

- copy_deme <int src_id> <int dest_id>

  DEPRECATED

- CopyDeme <int src_id> <int dest_id>

- CountMultipleOpinions

- CountOpinions

- DecayPoints

  Decays the number of points a deme has accumulated by a percentage that is set in the configuration file.

- DemeBalanceTwoTasks

- DemeReactionDiversity

- DemeResourceThresholdPredicate

- Desynchronization

- DiffuseHGTGenomeFragments

- DisconnectCells <int cellA_x> <int cellA_y> <int cellB_x> <int cellB_y>

  Disconnects a pair of specified cells.

- disconnect_cells <int cellA_x> <int cellA_y> <int cellB_x> <int cellB_y>

  DEPRECATED

- DistributeData

- DistributeDataEfficiently

- DivideDemes No arguments (yet!)

- Flash

- inject [string fname="START_CREATURE"] [int cell_id=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- Inject [string fname="START_CREATURE"] [int cell_id=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Inject a single organisms into the population. Arguments must be included from left to right; if all arguments are left out, the default creature is the ancestral organism, and it will be injected into cell 0, have an uninitialized merit, and be marked as liniage id 0.

- inject_all [string fname="START_CREATURE"] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- InjectAll [string fname="START_CREATURE"] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Same as Inject, but no cell_id is specified and the organism is placed into all cells in the population.

- inject_all_random_repro <int length> [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- InjectAllRandomRepro <int length> [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

- InjectDemes [string fname="START_CREATURE"] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

- InjectDemesFromNest [int num_orgs=1] [int nest_cellid=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

- InjectDemesRandom [int num_orgs=1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

- InjectModuloDemes

- InjectParasite <string filename> <string label> [int cell_start=0] [int cell_end=-1]

  Attempt to inject a parasite genome into the supplied population cell range with the specified label.

- InjectParasitePair <string filename_genome> <string filename_parasite> <string label> [int cell_start=0] [int cell_end=-1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Inject host parasite pairs into the population cell range specified.

- InjectRandom <int length> [int cell_id=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Injects a randomly generated genome of the supplied length into the population.

- inject_random <int length> [int cell_id=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- InjectRange [string fname="START_CREATURE"] [int cell_start=0] [int cell_end=-1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Injects identical organisms into a range of cells of the population.

  Example:
  `InjectRange 000-aaaaa.org 0 10`
  Will inject 10 organisms into cells 0 through 9.

- inject_range [string fname="START_CREATURE"] [int cell_start=0] [int cell_end=-1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- inject_sequence <string sequence> [int cell_start=0] [int cell_end=-1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  DEPRECATED

- InjectSequence <string sequence> [int cell_start=0] [int cell_end=-1] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

  Injects identical organisms based on the supplied genome sequence into a range of cells of the population.

  Example:
  `InjectSequence ckdfhgklsahnfsaggdsgajfg 0 10 100`
  Will inject 10 organisms into cells 0 through 9 with a merit of 100.

- InjectSequenceWDivMutRate <string sequence> [int cell_start=0] [int cell_end=-1] [double div_mut_rate=0] [double merit=-1] [int lineage_label=0] [double neutral_metric=0]

- IteratedConsensus [int compete_period=100 [int replace_number=1 [int kill=1 [int restrict_range=1]]]]

- join_grid_col [int col_id=-1] [int min_row=0] [int max_row=-1]

  DEPRECATED

- join_grid_row [int row_id=-1] [int min_col=0] [int max_col=-1]

  DEPRECATED

- JoinGridCol [int col_id=-1] [int min_row=0] [int max_row=-1]

  Add connections between cells along a column in an Avida grid.

- JoinGridRow [int row_id=-1] [int min_col=0] [int max_col=-1]

  Add connections between cells along a row in an Avida grid.

- KillDemePercent [double pctkills=0.0]

- KillFractionInSequence

- KillFractionInSequence_PopLimit

- KillInstLimit

- KillInstPair

- KillNBelowResourceThreshold [int numkills=0, string resource name, double threshold=0]

- KillProb [double probability=0.9]

  Using the specified probability, test each organism to see if it is killed off.

- KillRate [double probability=0.9]

  Randomly removes a certain proportion of the population. In principle, this action does the same thing as the KillProb event. However, instead of a probability, here one has to specify a rate. The rate has the same unit as fitness. So if the average fitness is 20000, than you remove 50% of the population on every update with a removal rate of 10000.

- KillRectangle [int x1=0] [int y1=0] [int x2=0] [int y2=0]

  Kill off all organisms in a rectangle defined by the points (x1, y1) and (x2, y2).

- kill_rectangle [int x1=0] [int y1=0] [int x2=0] [int y2=0]

  DEPRECATED

- KillWithinRadiusBelowResourceThreshold [int numradii=0, int radius=0, string resource name, double threshold=0, double killdensity=1]

- KillWithinRadiusBelowResourceThresholdTestAll

- KillWithinRadiusMeanBelowResourceThreshold [int numradii=0, int radius=0, string resource name, double threshold=0, double killdensity=1]

- MigrateDemes <string resource name><double failure_percent>

- MixPopulation No arguments.

- ModMutProb [string mut_type="COPY_MUT"] [double prob=0.0] [int start_cell=-1] [int end_cell=-1]

- new_trial [int type=1]

  DEPRECATED

- NewTrial No Arguments

  Immediately calculates the fitness of each organism in the population, saves this value for use with the CompeteOrganisms event, and resets the state of all organisms.

- Pred_DemeEventMoveBetweenTargets [int times=1]

- Pred_DemeEventMoveCenter

- Pred_DemeEventNUniqueIndividualsMovedIntoTarget [int numorgs=1]

- rate_kill <double probability>

  DEPRECATED

- ReplaceFromGermline

- replicate_demes [string trigger=full_deme]

  DEPRECATED

- ReplicateDemes [string trigger=full_deme]

- reset_demes No Arguments

  DEPRECATED

- ResetDemes No Arguments

- SerialTransfer [int transfer_size=1] [int ignore_deads=1]

  Similar to KillProb, but we specify the exact number of organisms to keep alive after the event. The ignore_deads argument determines whether only living organisms are retainted.

- serial_transfer [int transfer_size=1] [int ignore_deads=1]

  DEPRECATED

- SetDemeTreatmentAges <int treatment age>+

- SetMigrationRate [double rate=0.0]

- SetMutProb [string mut_type="COPY_MUT"] [double prob=0.0] [int start_cell=-1] [int end_cell=-1]

- sever_grid_col [int col_id=-1] [int min_row=0] [int max_row=-1]

  DEPRECATED

- sever_grid_row [int row_id=-1] [int min_col=0] [int max_col=-1]

  DEPRECATED

- SeverGridCol [int col_id=-1] [int min_row=0] [int max_row=-1]

  Remove the connections between cells along a column in an Avida grid.

- SeverGridRow [int row_id=-1] [int min_col=0] [int max_col=-1]

  Remove the connections between cells along a row in an Avida grid.

- swap_cells <int cell_id1> <int cell_id2>

  DEPRECATED

- SwapCells <int cell_id1> <int cell_id2>

- Synchronization

- TherapyDecayDemeResource [string resource_name=resname, string decrease_type=(none|lin|exp), double amount=0.2]

- TherapyStructuralNumInst

- TherapyStructuralRatioDistBetweenNearest

- ToggleFitnessValley No Arguments

- ToggleRewardInstruction No Arguments

- TrackAllMessages

- UnitFitness

- zero_muts No Arguments

  DEPRECATED

- ZeroMuts No Arguments

  This event will set all mutation rates to zero.

## Print Actions

Output events are the primary way of saving data from an Avida experiments. The main two types are continuous output, which append to a single file every time the event is trigged, and singular output, which produce a single, complete file for each trigger.

- CalcConsensus [int lines_saved=0]

- DumpCellDataGrid [string fname=""]

- dump_donor_grid [string fname=""]

- DumpDonorGrid [string fname=""]

  Print out the grid of organisms who donated their merit.

- DumpEnergyGrid [string fname=""]

- DumpExecutionRatioGrid [string fname=""]

- dump_fitness_grid [string fname=""]

- DumpFitnessGrid [string fname=""]

  Print out the grid of organism fitness values.

- dump_genotype_grid [string fname=""]

- DumpGenotypeColorGrid [int num_colors=12] [string fname=""]

- DumpGenotypeIDGrid [string fname=""]

  Print out the grid of genotype IDs.

- DumpLineageGrid [string fname="grid_linage.update.dat"]

  Print out the grid of lineage labels (set when ancestor was injected with action like InjectSequence)

- dump_memory [string fname=""]

- DumpMemory [string fname=""]

  Dump memory summary information.

- dump_phenotype_grid [string fname=""]

- DumpPhenotypeIDGrid [string fname=""]

- dump_receiver_grid [string fname=""]

- DumpReceiverGrid [string fname=""]

- DumpSleepGrid [string fname=""]

- dump_task_grid [string fname=""]

- DumpTaskGrid [string fname=""]

  Print out the grid of takss that organisms do. For each organism, tasks are first encoded as a binary string (e.g. 100000001 means that organism is doing NOT and EQU and then reported as a base-10 number (257 in the example above).

- Echo <cString message>

  Print the supplied message to standard output.

- echo <cString message>

  DEPRECATED

- genetic_distance_pop_dump [string creature="START_CREATURE"] [string fname=""] [int save_genotypes=0]

- PrintAveNumTasks [string fname=""]

- print_average_data [string fname="average.dat"]

  DEPRECATED

- PrintAverageData [string fname="average.dat"]

  [string filename='average.dat'] Print all of the population averages the specified file.

- PrintAvgDemeTasksExeData [string fname="avg_deme_tasks_exe.dat"]

- PrintAvgTreatableDemeTasksExeData [string fname="avg_treatable_deme_tasks_exe.dat"]

- PrintAvgUntreatableDemeTasksExeData [string fname="avg_untreatable_deme_tasks_exe.dat"]

- PrintCCladeCounts [filename = "cclade_count.dat"]

  Print a count of the number of oraganisms belonging to a each coalescence clade currently in the population.
  This action will only work in run mode.
  This action will require TRACK_CCLADE to be enabled.

- PrintCCladeFitnessHistogram [filename] [fit_mode] [hist_min] [hist_step] [hist_max]

  Print a histogram of fitnesses for each coalescence clade in the population.
  This action will only work in run mode.
  This action will rerequire TRACK_CCLADE to be enabled.
  `mode` may be {`CURRENT, ACTUAL, TESTCPU`}, where
  `CURRENT` uses the current phenotype value of fitness

`ACTUAL` uses the current merit and the true gestation time (via test cpu calculation)
`TESTCPU` uses the test cpu measurement.
`lower_bound, step, upper_bound` are log10 values for the individual histogram bins.

- PrintCCladeRelativeFitnessHistogram [filename] [fit_mode] [hist_min] [hist_step] [hist_max]

  Print a histogram of parent-relative fitness ratios for each coalescence clade in the population.
  This action will only work in run mode.
  This action will rerequire TRACK_CCLADE to be enabled.
  `mode` may be {`CURRENT, ACTUAL, TESTCPU`}, where
  `CURRENT` uses the current phenotype value of fitness

`ACTUAL` uses the current merit and the true gestation time (via test cpu calculation)
`TESTCPU` uses the test cpu measurement.
`lower_bound, step, upper_bound` are values for the individual histogram bins.

- PrintCellData

- PrintCellVisitsData [string fname="visits.dat "]

- PrintCompetitionData [string fname="competition.dat"]

  Print out CompeteOrganism statistics. Make the first call after the first set of trials has been completed to get a complete header.

- PrintConsensusData

- print_count_data [string fname="count.dat"]

  DEPRECATED

- PrintCountData [string fname="count.dat"]

  Print all of the statistics the keep track of counts (such as the number of organisms in the population or the number of instructions executed).

- PrintCurrentMeanDemeDensity

- PrintCurrentOpinions

- PrintCurrentReactionData [string fname="cur_reactions.dat"]

- PrintCurrentReactionRewardData [string fname="cur_reaction_reward.dat"]

- PrintCurrentTaskCounts [string fname="curr_task_counts.dat"]

- print_data <cString fname> <cString format>

  DEPRECATED

- PrintData <cString fname> <cString format>

  Append to the file specified (continuous output), the data given in the column list. The column list needs to be a comma-seperated list of keywords representing the data types. Many possible data types can be output; see the complete listing for details. Note that this event will even create a detailed column legend at the top of your file so you don't need to seperately keep track of what the columns mean.

- PrintDebug No Arguments

- print_deme_stats No Arguments

  DEPRECATED

- PrintDemeAllStats No Arguments

- PrintDemeAverageData [string fname="deme_average.dat"]

- PrintDemeCompetitionData [string fname="deme_compete.dat"]

- PrintDemeCurrentTaskExeData [string fname=" deme_cur_task_exe.dat "]

- PrintDemeDonorStats No Arguments

- PrintDemeEnergyDistributionStats No Arguments

- PrintDemeEnergySharingStats No Arguments

- PrintDemeFoundersData [string fname="deme_founders.dat"]

- PrintDemeGlobalResources No Arguments

- PrintDemeMigrationSuicidePoints [string fname=" deme_mig_suicide_points.dat "]

- PrintDemeOrgReactionData [string fname="deme_org_reactions.dat"]

- PrintDemeOrgTasksData [string fname="deme_org_tasks.dat"]

- PrintDemeOrgTasksExeData [string fname="deme_org_tasks_exe.dat"]

- PrintDemeReactionData [string fname="deme_reactions.dat"]

- PrintDemeReplicationData [string fname="deme_repl.dat"]

- PrintDemeResourceStats No Arguments

- PrintDemeResourceThresholdPredicate

- PrintDemeSpacialEnergyStats No Arguments

- PrintDemeSpacialSleepStats No Arguments

- PrintDemeStats No Arguments

- PrintDemesTotalAvgEnergy No Arguments

- PrintDemeTasksData [string fname="deme_tasks.dat"]

- PrintDemeTasksExeData [string fname="deme_tasks_exe.dat"]

- PrintDemeTestamentStats [string fname="deme_testament.dat"]

- PrintDemeTreatableCount [string fname="deme_treatable.dat"]

- PrintDemeTreatableReplicationData [string fname="deme_repl_treatable.dat"]

- PrintDemeUntreatableReplicationData [string fname="deme_repl_untreatable.dat"]

- print_depth_histogram [string fname="depth_histogram.dat"]

  DEPRECATED

- PrintDepthHistogram [string fname="depth_histogram.dat"]

- print_detailed_fitness_data [int save_max_f_genotype=0] [int print_fitness_histo=0] [double hist_fmax=1] [double hist_fstep=0.1] [string datafn="fitness.dat"] [string histofn="fitness_histos.dat"] [string histotestfn="fitness_histos_testCPU.dat"]

- PrintDetailedFitnessData [int save_max_f_genotype=0] [int print_fitness_histo=0] [double hist_fmax=1] [double hist_fstep=0.1] [string datafn="fitness.dat"] [string histofn="fitness_histos.dat"] [string histotestfn="fitness_histos_testCPU.dat"]

- PrintDetailedSynchronizationData [string fname="sync-detail.dat"]

- PrintDirectReciprocityData

- print_divide_mut_data [string fname="divide_mut.dat"]

  DEPRECATED

- PrintDivideMutData [string fname="divide_mut.dat"]

  Output (regular and log) statistics about individual, per site, rates divide mutation rates (aver, stdev, skew, cur) to divide_mut.dat. Use with multiple divide instuction set.

- print_dom [string fname=""]

- print_dom_parasite [string fname=""]

- print_dominant_data [string fname="dominant.dat"]

  DEPRECATED

- PrintDominantData [string fname="dominant.dat"]

  Print all of the statistics relating to the dominant genotype.

- PrintDominantGenotype [string fname=""]

  Print the dominant organism's genome (and lots of information about it) into the file specified. If no filename is given, the genotype's assigned name is used and the file is placed into the archive subdirectory.

- PrintDominantParasiteGenotype [string fname=""]

  Print the dominant parasite's genome (and lots of information about it) into the file specified. If no filename is given, the parasite's assigned name is used and the file is placed into the archive subdirectory.

- print_donation_stats No Arguments

  DEPRECATED

- PrintDynamicMaxMinData [string fname=" maxmin.dat "]

- PrintEditDistance

- print_error_data [string fname="error.dat"]

  DEPRECATED

- PrintErrorData [string fname="error.dat"]

  Print all of the standard errors of the average population statistics.

- PrintExtendedTimeData

- PrintFlowRateTuples [string fname="flow_rate_tuples.dat"]

- print_genetic_distance_data [string ref_creature_file="START_CREATURE"] [string fname="genetic_distance.dat"]

- PrintGeneticDistanceData [string ref_creature_file="START_CREATURE"] [string fname="genetic_distance.dat"]

- PrintGenomicSiteEntropy [filename = "GenomicSiteEntropyData.datcd "]

  This function will take the initial genotype for each organism in the population/batch, align them, and calculate the per-site entropy of the aligned sequences. Please note that there may be a variable number of columns in each line if the runs are not fixed length. The site entropy will be measured in mers, normalized by the instruction set size. This is a population/batch measure of entropy, not a mutation-selection balance measure.

- print_genotype_abundance_histogram [string fname="genotype_abundance_histogram.dat"]

  DEPRECATED

- print_genotype_map [string fname="genotype_map.m"]

  DEPRECATED

- PrintGenotypeAbundanceHistogram [string fname="genotype_abundance_histogram.dat"]

  Writes out a genotype abundance histogram.

- PrintGenotypeMap [string fname="genotype_map.m"]

  This event is used to output a map of the genotype IDs for the population grid to a file that is suitable to be read into Matlab.

- print_genotypes [string data_fields="all"] [int historic=0] [string fname=""]

- PrintGenotypes [string data_fields="all"] [int historic=0] [string fname=""]

  This command is used to print out information about all of the genotypes in the population. The file output from here can be read back into the analyze mode of Avida with the `LOAD` command.

  The data_fields parameter indicates what columns should be included in the file, which must be comma seperated. Options are: all, id, parent_id, parent2_id (for sex), parent_dist, num_cpus, total_cpus, length, merit, gest_time, fitness, update_born, update_dead, depth, lineage, sequence. Use all (the default) if you want all of the fields included.

  The print_historic parameter indicates how many updates back in time should be included in this output. For example, '200' would indicate that any ancestor of the current population that died out in the last 200 updates should also be printed. A '-1' in this field indicates that all ancestors should be printed.

  The filename parameter simply indicates what you want to call the file.

  Example:
  `u 1000:1000 print_genotypes id,parent_id,fitness 1000`
  This will print out the full population every 1000 updates, including all genotypes that have died out since the last time it was printed.

- PrintGermlineData [string fname="germline.dat"]

- PrintGroupIds

- PrintGroupsFormedData

- PrintHGTData

- print_instruction_abundance_histogram [string fname="instruction_histogram.dat"]

  DEPRECATED

- print_instruction_data [string fname="instruction.dat"]

  DEPRECATED

- PrintInstructionAbundanceHistogram [string fname="instruction_histogram.dat"]

  Appends a line containing the bulk count (abundance) of each instruction in the population onto a file.

- PrintInstructionData [string fname="instruction.dat"]

  Print the by-organisms counts of what instructions they _successfully_ executed beteween birth and divide. Prior to their first divide, organisms values for their parents.

- PrintInternalTasksData [string fname="in_tasks.dat"]

- PrintInternalTasksQualData [string fname="in_tasks_quality.dat"]

- PrintInterruptData [string fname="interrupt.dat"]

- print_lineage_counts [string fname="lineage_counts.dat"] [int verbose=1]

- print_lineage_totals [string fname="lineage_totals.dat"] [int verbose=1]

  DEPRECATED

- PrintLineageCounts [string fname="lineage_counts.dat"] [int verbose=1]

- PrintLineageTotals [string fname="lineage_totals.dat"] [int verbose=1]

- PrintLogFitnessHistogram Parameters: <filename> <mode> <min> <step> <max>

  Print a histogram of organism fitnesses in the current population.
  This action will only work in run mode.
  `mode` may be {`CURRENT, ACTUAL, TESTCPU`}, where
  `CURRENT` uses the current phenotype value of fitness

`ACTUAL` uses the current merit and the true gestation time (via test cpu calculation)
`TESTCPU` uses the test cpu measurement.
`lower_bound, step, upper_bound` are log10 values for the individual histogram bins.

- print_market_data [string fname="market.dat"]

  DEPRECATED

- PrintMarketData [string fname="market.dat"]

- PrintMessageData [string fname="message.dat"]

- PrintMigrationData [string fname="migration.dat"]

- print_mutation_rate_data [string fname="mutation_rates.dat"]

  DEPRECATED

- PrintMutationRateData [string fname="mutation_rates.dat"]

  Output (regular and log) statistics about individual copy mutation rates (aver, stdev, skew, cur). Useful only when mutation rate is set per organism.

- PrintNewReactionData [string fname=" newreactions.dat "]

  Print number of times the particular reaction has newly appeared in the population since the last time this datum was printed. Newly appeared is defined as an organism triggering a reaction that was not triggered by its parent.

- PrintNewTasksData [string fname=" newtasks.dat "]

  Print number of times the particular task has newly appeared in the population since the last time this datum was printed. Newly appeared is defined as an organism executing a task that was not executed by its parent.

- PrintNewTasksDataPlus [string fname=" newtasksplus.dat "]

- print_number_phenotypes [string fname="phenotype_count.dat"]

  DEPRECATED

- PrintNumOrgsInDeme No Arguments

- PrintNumOrgsKilledData [string fname="orgs_killed.dat"]

- PrintOpinionsSetPerDeme

- PrintParasiteData [string fname="parasite.dat"]

- PrintPerDemeGenPerFounderData [string fname="deme_gen_between_founders.dat"]

- PrintPerDemeReactionData [string fname="per_deme_reactions.dat"]

- PrintPerDemeTasksData [string fname="per_deme_tasks.dat"]

- PrintPerDemeTasksExeData [string fname="per_deme_tasks_exe.dat"]

- print_phenotype_status [string fname="phenotype_status.dat"]

  DEPRECATED

- PrintPhenotypeData [string fname="phenotype_count.dat"]

  [string filename='phenotype_count.dat'] Print the number of phenotypes based on tasks executed this update. Executing a task any number of times is considered the same as executing it once.

- PrintPhenotypeStatus [string fname="phenotype_status.dat"]

- PrintPhenotypicPlasticity [string filename="phenplast"] [int num_trials=1000]

  This function will provided detailed information about the phenotypic varients of the current population/batch by running each genome through a test cpu `num_trials` times. If this command is executed in run mode, the `filename` will be appeneded with `-Update.dat` where `Update` is the current update. In analyze mode, the default file is merely phenplast.dat. The output file contains the following: id, parent_id, phenotypic_varient_number, frequency, fitness, merit, gestation_time, and task counts for each phenotypic variant of each genotype.

- PrintPlasticGenotypeSummary [string filename="genotype_plsticity.dat"]

- PrintPopulationDistanceData [string creature="START_CREATURE"] [string fname=""] [int save_genotypes=0]

- PrintPredicatedMessages

- PrintReactionData [string fname="reactions.dat"]

- PrintReactionExeData [string fname="reactions_exe.dat"]

- PrintReactionRewardData [string fname="reaction_reward.dat"]

- PrintRelativeFitnessHistogram [filename] [fit_mode] [hist_min] [hist_step] [hist_max]

  Print a histogram of parent-relative fitness ratios for each coalescence clade in the population.
  This action will only work in run mode.
  `mode` may be {`CURRENT, ACTUAL, TESTCPU`}, where
  `CURRENT` uses the current phenotype value of fitness

`ACTUAL` uses the current merit and the true gestation time (via test cpu calculation)
`TESTCPU` uses the test cpu measurement.
`lower_bound, step, upper_bound` are values for the individual histogram bins.

- PrintReputationData [string fname="reputation.dat"]

- print_resource_data [string fname="resource.dat"]

  DEPRECATED

- PrintResourceData [string fname="resource.dat"]

  Print the current counts of each resource available to the population. This uses the environment configuration to determine what resources are in use. Also creates seperate files `resource_resource_name.m` (in a format that is designed to be read into Matlab) for each spatial resource.

- PrintSenseData [string fname="sense.dat"]

- PrintSenseExeData [string fname="sense_exe.dat"]

- PrintShadedAltruists

- PrintSimpleConsensusData

- PrintSleepData [string fname="sleep.dat"]

- print_species_abundance_histogram [string fname="species_abundance_histogram.dat"]

  DEPRECATED

- PrintSpeciesAbundanceHistogram [string fname="species_abundance_histogram.dat"]

  Writes out a species abundance histogram.

- print_stats_data [string fname="stats.dat"]

  DEPRECATED

- PrintStatsData [string fname="stats.dat"]

  Print all of the miscellanous population statistics.

- PrintStringMatchData [string fname="stringmatch.dat"]

- PrintSynchronizationData

- PrintTaskProbHistogram [filename=pp_histogram.dat] [weightbycpus=0]

- print_tasks_data [string fname="tasks.dat"]

  DEPRECATED

- print_tasks_exe_data [string fname="tasks_exe.dat"]

  DEPRECATED

- print_tasks_qual_data [string fname="tasks_quality.dat"]

  DEPRECATED

- PrintTasksData [string fname="tasks.dat"]

  Print the number of organisms that are able to perform each task. This uses the environment configuration to determine what tasks are in use.

- PrintTasksExeData [string fname="tasks_exe.dat"]

  Print number of times the particular task has been executed this update.

- PrintTaskSnapshot [string fname=""]

  Run all organisms in the population through test cpus and print out the number of tasks each can perform.

- PrintTasksQualData [string fname="tasks_quality.dat"]

  Print the total quality of each task. By default a successful task is valued as 1.0. Some tasks, however, can grant partial values and/or special bonuses via the quality value.

- print_time_data [string fname="time.dat"]

  DEPRECATED

- PrintTimeData [string fname="time.dat"]

  Print all of the timing related statistics.

- print_totals_data [string fname="totals.dat"]

  DEPRECATED

- PrintTotalsData [string fname="totals.dat"]

  Print various totals for the entire length of the run (for example, the total number of organisms ever).

- print_tree_depths [string fname=""]

- PrintTreeDepths [string fname=""]

  Reconstruction of phylogenetic trees.

- print_variance_data [string fname="variance.dat"]

  DEPRECATED

- PrintVarianceData [string fname="variance.dat"]

  Print all of the variances of the average population statistics.

- print_viable_tasks_data [string fname="viable_tasks.dat"]

- PrintViableTasksData [string fname="viable_tasks.dat"]

- SaveDemeFounders [string fname=""]

- SetVerbose [string verbosity=""]

  Change the level of output verbosity. Verbose messages will print all of the details of what is happening to the screen. Minimal messages will only briefly state the process being run. Verbose messages are recommended if you're in interactive analysis mode. When no arguments are supplied, action will toggle between NORMAL and ON.
  Levels: SILENT, NORMAL, ON, DETAILS, DEBUG

- task_snapshot [string fname=""]

- test_dom [string fname="dom-test.dat"]

- TestDominant [string fname="dom-test.dat"]

- VERBOSE [string verbosity=""]

## Save Load Actions

- detail_parasite_pop [string fname=""]

  DEPRECATED

- detail_pop [string fname=""]

  DEPRECATED

- detail_sex_pop [string fname=""]

  DEPRECATED

- dump_historic_pop [int back_dist=-1] [string fname=""]

  DEPRECATED

- dump_historic_sex_pop [string fname=""]

  DEPRECATED

- dump_pop [string fname=""]

  DEPRECATED

- DumpPopulation [string fname=""]

- LoadClone <cString fname>

  Sets up a population based on a save file generated by SaveClone or WRITE_CLONE (an analyze command). Note that a clone only consists of the genomes in the population, and their current state is lost, so the run may not proceed identically as it would have if it had continued as it was going.

- load_clone <cString fname>

  DEPRECATED

- load_dump_file <cString fname> [int update=-1]

  DEPRECATED

- LoadPopulation <cString fname> [int update=-1]

  Sets up a population based on a save file such as written out by SavePopulation. It is also possible to append a history file to the save file, in order to preserve the history of a previous run.
  update allows user to set the current update number to a new value

- LoadSexPopulation <cString fname> [int update=-1]

  Sets up a sexual population based on a save file such as written out by SaveSexPopulation. It is also possible to append a history file to the save file, in order to preserve the history of a previous run.
  update allows user to set the current update number to a new value

- LoadStructuredPopulation <cString fname> [int update=-1] [int cellid_offset=0] [int lineage_offset=0]

- save_clone [string fname=""]

  DEPRECATED

- SaveClone [string fname=""]

  Save a clone of this population to the file specified; if no filename is given, use the name clone.update. The update number allows regular clones with distinct filenames to be saved with the same periodic event. Running `avida -l filename` will start an Avida population with the saved clone. Note that a clone only consists of the genomes in the population, and their current state is lost, so the run may not proceed identically as it would have continued as it was going.

- SaveHistoricPopulation [int back_dist=-1] [string fname=""]

  This action is used to output all of the ancestors of the currently living population to the file specified, or `historic-update.pop`.

- SaveHistoricSexPopulation [string fname=""]

  This action is used to output all of the ancestors of the currently living population to the file specified, or `historic-update.pop`.

- SaveParasitePopulation [string fname=""]

- SavePopulation [string fname=""]

  Save the genotypes and lots of statistics about the population to the file specified; if not filename is given, use the name `detail-update.pop`. As with clones, the update number allows a single event to produce many detail files. The details are used to collect crossection data about the population.

- SaveSexPopulation [string fname=""]

  Save the genotypes and lots of statistics about a population where organisms have two parents to the file specified; if not filename is given, use the name `detail-update.pop`. As with clones, the update number allows a single event to produce many detail files. The details are used to collect crossection data about the population.

- SaveStructuredPopulation [string fname=""]

## Creating an Action

The action source code is contained in the source/action directory. Each of the individual action categories has its own source code files (e.g. Landcape Actions are located in the LandscapeActions files).

Each action is derrived from the cAction class. Briefly, to get an action to work you must create a child class that has a Process and GetDescription function defined as well as a constructor. You must also register this new class with the action library.

So, with that quick review of what must be done, here is a step by step guide to creating an action:

1. Identify which of the action categories your action should be assigned to. There are six different action categories described above. Each category has a similar means of creating a new action, but do note that some action commands are generated via macros defined at the top of the files. For instance, in the PrintActions file, you will notice a number of STATS_OUT_FILE macros being used to generate rather repetitively coded standard output files.

2. Create a new class in the file that follows proper naming conventions. Any class should begin with "cAction" and be followed by the name of the action command you will register with the library. For instance, if we were to create a new command "MyAction", we'd name the class cActionMyAction. Below is a stub for this new action class:

       class cActionMyAction : public cAction
       {
       	private:
       		// Private data members for this action
       	public:
       		cActionMyAction(cWorld* world, const cString& args) : cAction(world, args) { ; }

       		static const cString GetDescription() { return "Arguments: My Arguments"; }

       		void Process(cAvidaContext& ctx)
       		{
       			//Perform whatever processing is needed when the action is triggered.
       		}
       };

3. Define the private data members, constructor, description string in GetDescription, and the Process function. Any arguments that you specify after the action name in the events configuration will be passed to your new class via the args argument in the constructor.

4. Register the new action with the action library. At the bottom of each action definitions file, there are the commands that register the individual actions with the action library. In the PrintActions.cc file, for instance, this function is called RegisterPrintActions.

   To register our example action "MyAction", we'd write:

       action_lib->Register<cActionMyAction>("MyAction");

5. Test your action.

6. Add a ==== Action action name ==== line in source/utils/make_actions_html/actions_source_info file

Return to the Index | The Events File | The Analyze File