首页 > 解决方案 > 如何通过剪切其中的某些部分并使用 linux 命令行保留序列的主要文本来编辑 fasta 序列中的标题?

问题描述

我有一个名为 fasta1.fasta 的多 fasta 文件,其中包含序列及其 ID。我想要的是剪切具有ID的序列的标题并将其减少为仅包含序列的ID登录号。我使用命令行grep '>' fasta1.fasta | cut -d " " -f 1从标题中剪切了我想要的部分,但我得到的输出是 ID 登录号,没有其余的序列。我的序列如下所示:

>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

虽然所需的输出是:

>tr|Q8IBQ5|Q8IBQ5_PLAF7
MDKQTLPHHKYSYIPKQNKKLIYEYLFKEGVIVVEKDAKIPRHPHLNVPNLHIMMTLKSL
KSRNYVEEKYNWKHQYFILNNEGIEYLREFLHLPPSIFPATLSKKTVNRAPKMDEDISRD
VRQPMGRGRAFDRRPFE
>tr|Q8IEB1|Q8IEB1_PLAF7
EYKLEFLSYLLIFKKKNERISKFDEQIKTCINIFEKSIINESDLKYLFERNILDMNPGV
RSMCWKLALKHLSLDSNKWNTELIEKKKLYEEYIKSFVINPYYSCVDNKKKEFVKETEKE
PKGKNMKDEYIEYNLDRNKTYYHKDDSLLKLQNDNNTKQMDYLEDEKYSSMDDECSEDNW

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

标签: linuxfasta

解决方案


  • 变体 1:

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

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

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


推荐阅读