Python 使用 Biopython 合并fasta文件并控制序列输出格式
在 Python 中使用 Biopython 库合并 fasta 文件时,默认情况下,输出文件中的序列会被分成多行显示,每行 70 个字符。这是因为 Bio.SeqIO.write() 函数默认会将每个序列的每 70 个字符分成一行输出,方便查看和编辑序列。
如果您希望输出的序列不自动换行,可以在 SeqIO.write() 函数中添加参数 line_wrap=None,表示不限制每行字符数,如下所示:
from Bio import SeqIO
input_file = 'xuliehebing1.fasta' # 输入文件名
output_file = 'jieguo1.fasta' # 输出文件名
sequences = [] # 初始化序列列表
# 读取fasta文件
with open(input_file) as f:
for record in SeqIO.parse(f, 'fasta'):
if len(record.seq) == 130: # 如果序列长度等于130,则将该序列加入序列列表
sequences.append(record)
# 将筛选后的序列写入输出文件
with open(output_file, 'w') as f:
SeqIO.write(sequences, f, 'fasta', line_wrap=None)
# 输出处理后的序列数量
print(f'剩余序列数:{len(sequences)}')
这样输出的序列将会在一行中显示。
原文地址: https://www.cveoy.top/t/topic/lLbU 著作权归作者所有。请勿转载和采集!