Empirical
Public Types | Public Member Functions | Protected Attributes | List of all members
emp::SystematicsBase< ORG > Class Template Referenceabstract

#include <Systematics.h>

Inheritance diagram for emp::SystematicsBase< ORG >:
emp::Systematics< ORG, ORG_INFO, DATA_STRUCT >

Public Types

using data_node_t = DataNode< double, data::Current, data::Info, data::Range, data::Stats, data::Pull >
 
using data_ptr_t = Ptr< data_node_t >
 

Public Member Functions

 SystematicsBase (bool _active=true, bool _anc=true, bool _all=false, bool _pos=true)
 
virtual ~SystematicsBase ()
 
bool GetTrackSynchronous () const
 Are we tracking a synchronous population? More...
 
bool GetStoreActive () const
 Are we storing all taxa that are still alive in the population? More...
 
bool GetStoreAncestors () const
 Are we storing all taxa that are the ancestors of living organims in the population? More...
 
bool GetStoreOutside () const
 Are we storing all taxa that have died out, as have all of their descendants. More...
 
bool GetArchive () const
 Are we storing any taxa types that have died out? More...
 
bool GetStorePosition () const
 Are we storing the positions of taxa? More...
 
size_t GetTotalOrgs () const
 How many living organisms are currently being tracked? More...
 
size_t GetNumRoots () const
 How many independent trees are being tracked? More...
 
double GetAveDepth () const
 What is the average phylogenetic depth of organisms in the population? More...
 
void SetTrackSynchronous (bool new_val)
 Are we tracking organisms evolving in synchronous generations? More...
 
void SetStoreActive (bool new_val)
 Are we storing all taxa that are still alive in the population? More...
 
void SetStoreAncestors (bool new_val)
 Are we storing all taxa that are the ancestors of living organims in the population? More...
 
void SetStoreOutside (bool new_val)
 Are we storing all taxa that have died out, as have all of their descendants. More...
 
void SetArchive (bool new_val)
 Are we storing any taxa types that have died out? More...
 
void SetStorePosition (bool new_val)
 Are we storing the location of taxa? More...
 
data_ptr_t AddDataNode (const std::string &name)
 
data_ptr_t AddDataNode (std::function< emp::vector< double >()> pull_set_fun, const std::string &name)
 
data_ptr_t AddDataNode (std::function< double()> pull_fun, const std::string &name)
 
data_ptr_t GetDataNode (const std::string &name)
 
virtual data_ptr_t AddEvolutionaryDistinctivenessDataNode (const std::string &name="evolutionary_distinctiveness")=0
 
virtual data_ptr_t AddPairwiseDistanceDataNode (const std::string &name="pairwise_distance")=0
 
virtual data_ptr_t AddPhylogeneticDiversityDataNode (const std::string &name="phylogenetic_diversity")=0
 
virtual data_ptr_t AddDeleteriousStepDataNode (const std::string &name="deleterious_steps")=0
 
virtual data_ptr_t AddVolatilityDataNode (const std::string &name="volatility")=0
 
virtual data_ptr_t AddUniqueTaxaDataNode (const std::string &name="unique_taxa")=0
 
virtual data_ptr_t AddMutationCountDataNode (const std::string &name="mutation_count", const std::string &mutation="substitution")=0
 
virtual size_t GetNumActive () const =0
 
virtual size_t GetNumAncestors () const =0
 
virtual size_t GetNumOutside () const =0
 
virtual size_t GetTreeSize () const =0
 
virtual size_t GetNumTaxa () const =0
 
virtual int GetPhylogeneticDiversity () const =0
 
virtual double GetMeanPairwiseDistance (bool branch_only) const =0
 
virtual double GetSumPairwiseDistance (bool branch_only) const =0
 
virtual double GetVariancePairwiseDistance (bool branch_only) const =0
 
virtual emp::vector< double > GetPairwiseDistances (bool branch_only) const =0
 
virtual int GetMRCADepth () const =0
 
virtual void AddOrg (ORG &&org, int pos, int update, bool next)=0
 
virtual void AddOrg (ORG &org, int pos, int update, bool next)=0
 
virtual bool RemoveOrg (int pos)=0
 
virtual bool RemoveNextOrg (int pos)=0
 
virtual void PrintStatus (std::ostream &os) const =0
 
virtual double CalcDiversity () const =0
 
virtual void Update ()=0
 
virtual void SetNextParent (int pos)=0
 

Protected Attributes

bool store_active
 Store all of the currently active taxa? More...
 
bool store_ancestors
 Store all of the direct ancestors from living taxa? More...
 
bool store_outside
 Store taxa that are extinct with no living descendants? More...
 
