Python Biopython 合并 FASTA 序列并禁止自动换行
Python Biopython 合并 FASTA 序列并禁止自动换行
使用 Biopython 库可以轻松合并多个 FASTA 文件,并将其写入单个 FASTA 文件。本教程将演示如何使用 Biopython 库来合并 FASTA 文件,并提供一种方法来禁止序列自动换行。
代码:
from Bio import SeqIO
import os
folder_path = 'C:/Users/fang/Desktop/合适的程序/序列/M/MC0' # 文件夹路径
output_file = 'MC0/MC0.fasta' # 合并后的fasta文件名
sequences = [] # 初始化序列列表
# 遍历文件夹下的所有fasta文件
for file_name in os.listdir(folder_path):
if file_name.endswith('.fasta'):
file_path = os.path.join(folder_path, file_name) # 构造文件路径
# 读取fasta文件
with open(file_path, 'r') as f:
for record in SeqIO.parse(f, 'fasta'):
sequences.append(record) # 将读取的序列添加到序列列表
# 将所有序列写入输出文件中
with open(output_file, 'w') as f:
SeqIO.write(sequences, f, 'fasta', line_wrap=None) # 禁止序列自动转行
解释:
- 导入库: 首先,导入
Bio.SeqIO和os库,分别用于处理 FASTA 文件和文件系统操作。 - 设置路径和文件名: 定义
folder_path和output_file变量来指定包含 FASTA 文件的文件夹路径以及合并后的 FASTA 文件名。 - 初始化序列列表: 创建一个空列表
sequences来存储读取的序列。 - 遍历文件夹: 使用
os.listdir()函数遍历指定的文件夹,查找所有以.fasta结尾的文件。 - 读取序列: 对于每个 FASTA 文件,使用
SeqIO.parse()函数读取文件内容并将其解析为 BiopythonSeqRecord对象,并将每个SeqRecord对象添加到sequences列表中。 - 写入输出文件: 使用
SeqIO.write()函数将sequences列表中的所有序列写入指定的输出文件。 - 禁止换行: 使用
line_wrap=None参数来禁止SeqIO.write()函数自动换行。
运行程序:
运行此程序后,将在指定输出文件路径生成一个名为 MC0.fasta 的新 FASTA 文件,其中包含所有合并后的序列,并且序列不会自动换行。
注意:
- 确保
folder_path和output_file变量指向正确的路径和文件名。 - 本代码示例演示了如何将多个 FASTA 文件合并为一个文件,并禁止序列自动换行。你可以根据实际需求修改代码,例如,添加其他功能,例如对序列进行筛选或处理。
原文地址: https://www.cveoy.top/t/topic/lK9g 著作权归作者所有。请勿转载和采集!