如何将一个文件的行间隔截取到多个文件中?

如何将一个文件的行间隔截取到多个文件中?

我有一个包含如下 ID 和序列的 fasta 文件:

>4S3O_2:C
GSMSQAVQTNGTQPLSKTWELSLYELQRTPQEAITDGLEIVVSPRSLHSELMCPICLDMLKNTMTTKECLHRFCADCIITALRSGNKECPTCRKKLVSKRSLRPDPNFDALISKIYPS
>5JH8_1:A
AAMVLAYYSGYAGNYAALTRYAASFNAVAVDFYNITAQGAVTGNGDPAPNDAISFLLGRKIPAYGCVSNVDGNGNWSADIAHAVSTSAQSQAVANLVKFAQDKRFSGINVDFEAVAQGDRNNFSHFI

我想递归地剪切包含 id 和序列的行,并将它们放入以相应 id 命名的多个新文件中(不包括链),就像 newfile cointains

>4S3O_2:C
GSMSQAVQTNGTQPLSKTWELSLYELQRTPQEAITDGLEIVVSPRSLHSELMCPICLDMLKNTMTTKECLHRFCADCIITALRSGNKECPTCRKKLVSKRSLRPDPNFDALISKIYPS

它的名字是4S30_2.fasta

这是我尝试过的:

awk -F ">" | sed -i -e '$0,$1{w file.fasta d}' BlindSet150.fasta 

答案1

可能有一个强大的生物信息学工具可以将 fasta 序列提取到单个文件中,但如果你想用 awk 自己动手,我建议使用类似

awk -F '[>:]' '/^>/ {close(f); f = $2 ".fasta" } f {print > f}' BlindSet150.fasta

相关内容