bool archive
 Set to true if we are supposed to do any archiving of extinct taxa. More...
 
bool store_position
 Keep a vector mapping positions to pointers. More...
 
bool track_synchronous
 Does this systematics manager need to keep track of current and next positions? More...
 
size_t org_count
 How many organisms are currently active? More...
 
size_t total_depth
 Sum of taxa depths for calculating average. More...
 
size_t num_roots
 How many distint injected ancestors are currently in population? More...
 
size_t next_id
 What ID value should the next new taxon have? More...
 
size_t curr_update
 
DataManager< double, data::Current, data::Info, data::Range, data::Stats, data::Pulldata_nodes
 

Detailed Description

template<typename ORG>
class emp::SystematicsBase< ORG >

A base class for Systematics, maintaining information common to all systematics managers and providing virtual functaions.

Member Typedef Documentation

template<typename ORG >
using emp::SystematicsBase< ORG >::data_ptr_t = Ptr<data_node_t>

Constructor & Destructor Documentation

template<typename ORG >
emp::SystematicsBase< ORG >::SystematicsBase ( bool  _active = true,
bool  _anc = true,
bool  _all = false,
bool  _pos = true 
)
inline
template<typename ORG >
virtual emp::SystematicsBase< ORG >::~SystematicsBase ( )
inlinevirtual

Member Function Documentation

template<typename ORG >
data_ptr_t emp::SystematicsBase< ORG >::AddDataNode ( const std::string &  name)
inline
template<typename ORG >
data_ptr_t emp::SystematicsBase< ORG >::AddDataNode ( std::function< emp::vector< double >()>  pull_set_fun,
const std::string &  name 
)
inline
template<typename ORG >
data_ptr_t emp::SystematicsBase< ORG >::AddDataNode ( std::function< double()>  pull_fun,
const std::string &  name 
)
inline
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddDeleteriousStepDataNode ( const std::string &  name = "deleterious_steps")
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddEvolutionaryDistinctivenessDataNode ( const std::string &  name = "evolutionary_distinctiveness")
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddMutationCountDataNode ( const std::string &  name = "mutation_count",
const std::string &  mutation = "substitution" 
)
pure virtual
template<typename ORG >
virtual void emp::SystematicsBase< ORG >::AddOrg ( ORG &&  org,
int  pos,
int  update,
bool  next 
)
pure virtual
template<typename ORG >
virtual void emp::SystematicsBase< ORG >::AddOrg ( ORG &  org,
int  pos,
int  update,
bool  next 
)
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddPairwiseDistanceDataNode ( const std::string &  name = "pairwise_distance")
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddPhylogeneticDiversityDataNode ( const std::string &  name = "phylogenetic_diversity")
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddUniqueTaxaDataNode ( const std::string &  name = "unique_taxa")
pure virtual
template<typename ORG >
virtual data_ptr_t emp::SystematicsBase< ORG >::AddVolatilityDataNode ( const std::string &  name = "volatility")
pure virtual
template<typename ORG >
virtual double emp::SystematicsBase< ORG >::CalcDiversity ( ) const
pure virtual
template<typename ORG >
bool emp::SystematicsBase< ORG >::GetArchive ( ) const
inline

Are we storing any taxa types that have died out?

template<typename ORG >
double emp::SystematicsBase< ORG >::GetAveDepth ( ) const
inline

What is the average phylogenetic depth of organisms in the population?

template<typename ORG >
data_ptr_t emp::SystematicsBase< ORG >::GetDataNode ( const std::string &  name)
inline
template<typename ORG >
virtual double emp::SystematicsBase< ORG >::GetMeanPairwiseDistance ( bool  branch_only) const
pure virtual
template<typename ORG >
virtual int emp::SystematicsBase< ORG >::GetMRCADepth ( ) const
pure virtual
template<typename ORG >
virtual size_t emp::SystematicsBase< ORG >::GetNumActive ( ) const
pure virtual
template<typename ORG >
virtual size_t emp::SystematicsBase< ORG >::GetNumAncestors ( ) const
pure virtual
template<typename ORG >
virtual size_t emp::SystematicsBase< ORG >::GetNumOutside ( ) const
pure virtual
template<typename ORG >
size_t emp::SystematicsBase< ORG >::GetNumRoots ( ) const
inline

How many independent trees are being tracked?

template<typename ORG >
virtual size_t emp::SystematicsBase< ORG >::GetNumTaxa ( ) const
pure virtual
template<typename ORG >
virtual emp::vector<double> emp::SystematicsBase< ORG >::GetPairwiseDistances ( bool  branch_only) const
pure virtual
template<typename ORG >
virtual int emp::SystematicsBase< ORG >::GetPhylogeneticDiversity ( ) const
pure virtual
template<typename ORG >
bool emp::SystematicsBase< ORG >::GetStoreActive ( ) const
inline

