2011-06-09 65 views
0

我有一个包含序列的文件:ATGAAGCTAGGCATATTC。我想要一个简单的python代码, 将这个序列分成3s:ATG AAG GCT ....然后将它们的索引除以3s: 123 456 789 ........将文件中的序列划分为3s并对它们进行编号

最终打印输出应该是这样的:

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 

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

回答

0

而不是

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

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

你可以告诉读取指令同时拿到三个字符:

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