擅长:python、mysql、java
<p>子字符串太长,<code>seqRead[i:i+6]</code>将给出长度为6个字符的字符串,而不是5个字符的字符串。该行(以及进行类似比较的另一行)应改为<code>seqRead[i:i+5]</code>。另外,您试图将迭代器(<code>i</code>)与字母进行比较,而我认为您的意思是比较<code>seqRead</code>中迭代器<em>位置</em>处的字母<code>i == 'A'</code>应更改为<code>seqRead[i] == 'A'</code>:</p>
<pre><code> str_count = []
counter = 0
highest = 0
# read sequence
with open(argv[2], "r") as seq:
seqRead = seq.read()
for i in range(len(seqRead)):
#search for consecutive AGATC
if seqRead[i] == 'A' and seqRead[i:i+5] == 'AGATC':
while seqRead[i] == 'A' and seqRead[i:i+5] == 'AGATC':
counter += 1
i = i + 5
if highest < counter:
highest = counter
counter = 0
else:
counter = 0
</code></pre>