[Avida-cvs] [avida-svn] r680 - in development: source/actions source/event support/config

brysonda@myxo.css.msu.edu brysonda at myxo.css.msu.edu
Mon May 15 20:37:21 PDT 2006


Author: brysonda
Date: 2006-05-15 23:37:20 -0400 (Mon, 15 May 2006)
New Revision: 680

Modified:
   development/source/actions/PrintActions.cc
   development/source/event/cEventManager.cc
   development/support/config/avida-smt.cfg
   development/support/config/avida.cfg
   development/support/config/events.cfg
Log:
Move several more print events into actions.  Add (deprecated) support for old event names into the actions framework.  Remove old print events now supported by actions.

Adjust stock events.cfg to use new style actions (at least those currently available).  Also fixed the comments at the top to be slightly more accurate.

Added new options into the stock config files to reduce warnings on avida startup.

Modified: development/source/actions/PrintActions.cc
===================================================================
--- development/source/actions/PrintActions.cc	2006-05-14 07:50:41 UTC (rev 679)
+++ development/source/actions/PrintActions.cc	2006-05-16 03:37:20 UTC (rev 680)
@@ -11,6 +11,7 @@
 
 #include "cAction.h"
 #include "cActionLibrary.h"
+#include "cAnalyzeUtil.h"
 #include "cStats.h"
 #include "cWorld.h"
 
@@ -49,6 +50,68 @@
 STATS_OUT_FILE(PrintGenotypeMap,       genotype_map.m      );
 
 
