如何批量将FASTA文件的GenBank完整信息重命名为仅物种名?
批量修改FASTA文件标题的实用方案
方法一:Notepad++ 批量处理
- 打开Notepad++,通过「文件」→「打开文件夹作为工作区」导入存放所有FASTA文件的文件夹。
- 按
Ctrl+Shift+F打开「查找在文件」对话框:- 「查找目标」填入正则表达式:
^>(\w+\.\d+) (\w+ \w+) .* - 「替换为」填入:
>$2 - 勾选「正则表达式」选项,选择「在所有打开的文件中替换」(或指定文件夹路径批量处理)
- 点击「全部替换」即可完成批量修改。
- 「查找目标」填入正则表达式:
方法二:PowerShell 命令行批量处理
打开PowerShell,切换到FASTA文件所在目录,执行以下命令(建议先备份原始文件):
Get-ChildItem -Filter "*.fasta" | ForEach-Object { (Get-Content $_.FullName) -replace '^>(\w+\.\d+) (\w+ \w+) .*', '>$2' | Set-Content $_.FullName -Encoding UTF8 }
该命令会遍历当前目录下所有.fasta文件,自动替换标题行并覆盖原文件。
方法三:Python 脚本批量处理
适合需要灵活调整逻辑的场景,脚本如下:
import os # 替换为你的FASTA文件所在文件夹路径 folder_path = "你的FASTA文件夹路径" for filename in os.listdir(folder_path): if filename.endswith((".fasta", ".fa")): file_path = os.path.join(folder_path, filename) with open(file_path, "r", encoding="utf-8") as f: lines = f.readlines() modified_lines = [] for line in lines: if line.startswith(">"): parts = line.strip().split() if len(parts) >= 3: new_title = f">{parts[1]} {parts[2]}\n" modified_lines.append(new_title) else: modified_lines.append(line) else: modified_lines.append(line) with open(file_path, "w", encoding="utf-8") as f: f.writelines(modified_lines) print("批量修改完成")
替换folder_path为实际路径后运行脚本即可。
内容的提问来源于stack exchange,提问作者jamie-654
相关产品推荐
相关产品推荐

