# 读取fasta文件并删除空白行
def read_fasta(file_path):
with open(file_path, 'r') as f:
lines = f.readlines()
cleaned_lines = []
sequence = ""
for line in lines:
line = line.strip() # 去除行末的换行符和空格
if line:
if line.startswith('>'):
cleaned_lines.append(sequence)
cleaned_lines.append(line)
sequence = ""
else:
sequence += line
cleaned_lines.append(sequence)
return cleaned_lines
分割fasta文件成15份
def split_fasta(file_path, num_parts):
fasta_lines = read_fasta(file_path)
total_lines = len(fasta_lines)
lines_per_part = total_lines // num_parts
for i in range(num_parts):
start_idx = i * lines_per_part
end_idx = start_idx + lines_per_part
part_lines = fasta_lines[start_idx:end_idx]
# 创建一个新的FASTA部分文件
with open(f'part_{i + 1}.fasta', 'w') as f:
f.write('\n'.join(part_lines))
if __name__ == "__main__":
input_file = '/Users/yaozhaoqun/Desktop/original.fasta' # 替换为你的fasta文件路径
num_parts = 15 # 分割成15份
# 调用split_fasta函数来分割FASTA文件
split_fasta(input_file, num_parts)