序列输出循环-python
我一直在努力想办法让我的序列打印出来,在序列中用6-mer在单独的行上。同样(注意每行的间距): 到目前为止,我已经能够获得字符串形式的序列,如图所示:序列输出循环-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 "",
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