【问题标题】:How to add strings to fasta identifiers如何将字符串添加到 fasta 标识符
【发布时间】:2020-10-12 01:18:30
【问题描述】:

我有一个包含多个序列的 fasta 文件:

grep -e ">" seq.fasta
>mmu_miR_8109 
>mmu_miR_8110 
>mmu_miR_8111 
>mmu_miR_8112 
>mmu_miR_8113 
>mmu_miR_8114 
>LQNS02136402.1_14821_5p 
>LQNS02278094.1_35771_5p 
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p 

我想在序列标识符中添加另一部分,使其看起来像这样:

grep -e ">" results.fasta"
>mmu_miR_8109 MOUSE Mus musculus miR_8109
>mmu_miR_8110 MOUSE Mus musculus miR_8110
>mmu_miR_8111 MOUSE Mus musculus miR_8111
>mmu_miR_8112 MOUSE Mus musculus miR_8112
>mmu_miR_8113 MOUSE Mus musculus miR_8113
>mmu_miR_8114 MOUSE Mus musculus miR_8114
>LQNS02136402.1_14821_5p MOUSE Mus musculus 14821_5p
>LQNS02278094.1_35771_5p MOUSE Mus musculus 35771_5p
>Dpu-Mir-22-P2_LQNS02276481.1_18963_3p  MOUSE Mus musculus 18963_3p

请注意,MOUSE Mus musculus 始终相同,每个标识符的最后一部分等于第 1 列“_to_keep”的最后一部分

到目前为止,我已经做到了:

 grep -e ">" seq.fasta | sed 's/>.*/& MOUSE/' | sed 's/>.*/& Mus musculus/' 

但是我错过了最后一部分(保留最后的值)以及如何应用它来对 fasta 文件进行更改。 希望有人可以提供帮助。谢谢!!

【问题讨论】:

    标签: unix awk sed fasta


    【解决方案1】:

    这里有一个简单的 awk 方法,将 FS 设置为下划线似乎很方便。当一行是标题时,我们通过添加固定字符串和现有字符串的最后两部分来修改它,并将所有行打印为1

    awk -F_ '/>/{$0 = $0 " MOUSE Mus musculus " $(NF-1) FS $NF} 1' file
    

    输出:

    >mmu_miR_8109 MOUSE Mus musculus miR_8109 
    >mmu_miR_8110 MOUSE Mus musculus miR_8110 
    >mmu_miR_8111 MOUSE Mus musculus miR_8111 
    >mmu_miR_8112 MOUSE Mus musculus miR_8112 
    >mmu_miR_8113 MOUSE Mus musculus miR_8113 
    >mmu_miR_8114 MOUSE Mus musculus miR_8114 
    >LQNS02136402.1_14821_5p MOUSE Mus musculus 14821_5p 
    >LQNS02278094.1_35771_5p MOUSE Mus musculus 35771_5p 
    >Dpu-Mir-22-P2_LQNS02276481.1_18963_3p MOUSE Mus musculus 18963_3p 
    

    确认输出好后,可以修改已有文件,如下:

    awk -F_ '/>/{$0 = $0 " MOUSE Mus musculus " $(NF-1) FS $NF} 1' file > file.tmp && mv file.tmp file
    

    在继续之前始终备份您的数据。

    【讨论】:

      【解决方案2】:

      这可能对你有用(GNU sed):

      sed -Ei 's/(.*_(.*_\S*)).*/\1 MOUSE Mus musculus \2/' file
      

      【讨论】:

        猜你喜欢
        • 2021-01-27
        • 1970-01-01
        • 2017-03-09
        • 2023-04-03
        • 2020-04-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多