如何用python代码把一个文件夹下的所有fasta文件中截取一部分子序列,并保存在一个文件里输出
以下是一个示例代码,该代码使用BioPython库从一个文件夹中的所有fasta文件中截取指定的子序列,并将结果保存在一个输出文件中:
from Bio import SeqIO
import os
# 输入文件夹和输出文件名
input_folder = "/path/to/folder/containing/fasta/files"
output_file = "output.fasta"
# 截取的起始和终止位置(以1为基础)
start_pos = 10
end_pos = 30
# 打开输出文件
with open(output_file, "w") as output_handle:
# 遍历所有fasta文件
for filename in os.listdir(input_folder):
if filename.endswith(".fasta"):
file_path = os.path.join(input_folder, filename)
# 打开fasta文件并截取子序列
for record in SeqIO.parse(file_path, "fasta"):
subseq = record.seq[start_pos-1:end_pos]
subseq_record = record[start_pos-1:end_pos]
subseq_record.id = f"{record.id}_{start_pos}-{end_pos}"
subseq_record.description = ""
SeqIO.write(subseq_record, output_handle, "fasta")
这个代码假设你已经安装了BioPython库,可以使用pip install biopython来安装。你需要将“/path/to/folder/containing/fasta/files”替换为你的实际输入文件夹路径,将“output.fasta”替换为你想要的输出文件名,将start_pos和end_pos替换为你想要截取的子序列的起始和终止位置。代码将从每个fasta文件中提取截取的子序列,并将每个子序列保存为输出文件中的一个单独的fasta记录,其ID包括原始记录的ID和截取的起始和终止位置。
原文地址: https://www.cveoy.top/t/topic/yHa 著作权归作者所有。请勿转载和采集!