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

在UNIX系统中重命名FASTA/FASTQ文件的序列ID

重命名FASTA文件reads ID:首个UUID+下划线+barcode

需求说明

你需要把FASTA文件中每条read的ID行(以>开头),替换成第一个空格前的UUID与末尾barcode=后的内容用下划线连接的格式,序列部分保持不变。

解决方案1:使用sed命令

sed完全能满足你的需求,用正则精准匹配并替换ID行:

sed -E 's/^>([^ ]+) .* barcode=([^ ]+)/>\1_\2/' input.fasta > output.fasta

命令解释:

  • ^>:只匹配以>开头的ID行
  • ([^ ]+):捕获第一个空格前的UUID内容(第一个分组)
  • .*:匹配ID行中间所有无关内容
  • barcode=([^ ]+):捕获barcode=后面的具体值(第二个分组)
  • >\1_\2:将整行替换为> + 第一个分组内容 + 下划线 + 第二个分组内容

解决方案2:使用awk命令

如果觉得正则不够直观,awk按字段处理会更清晰:

awk '/^>/ {split($NF, bc, "="); print ">" $1 "_" bc[2]; next} {print}' input.fasta > output.fasta

命令解释:

  • /^>/:定位到ID行
  • split($NF, bc, "="):把ID行的最后一个字段($NF表示最后一个字段)按=分割,存入数组bc,bc[2]就是我们要的barcode值
  • print ">" $1 "_" bc[2]:输出格式化后的新ID
  • next:跳过当前行后续处理,直接处理下一行
  • {print}:非ID行(序列内容)直接原样输出

验证效果

用你提供的示例输入测试,两个命令都会生成你预期的输出结果:

>e855552f-9484-4674-8fc4-d9b1f1add023_barcode06
GCTTTAACATTTAGCTATTTATGACACAGTGAAATAAAAGTAATATCTTTTTATTTTTAATTGTATTTATTAGTTACATGTTTTCACATGCATTTAACATAAATGTGATAATTTATGGGAATTACACTACTGTCAAAGTAGTT
>c9d90319-ec63-4347-9244-ad080b0815c5_barcode11
GCCTTGACTATATGGTTTACCTGTTCAAATACGACTCTACTCATGGTCGTTTCAAGGGAACAGTTGAGGTTCAAGGATGGTTTCCTCGTAGTAGTCTCAATGGAAACAAATCTCCTGTCTTCTGTGAAAGAGACCCTAAAATC

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 07:13:20