+class cActionPrintData : public cAction
+{
+private:
+  cString m_filename;
+  cString m_format;
+public:
+  cActionPrintData(cWorld* world, const cString& args) : cAction(world, args)
+  {
+    cString largs(args);
+    m_filename = largs.PopWord();
+    m_format = largs.PopWord();
+  }
+  
+  const cString GetDescription() { return "PringData <cString fname> <cString format>"; }
+
+  void Process(cAvidaContext& ctx)
+  {
+    m_world->GetStats().PrintDataFile(m_filename, m_format, ',');
+  }
+};
+
+
+class cActionPrintInstructionAbundanceHistogram : public cAction
+{
+private:
+  cString m_filename;
+public:
+  cActionPrintInstructionAbundanceHistogram(cWorld* world, const cString& args) : cAction(world, args)
+  {
+    cString largs(args);
+    if (largs == "") m_filename = "instruction_histogram.dat"; else m_filename = largs.PopWord();
+  }
+
+  const cString GetDescription() { return "PrintInstructionAbundanceHistogram [cString fname=\"instruction_histogram.dat\"]"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    cAnalyzeUtil::PrintInstructionAbundanceHistogram(m_world, m_world->GetDataFileOFStream(m_filename));
+  }
+};
+
+
+class cActionPrintDepthHistogram : public cAction
+{
+private:
+  cString m_filename;
+public:
+  cActionPrintDepthHistogram(cWorld* world, const cString& args) : cAction(world, args)
+  {
+    cString largs(args);
+    if (largs == "") m_filename = "depth_histogram.dat"; else m_filename = largs.PopWord();
+  }
+  
+  const cString GetDescription() { return "PrintDepthHistogram [cString fname=\"depth_histogram.dat\"]"; }
+  
+  void Process(cAvidaContext& ctx)
+  {
+    cAnalyzeUtil::PrintDepthHistogram(m_world, m_world->GetDataFileOFStream(m_filename));
+  }
+};
+
+
 void RegisterPrintActions(cActionLibrary* action_lib)
 {
   action_lib->Register<cActionPrintAverageData>("PrintAverageData");
@@ -70,4 +133,55 @@
   action_lib->Register<cActionPrintInstructionData>("PrintInstructionData");
   action_lib->Register<cActionPrintGenotypeMap>("PrintGenotypeMap");
   
+  action_lib->Register<cActionPrintData>("PrintData");
+  action_lib->Register<cActionPrintInstructionAbundanceHistogram>("PrintInstructionAbundanceHistogram");
+  action_lib->Register<cActionPrintDepthHistogram>("PrintDepthHistogram");
+  // @DMB - TODO
+//  action_lib->Register<cActionEcho>("Echo");
+//  action_lib->Register<cActionPrintGenotypeAbundanceHistogram>("PrintGenotypeAbundanceHistogram");
+//  action_lib->Register<cActionPrintSpeciesAbundanceHistogram>("PrintSpeciesAbundanceHistogram");
+//  action_lib->Register<cActionPrintLineageTotals>("PrintLineageTotals");
+//  action_lib->Register<cActionPrintLineageCounts>("PrintLineageCounts");
+//  action_lib->Register<cActionPrintDominantGenotype>("PrintDominantGenotype");
+//  action_lib->Register<cActionPrintParasiteDebug>("PrintParasiteDebug");
+//  action_lib->Register<cActionPrintDominantParasiteGenotype>("PrintDominantParasiteGenotype");
+//  action_lib->Register<cActionPrintNumberPhenotypes>("PrintNumberPhenotypes");
+//  action_lib->Register<cActionPrintPhenotypeStatus>("PrintPhenotypeStatus");
+  
+
+
+  // @DMB - The following actions are DEPRECATED aliases - These will be removed in 2.7.
+  action_lib->Register<cActionPrintAverageData>("print_average_data");
+  action_lib->Register<cActionPrintErrorData>("print_error_data");
+  action_lib->Register<cActionPrintVarianceData>("print_variance_data");
+  action_lib->Register<cActionPrintDominantData>("print_dominant_data");
+  action_lib->Register<cActionPrintStatsData>("print_stats_data");
+  action_lib->Register<cActionPrintCountData>("print_count_data");
+  action_lib->Register<cActionPrintTotalsData>("print_totals_data");
+  action_lib->Register<cActionPrintTasksData>("print_tasks_data");
+  action_lib->Register<cActionPrintTasksExeData>("print_tasks_exe_data");
+  action_lib->Register<cActionPrintTasksQualData>("print_tasks_qual_data");
+  action_lib->Register<cActionPrintResourceData>("print_resource_data");
+  action_lib->Register<cActionPrintTimeData>("print_time_data");
+  action_lib->Register<cActionPrintMutationData>("print_mutation_dat");
+  action_lib->Register<cActionPrintMutationRateData>("print_mutation_rate_data");
+  action_lib->Register<cActionPrintDivideMutData>("print_divide_mut_data");
+  action_lib->Register<cActionPrintDominantParaData>("print_dom_parasite_data");
+  action_lib->Register<cActionPrintInstructionData>("print_instruction_data");
+  action_lib->Register<cActionPrintGenotypeMap>("print_genotype_map");
+  
+  action_lib->Register<cActionPrintData>("print_data");
+  action_lib->Register<cActionPrintInstructionAbundanceHistogram>("print_instruction_abundance_histogram");
+  action_lib->Register<cActionPrintDepthHistogram>("print_depth_histogram");
+  // @DMB - TODO
+//  action_lib->Register<cActionEcho>("echo");
+//  action_lib->Register<cActionPrintGenotypeAbundanceHistogram>("print_genotype_abundance_histogram");
+//  action_lib->Register<cActionPrintSpeciesAbundanceHistogram>("print_species_abundance_histogram");
+//  action_lib->Register<cActionPrintLineageTotals>("print_lineage_totals");
+//  action_lib->Register<cActionPrintLineageCounts>("print_lineage_counts");
+//  action_lib->Register<cActionPrintDominantGenotype>("print_dom");
+//  action_lib->Register<cActionPrintParasiteDebug>("parasite_debug");
+//  action_lib->Register<cActionPrintDominantParasiteGenotype>("print_dom_parasite");
+//  action_lib->Register<cActionPrintNumberPhenotypes>("print_number_phenotypes");
+//  action_lib->Register<cActionPrintPhenotypeStatus>("print_phenotype_status");
 }

Modified: development/source/event/cEventManager.cc
===================================================================
--- development/source/event/cEventManager.cc	2006-05-14 07:50:41 UTC (rev 679)
+++ development/source/event/cEventManager.cc	2006-05-16 03:37:20 UTC (rev 680)
@@ -224,132 +224,6 @@
 };
 
 