Are we storing all taxa that are still alive in the population?

template<typename ORG >
bool emp::SystematicsBase< ORG >::GetStoreAncestors ( ) const
inline

Are we storing all taxa that are the ancestors of living organims in the population?

template<typename ORG >
bool emp::SystematicsBase< ORG >::GetStoreOutside ( ) const
inline

Are we storing all taxa that have died out, as have all of their descendants.

template<typename ORG >
bool emp::SystematicsBase< ORG >::GetStorePosition ( ) const
inline

Are we storing the positions of taxa?

template<typename ORG >
virtual double emp::SystematicsBase< ORG >::GetSumPairwiseDistance ( bool  branch_only) const
pure virtual
template<typename ORG >
size_t emp::SystematicsBase< ORG >::GetTotalOrgs ( ) const
inline

How many living organisms are currently being tracked?

template<typename ORG >
bool emp::SystematicsBase< ORG >::GetTrackSynchronous ( ) const
inline

Are we tracking a synchronous population?

template<typename ORG >
virtual size_t emp::SystematicsBase< ORG >::GetTreeSize ( ) const
pure virtual
template<typename ORG >
virtual double emp::SystematicsBase< ORG >::GetVariancePairwiseDistance ( bool  branch_only) const
pure virtual
template<typename ORG >
virtual void emp::SystematicsBase< ORG >::PrintStatus ( std::ostream &  os) const
pure virtual
template<typename ORG >
virtual bool emp::SystematicsBase< ORG >::RemoveNextOrg ( int  pos)
pure virtual
template<typename ORG >
virtual bool emp::SystematicsBase< ORG >::RemoveOrg ( int  pos)
pure virtual
template<typename ORG >
void emp::SystematicsBase< ORG >::SetArchive ( bool  new_val)
inline

Are we storing any taxa types that have died out?

template<typename ORG >
virtual void emp::SystematicsBase< ORG >::SetNextParent ( int  pos)
pure virtual
template<typename ORG >
void emp::SystematicsBase< ORG >::SetStoreActive ( bool  new_val)
inline

Are we storing all taxa that are still alive in the population?

template<typename ORG >
void emp::SystematicsBase< ORG >::SetStoreAncestors ( bool  new_val)
inline

Are we storing all taxa that are the ancestors of living organims in the population?

template<typename ORG >
void emp::SystematicsBase< ORG >::SetStoreOutside ( bool  new_val)
inline

Are we storing all taxa that have died out, as have all of their descendants.

template<typename ORG >
void emp::SystematicsBase< ORG >::SetStorePosition ( bool  new_val)
inline

Are we storing the location of taxa?

template<typename ORG >
void emp::SystematicsBase< ORG >::SetTrackSynchronous ( bool  new_val)
inline

Are we tracking organisms evolving in synchronous generations?

template<typename ORG >
virtual void emp::SystematicsBase< ORG >::Update ( )
pure virtual

Member Data Documentation

template<typename ORG >
bool emp::SystematicsBase< ORG >::archive
protected

Set to true if we are supposed to do any archiving of extinct taxa.

template<typename ORG >
size_t emp::SystematicsBase< ORG >::curr_update
protected
template<typename ORG >
DataManager<double, data::Current, data::Info, data::Range, data::Stats, data::Pull> emp::SystematicsBase< ORG >::data_nodes
protected
template<typename ORG >
size_t emp::SystematicsBase< ORG >::next_id
protected

What ID value should the next new taxon have?

template<typename ORG >
size_t emp::SystematicsBase< ORG >::num_roots
protected

How many distint injected ancestors are currently in population?

template<typename ORG >
size_t emp::SystematicsBase< ORG >::org_count
protected

How many organisms are currently active?

template<typename ORG >
bool emp::SystematicsBase< ORG >::store_active
protected

Store all of the currently active taxa?

template<typename ORG >
bool emp::SystematicsBase< ORG >::store_ancestors
protected

Store all of the direct ancestors from living taxa?

template<typename ORG >
bool emp::SystematicsBase< ORG >::store_outside
protected

Store taxa that are extinct with no living descendants?

template<typename ORG >
bool emp::SystematicsBase< ORG >::store_position
protected

Keep a vector mapping positions to pointers.

template<typename ORG >
size_t emp::SystematicsBase< ORG >::total_depth
protected

Sum of taxa depths for calculating average.

template<typename ORG >
bool emp::SystematicsBase< ORG >::track_synchronous
protected

Does this systematics manager need to keep track of current and next positions?


The documentation for this class was generated from the following file: