首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在bed文件中对同名序列进行编号

如何在bed文件中对同名序列进行编号
EN

Stack Overflow用户
提问于 2019-05-30 17:45:02
回答 2查看 35关注 0票数 0

我有一张这样的档案床。

代码语言:javascript
复制
    KQ4156  0       34      Simple_repeat   .   +
    KQ4156  35      64      Simple_repeat   .   +
    KQ4156  1759    1822    Simple_repeat   .   +
    KQ4156  1901    2059    Simple_repeat   .   -
    KQ4156  2112    2258    DNA/hAT-Charlie .   +
    KQ4156  2890    2964    Simple_repeat   .   +
    KQ4156  4085    4130    DNA/hAT-Charlie .   +
    KQ4156  5587    5619    Simple_repeat   .   +
    KQ4156  5931    5995    SINE/tRNA-Deu   .   -

对于后续的分析,我需要区分相同的元素。埃斯卡。simple_repeats_1, simple_repeats_2,等和DNA/hAT-Charlie_1, DNA/hAT-Charlie_2,等。所有的元素。使用的脚本如下:

awk 'BEGIN{OFS="\t"}{if(NR>3) {if($9=="C"){strand="-"}else{strand="+"};print $5,$6-1,$7,$11,".",strand}}' file.fa.out > file.bed

我如何修改它才能得到我想要的东西?我想过要应用paste,但我不知道如何将它应用于所有的序列

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-30 18:12:36

使用表格的awk解决方案是最简单的:

代码语言:javascript
复制
awk -vOFS='\t' '{ seen[$4]++; $4=$4"_"seen[$4]; print; }' file

将输出:

代码语言:javascript
复制
KQ4156  0   34  Simple_repeat_1 .   +
KQ4156  35  64  Simple_repeat_2 .   +
KQ4156  1759    1822    Simple_repeat_3 .   +
KQ4156  1901    2059    Simple_repeat_4 .   -
KQ4156  2112    2258    DNA/hAT-Charlie_1   .   +
KQ4156  2890    2964    Simple_repeat_5 .   +
KQ4156  4085    4130    DNA/hAT-Charlie_2   .   +
KQ4156  5587    5619    Simple_repeat_6 .   +
KQ4156  5931    5995    SINE/tRNA-Deu_1 .   -
票数 2
EN

Stack Overflow用户

发布于 2019-05-30 18:23:12

你能不能试着跟上。

代码语言:javascript
复制
awk 'BEGIN{OFS="\t"} {$4=$4"_"++count[$4]} 1'  Input_file
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56375689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档