背景:小鼠遗传学,我想计算两个实验室菌株之间的突变,这取决于它们是否在外显子边界内。你知道吗
到目前为止,我生成了两个列表:
SNPs = [432, 534, 677, 788, 999]
etc~2e7值合计
exon_limits = [(3, 6), (42, 444), (679, 999)]
etc~5e5值合计
我只想统计一下属于外显子限制(list2)的单核苷酸多态性(list1)的数量。这是我的密码:
exonic = 0
non_exonic = 0
for k, l in exon_limits:
for j in SNPs:
if j <= k or j >= l:
exonic += 1
else:
non_exonic += 1
我不太了解计算机科学的局限性,但2e7*5e5可能太难处理了,对吧?。此外,我还尝试:
exonic = 0
non_exonic = 0
for k, l in exon_limits:
for j in SNPs:
if j <= k or j >= l:
exonic += 1
print exonic
else:
non_exonic += 1
看看python在算法中的位置,但在我中断程序之前,它似乎只是从0计数到大于7e6。你知道吗
每个SNP只适合于一个元组,因此如果有一种方法可以让迭代在找到一个命中点后停止,那么它就会加快速度。任何帮助都将不胜感激!你知道吗
假设外显子限制是包含的并且不能重叠,并且两个列表都是按升序排列的:
回答您的问题:有两个命令可以中断循环。
continue
将立即继续下一个元素,break
将离开整个循环。两者都只适用于最内部的循环。你知道吗另外,不要在范围列表中循环,应该使用树状结构,这样可以很容易地找到与值匹配的范围。你知道吗
相关问题 更多 >
编程相关推荐