在.fa标头ID后插入连续数字

时间:2017-02-07 18:56:11

标签: linux perl

我有一个包含多个合并的fasta文件的大型.fa文件。每个文件由标题行分隔,并以“>”开头。 这是一个例子:

>DPB1*04:01:01:01 [most similar sequence] for DPB1 in 3507009462

我想通过在每个id之后添加一个连续的整数来修改文件中的每个标头。 id是“>”之后的第一个字符序列在第一个空间之前。 修改后的标题如下所示:

>DPB1*04:01:01:011 [most similar sequence] for DPB1 in 3507009462

我发现一些代码用连续数字替换标题但不确定如何在标题ID之后插入它。

cat youFile.fa | perl -ane 'if(/\>/){$a++;print ">$a\n"}else{print;}' > youFile_new.fa

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

$ perl -wpe 's/\s/++$i . " "/e if /^>/' input.fa

说明:

  1. 用计数器变量和单个空格替换第一次出现的空格......
  2. ...但仅当行以>
  3. 开头时
  4. 打印每一行(由于-p开关)