用python代码对文件夹下的所有fasta文件,提取序列的ID和部分范围内的序列,并将其合并在一个fasta序列文件
以下是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中。其中,变量start和end定义了要提取的序列范围。
注意:如果合并文件merged.fasta已经存在,则新提取的序列会被追加到文件末尾。如果需要覆盖原有内容,可以在代码中添加一行os.remove('merged.fasta')以删除原有文件。
原文地址: https://www.cveoy.top/t/topic/yye 著作权归作者所有。请勿转载和采集!