计算具有固定 gc 含量的随机 RNA 序列的平均转录本长度
Calculate average transcript length of random RNA sequences that have a fixed gc content
尝试计算具有固定 gc 含量(10%、20%、30%、…、90%)的随机 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))))
但是,该程序不起作用..有什么建议吗?
我做了一些小修改,虽然我对 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
对象的列表,而不是范围本身的内容)
- 将最后一行的变量
rna_len
重命名为 rna2_len
,
查看实际效果 here。
尝试计算具有固定 gc 含量(10%、20%、30%、…、90%)的随机 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))))
但是,该程序不起作用..有什么建议吗?
我做了一些小修改,虽然我对 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
对象的列表,而不是范围本身的内容) - 将最后一行的变量
rna_len
重命名为rna2_len
,
查看实际效果 here。