-
Notifications
You must be signed in to change notification settings - Fork 0
/
Chromosome.h
49 lines (38 loc) · 1.1 KB
/
Chromosome.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#pragma once
#include <map>
#include <set>
#include <stdio.h>
#include <iostream>
#include <fstream>
#include "parameters.h"
struct mutation {
int homol; //0 = only on homologue 1; 1 = only on homologue 2; 2 = on both homologues (hence homozygote)
double s; //selection coefficient
double h; //dominance coefficient
double pos; //position on continuous chromosome
};
//map containing all mutations: map<position, mutation>
typedef std::map<double, mutation, std::less<double>> MapMuts;
class Chromosome {
public:
Chromosome();
~Chromosome();
int nMut; //no. of deleterious mutations
int Nho; //number of homozygote mutations
double linkNeut[2]; //diploid neutral locus linked to deleterious mutations
MapMuts mutations; //list of all deleterious mutations, their coefficients and whether they are homo or heterozygote
double addDelMutation(
int, //homologue
double, //position
double, //s
double //h
);
void add_neutral_mut(int, double, double, double); //analogous to addDelMutation
//Initialized neutral locus
void InitNeutral(
double,
double
);
void deleteChromo();
private:
};