将文件中的序列分成3个并对它们进行编号

时间:2011-06-09 19:54:18

标签: python indexing

我有一个包含序列的文件:ATGAAGCTAGGCATATTC。我想要一个简单的python代码 将这个序列分成3个:ATG AAG GCT ....然后将它们的指数分成3s: 123 456 789 ........

最终的打印输出应如下所示:

ATG 123
AAG 456
CTA 789
GGC 101112
ATA 131415
TTC 161718

这是我到目前为止所做的:

#!/usr/bin/python
import string
import sys
fileName1=sys.argv[1];
o=open(fileName1);
I=o.readlines();
I=map(string.strip,I);
I=''.join(I);
for i in range(0,len(I),3):
    print I[i:i+3], i+1; 

我得到了这个输出:

ATG 1
AAG 4
CTA 7
GGC 10
ATA 13
TTC 16

第一列是正确的,但第二列不是我想要的。

2 个答案:

答案 0 :(得分:1)

您可以告诉读取指令一次获得三个字符:

i=1
while True :
    v = o.read(3)
    print v, " ", i, i+1, i+2
    i+=3
    if len(v) < 3:
        break

答案 1 :(得分:0)

而不是

print I[i:i+3], i+1; 

待办事项

print I[i:i+3], i+1, i+2, i+3;