将fasta文件分割为多个文件

# 读取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)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容