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

使用awk统计文本文件中碱基(A/G/T/C)的频率百分比

用awk统计碱基出现频率(百分比形式)

没问题,我来帮你搞定这个碱基频率统计的需求。这里有个实用的awk脚本,能自动处理大小写、过滤无效行,最后输出直观的百分比结果:

awk '/^>/ { 
    # 提取第二个字段并转成大写,统一统计标准
    base = toupper($2)
    # 只统计有效的A/G/T/C碱基,忽略空值或无效字符
    if (base ~ /^[AGTC]$/) {
        count[base]++
        total++
    }
}
END {
    # 遍历统计结果,输出百分比(保留两位小数)
    for (b in count) {
        printf "%s: %.2f%%\n", b, (count[b]/total)*100
    }
    # 处理没有有效记录的情况,避免除以0错误
    if (total == 0) {
        print "没有找到有效的碱基记录"
    }
}' your_input_file.txt

脚本细节解释

  • /^>/:精准匹配所有以>开头的目标行,确保只处理我们需要的内容
  • toupper($2):把输入的碱基(不管大小写)统一转成大写,避免A和a被分开统计
  • base ~ /^[AGTC]$/:做有效性校验,只统计符合要求的碱基,自动忽略像最后一行那样没有碱基的无效行
  • END块逻辑:遍历统计好的计数器,用printf格式化输出百分比;同时增加了边界判断,防止没有有效碱基时出现计算错误

示例测试结果

用你提供的示例输入运行这个脚本,会得到如下结果:

A: 42.86%
G: 57.14%

(注:示例里有效碱基共7个,其中A类3个、G类4个,对应计算出的百分比)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 09:09:40