SeqNovo uses an RNN architecture composed of an encoder and decoder block, each consisting of gated recurrent units (GRUs) . The model comes in two versions. In the first version, the primary input unit to the encoder is a peak, represented by m/z and intensity values, which is passed through a three-layer GRU block. The output from this block is concatenated with the output from three fully-connected layers that are fed the entire spectrum, incorporating higher-level features of the spectrum that complement the RNN's output. The model's decoder consists of a GRU-based RNN that predicts the next amino acid at each time step using the previous time step's amino acid prediction and hidden state, along with the output from the encoder. The second version of the model operates on the same inputs and employs the same threelayer GRU block but omits the fully-connected layers in the encoder. Instead, it implements an attention mechanism in the decoder, with a query vector generated by the previous time step's hidden state, while the key and value vectors for each time step are generated by the output from the encoder.