下面是一个示例代码,可以提取一个文件夹下所有fasta文件中指定范围内的序列,并将其合并为一个新的fasta文件:

import os

folder_path = 'path/to/folder'  # 文件夹路径
start_pos = 100  # 起始位置
end_pos = 200  # 结束位置

output_file = 'merged.fasta'  # 输出文件名

with open(output_file, 'w') as out_f:
    # 遍历文件夹中的所有fasta文件
    for filename in os.listdir(folder_path):
        if filename.endswith('.fasta'):
            file_path = os.path.join(folder_path, filename)
            with open(file_path, 'r') as f:
                # 读取fasta文件并提取序列ID和指定范围内的序列
                seq_id = ''
                seq = ''
                for line in f:
                    if line.startswith('>'):
                        seq_id = line.strip()
                        seq = ''
                    else:
                        seq += line.strip()

                seq_range = seq[start_pos-1:end_pos]
                # 将序列ID和指定范围内的序列写入输出文件中
                out_f.write(f'{seq_id} {start_pos}-{end_pos}\n')
                out_f.write(f'{seq_range}\n')

你需要将path/to/folder替换为你实际的文件夹路径,将start_posend_pos替换为你需要提取的序列范围的起始和结束位置。输出文件名可以根据需要自行更改。

用python代码对一个文件夹下的所有fasta文件,提取序列的ID和部分范围内的序列,并将其合并在一个fasta序列文件,并以文件形式输出

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

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