-
Notifications
You must be signed in to change notification settings - Fork 0
/
tuts07-woext.py
51 lines (47 loc) · 1.22 KB
/
tuts07-woext.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
with open("tuts7.txt") as f: # takes 3 integers in a file
my_file = [int(i) for i in str(f.read()).split()]
d = my_file[0]#Dominants
h = my_file[1]#Hetero
r = my_file[2]#Recessive
def MendelFzero(dominant: int, hetero: int, recessive: int):
"""
takes 3 integers
returns F0 crosses
"""
pop = []
pop += ["AA" for i in range(dominant)]
pop += ["Aa" for i in range(hetero)]
pop += ["aa" for i in range(recessive)]
cross = []
j = 0
for i in pop:
j += 1
for k in pop[j:]:
cross.append([i,k])
return cross
def MendelFone(mylist: dict):
"""
takes dict
returns F1 generation
"""
crossed = []
for i in mylist:
for j in i[0]:
for k in i[1]:
crossed.append(j+k)
return crossed
def dominant_ratio(my_array: dict):
"""
takes dict
returns phenotypic dominant individuals' and its ratio as float
"""
dominantNumber = 0
for i in my_array:
if str(i).__contains__("A"):
dominantNumber +=1
return float(dominantNumber/len(my_array))
myFzero = MendelFzero(d, h, r)
#print(len(myFzero))
myFone = MendelFone(myFzero)
#print(len(myFone))
print(dominant_ratio(myFone))