24 #include <Sequence/Coalescent/Initialize.hpp> 31 std::vector<chromosome>
init_sample(
const std::vector<int> & pop_config,
44 assert (! pop_config.empty() );
45 std::vector<chromosome>::size_type nsam =
46 std::vector<chromosome>::size_type(std::accumulate(pop_config.begin(),pop_config.end(),0));
47 std::vector<chromosome> sample(nsam);
48 std::vector<chromosome>::size_type k=0;
49 for(
unsigned i = 0 ; i < pop_config.size() ; ++i)
51 int popsize = pop_config[i];
53 for(
int j=0;j<popsize;++j)
55 std::vector<segment> initial_segments(1,
segment(0,(nsites>0 ? nsites-1 : 0),
int(k)));
56 sample[k++] =
chromosome(initial_segments,
int(i));
69 std::vector<node> tree(std::vector<node>::size_type(2*nsam-1));
70 for(
int i=0;i<nsam;++i)
72 tree[std::vector<node>::size_type(i)] =
node(0.);
A point on a marginal tree at which a coalescent event occurs.
marginal init_marginal(const int &nsam)
Simple function to initialize a marginal tree.
std::vector< chromosome > init_sample(const std::vector< int > &pop_config, const int &nsites)
A simple function to initialize a sample of chromosomes.
The namespace in which this library resides.
A chromosome is a container of segments.
A portion of a recombining chromosome.
The genealogy of a portion of a chromosome on which no recombination has occurred.