-
Notifications
You must be signed in to change notification settings - Fork 0
/
TPT_gene_LDR.py
66 lines (60 loc) · 2.56 KB
/
TPT_gene_LDR.py
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/python
# -*- coding: utf-8 -*-
from collections import OrderedDict
import MoNeT_MGDrivE as monet
###############################################################################
# https://github.com/Chipdelmal/MGDrivE/blob/fb2106b7cfd52116121c8b6a4fa14ad360056e40/MGDrivE/R/Cube-CRISPR2MF.R
###############################################################################
genotypes = ('WW', 'WH', 'WR', 'WB', 'HH', 'HR', 'HB', 'RR', 'RB', 'BB')
locus = (0, 1)
###############################################################################
# Ecology genotype counts
###############################################################################
ECO_DICT = OrderedDict((
('W', (('W', locus), )),
('H', (('H', locus), )),
('R', (('R', locus), )),
('B', (('B', locus), ))
))
LDR_ECO = monet.geneFrequencies(ECO_DICT, genotypes)
###############################################################################
# Health genotype counts
###############################################################################
HLT_DICT = OrderedDict((
('H*', (('H', locus), )),
('O-', (('W', locus), ('R', locus), ('B', locus)))
))
LDR_HLT = monet.carrierFrequencies(HLT_DICT, genotypes)
###############################################################################
# Trash genotype counts
###############################################################################
TRS_DICT = OrderedDict((
('RB*', (('R', locus), ('B', locus) )),
('O-', (('H', locus), ('W', locus)))
))
LDR_TRS = monet.carrierFrequencies(TRS_DICT, genotypes)
###############################################################################
# Wild genotype counts
###############################################################################
WLD_DICT = OrderedDict((
('O*', (('R', locus), ('B', locus), ('H', locus))),
('W-', (('W', locus), ))
))
LDR_WLD = monet.carrierFrequencies(WLD_DICT, genotypes, invert=False)
###############################################################################
# Drive Selector
###############################################################################
def driveParameters(TYPE, popSize):
if TYPE == 'ECO':
aggD = monet.generateAggregationDictionary(*LDR_ECO)
yRange = popSize*2
elif TYPE == 'HLT':
aggD = monet.generateAggregationDictionary(*LDR_HLT)
yRange = popSize/2
elif TYPE == 'TRS':
aggD = monet.generateAggregationDictionary(*LDR_TRS)
yRange = popSize/2
elif TYPE == 'WLD':
aggD = monet.generateAggregationDictionary(*LDR_WLD)
yRange = popSize/2
return (aggD, yRange, 'LDR')