2017-11-06 1 views
0

固定されたgc含量(10%、20%、30%、...、90%)を有するランダムRNA配列の平均転写物長を計算しようとする固定されたgc含量を有するランダムRNA配列の平均転写物長を計算する

def bias_rna(gc_content): 
    rna = 'AUG' 
    stop_codon = ['UAG','UAA','UGA'] 
    while rna[-3:] not in stop_codon: 
     for _ in range(3): 
      rna += random.choice(('A'+'U')*(100-(gc_content))+('C'+'G')*(gc_content)) 
    return rna 


for numb in [range(10,91,10)]: 
    rna2_list = [] 
    for _ in range(1001): 
     rna2_list.append(bias_rna(numb)) 
    rna2_len = [] 
    for s in rna2_list: 
     rna2_len.append(len(s)) 
    print ('Average random rna length with cg: %.2f' % (sum(rna_len)/(len(rna_len)))) 

ただし、プログラムは動作しません..ご提案ですか?

+0

これは概念的な問題ではなく特定のタイプミス/単純なコーディングエラーの問題であると思われるため、おそらくcodereview.stackexchange.comに属しています – mac9416

答えて

0

私はDNAについての事を知らないけれども、動作しているようですが、いくつかの小さな変更を行い、:

import random 

def bias_rna(gc_content): 
    rna = 'AUG' 
    stop_codon = ['UAG','UAA','UGA'] 
    while rna[-3:] not in stop_codon: 
     for _ in range(3): 
      rna += random.choice(('A'+'U')*(100-(gc_content))+('C'+'G')*(gc_content)) 
    return rna 


for numb in range(10,91,10): 
    rna2_list = [] 
    for _ in range(1001): 
     rna2_list.append(bias_rna(numb)) 
    rna2_len = [] 
    for s in rna2_list: 
     rna2_len.append(len(s)) 
    print ('Average random rna length with cg: %.2f' % (sum(rna2_len)/(len(rna2_len)))) 

基本的に、あなたは

  • 輸入random
  • に必要な
  • range(10,91,10)(角の内容ではなく、rangeオブジェクトを1つ含むリストをループする原因となっていた)の角括弧を削除してください。
rna2_lenへの最後の行に変数 rna_lenの名前を変更するには、アクション hereでそれを参照してください。

関連する問題