SMSNet employs a model architecture similar to that of DeepNovo but applies it to a variant of the de novo search setting, in which a peptide database is used to fill in ambiguous predictions. The deep neural network consists of an encoder, similar to the ion-CNN network in DeepNovo, which encodes an overview of the input spectrum vector in a length-1024 feature vector. This vector is used to initialize the decoder, which uses an RNN architecture to iteratively predict each amino acid, given the predicted prefix. As in DeepNovo, the knapsack algorithm is used to ensure that the predicted peptide mass matches the observed precursor mass within a specified tolerance. During inference, SMSNet uses beam search decoding with a beam size of 20. The primary novelty of SMSNet lies in its rescoring and database search strategy. A neural network with two fully-connected layers is trained to re-score the amino acids predicted by the primary model, assigning a confidence score to each. SMSNet then uses these calibrated scores to mask out low-confidence predictions, thereby improving the model's accuracy while sacrificing some coverage. To mitigate this loss in coverage, SMSNet identifies "sequence tags"-contiguous blocks of high-confidence amino acid predictions-which are used to match to the peptide database.