我编写了一些代码,可以输出指定长度、副本数、指定概率等的 dna 序列。在 IDLE 中,程序可以正常工作,因为我预设了我想要的概率。我希望这个程序能够从命令行有效地运行。
我怎样才能让我的概率(权重)作为命令行参数运行,就像我对长度和副本数量所做的那样?我不知道如何将概率作为参数合并到命令行中。谢谢你的帮助!这是代码:
#!/usr/bin/env python
import sys
import random
weights=[.25,.25,.25,.25]
dna=['A','G','C','T']
def weighted_choice(weights,dna):
totals = []
running_total = 0
for w in weights:
running_total += w
totals.append(running_total)
rnd = random.random() * running_total
for i, total in enumerate(totals):
if rnd < total:
return dna[i]
def dna_gen(length):
seq=''
for i in range(length):
seq=seq+weighted_choice(weights,dna)
return seq
def dna_gen2(reps,length,weights,dna):
for i in range (reps):
print (dna_gen(length))
def main():
reps=int(sys.argv[1])
length=int(sys.argv[2])
weights=[float (w) for w in sys.argv[3:6]]
dna_gen2(reps,length,weights,dna)
if __name__=='__main__':
main()