NovoB uses a transformer and introduces three changes relative to Casanovo. First, the encoder takes several additional inputs, including the precursor mass, charge, m/z, and intensity. Second, the decoder receives an additional input, which is an explicit representation of the residual mass. Third, the model employs two decoders, operating from N-terminal to C-terminal and from C-terminal to N-terminal, and selects the prediction with the higher score, similar to the independent bi-directional decoder in BiATNovo.