Empirical
|
Track genotypes, species, clades, or lineages of organisms in a world. More...
#include <ostream>
#include <set>
#include <unordered_set>
#include <map>
#include "../base/Ptr.h"
#include "../control/Signal.h"
#include "../data/DataManager.h"
#include "../data/DataNode.h"
#include "../tools/info_theory.h"
#include "../tools/map_utils.h"
#include "../tools/set_utils.h"
#include "../tools/stats.h"
#include "../tools/string_utils.h"
Go to the source code of this file.
Classes | |
struct | emp::datastruct::no_data |
struct | emp::datastruct::mut_landscape_info< PHEN_TYPE > |
The default - an empty struct. More... | |
class | emp::Taxon< ORG_INFO, DATA_STRUCT > |
A Taxon represents a type of organism in a phylogeny. More... | |
class | emp::SystematicsBase< ORG > |
class | emp::Systematics< ORG, ORG_INFO, DATA_STRUCT > |
A tool to track phylogenetic relationships among organisms. The systematics class tracks the relationships among all organisms based on the INFO_TYPE provided. If an offspring has the same value for INFO_TYPE as its parent, it is grouped into the same taxon. Otherwise a new Taxon is created and the old one is used as its parent in the phylogeny. If the provided INFO_TYPE is the organsism's genome, a traditional phylogeny is formed, with genotypes. If the organism's behavior/task set is used, then organisms are grouped by phenotypes. If the organsims's position is used, the evolutionary path through space is tracked. Any other aspect of organisms can be tracked this way as well. More... | |
Namespaces | |
emp | |
If we are in emscripten, make sure to include the header. | |
emp::datastruct | |
Track genotypes, species, clades, or lineages of organisms in a world.
Technically, we don't need to keep the ancestors in a set in order to track a lineage... If we delete all of their descendants they should automaticaly be deleted.
We should provide an option to back up systematics data to a file so that it doesn't all need to be kept in memory, especially if we're only doing post-analysis.
This inheritance system makes adding new systematics-related data tracking kind of a pain. Over time, this will probably become a maintainability problem. We can probably make the whole inheritance thing go away through judicious use of signals.
This does not currently handle situations where organisms change locations during their lifetimes gracefully.