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)  # 禁止序列自动转行

解释:

  1. 导入库: 首先,导入 Bio.SeqIOos 库,分别用于处理 FASTA 文件和文件系统操作。
  2. 设置路径和文件名: 定义 folder_pathoutput_file 变量来指定包含 FASTA 文件的文件夹路径以及合并后的 FASTA 文件名。
  3. 初始化序列列表: 创建一个空列表 sequences 来存储读取的序列。
  4. 遍历文件夹: 使用 os.listdir() 函数遍历指定的文件夹,查找所有以 .fasta 结尾的文件。
  5. 读取序列: 对于每个 FASTA 文件,使用 SeqIO.parse() 函数读取文件内容并将其解析为 Biopython SeqRecord 对象,并将每个 SeqRecord 对象添加到 sequences 列表中。
  6. 写入输出文件: 使用 SeqIO.write() 函数将 sequences 列表中的所有序列写入指定的输出文件。
  7. 禁止换行: 使用 line_wrap=None 参数来禁止 SeqIO.write() 函数自动换行。

运行程序:

运行此程序后,将在指定输出文件路径生成一个名为 MC0.fasta 的新 FASTA 文件,其中包含所有合并后的序列,并且序列不会自动换行。

注意:

  • 确保 folder_pathoutput_file 变量指向正确的路径和文件名。
  • 本代码示例演示了如何将多个 FASTA 文件合并为一个文件,并禁止序列自动换行。你可以根据实际需求修改代码,例如,添加其他功能,例如对序列进行筛选或处理。
Python Biopython 合并 FASTA 序列并禁止自动换行

原文地址: https://www.cveoy.top/t/topic/lK9g 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录