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

多行序列文本中GCAGC/GCTGC匹配位置查找及流式实现方法

流式处理FASTA序列匹配位点的awk方案

该方案无需加载整条序列到内存,仅保留最多4个碱基的跨行缓存,内存占用恒定,可支持任意大小的输入文件。

处理脚本

awk '
/^>/ {
    if (seq_name != "") {
        prev_suffix = ""
        offset = 0
    }
    seq_name = substr($0, 2)
    next
}
{
    current_seq = prev_suffix $0
    for (i=1; i <= length(current_seq) - 4; i++) {
        kmer = substr(current_seq, i, 5)
        if (kmer == "GCAGC" || kmer == "GCTGC") {
            actual_pos = offset + i - length(prev_suffix)
            print seq_name, actual_pos, kmer
        }
    }
    offset += length($0)
    prev_suffix = substr($0, length($0) - 3)
}
' 你的输入序列文件路径

逻辑说明

  • 遇到>开头的行时自动提取序列ID,同时重置缓存和偏移计数,天然支持多序列文件处理
  • 每次处理序列行时,会把上一行末尾的4个碱基拼接到当前行开头,避免跨行的匹配位点被遗漏
  • 遍历每个可能的5碱基片段,匹配目标模式后计算全局1-based起始位置,符合生物学序列计数习惯
  • 运行全程仅保留当前序列ID、全局偏移量、4个碱基的后缀缓存三个变量,内存占用不随文件大小增长

输出说明

输出完全符合要求的三列格式:第一列为序列ID,第二列为匹配起始位置,第三列为匹配到的具体模式,重叠匹配位点会单独输出。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 20:18:03