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

AWK脚本处理ASV匹配异常:Scenario4无法正确筛选最优结果

修复ASV最优匹配筛选的AWK脚本逻辑漏洞

筛选规则回顾

  • 返回Hit总和最高的谱系对应的行
  • 若Hit总和相同,返回Evalue最低的行(Evalue越小匹配度越高)
  • 若Evalue也相同,返回Perc_Identity最高的行
  • 若所有指标均相同,返回平局提示

问题场景(Scenario4)

当两个谱系Hit总和均为4,但Evalue分别为3.94E-22和3.05E-23时,原脚本误判为平局,未正确选中Evalue更低的Hylaeus谱系行。

修复后的AWK脚本

awk '
BEGIN {
    FS = "\t"  # 根据实际分隔符调整,比如逗号分隔则改为FS = ","
    max_hit = -1
    min_eval = 1e100
    max_identity = -1
    best_line = ""
    tie_flag = 0
}

NR > 1 {  # 跳过表头,无表头可删除此判断
    current_hit = $3  # 替换为Hit总和所在列号(从1开始计数)
    current_eval = $4 + 0  # 强制转数值,正确处理科学计数法
    current_identity = $5 + 0

    # 规则1:优先比较Hit总和
    if (current_hit > max_hit) {
        max_hit = current_hit
        min_eval = current_eval
        max_identity = current_identity
        best_line = $0
        tie_flag = 0
    }
    # Hit总和相同,进入规则2:比较Evalue
    else if (current_hit == max_hit) {
        if (current_eval < min_eval) {
            min_eval = current_eval
            max_identity = current_identity
            best_line = $0
            tie_flag = 0
        }
        # Evalue相同,进入规则3:比较Perc_Identity
        else if (current_eval == min_eval) {
            if (current_identity > max_identity) {
                max_identity = current_identity
                best_line = $0
                tie_flag = 0
            }
            # 所有指标一致,标记平局
            else if (current_identity == max_identity) {
                tie_flag = 1
            }
        }
    }
}

END {
    if (tie_flag) {
        print "平局:多个谱系满足所有最优条件"
    } else {
        print best_line
    }
}
' input_file.txt

关键修复点

  1. Evalue数值化处理:通过+0强制将科学计数法格式的Evalue转为浮点数,避免原脚本中字符串比较导致的逻辑错误,确保AWK按数值大小判断Evalue的高低。
  2. 层级判断逻辑优化:严格按照规则顺序嵌套判断,Hit总和相同时优先校验Evalue,再校验Perc_Identity,仅当所有指标完全一致时才标记平局,彻底避免漏判情况。

使用说明

  • 替换脚本中$3、$4、$5为实际数据对应的Hit总和、Evalue、Perc_Identity列号。
  • 根据输入文件的分隔符调整FS参数。
  • 若输入无表头,删除NR > 1的判断语句。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 09:40:58