http://rosalind.info/problems/iprb/で問題を解決しようとしています
与えられた :生物を含む集団を表す3 つの正の整数
k
、m
、および:個体は因子に対してホモ接合性優性であり、ヘテロ接合性であり、ホモ接合性劣性です。n
k+m+n
k
m
n
Return : ランダムに選択された 2 つの交配生物が、優性対立遺伝子を持つ (したがって優性表現型を示す) 個体を生み出す確率。任意の 2 つの生物が交配できると仮定します。
私の解決策はサンプルに対して機能しますが、生成された問題に対しては機能しません。さらに研究を重ねた結果、いずれかの生物を無作為に選択する確率を見つけ、2 番目の生物を選択する確率を見つけ、次にその組み合わせが優性対立遺伝子を持つ子孫を生み出す確率を見つけなければならないようです。
私の質問は次のとおりです。以下の私のコードは何の確率を見つけますか? 考えられるすべての交配について優性対立遺伝子を持つ子孫の割合を見つけますか?つまり、1 つのランダムな交配の確率ではなく、すべてのペアがテストされた場合、私のコードは優性対立遺伝子を持つ子孫の割合を求めていますか?
f = open('rosalind_iprb.txt', 'r')
r = f.read()
s = r.split()
############# k = # homozygotes dominant, m = #heterozygotes, n = # homozygotes recessive
k = float(s[0])
m = float(s[1])
n = float(s[2])
############# Counts for pairing between each group and within groups
k_k = 0
k_m = 0
k_n = 0
m_m = 0
m_n = 0
n_n = 0
##############
if k > 1:
k_k = 1.0 + (k-2) * 2.0
k_m = k * m
k_n = k * n
if m > 1:
m_m = 1.0 + (m-2) * 2.0
m_n = m * n
if n> 1:
n_n = 1.0 + (n-2) * 2.0
#################
dom = k_k + k_m + k_n + 0.75*m_m + 0.5*m_n
total = k_k + k_m + k_n + m_m + m_n + n_n
chance = dom/total
print chance