如何通过剪切Linux命令行中的某些部分并保留序列的主要文本来编辑Fasta序列中的标题?

时间:2018-12-27 12:10:59

标签: linux fasta

我有一个名为fasta1.fasta的多重fasta文件,其中包含序列及其ID。我想要的是剪切具有ID的序列的标头,并将其减少为仅包含序列的ID登录号。我使用命令行@supports (background-attachment: fixed) { .fixed-background { background-attachment: fixed; } } 从标题中剪切了我想要的部分,但是我得到的输出只是ID的登录号,而没有其余序列。我的序列如下:

grep '>' fasta1.fasta | cut -d " " -f 1

我得到的输出是:

>tr|Q8IBQ5|Q8IBQ5_PLAF7 40S ribosomal protein S10, putative OS=Plasmodium falciparum (isolate 3D7) OX=36329 GN=PF3D7_$
MDKQTLPHHKYSYIPKQNKKLIYEYLFKEGVIVVEKDAKIPRHPHLNVPNLHIMMTLKSL
KSRNYVEEKYNWKHQYFILNNEGIEYLREFLHLPPSIFPATLSKKTVNRAPKMDEDISRD
VRQPMGRGRAFDRRPFE
>tr|Q8IEB1|Q8IEB1_PLAF7 TBC domain protein, putative OS=Plasmodium falciparum (isolate 3D7) OX=36329 GN=PF3D7_132020$
MEYKLEFLSYLLIFKKKNERISKFDEQIKTCINIFEKSIINESDLKYLFERNILDMNPGV
RSMCWKLALKHLSLDSNKWNTELIEKKKLYEEYIKSFVINPYYSCVDNKKKEFVKETEKE
PKGKNMKDEYIEYNLDRNKTYYHKDDSLLKLQNDNNTKQMDYLEDEKYSSMDDECSEDNW

所需的输出是:

>tr|Q8IBQ5|Q8IBQ5_PLAF7

>tr|Q8IEB1|Q8IEB1_PLAF7

任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

  • 变种1:

    sed '/^>/s/ .*//'
    
  • 变体2:

    perl -pe 's/ .*// if /^>/'
    

也就是说,在所有以>开头的行中,删除所有空格,包括第一个空格。