在使用biopython时,运行以下代码:
# 读取txt文件,并利用biopython包将其转化为fasta文件
with open(input_file_path, 'r') as file:
content = file.readlines()
for index, line in enumerate(content):
seq = line.split(',')[0].strip()
if len(seq) < 508:
seq_id = label+'_p'+str(p)+f'_seq_{index+1}'
record = SeqIO.SeqRecord(seq, id=seq_id, description='')
records.append(record)
with open(output_file_path, 'w') as output:
SeqIO.write(records, output, 'fasta')
出现报错:
TypeError: SeqRecord (id=2_p0.25_seq_1) has an invalid sequence.
(很奇怪,同一段代码在windows下正常运行,在linux服务器上却报错了。目前还不知道具体是什么原因,导致找了很长时间的bug。。。)
解决办法:
在seq的赋值那一行,使用Bio.Seq强制类型转换
seq = Bio.Seq(line.split(',')[0].strip())