コード:
def readFasta(filename):
""" Reads a sequence in Fasta format """
fp = open(filename, 'rb')
header = ""
seq = ""
while True:
line = fp.readline()
if (line == ""):
break
if (line.startswith(b'>')):
header = line[1:].strip()
else:
seq = fp.read().replace(b'\n',b'')
seq = seq.replace(b'\r',b'') # for windows
break
fp.close()
return (header, seq)
FASTAsequence = readFasta("MusChr01.fa")
'' の前の b が必要なのは、バイト モードだからです。問題は、実行時に fp.read.replace と seq.replace が文字列内のすべてを削除することです。読み取りが正しく機能していることは知っています。
def readFasta(filename):
""" Reads a sequence in Fasta format """
fp = open(filename, 'rb')
header = ""
seq = ""
while True:
line = fp.readline()
if (line == ""):
break
if (line.startswith(b'>')):
header = line[1:].strip()
else:
seq = fp.read()
break
fp.close()
return (header, seq)
FASTAsequence = readFasta("MusChr01.fa")
完全に正常に動作します。何が起きてる?