Parece que você deseja remover tudo antes do último caractere | . No entanto, seu segundo exemplo tem um | após o ID e antes do hypothetical protein . Presumivelmente, nesse caso, você deseja remover tudo antes do último | que não é seguido por um espaço.
Aqui está uma maneira:
$ sed 's/| / /; s/^[^ ]*|/>/' file.pep
>CAX10446 conserved hypothetical protein
MSIRGVGGNGNSRIPSHNGDGSNRRSQNTKNKVEDRVRSLYSSRSNENRESPYAVVDVSSMIESTPTSGE
TTRASRGVFSRFQRGLGRVADKVRRAVQRAWSSVSIRRSSATRATESRSSSRTARGASSGYKEYSPSAAR
>AAX50250.1 hypothetical protein CTA_0001
MSIRGVGGNGNSRIPSHNGDGSNRRSQNTKNKVEDRVRSLYSSRSNENRESPYAVVDVSSMIESTPTSGE
TTRASRGVFSRFQRGLGRVADKVRRAVQRAWSSVSIRR
O s/| / /; remove qualquer | seguido por um espaço. Isso removerá o | de AAX50250.1| . O s/^[^ ]*|/>/ procura > no início da linha ( ^> ) e remove a cadeia mais longa de caracteres que não são de espaço ( [^ ] ) até o último | na linha.