题目在这:http://rosalind.info/problems/iprb/
解这一题可以有两种思路,一种是穷举法,把所有子代的基因型全部列举出来,并放入字典中,然后再计算其中显性基因的概率。
#*_coding: utf-8_*
import numpy as np
def character_list(parent_number):
'''输入包含纯合,杂合样本的数量的信息的列表,得到所有样本性状的列表'''
all_character_list = ['HH'] * parent_number[0] + ['Hr'] * parent_number[1] + ['rr'] * parent_number[2]
return all_character_list
def character_probabily(character_A, character_B):
'''统计两个亲本性状的所有可能子代的基因型'''
total = {'HH':0, 'Hr':0, 'rr':0, 'rH':0}
for base_A in character_A:
for base_B in character_B:
later = base_A + base_B
total[later] +=1
HH = total['HH']
Hr = total['Hr'] + total['rH']