序列输出循环-python

序列输出循环-python,python,Python,我一直在努力想办法让我的序列打印出来,在序列中用6-mer在单独的行上。同样(注意每行的间距): 到目前为止,我已经能够获得字符串形式的序列,如图所示: from Bio import SeqIO record = SeqIO.read(open("testSeq.fasta"), "fasta") sequence = str(record.seq) 然而,我似乎能想出的打印6-mers的唯一方法是: print sequence print sequence[0:5] print "",

我一直在努力想办法让我的序列打印出来,在序列中用6-mer在单独的行上。同样(注意每行的间距):

到目前为止,我已经能够获得字符串形式的序列,如图所示:

from Bio import SeqIO
record = SeqIO.read(open("testSeq.fasta"), "fasta")
sequence = str(record.seq)
然而,我似乎能想出的打印6-mers的唯一方法是:

print sequence 
print sequence[0:5]
print "", sequence[1:6]
print "", "", sequence[2:7]
print "", "", "", sequence [3:8]
etc
我觉得应该有一个更简单的方法。我试过这个,但似乎不起作用:

x = 0
y = 6
for sequence in sequence[x:y]
    print sequence
    x = x + 1
    y = y + 1
如果您对我如何完成这项任务有任何意见,我将不胜感激。我现在只使用python几天了,如果我的问题看起来很简单,我很抱歉

谢谢

这应该有效:

width = 6
for i in range(len(sequence) - width):
    print " " * i + sequence[i:i+width]

您可以尝试以下方法(据我所知,您正在使用python2)

输出:

atgcta
 tgctag
  gctagt
   ctagtc
    tagtca
     agtcat
      gtcatc
       tcatc
        catc
         atc
          tc
           c

在打印时不占用任何空间,但在打印时,任何逗号分隔都将替换为空格。
seq = "atgctagtcatc"
spaces = " "
for i in range(0, len(seq)):
    print spaces*i+seq[i:i+6]
atgcta
 tgctag
  gctagt
   ctagtc
    tagtca
     agtcat
      gtcatc
       tcatc
        catc
         atc
          tc
           c