擅长:python、mysql、java
<p>不确定你是否想用多个其他基因复制符合要求的基因。itertools模块对于这些类型的分组和置换操作来说真是太棒了:</p>
<pre><code>import itertools as it
def getrecords(f):
for line in open(f):
yield line.strip().split()
key = lambda x: x[0]
for i,rec in it.groupby(sorted(getrecords('inputfile.txt'), key=key), key=key):
for c0,c1 in it.combinations(rec, 2):
if (c0[4] != c1[4]) and (abs(int(c0[1])-int(c1[1])) > 200):
print '%s\t%s\t%s' % (c0[0], c0[1], c0[3])
print '%s\t%s\t%s' % (c1[0], c1[1], c1[3])
</code></pre>
<p>输出:</p>
<pre><code>chr11 103286577 11-qE1-9443.1
chr11 108278889 11-qE1-252.1
chr11 107855325 11-qE1-3997.1
chr11 108278889 11-qE1-252.1
chr12 99620581 12-qE-23911.1
chr12 99658453 12-qE-7089.1
chr13 21595489 13-qA3.1-213.1
chr13 24997468 13-qA3.1-355.1
</code></pre>