【问题标题】:How to insert pipes into (edited) FASTA sequence headers to restore original format?如何将管道插入(编辑的)FASTA 序列标题以恢复原始格式?
【发布时间】:2015-09-09 12:12:09
【问题描述】:

我有一个文件,在第一列中包含(编辑的)序列标题,例如:

gi399604265gbAKZP01155332.1     10      255     L1-1_STu        1       -
gi399594056gbCM001217.1     19      203     L1-4_VC 1       -
gi399591950gbKE558403.1     1       185     L1-4_VC 1       +
gi399591329gbAKZP01168266.1     4       285     L1-1_STu        1       +
gi399589894gbAKZP01169701.1     28      502     L1-3_NV 1       +

我想将这些 seq 标头转换回其原始格式,即 包括管道,例如所需的输出:

gi|399604265|gb|AKZP01155332.1|     10      255     L1-1_STu        1       -
gi|399594056|gb|CM001217.1|     19      203     L1-4_VC 1       -
gi|399591950|gb|KE558403.1|     1       185     L1-4_VC 1       +
gi|399591329|gb|AKZP01168266.1|     4       285     L1-1_STu        1       +
gi|399589894|gb|AKZP01169701.1|     28      502     L1-3_NV 1       +

管道总是出现在第一个“gi”之后、“gb”之前、“gb”之后和末尾。有没有一种简单的方法可以为我的所有文件自动执行此操作? (其中一些非常大!)

非常感谢您的任何建议:)

【问题讨论】:

    标签: bash unix awk


    【解决方案1】:

    一个简单的班轮就可以了:

    perl -pe 's/(gi)(\d+)(gb)(\S+)/$1|$2|$3|$4|/' file.txt
    

    输出

    gi|399604265|gb|AKZP01155332.1|     10      255     L1-1_STu        1       -
    gi|399594056|gb|CM001217.1|     19      203     L1-4_VC 1       -
    gi|399591950|gb|KE558403.1|     1       185     L1-4_VC 1       +
    gi|399591329|gb|AKZP01168266.1|     4       285     L1-1_STu        1       +
    gi|399589894|gb|AKZP01169701.1|     28      502     L1-3_NV 1       +
    

    【讨论】:

    • 谢谢!像魅力一样工作:)
    猜你喜欢
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    • 2013-05-12
    • 1970-01-01
    • 2010-12-05
    相关资源
    最近更新 更多