用python代码对一个文件夹下的所有fasta文件,提取序列的ID和部分范围内的序列,并将其合并在一个fasta序列文件,并以文件形式输出
下面是一个示例代码,可以提取一个文件夹下所有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_pos和end_pos替换为你需要提取的序列范围的起始和结束位置。输出文件名可以根据需要自行更改。
原文地址: https://www.cveoy.top/t/topic/yyu 著作权归作者所有。请勿转载和采集!