-///// print_data /////
-
-/**
- * Output user-defined data from the cStats object...
- *
- * Parameters:
- * filename (string)
- *   The name of the data file.
- * format
- *   A comma-seperated list of statistics to output.
- **/
-class cEvent_print_data : public cEvent {
-private:
-  cString filename;
-  cString format;
-public:
-  const cString GetName() const { return "print_data"; }
-  const cString GetDescription() const { return "print_data  <cString filename> <cString format>"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world; m_args = in_args; cString args(in_args);
-    filename = args.PopWord();
-    format = args.PopWord();
-  }
-  void Process() { m_world->GetStats().PrintDataFile(filename, format, ','); }
-};
-
-
-
-#define STATS_OUT_FILE(NAME, METHOD, DEFAULT)                                          /*  1 */ \
-class cEvent_ ## NAME : public cEvent {                                                /*  2 */ \
-private:                                                                               /*  3 */ \
-  cString fname;                                                                       /*  4 */ \
-public:                                                                                /*  5 */ \
-  const cString GetName() const { return #NAME; }                                      /*  6 */ \
-  const cString GetDescription() const { return #NAME " [cString fname=\"" #DEFAULT "\"]"; } /*  7 */ \
-  void Configure(cWorld* world, const cString& in_args)                                /*  8 */ \
-  {                                                                                    /*  9 */ \
-    m_world = world; m_args = in_args; cString args(in_args);                          /* 10 */ \
-    if (args == "") fname = #DEFAULT; else fname=args.PopWord();                       /* 11 */ \
-  }                                                                                    /* 12 */ \
-  void Process() { m_world->GetStats().METHOD(fname); }                                /* 13 */ \
-}                                                                                      /* 14 */ \
-
-STATS_OUT_FILE(print_average_data,        PrintAverageData,       average.dat         );
-STATS_OUT_FILE(print_error_data,          PrintErrorData,         error.dat           );
-STATS_OUT_FILE(print_variance_data,       PrintVarianceData,      variance.dat        );
-STATS_OUT_FILE(print_dominant_data,       PrintDominantData,      dominant.dat        );
-STATS_OUT_FILE(print_stats_data,          PrintStatsData,         stats.dat           );
-STATS_OUT_FILE(print_count_data,          PrintCountData,         count.dat           );
-STATS_OUT_FILE(print_totals_data,         PrintTotalsData,        totals.dat          );
-STATS_OUT_FILE(print_tasks_data,          PrintTasksData,         tasks.dat           );
-STATS_OUT_FILE(print_tasks_exe_data,      PrintTasksExeData,      tasks_exe.dat       );
-STATS_OUT_FILE(print_tasks_qual_data,     PrintTasksQualData,     tasks_quality.dat   );
-STATS_OUT_FILE(print_resource_data,       PrintResourceData,      resource.dat        );
-STATS_OUT_FILE(print_time_data,           PrintTimeData,          time.dat            );
-STATS_OUT_FILE(print_mutation_data,       PrintMutationData,      mutation.dat        );
-STATS_OUT_FILE(print_mutation_rate_data,  PrintMutationRateData,  mutation_rates.dat  );
-STATS_OUT_FILE(print_divide_mut_data,     PrintDivideMutData,     divide_mut.dat      );
-STATS_OUT_FILE(print_dom_parasite_data,   PrintDominantParaData,  parasite.dat        );
-STATS_OUT_FILE(print_instruction_data,    PrintInstructionData,   instruction.dat     );
-STATS_OUT_FILE(print_genotype_map,        PrintGenotypeMap,       genotype_map.m      );
-
-
-///// print_instruction_abundance_histogram /////
-
-/**
-*
- * Appends a line containing the bulk count (abundance) of
- * each instruction in the population onto a file.
- *
- * Parameters:
- * filename (string) default: "instruction_histogram.dat"
-   *
-   **/
-
-
-class cEvent_print_instruction_abundance_histogram : public cEvent {
-private:
-  cString filename;
-public:
-  const cString GetName() const { return "print_instruction_abundance_histogram"; }
-  const cString GetDescription() const { return "print_instruction_abundance_histogram  [cString filename=\"instruction_histogram.dat\"]"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world;
-    m_args = in_args;
-    cString args(in_args);
-    if (args == "") filename="instruction_histogram.dat"; else filename=args.PopWord();
-  }
-  ///// print_instruction_abundance_histogram /////
-  void Process(){
-    ofstream& fp = m_world->GetDataFileOFStream(filename);
-    cAnalyzeUtil::PrintInstructionAbundanceHistogram(m_world, fp);
-  }
-};
-
-///// print_depth_histogram /////
-
-/**
-**/
-
-
-class cEvent_print_depth_histogram : public cEvent {
-private:
-  cString filename;
-public:
-  const cString GetName() const { return "print_depth_histogram"; }
-  const cString GetDescription() const { return "print_depth_histogram  [cString filename=\"depth_histogram.dat\"]"; }
-  
-  void Configure(cWorld* world, const cString& in_args)
-  {
-    m_world = world;
-    m_args = in_args;
-    cString args(in_args);
-    if (args == "") filename="depth_histogram.dat"; else filename=args.PopWord();
-  }
-  ///// print_depth_histogram /////
-  void Process(){
-    ofstream& fp = m_world->GetDataFileOFStream(filename);
-    cAnalyzeUtil::PrintDepthHistogram(m_world, fp);
-  }
-};
-
 ///// print_genotype_abundance_histogram /////
 
 /**
@@ -639,6 +513,10 @@
   }
 };
 
+
+
+
+
 ///// save_population /////
 
 /**
@@ -3457,26 +3335,6 @@
   REGISTER(exit_if_ave_lineage_label_smaller);
   REGISTER(exit_if_ave_lineage_label_larger);
   REGISTER(echo);
-  REGISTER(print_data);
-  REGISTER(print_average_data);
-  REGISTER(print_error_data);
-  REGISTER(print_variance_data);
-  REGISTER(print_dominant_data);
-  REGISTER(print_stats_data);
-  REGISTER(print_count_data);
-  REGISTER(print_totals_data);
-  REGISTER(print_tasks_data);
-  REGISTER(print_tasks_exe_data);
-  REGISTER(print_tasks_qual_data);
-  REGISTER(print_resource_data);
-  REGISTER(print_time_data);
-  REGISTER(print_mutation_data);
-  REGISTER(print_mutation_rate_data);
-  REGISTER(print_divide_mut_data);
-  REGISTER(print_dom_parasite_data);
-  REGISTER(print_instruction_data);
-  REGISTER(print_instruction_abundance_histogram);
-  REGISTER(print_depth_histogram);
   REGISTER(print_genotype_abundance_histogram);
   REGISTER(print_species_abundance_histogram);
   REGISTER(print_lineage_totals);
@@ -3484,7 +3342,6 @@
   REGISTER(print_dom);
   REGISTER(parasite_debug);
   REGISTER(print_dom_parasite);
-  REGISTER(print_genotype_map);
   REGISTER(print_number_phenotypes);
   REGISTER(print_phenotype_status);
   REGISTER(save_population);

Modified: development/support/config/avida-smt.cfg
===================================================================
--- development/support/config/avida-smt.cfg	2006-05-14 07:50:41 UTC (rev 679)
+++ development/support/config/avida-smt.cfg	2006-05-16 03:37:20 UTC (rev 680)
@@ -13,6 +13,8 @@
 VIEW_MODE 0        # Initial viewer screen
 CLONE_FILE -       # Clone file to load
 POPULATION_FILE -  # Population file to load
+MT_CONCURRENCY 1   # Number of concurrent analyze threads
+VERBOSITY 0        # Control output verbosity
 
 ### ARCH_GROUP ###
 # Architecture Variables
@@ -181,3 +183,11 @@
 #       organism in its line of descent
 LOG_LINEAGES 0             # 
 LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing

Modified: development/support/config/avida.cfg
===================================================================
--- development/support/config/avida.cfg	2006-05-14 07:50:41 UTC (rev 679)
+++ development/support/config/avida.cfg	2006-05-16 03:37:20 UTC (rev 680)
@@ -13,6 +13,8 @@
 VIEW_MODE 0        # Initial viewer screen
 CLONE_FILE -       # Clone file to load
 POPULATION_FILE -  # Population file to load
+MT_CONCURRENCY 1   # Number of concurrent analyze threads
+VERBOSITY 0        # Control output verbosity
 
 ### ARCH_GROUP ###
 # Architecture Variables
@@ -181,3 +183,11 @@
 #       organism in its line of descent
 LOG_LINEAGES 0             # 
 LINEAGE_CREATION_METHOD 0  # 
+
+### ORGANISM_NETWORK_GROUP ###
+# Organism Network Communication
+NET_ENABLED 0      # Enable Network Communication Support
+NET_DROP_PROB 0.0  # Message drop rate
+NET_MUT_PROB 0.0   # Message corruption probability
+NET_MUT_TYPE 0     # Type of message corruption.  0 = Random Single Bit, 1 = Always Flip Last
+NET_STYLE 0        # Communication Style.  0 = Random Next, 1 = Receiver Facing

Modified: development/support/config/events.cfg
===================================================================
--- development/support/config/events.cfg	2006-05-14 07:50:41 UTC (rev 679)
+++ development/support/config/events.cfg	2006-05-16 03:37:20 UTC (rev 680)
@@ -4,35 +4,33 @@
 # 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]  [event] [arguments...]
+# basic syntax: [trigger] [start:interval:stop] [action/event] [arguments...]
 #
-# This file is currently setup to start off a population full of the 
-# starting organism specified in genesis, and then record key information
-# every 100 updates.
+# 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:  source/support/config/
+# For other sample event configurations, see:  support/config/
 #
 ##############################################################################
 
 # Print all of the standard data files...
-u 0:100 print_dom                 # Save the most abundant genotypes
-u 0:100:end print_average_data    # Save info about they average genotypes
-u 0:100:end print_dominant_data   # Save info about most abundant genotypes
-u 0:100:end print_stats_data      # Collect satistics about entire pop.
-u 0:100:end print_count_data      # Count organisms, genotypes, species, etc.
-u 0:100:end print_tasks_data      # Save organisms counts for each task.
-u 0:100:end print_time_data       # Track time conversion (generations, etc.)
-u 0:100:end print_resource_data   # Track resource abundance.
+u 0:100:end PrintAverageData       # Save info about they average genotypes
+u 0:100:end PrintDominantData      # Save info about most abundant genotypes
+u 0:100:end PrintStatsData         # Collect satistics about entire pop.
+u 0:100:end PrintCountData         # Count organisms, genotypes, species, etc.
+u 0:100:end PrintTasksData         # Save organisms counts for each task.
+u 0:100:end PrintTimeData          # Track time conversion (generations, etc.)
+u 0:100:end PrintResourceData      # Track resource abundance.
 
 # A few data files not printed by default
-# u 100:100:end print_error_data      # Std. Error on averages.
-# u 100:100:end print_variance_data   # Variance on averages.
-# u 100:100:end print_totals_data     # Total counts over entire run.
-# u 100:100:end print_tasks_exe_data  # Num. times tasks have been executed.
+# u 0:100 PrintDominantGenotype    # Save the most abundant genotypes
+# u 100:100:end PrintErrorData     # Std. Error on averages.
+# u 100:100:end PrintVarianceData  # Variance on averages.
+# u 100:100:end PrintTotalsData    # Total counts over entire run.
+# u 100:100:end PrintTasksExeData  # Num. times tasks have been executed.
+# u 100:100:end PrintTasksQualData # Task quality information
 
 # Setup the exit time and full population data collection.
 u 50000:50000 detail_pop           # Save current state of population.
 u 50000:50000 dump_historic_pop    # Save ancestors of current population.
 u 100000 exit                      # exit
-




More information about the Avida-cvs mailing list