tek2
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
tek::Population Class Reference

Population class. More...

#include <population.hpp>

Public Types

using param_type = PopulationParams
 Alias.
 

Public Member Functions

 Population (size_t size, size_t num_founders=1)
 constructor
 
 Population (const Population &other)=default
 default copy constructor
 
 ~Population ()
 destructor
 
bool evolve (size_t max_generations, size_t record_interval, Recording flags=Recording::activity|Recording::fitness, size_t t_hyperactivate=0u)
 return false if TE is extinct
 
std::ostream & write_summary (std::ostream &) const
 write summary in JSON format
 
std::ostream & write_fasta_individual (std::ostream &, size_t i) const
 count identicals and write FASTA for i-th individual
 
std::ostream & write_fasta (std::ostream &, size_t num_individuals=-1u) const
 call write_fasta_individual() repeatedly
 

Static Public Member Functions

static void param (const param_type &p)
 Set PARAM_.
 
static const param_typeparam ()
 Get PARAM_.
 
static void seed (std::mt19937_64::result_type value)
 Set SEEDER_ seed.
 

Static Public Attributes

static constexpr double THETA = 0.01
 \(\theta = 4N\mu\), population mutation rate
 
static constexpr double RHO = 20000
 \(\rho = 4Nc\), population recombination rate
 

Private Member Functions

std::vector< double > step (double previous_max_fitness=1.0)
 proceed one generation and return fitness record
 
void eval_species_distance ()
 find farthest element, count species, and cause speciation if qualified
 
bool is_extinct () const
 return true if no TE exists in gametes_
 
void write_activity (std::ostream &, size_t time, bool header) const
 summarize and write activity
 

Private Attributes

std::vector< Haploidgametes_
 vector of chromosomes, not individuals
 

Static Private Attributes

static param_type PARAM_
 Parameters shared among instances.
 
static std::mt19937_64 SEEDER_
 seed generator for Haploid::URBG
 

Friends

std::ostream & operator<< (std::ostream &, const Population &)
 shortcut << Population::gametes_
 

Detailed Description

Population class.


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