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

如何用正则修改SAM文件中特定格式的序列标识字段

解决SAM文件特定字符串修改问题

针对你需要处理的SAM文件内容,关键是要精准匹配fig|xxxxxxxx|xxxxxxx|xxxxxxxx|xxx格式的字符串,仅删除该字符串内部从第二个竖线到末尾的部分,而不是全局处理所有竖线内容。你之前的sed命令误删后续有效内容,是因为它会匹配行内所有从第二个竖线开始的片段,而非仅目标字符串。

正确的sed命令

使用扩展正则表达式精准定位目标字符串:

sed -E 's/(fig\|[^|]+)\|.*?(\s|$)/\1\2/g' sed_test.sam > out.sam

命令解释

  • -E:启用扩展正则表达式,简化语法书写
  • (fig\|[^|]+):捕获目标字符串的核心有效部分——fig|加上第一个竖线后的内容(直到下一个竖线为止)
  • \|.*?(\s|$):匹配目标字符串中第二个竖线开始的冗余内容,直到遇到空白字符(SAM字段的分隔符,包含制表符、空格)或行尾,确保只处理目标字符串本身,不干扰后续的LN等有效字段
  • \1\2:替换为捕获的核心有效部分,加上后续的空白/行尾,完整保留原行的其他字段信息

效果示例

原@SQ行:

@SQ SN:fig|12345|abcdef|ghijk|lmn LN:1000

处理后变为:

@SQ SN:fig|12345 LN:1000

原比对行:

fig|67890|opq|rst|uvw 0 chr1 100 255 10M * 0 0 AGCTAGCTAG *

处理后变为:

fig|67890 0 chr1 100 255 10M * 0 0 AGCTAGCTAG *

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:33:13