我有两个号码列表:
parasite genome [1,1,1,0,1,0,1,0,1,1]
host genome [1,1,0,0,1])我正在努力寻找感染从寄生虫转移到宿主的可能性。传播与寄主和寄主基因组中1's的匹配成正比。在本例中,为3/10:
我已经把程序的一部分写下来了,但是我一直困在如何算出1的比赛数上,有人能帮我一下吗?
host_genome_length = 10
parasite_genome_length = 5
maximum_infection_rate=1.0
def infection rate(host_genome, parasite_genome):
if host_genome_length > parasite_genome_length:
return maximum_infection_rate *number of matches'of 1?(confused here) / float (host_genome_length)
else:
return maximum_infection_rate * number of matches'of 1?(confused here) / float (parasite_genome_length)
print infection_rate([1,1,1,0,1,0,1,0,1,1], [1,1,0,1,1])发布于 2014-01-28 21:48:23
您可以通过zip基因组和宿主检查同一位置的元素:
>>> genome = [1,1,1,0,1,0,1,0,1,1]
>>> host = [1,1,0,0,1]
>>> print sum(1 for g, h in zip(genome, host) if g and h)
3
>>> # or
>>> print sum(g * h for g, h in zip(genome, host))
3https://stackoverflow.com/questions/21417576
复制相似问题