You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编辑FASTA序列标题?含亚种/变种名称的处理咨询

处理FASTA序列标题的解决方案

针对你需要的FASTA标题格式转换需求,这里提供两种实用的处理方式:

方式一:使用sed命令(适用于Linux/macOS命令行)

利用正则表达式精准匹配并替换,能完美处理包含subsp./var.的物种名称:

sed -E 's/^>(NR)_([0-9]+\.[0-9]+) ([A-Za-z]+ [A-Za-z]+( subsp\. [A-Za-z]+| var\. [A-Za-z]+)?).*/>\1\2_\3/; s/ /_/g' input.fasta > output.fasta

命令说明:

  • 第一部分正则匹配标题行:捕获NR_中的NR、版本号,以及包含亚种/变种的完整物种名称
  • 第二部分把物种名称里的空格全部替换成下划线,自动将subsp.变成_subsp._的格式
  • 非标题行(序列部分)会保持原样

方式二:使用Python脚本(跨平台通用)

如果需要更灵活的调整,可编写简单的Python脚本:

import re

def format_fasta_title(line):
    if line.startswith(">"):
        # 匹配标题结构,提取NR编号、版本号和物种名
        match = re.match(r">NR_(\d+\.\d+) ([A-Za-z]+ [A-Za-z]+( subsp\. [A-Za-z]+| var\. [A-Za-z]+)?)", line)
        if match:
            nr_id = f"NR{match.group(1)}"
            species = match.group(2).replace(" ", "_")
            return f">{nr_id}_{species}\n"
    return line

# 处理文件
with open("input.fasta", "r") as infile, open("output.fasta", "w") as outfile:
    for line in infile:
        outfile.write(format_fasta_title(line))

脚本说明:

  • 只处理以>开头的标题行,序列行直接保留
  • 正则专门匹配包含subsp.或var.的物种名称,确保完整提取分类学信息
  • 替换空格为下划线,生成符合要求的标题格式

效果验证

用你提供的示例输入测试,两种方式都会输出:

>NR130660.1_Hanseniaspora_uvarum
 AAGGATCATTAGATTGAATTATCATTGTTGCTCGAGTTCTTGTTTAGATCTTTTACAATAATGTGTATCT
>NR131850.1_Cortinarius_timiskamingensis
 GGAAGTAAAAGTCGTAACAAGGTTTCCGTAGGTGAACCTGCGGAAGGATCATTATTGAAATAAACCTGAT
>NR171752.1_Melanconis_marginalis_subsp._europaea
AACGACCACCCAGGGCCGGAAACTTCTCCAAACTCGATCATTTAGAGGAAGTAAAAGTCGTAACAAGGTC

内容的提问来源于stack exchange,提问作者hellofasta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 21:13:30