2011-06-09 61 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 
相關問題