DNA配列を生成するために第1ステップの遷移行列を使用しています。ここで、1000ステップごとに変化する確率を遷移行列に与える必要があります。たとえば、1000ステップごとに、遷移行列が変化する確率は40%です。変更後、すべての行が1に追加されます。Pythonでネストされた辞書データの値にアクセスする方法と、40%の確率変更を実装する方法がわかりません。ここにコードを添付しました。提案をいただければ幸いです。
#!/usr/bin/env python
import sys, random
length = 10000
tran_matrix = {'a': {'a':0.495,'c':0.113,'g':0.129,'t':0.263},
'c': {'a':0.129,'c':0.063,'g':0.413,'t':0.395},
't': {'a':0.213,'c':0.495,'g':0.263,'t':0.029},
'g': {'a':0.263,'c':0.129,'g':0.295,'t':0.313}}
initial_p = {'a':0.25,'c':0.25,'t':0.25,'g':0.25}
def choose(dist):
r = random.random()
sum = 0.0
keys = dist.keys()
for k in keys:
sum += dist[k]
if sum > r:
return k
return keys[-1]
c = choose(initial_p)
for i in range(length):
sys.stdout.write(c)
c = choose(tran_matrix[c])