以下是Python代码实现:

import os

# 定义要提取的序列范围
start = 10
end = 30

# 遍历文件夹中的所有fasta文件
for filename in os.listdir('.'):
    if filename.endswith('.fasta'):
        # 打开文件并读取序列
        with open(filename, 'r') as f:
            lines = f.readlines()
            seq_id = lines[0].strip()[1:]
            seq = ''.join(lines[1:]).replace('\n', '')

            # 提取指定范围内的序列
            seq_subset = seq[start-1:end]

            # 将ID和部分序列写入合并文件
            with open('merged.fasta', 'a') as out:
                out.write('>' + seq_id + '\n')
                out.write(seq_subset + '\n')

该代码会遍历当前目录下的所有fasta文件,提取每个文件中指定范围内的序列,并将其写入合并文件merged.fasta中。其中,变量startend定义了要提取的序列范围。

注意:如果合并文件merged.fasta已经存在,则新提取的序列会被追加到文件末尾。如果需要覆盖原有内容,可以在代码中添加一行os.remove('merged.fasta')以删除原有文件。

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

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

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