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

如何用awk/sed拆分SNP ID与等位基因?解决下划线干扰问题

解决方案:拆分SNP ID与等位基因

方法一:使用sed命令

利用正则捕获SNP ID(数字、下划线、点的组合)和后续等位基因部分,在两者间插入空格:

sed 's/\([0-9_.]\+\)\([A-Z].*\)/\1 \2/' File1 > File2

原理:

  • \([0-9_.]\+\):捕获所有连续的数字、下划线、点,对应SNP ID部分
  • \([A-Z].*\):捕获从第一个大写字母开始的所有内容,对应等位基因部分
  • \1 \2:将两个捕获组用空格分隔后输出

方法二:使用awk命令(简洁版)

定位第一个大写字母的位置,在其前插入空格完成拆分:

awk '{sub(/[A-Z]/, " &"); print}' File1 > File2

原理:

  • sub(/[A-Z]/, " &"):找到行内第一个大写字母,替换为空格+该字母
  • 直接打印修改后的行即可得到目标格式

方法三:awk分组匹配(精准版)

通过正则分组明确区分SNP ID和等位基因:

awk '{match($0, /^([0-9_.]+)([A-Z,].*)/, res); print res[1], res[2]}' File1 > File2

原理:

  • match()函数按正则将行内容拆分为两个分组,第一组是SNP ID,第二组是等位基因
  • 打印两个分组并以空格分隔

测试验证

用你提供的示例输入测试上述命令,均可得到预期输出:

14_611646 T,C
14_881226 CT,C
14_861416.1 GGC,GGCGCGCGCG

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 19:33:29