WorksComputer Science
NovoCRF: Globally Normalized De Novo Peptide Sequencing on a Prefix-Mass Lattice
Abstract
De novo peptide sequencing has moved from dynamic programming over hand-designed or generative scores to large transformers that learn the task end to end. We present NovoCRF, a conditional random field (CRF) whose states are prefix masses, so that its paths are exactly the peptides within +/-0.06 Da of the precursor mass. A small network scores each edge from physics-derived ion-match features and is trained with its scores globally normalized over all mass-feasible peptides. To our knowledge, NovoCRF is the first de novo method trained with exact normalization over all mass-feasible peptides. Our software has three modules, each with exactly one job: a precursor mass finder recovers the accurate precursor mass from MS1, the CRF finds the peptides that fit the precursor mass by exact k-best decoding, and two BiGRU rerankers add sequence context and internal-fragment evidence. The model has 310k parameters and trains in about 17 GPU-hours. On seven held-out data-dependent acquisition datasets published in 2026 (126,262 labeled spectra), NovoCRF's mean peptide recall is 42.4%, against 39.1% for Casanovo v5 with five beams, and its amino-acid recall 64.0% against 53.1%, at 1,746 spectra/s on 18 CPU threads, 55x Casanovo's throughput on a GPU. Split by fragment evidence, NovoCRF leads on labels with up to three peptide bonds without a b or y ion, and Casanovo only beyond. NovoCRF can also search modifications it was never trained on at their exact mass: it finds 32.1% of the hydroxyproline peptides of a lion bone sample.
Introduction
De novo sequencing reads a peptide from its tandem mass (MS/MS) spectrum without a protein database. It is the method of choice when the sequence is not in a reference database: neoantigens, antibodies, RNA-edited proteins and organisms without a curated proteome. The spectrum constrains the peptide through prefix masses: a cleavage after residue yields a b ion at prefix mass and a complementary y ion at , where is the precursor mass.
Classical methods made this structure explicit. PEAKS [1] and NovoHMM [2] use dynamic programming (DP) along the prefix-mass axis to find the optimal path under a defined scoring function: hand-tuned ion statistics in PEAKS, a generative hidden Markov model (HMM) trained by expectation–maximization in NovoHMM. Decoding is exact and the precursor mass is satisfied by construction, but the scores are not learned discriminatively.
DeepNovo [3] introduced deep learning: a CNN reads intensity windows at the theoretical ions of each candidate next residue, an LSTM adds sequence context, and beam search decodes a per-step softmax. PointNovo [4] replaced the intensity grid with an order-invariant network over the peaks themselves, fed with the difference between each peak and each theoretical ion, which made it independent of instrument resolution; it also started the LSTM from a sinusoidal embedding of the spectrum. Casanovo [5, 6] made the task fully end to end: each peak is encoded by sinusoids into a 512-d vector, and a 9-layer transformer encoder and 9-layer decoder (47.9M parameters in the released v5 weights) translate the peak set into residues. Later transformer models include InstaNovo [7], ContraNovo [8] and the non-autoregressive -PrimeNovo [9]; GraphNovo [10] combines a spectrum graph with graph transformers. Like Casanovo, all of them lift each peak’s into a high-dimensional vector. InstaNovo, ContraNovo and -PrimeNovo use sinusoidal embeddings. GraphNovo feeds each peak’s scaled , together with seven intensity and rank features of the peak, through a learned network into its graph node’s 2,048-dimensional vector, so the information is used only implicitly, in a high-dimensional latent space.
Peak encoding is popular and proven to work, yet it is a counterintuitive use of capacity: one scalar is encoded by 512 floating-point numbers, and not even losslessly. The network must then relearn arithmetic that is known exactly, such as , with the proton mass. These models are also locally normalized, with a softmax per decoding step or, with connectionist temporal classification (CTC), per output position, and none of them normalizes over the set of peptides that fit the precursor mass: the mass constraint enters only through decoding rules or filters.
NovoCRF returns to the classical formulation and makes it discriminative. Conceptually it is close to NovoHMM, a chain along the prefix-mass axis decoded by DP, but it is a conditional random field [11]: in training, the score of the true path is normalized over all mass-feasible paths rather than step by step. A model whose scores see only local evidence needs this global normalization to avoid label bias [11, 12]; in development experiments on the same lattice it was worth 8–10 points of peptide recall (§4.8). To the best of our knowledge, NovoCRF is the first de novo sequencing method trained with exact normalization over all mass-feasible peptides. In spirit NovoCRF is a successor to PointNovo: a de novo tool using carefully engineered input features that encode domain knowledge (theoretical fragment , ppm-scale soft matching, isotope envelopes, neutral losses, immonium ions and internal fragments), instead of a black box with tens of millions of weights.
A model built to read the spectrum also invites a closer look at the benchmark. De novo tools are usually scored by peptide recall against database-search identifications. A database search may accept a peptide with long stretches that no b or y ion supports, because the database supplies the sequence; a de novo tool must choose the residues in such a stretch with little or no direct evidence. We therefore report recall by how much fragment evidence each label has. Our contributions:
a CRF over a 0.002 Da prefix-mass lattice whose partition function is computed exactly in sequential
steps, with 18.5k parameters in the potentials, followed by two BiGRU rerankers (§3);
a modular design in which precursor correction from MS1, exact search and sequence context are separate modules, and in which modifications never seen in training are searched at their exact mass (§3.7);
CPU inference at 7.0× and 55× the throughput of one- and five-beam Casanovo on a GPU, and a model that trains on one desktop GPU within a day and can be deployed to edge devices, sequencing up to 1,324 spectra/s on a four-year-old cellphone.
Related work
Spectrum graphs and dynamic programming. Before deep learning, de novo tools scored paths through a graph of candidate prefix masses: PEAKS [1] with hand-tuned ion statistics, PepNovo [13] with a probabilistic network of fragmentation, NovoHMM [2] with a generative HMM and Novor [14] with decision trees learned from a spectral library. All decode exactly, and none trains a discriminative model against the set of all paths.
Mass constraints in neural de novo sequencing. Neural sequencers generate residues step by step or position by position and bring the precursor mass in at decoding time. DeepNovo filters beam-search extensions with a knapsack over residue masses [3]; -PrimeNovo, a non-autoregressive transformer trained with CTC, adds a precise mass-control unit that steers its output toward sequences of the right mass [9]; GraphNovo first searches for an optimal path in a spectrum graph, which then guides a second-stage sequence predictor through the segments without fragmentation [10]. In all of them the likelihood is normalized locally, per step or per output position. NovoCRF builds the mass constraint into the state space instead, so that the model’s normalizer ranges only over mass-feasible peptides.
Global normalization. Conditional random fields [11] were introduced to avoid the label bias of locally normalized models such as maximum-entropy Markov models (MEMMs), whose per-state normalization lets early decisions ignore later evidence. Andor et al. [12] showed that globally normalized neural models are strictly more expressive than their locally normalized counterparts for transition-based structured prediction. Exact global normalization is usually expensive because the partition function ranges over an exponential set; the prefix-mass lattice makes it cheap, because its states are ordered by mass and every edge spans at least one glycine §3.4.
Evaluating de novo sequencing. De novo tools are compared on spectra labeled by database search, usually by peptide-level recall or precision [6, 7, 9, 10]. GraphNovo was designed to mitigate missing fragmentation, which its authors identify as an important remaining hurdle [10], and NovoBench [15] reports accuracy against each spectrum’s missing-fragmentation ratio. We split both peptide and amino-acid recall by the fragment evidence of each label, test how the split depends on which ion types count as evidence, and show how much a de novo tool’s accuracy depends on the precursor mass it is given.
Method
The Zen of NovoCRF. NovoCRF consists of three modules, each with a single job:
PrecursorMassFinder reads the MS1 and MS2 scans through the vendor’s software development kit (SDK) and finds the correct precursor mass of each MS2 scan from MS1 information § 3.1.
The CRF trusts the precursor mass it is given. A CRF with an MLP scorer and the Viterbi algorithm efficiently find the sequences that match that mass and have good spectrum support §§§ 3.2–§ 3.5.
The rerankers bring in some sequence information, and so promote sequences that resemble the real proteome where fragmentation is missing § 3.6.
Each module has one clear responsibility, so it is easier to fine-tune and optimize.
Notation. Italic letters are scalars, bold lowercase letters vectors (e.g. ), bold uppercase letters matrices; is the inner product and the proton mass (masses in Da).
PrecursorMassFinder: the precursor from MS1
PrecursorMassFinder reads the MS1 and MS2 spectra with the vendor’s file reader and tries to find the right precursor mass for each MS2 scan from the signals in the corresponding MS1 scan. For each MS2 scan, the MS1 peak nearest the isolation target (within 15 ppm on Orbitrap data, 20 ppm on timsTOF) is the anchor. The anchor may be a heavier isotope peak, so the candidate monoisotopic peaks are the anchor and the positions to isotope spacings ( for the vendor’s charge ) lower in (–, growing with mass), each scored by how well the intensities at its first four isotope positions match the averagine abundances , penalizing a peak one spacing lighter still (intensity ): . The best candidate’s centroid is reported.
Prefix-mass lattice
A spectrum has peaks , precursor neutral mass and charge . States are bins of width Da, chosen near 0.002 Da to minimize the worst residue-mass rounding error (0.00065 Da); bin stands for the prefix mass . Each of the edges adds one residue of mass and spans bins. The edges cover 19 residue masses (I/L merged, fixed carbamidomethyl C), oxidized M, unmodified C, and phosphorylated S, T and Y, which are searched only when requested; deamidated N/Q have exactly the masses of D/E and share their edges. Three more edges, for N-terminal modifications, may leave only bin 0, the peptide’s N-terminus. Acetylation and carbamylation edges add only the modification mass (+42.011 and +43.006 Da), and the first residue follows as its own edge. Pyro-Glu makes an N-terminal Q 17.027 Da lighter; an edge cannot have negative mass, so it is one edge for the modified Q (111.032 Da). A path starts at bin 0 and ends within bins (±0.06 Da) of
, so every path is a mass-feasible peptide, and equal-mass compositions (GG vs. N) are distinct paths through shared states (Figure 1).

Figure 1. Top: the prefix-mass lattice. The true peptide (SLAVEK, orange) is one path from bin 0 to the terminal window, normalized against all mass-feasible paths (gray); bars show the evidence at active bins. Bottom: the pipeline, whose output is a peptide with a calibrated confidence.
Potentials
Every edge is scored from the fragment evidence at the bins it touches. Evidence is computed only at a small set of active bins; all other bins share one learned vector.
Active bins. Reading a peak of as a b or y ion of charge 1 or 2 implies one of four prefix masses, . Over the 200 most intense peaks (400 for ), with intensities scaled to the base peak, the active set contains every bin within ppm of such an ; the window is relative to the fragment and at least one bin wide. A spectrum has about 6k active bins out of .
Ion-match features. For an active bin with prefix mass , ion type (series b or y, charge , mass shift ) has the theoretical
where the fragment’s neutral mass is for the b series and for the y series. The 23 ion types, with their shifts , are b and y of charge 1–3 (); a+ and a2+ (−CO, −27.995 Da); b and y of charge 1 and 2 minus HO (−18.011 Da) or NH (−17.027 Da); b+ and y+ minus HPO (−97.977 Da), the neutral loss of phosphopeptides; and five more singly charged ions (a−NH, z+1, b+HO, b−HO−NH, y−HO−NH) whose shifts follow from their formulas. The peak nearest to within 50 ppm, with relative intensity and signed error in ppm, gives three scalars: the encoded intensity , the proximity and the error ; all three are 0 if no peak lies within 50 ppm. The proximity is PointNovo’s soft matching: a near miss counts partially instead of being cut off by a hard tolerance.
Isotope features. For the primary ions b+, y+, b2+ and y2+, the peaks at (intensities ) are compared with the averagine expectation that a fragment of neutral mass has a first isotope peak times as intense as its monoisotopic peak: is near 0 for a consistent isotope envelope, and is large when the matched peak is itself the +1 isotope of a lighter fragment. Both are clipped to and divided by 3.
Global features. Each bin also carries its relative position , the precursor mass , two flags for whether b+ and y+ fall inside the observed range, and the charge one-hot (1, 2, 3, 4, ). In total, ion-match, isotope and 9 global features form .
Scorer. An MLP with three hidden layers of 64 ReLU units maps the features to an evidence vector, for ; every inactive bin gets the learned vector .
Edge potentials. Edge enters bin from bin and scores
with learned destination and source embeddings . Stacking the 24 vectors as the rows of gives
all destination terms of bin at once as , a rank-8 factorization of the bins-by-edges score matrix. Rank 8 lets the residue change how the evidence at its two flanking cleavages is read, e.g. the enhanced cleavage N-terminal to proline (the source bin of a P edge). An edge between two inactive bins has the same score, , everywhere in the spectrum.
Residue prior. The scalar adds a spectrum-conditioned prior to a static bias . The input holds the encoded intensities at the 24 immonium-ion values (within 20 ppm) and 7 globals (precursor mass, log peak count, charge one-hot). Immonium ions tell which residues are present but not where, so they enter as a prior rather than as per-bin evidence. The MLP (31→64→24, GELU) has its last layer initialized to zero, so training starts from the static prior. The CRF’s only sequence prior is thus a per-residue frequency, with no notion of which residue follows which; the rerankers (§ 3.6) add sequence context, but only among the CRF’s candidates.
Path score. A start edge landing at bin scores , and the end bin pays a penalty for its distance from the measured mass,
with a learned . A path that optionally begins with start edge and then takes edges through bins scores , and
where is the set of all mass-feasible paths. The CRF layer itself has no parameters (Table 1).
| Component | Shape | Parameters |
| Scorer MLP | 14,408 | |
| Residue prior , biases | ; 24 | 3,632 |
| Edge embeddings | 384 | |
| Start edges | 36 | |
| CRF total | 18,460 | |
| First-stage reranker; calibrator | BiGRU-64; logistic | 70,639 |
| Second-stage reranker | BiGRU-128 | 220,482 |
| Total | 309,581 |
Table 1. NovoCRF parameters, counted from the model’s checkpoints.
Training: computing Z exactly
A labeled peptide determines exactly one path , so the loss (the negative log-likelihood) is ; one forward pass plus a gather of scores, with no alignment to marginalize, unlike CTC. With , the forward recursion is
The recursion looks sequential over bins, but every edge spans at least bins (glycine, 57.02 Da). All bins of a block of consecutive bins thus depend only on earlier blocks, and the scan takes sequential steps for a precursor of 2 kDa, each updating k bins edges in parallel. For a fixed edge, the reads over consecutive are a contiguous stream at a fixed offset, not a gather. Our Triton [16] kernels fuse the scan with Eq. (2): is recomputed on the fly from the 8-d , so the dense tensor of edge scores never exists. The gradient of needs the mirror image of : sums the scores of all ways to reach bin , and those of all ways to finish a path from (the remaining edges up to an end bin , plus ). The backward recursion
runs from the terminal window down to bin 0 over the same blocks in reverse order. Every path through edge into bin is a prefix to , the edge and a suffix from , so the gradient is that edge’s posterior probability, ; fused kernels accumulate it into the gradients of , , and .
Inference: Viterbi and exact -best
Replacing log-sum-exp by max in Eq. (5) gives the Viterbi algorithm [17]: becomes the best prefix score of bin , and the arg-max path is the exact maximum a posteriori (MAP) peptide, not a beam approximation. On CPU, edges between inactive bins have the spectrum-constant score of § 3.3, so each block reduces to branch-free, vectorized max-add streams; the active bins are then rescored exactly, and back-pointers are recomputed along the best path rather than stored. To obtain the 200 best paths, a best-first (A*) [18] search runs backward from the terminal window with as an exact heuristic, so complete paths leave the queue in descending score order; is not needed. The search stops after 20,000 expansions and drops paths of more than 48 residues. Permutations of residues inside an unsupported stretch often score exactly the same; such ties are broken deterministically. Disabling a variable modification deletes its edges, which keeps search and normalization exact over the allowed peptides, unlike masking the per-step softmax of an autoregressive decoder.
Rerankers
A first-order lattice cannot order residues inside a gap without cleavage evidence and has no sequence context. As in -best rescoring for speech recognition [19], two models rescore the CRF’s candidates; both score each candidate independently and are trained by the softmax cross-entropy of the correct candidate over each list, skipping lists without it.
First stage. Each residue of a candidate is represented by a 32-d token embedding concatenated with a 32-d ReLU projection of the 86 ion features at the cleavage that follows it, and a one-layer bidirectional GRU (64 units per direction) reads the candidate. Its mean- and max-pooled states (256-d) and 8 candidate inputs (the CRF score gap to the best candidate, length, five spectrum-fit statistics, namely explained b/y intensity, explained top-20 peaks, share of cleavages with b/y support, longest uncovered run and explained internal-fragment intensity, and a constant) feed an MLP (264→64→1). It rescores the CRF’s top 200, and a 13-weight logistic calibrator turns its softmax, its top-2 margin and the candidate features into the reported confidence.
Second stage. A larger BiGRU (128 units per direction, 220k parameters) rescores the first stage’s top 20 and reads internal fragments. Each residue carries three more inputs: the intensity at its immonium ion and the intensities of the most
internal b-type fragments (2–6 residues, neither terminus) that start and that end at the residue, matched within 20 ppm. Internal fragments span the cleavages that b and y ions miss, so they speak to the order of residues inside an unsupported stretch.
Modifications never seen in training
A modification the model was never trained on can still be searched exactly. A user modification such as C+119.004 adds one edge at the unmodified residue’s mass plus the delta, so the lattice, Viterbi and -best search stay exact. The edge borrows the trained parameters of its unmodified residue: the embeddings , , the prior (with an optional offset) and the rerankers’ token. Since the CRF’s evidence lives in prefix-mass bins, the new edge reads the ion features at its true end bins, and the second stage’s immonium and internal-fragment inputs use its true mass; it has no fragment features of its own, such as a neutral loss. An entry within one bin (0.002 Da) of an existing residue is skipped.
Implementation
Training runs in PyTorch with the Triton kernels above. Inference is performed in a dependency-free C++ engine, which needs only a C++17 compiler; matrix products use a self-contained header that compiles to AVX or NEON. The NovoCRF executable, bundled together with the model weights, takes less than 4 MB on Windows.
Experiments
Data and protocol
Training. NovoCRF is trained on 10M labeled spectra that cover all 3.3M peptides of a 58.1M-spectrum pool, with about of the spectra of each peptide, mostly from MassIVE-KB [20] (4.77M), InstaNovo’s multi-enzyme set (2.95M), synthetic ProteomeTools peptides and phosphopeptides (0.81M and 0.35M) [7, 21], and CompOmics’ reprocessed PRIDE projects (0.92M). Common tryptic charge-2/3 spectra were kept with probability 0.4 to favor non-tryptic and charge-1 data.
Training details. Batches hold a variable number of spectra, capped at lattice bins (about 84 spectra). We use AdamW (learning rate , weight decay ) with a one-cycle schedule and gradient clipping at norm 1, for 80k steps from scratch. A 35k-step fine-tune at learning rate trains the phosphorylated residues, with phosphopeptide spectra sampled 2.5× and a 23k-spectrum shard of unmodified-cysteine peptides 10× more often. The rerankers are trained with AdamW (learning rate ) on batches of 64 lists: the first stage for 150k steps on the CRF’s top-50 lists of 2M training spectra, the second for 60k steps on the first stage’s top-20 lists of another 2M.
| Engine | PXD076585 human, trypsin | PXD071561 squid, Lys-C | PXD073929 frog, Glu-C | PXD072115 chickpea | PXD074750 C. auris, prot. K | PXD071022 HLA-I | PXD082505 HLA-I | Mean | |
| NovoCRF | Pep | 34.2 | 69.2 | 36.7 | 15.6 | 25.3 | 61.1 | 54.5 | 42.4 |
| AA | 58.8 | 78.6 | 61.0 | 44.7 | 49.6 | 79.9 | 75.5 | 64.0 | |
| CasanovoV5 beam 5 | Pep | 35.0 | 65.4 | 40.9 | 8.5 | 24.1 | 50.7 | 49.4 | 39.1 |
| AA | 50.9 | 68.9 | 59.1 | 25.1 | 37.9 | 65.4 | 64.3 | 53.1 | |
| CasanovoV5 beam 1 | Pep | 30.9 | 60.5 | 37.3 | 6.8 | 21.8 | 44.9 | 44.9 | 35.3 |
| AA | 44.4 | 63.0 | 52.5 | 18.6 | 31.9 | 57.4 | 58.2 | 46.6 | |
| PEAKS de novo | Pep | 14.7 | 44.6 | 20.0 | 3.4 | 13.2 | 34.0 | 23.6 | 22.0 |
| AA | 43.4 | 66.0 | 50.5 | 22.1 | 37.3 | 64.4 | 56.1 | 48.5 |
Table 3. Top-1 peptide recall (Pep) and amino-acid recall (AA) in % on the seven held-out datasets, and their means. Best per column in bold.
Development and test sets. Design choices, including this model’s training recipe and second-stage settings, were compared on five other data-dependent acquisition (DDA) datasets whose papers appeared in late 2025 and 2026 [22, 23, 24, 25, 26] and on a validation split of the training data. All results below are on seven further datasets (Table 2), one raw file each, scored once after training. All twelve were made public in PRIDE in 2026, after Casanovo v5 was released [27]. None occurs in the training sources whose projects we could check, and §4.6 reports recall on peptides absent from the training data. A lion bone set, PXD065297 [28], is used in §4.7 with the authors’ own search.
| Dataset | Sample | Enzyme; instrument | MS2 | Labels |
| PXÐ076585 [29] | human A549 | trypsin; Exploris | 131,789 | 31,275 |
| PXD071561 [30] | squid optic lobe | Lys-C; Exploris | 59,389 | 24,701 |
| PXD073929 [31] | frog toe | Glu-C; Exploris | 103,345 | 2,276 |
| PXD072115 [32] | chickpea peptides | none; timsTOF Pro | 32,981 | 18,992b |
| PXD074750 [33] | Candida auris | prot. K; Exploris | 62,389 | 22,488 |
| PXD071022 [34] | HLA-I, colorectal | none; Ascend | 85,732 | 21,887 |
| PXD082505 [35] | HLA-I, B*15:02 | none; Fusion | 208,196 | 4,643 |
| Total | 683,821 | 126,262 |
Table 2. The seven held-out test datasets (one raw file each). Labels: PEAKS DB search, 1% PSM FDR. Exploris, Ascend, Fusion: Orbitrap Exploris 480, Ascend and Fusion; prot. K: proteinase K. Without 275 labels on precursors of unknown charge.
Labels. Ground truth comes from a PEAKS 13.5 database search [36] at 1% peptide-spectrum match (PSM) false discovery rate (FDR), with the submitters’ modifications. Modifications that no evaluated tool supports were left out of the search, so every label is within reach of every tool. No test set has phosphopeptide labels.
Baselines. We compare with PEAKS classic de novo (a PEAKS 13.5 development build, DENOVO step, reading the raw files) and with Casanovo 5.0.0 using its released v5 weights [27] (47.9M parameters, counted from the checkpoint)1, with one and five beams (CasanovoV5 beam 1 and CasanovoV5 beam 5), in its benchmark configuration (precursor isotope errors 0–1, at least 7 residues, charge at most 4, 20–150 peaks), reading the same PrecursorMassFinder-generated Mascot generic format (MGF) files as NovoCRF. Each tool received the modification setting closest to what the labels carry (for Casanovo by masking tokens, and by giving its Cys token the unmodified mass on unalkylated sets). PEAKS de novo and NovoCRF (C++ engine, phosphorylation off) ran on 18 threads of an Intel i9-13900K, Casanovo on an RTX 3090.
Metrics. A prediction is correct if it matches the label residue by residue, Casanovo style: each residue within 0.1 Da and the running prefix or suffix mass within 0.5 Da, with I = L. Peptide recall is correct predictions over labeled spectra and peptide precision is correct over predicted; amino-acid (AA) recall and precision count matched residues over label and predicted residues. The area under the precision–recall curve (PR AUC) ranks predictions by each tool’s own score. Means are over the seven datasets unless stated otherwise; differences between tools are tested over datasets (paired t-test, Wilcoxon signed-rank).
Peptide- and amino-acid-level accuracy
Tables 3 and 4 give the results. NovoCRF has the highest mean peptide recall and precision, AA recall and precision, and PR AUC. Its peptide recall leads CasanovoV5 beam 5 on five of seven datasets; it trails on human trypsin (34.2% vs. 35.0%) and frog Glu-C (36.7% vs. 40.9%). It has the best AA recall on all seven. Over spectra, NovoCRF gets 12,495 labels that CasanovoV5 beam 5 misses and CasanovoV5 beam 5 gets 7,735 that NovoCRF misses. Over the seven datasets, the AA-recall lead of 10.9 points is significant (paired t-test p = 0.002; Wilcoxon p = 0.016, the smallest possible with seven datasets), while the peptide-recall lead (3.3 points; p = 0.13 and 0.16) and the PR-AUC lead (p = 0.42) are not.
| Engine | Peptide recall | Peptide prec. | Amino acid recall | Amino acid prec. | PR AUC | Spectra /s |
| NovoCRF (CPU) | 42.4 | 42.4 | 64.0 | 65.0 | 0.381 | 1,746 |
| CasanovoV5 beam 5 (GPU) | 39.1 | 40.9 | 53.1 | 56.2 | 0.366 | 32 |
| CasanovoV5 beam 1 (GPU) | 35.3 | 36.9 | 46.6 | 49.3 | 0.337 | 251 |
| PEAKS de novo (CPU) | 22.0 | 22.1 | 48.5 | 48.2 | 0.174 | 145 |
Table 4. Means over the seven datasets (%; PR AUC as a fraction) and inference throughput. Casanovo and PEAKS de novo speeds are from runs on msconvert MGF files (683,418 spectra) on a quiet machine; NovoCRF’s from 683,821 PrecursorMassFinder spectra. Best in bold.
Precursor input
With MGFs written by msconvert (vendor peak picking, precursor refinement), 11.5% of labels had a mass outside the precursor tolerance of the MGF precursor: the instrument had reported the peak (3.9%) or a heavier one (0.5%), a peak 1–7 isotope spacings lighter (1.8%), or a mass off by a non-isotopic amount (5.3%). The labels are fine, since PEAKS corrects the precursor before its search. PrecursorMassFinder’s precursors fit 97.9% of labels (Table 5). NovoCRF, which searches only ±0.06 Da around the given mass, gained 2.24 points of mean recall. CasanovoV5 beam 5, a large transformer model that can partly compensate for a wrong precursor from the MS2 ions (it finds 8–24% of the labels whose msconvert precursor was wrong, NovoCRF 0–6%), still gained 0.26 points, which shows the value of PrecursorMassFinder.
| MGF | Labels fit | NovoCRF | CasanovoV5 beam 5 | CasanovoV5 beam 1 |
| msconvert | 88.5 | 40.1 | 38.9 | 35.2 |
| PrecursorMassFinder | 97.9 | 42.4 | 39.1 | 35.3 |
Table 5. Share of labels whose mass is within the precursor tolerance of the MGF precursor, and mean peptide recall (%) with msconvert or PrecursorMassFinder MGF files.
Accuracy by fragment evidence
We classify each label by its fragment evidence in the vendor-centroided peak list. A peptide bond is observed if one of its fragment ions lies within the dataset’s fragment tolerance (0.02 Da; 0.05 Da for timsTOF) of a peak; fragments of charge 2 count for precursors of charge . We use two rules: b and y ions only, and an extended rule that adds a ions and the H₂O and NH₃ losses of b and y. An unsupported stretch is a run of consecutive residues with no observed bond between them; the spectrum constrains only its summed mass. Under the b/y rule, 17.3% of labels have a complete ladder and 43% contain an unsupported stretch of three or more residues. As a check for chance matches, fragment masses shifted by +11.5 Da, a shift that matches no ion type, “observe” 2.0% (b/y) and 6.1% (extended) of bonds, against 71.6% and 78.1% at the true masses, so the extended rule admits three times as many chance matches.
Table 6 splits peptide recall by the number of bonds without an observed ion. NovoCRF leads with up to three missing bonds under the b/y rule and up to two under the extended rule; CasanovoV5 beam 5 leads beyond. Counting labels that only one tool gets, NovoCRF is ahead by 2,031 on complete ladders and by 2,005, 1,168 and 254 with one, two and three missing bonds; CasanovoV5 beam 5 is ahead by 351 with four or five and by 347 with six or more. On the half of the labels with the highest search scores, NovoCRF leads 52.3% to 51.2%, and CasanovoV5 beam 5 still leads on those with three or more missing bonds (16.1% vs. 13.1%). CasanovoV5 beam 5’s remaining advantage is thus confined to labels in which several bonds have no b or y ion, so that the residues it chooses there cannot be read from those ions.
| Missing bonds | b/y rule: Labels | b/y rule: NovoCRF | b/y rule: CasanovoV5 beam 5 | b/y rule: CasanovoV5 beam 1 | b/y rule: PEAKS de novo | extended rule: Labels | extended rule: NovoCRF | extended rule: CasanovoV5 beam 5 |
| 0 | 21,870 | 89.9 | 80.6 | 75.3 | 70.3 | 30,984 | 80.4 | 71.3 |
| 1 | 24,183 | 73.1 | 64.8 | 59.0 | 35.8 | 27,917 | 61.8 | 54.8 |
| 2 | 20,724 | 50.7 | 45.1 | 39.6 | 16.9 | 21,643 | 37.8 | 35.3 |
| 3 | 14,740 | 25.1 | 23.4 | 19.6 | 4.1 | 13,207 | 15.6 | 16.1 |
| 4–5 | 18,495 | 8.0 | 9.9 | 7.5 | 0.7 | 14,624 | 4.9 | 6.6 |
| ≥6 | 26,250 | 0.6 | 1.9 | 1.3 | 0.0 | 17,887 | 0.4 | 1.7 |
| All | 126,262 | 42.1 | 38.4 | 34.5 | 22.4 | 126,262 | 42.1 | 38.4 |
Table 6. Peptide recall (%) by the number of the label’s bonds without an observed fragment ion, under the b/y rule and the extended rule, pooled over all 126,262 labels. Best per rule in bold.
Two illustrative cases
Figs. 2 and 3 each show a spectrum that one tool gets right and the other wrong.
In Figure 2, CasanovoV5 beam 5 is right. The label FLWAGGRASY fragments well (strong y₆–y₈), but no ion of any counted type falls between its R, A and S. NovoCRF answers FLWAGGSRAY, which only reorders these three residues: it has exactly the same mass and explains exactly the same peaks, and NovoCRF reports it with confidence 0.01. The label is almost certainly correct: its PEAKS database-search score (−10 log = 79.9) is in the top 0.5% of the dataset’s labels, and PEAKS identifies the same peptide in four other spectra of the dataset, two of which NovoCRF gets right with confidence 0.91 and 0.96. So CasanovoV5 beam 5’s answer is correct, but no counted ion (b, y, a or their neutral losses) favors it over NovoCRF’s: peptide recall credits CasanovoV5 beam 5 for a residue order that these ions do not support.

Figure 2. HLA-B*15:02 ligand (PXD082505, scan 82428, 2+). Top: fragment ions of the label FLWAGGRASY, which is also CasanovoV5 beam 5’s answer; bottom: ions of NovoCRF’s answer FLWAGGSRAY. Dark bars: b/y ions; light bars: a ions and neutral losses (“|”: bond with any matched ion; “·”: none); only the stronger b/y peaks are labeled. Both answers explain the same seven bonds and fit the precursor at −2.7 ppm; they differ only in the order of R, A and S inside the unsupported stretch R·A·S.
In Figure 3, NovoCRF is right. Every bond of the label RYAMVVEDGVVK (with oxidized M) has a b or y ion. CasanovoV5 beam 5 answers RFSMVVEDGVVK, which replaces YA by FS of exactly the same mass, so the two answers share the ions of every other bond. At the one bond where they differ, the label is supported by y₁₀–H₂O at 39% of the base peak and by a₂ (7%), besides weak b₂ and y₁₀; no ion of any counted type falls between CasanovoV5 beam 5’s F and S. Yet CasanovoV5 beam 5 reports its answer with confidence 0.83; on the labeled test spectra, 97.4% of its answers with a confidence of 0.8 or more are right. NovoCRF reports the label with 0.96. PEAKS identifies the peptide in two more spectra: on one, CasanovoV5 beam 5 gives the same answer with confidence 0.84, on the other the label; NovoCRF gets all three right. What made CasanovoV5 beam 5 prefer FS to YA here is unknown; one can only guess that a learned sequence preference might make a model overly confident in some cases where the spectrum does not have good support.

Figure 3. The reverse case: a squid peptide (PXD071561, scan 24916, 2+). Top: fragment ions of the label RYAMVVEDGVVK (oxidized M, shown as M(+16)), which is also NovoCRF’s answer; bottom: ions of CasanovoV5 beam 5’s answer RFSMVVEDGVVK, reported with confidence 0.83. M\textsuperscript{?} and FS have the same mass, so the two answers share every bond but the second: there the label has a₂ and y₁₀–H₂O (labeled), CasanovoV5 beam 5’s answer no ion between F and S.
Peptides absent from the training data
A label counts as seen if its exact peptide, modifications included, is a NovoCRF training peptide: 36.7% of labels on average, from 97% on human trypsin to 0.5–10% on squid, chickpea, C. auris and frog. On unseen labels NovoCRF’s mean recall is 38.6%, against 35.2% for CasanovoV5 beam 5 (pooled 38.7% vs. 34.5%); on seen labels it is 51.2% against 47.4%. Its lead is about as large on unseen labels (3.4 points) as on seen ones (3.8), so it does not rest on memorized peptides. (Casanovo’s training peptides differ, so “seen” refers to NovoCRF only.)
Modifications
Modifications never seen in training. Given cysteinylation (C+119.004) as a user modification (§ 3.7), NovoCRF finds 64.9% of the 578 cysteinylated labels of the HLA-I development set PXD079646, against none without it, and none of its other 9,094 labels changes.
Hydroxyproline. Collagen in bone is rich in hydroxyproline (Hyp), whose residue mass (113.048 Da) lies 0.036 Da from leucine. The lion bone set’s labels come from the authors’ MaxQuant search with Hyp as a variable modification [28] (1% PSM FDR; 3,674 labeled spectra, 2,766 with one to five Hyp). Without a user modification NovoCRF finds none of the Hyp peptides; with P+15.995 it finds 32.1% and calls 74% of the Hyp sites at the right position, while 52 of the 908 labels without Hyp receive a Hyp call and their recall drops from 56.9% to 55.3% (Table 7). At matched length the Hyp peptides are found as often as the others; overall 32% reflects that 36% of them are longer than 20 residues. Casanovo’s released residue list lacks cysteinylation and Hyp, so it was not run here.
| Peptide length | Hyp labels | Labels without Hyp | ||
| Labels | Recall | Labels | Recall | |
| ≤12 | 478 | 71.3 | 492 | 71.3 |
| 13–16 | 607 | 47.4 | 261 | 44.8 |
| 17–20 | 682 | 27.3 | 88 | 27.3 |
| >20 | 999 | 7.3 | 67 | 14.9 |
| All, P+15.995 given | 2,766 | 32.1 | 908 | 55.3 |
| All, no user modification | 2,766 | 0.0 | 908 | 56.9 |
Table 7. Lion bone (PXD065297, elastase): peptide recall (%) on the authors’ MaxQuant labels, with residues matched within 0.01 Da, so that a hydroxyproline (Hyp) site must be called as P+15.995 rather than L. The rows by length give Hyp as a user modification; the last two rows cover all labels, with and without it.
Ablations
Stages. On the validation dataset, the CRF’s top-1 is correct for 48.6%, the first-stage reranker’s for 62.7% over the CRF’s top 50, and 63.8% over its top 200, and the second stage’s, on the latter’s top 20, for 65.6%. A version of NovoCRF with only the first-stage reranker (88k parameters, no phosphopeptides in training) reached 38.1% mean recall on the test sets; this model gains 2.0–5.7 points on every dataset. On the development sets that version reached 36.9%, the same version plus a second stage 40.2% and this model 40.3%: there the second stage brings almost all the gain.
Global normalization. On MassIVE-KB development data (Table 8), replacing the global normalizer by a softmax over each state’s outgoing (or incoming) edges, i.e. a maximum-entropy Markov model on the same lattice, features and scorer, cost 8–10 points at equal training data.
| Comparison | Training spectra | Recall |
| Global CRF | 48.9 | |
| Local (MEMM), N→C | 0.86M (MassIVE-KB) | 38.9 |
| Local (MEMM), C→N | 40.9 | |
| With source term | 5.2M (MassIVE-KB) | 52.6 |
| Without source term | 49.1 |
Table 8. Development ablations on MassIVE-KB: peptide recall (%) of the CRF’s top-1 on 2k validation spectra, earlier feature set. Each group differs only in the listed component. Best in bold.
Speed, training cost and edge deployment
On all 683,821 test spectra, NovoCRF’s inference took 392 s on 18 CPU threads (1,746 spectra/s, CPU only, no GPU involved at inference on PC): 12× the throughput of PEAKS de novo on the same threads, and 7.0× and 55× that of CasanovoV5 beam 1 and CasanovoV5 beam 5 on the RTX 3090 GPU. On one thread it sequences 166 spectra/s. Training took about 17 GPU-hours on one RTX 3090, 11.1 of them for the CRF’s first 80k steps, and 6 CPU-hours for the rerankers’ candidate lists, significantly less than what multi-layer transformer models need [6].
NovoCRF’s workload fits a modern system on a chip: costly dynamic programming on the mass lattice (features, edge scores, Viterbi) can run on the GPU, the scorer MLP on the neural processing unit, and k-best search and both rerankers on the CPU, so all three units work at once. On an iPhone 14 Pro (2022, A16 Bionic) an iOS version of NovoCRF kept the CPU stage busy 97–98% of the time, the GPU 82%, the Apple Neural Engine 65%. On the colorectal HLA-I test set (85,732 spectra, phone thermally throttled) it sequenced up to 1,324 spectra/s; on that file Casanovo reached 297 (one beam) and 73 (five beams) spectra/s on the RTX 3090 and PEAKS de novo 343 on 18 CPU threads. NovoCRF on an outdated cellphone is significantly faster than one-beam Casanovo on a desktop GPU.
Discussion
What peptide recall rewards. Peptide recall against database-search labels is a meaningful benchmark, but it mixes two abilities. A database search chooses among many candidates that already have genome-level support, so it can accept a PSM with long unsupported stretches (three or more residues with no b or y ion between them; 43% of our labels have one) if its score is clearly above chance. For a de novo tool, residue orders of equal mass inside such a stretch explain the b and y ions equally well (Figure 2), so getting them right depends on learned sequence preferences or on weaker ion types; CasanovoV5 beam 5’s remaining wins concentrate in labels with four or more bonds that no b or y ion supports (§ 4.4).
One job per module. A large end-to-end model can partly compensate for a wrong precursor mass (§ 4.3). NovoCRF cannot correct a wrong mass and does not try to: it searches only peptides that fit the mass it is given, so when that mass is wrong it almost never finds the right peptide. We fix the input instead of teaching the search to distrust it, and each module can be checked and improved on its own: correcting the precursors lifted NovoCRF by 2.24 points without retraining, and the second stage lifted it by 2.7 points on the development sets without touching the CRF.
Novel peptides. De novo sequencing matters most for sequences that are not in a reference: a neoantigen’s mutation, an antibody’s somatic hypermutation, an unexpected modification. A prior learned from reference proteomes may favor the reference residue inside an unsupported stretch. NovoCRF’s lattice search returns the sequences best supported by the spectrum, and it searches modifications unseen in training at almost no extra cost, so it can be used to discover novel peptides under unusual experimental settings.
Limitations. The evidence analysis counts only the listed ion types and trusts the label inside unsupported stretches. Candidates are limited to 48 residues, and each test set is one raw file.
Conclusion
A globally normalized CRF over engineered physics features, with 310k parameters and about 17 GPU-hours of training, exceeds five-beam Casanovo v5 in mean peptide recall and, significantly, in amino-acid recall on seven held-out datasets, on a CPU at 55× its throughput. CasanovoV5 beam 5 leads only on labels with long stretches that no b or y ion supports; reporting recall by fragment evidence would make de novo benchmarks more informative than the headline recall alone.
Availability. The compiled binaries of NovoCRF for Windows and Linux x86_64 are provided in https://github.com/volpato30/NovoCRF-release. Test data: PRIDE (Table 2).
References
- [1]B. Ma, K. Zhang, C. Hendrie, et al. PEAKS: powerful software for peptide de novo sequencing by tandem mass spectrometry. Rapid Commun. Mass Spectrom., 17(20):2337–2342, 2003.pubmed.ncbi.nlm.nih.gov/14558135
- [2]B. Fischer, V. Roth, F. Roos, et al. NovoHMM: a hidden Markov model for de novo peptide sequencing. Anal. Chem., 77(22):7265–7273, 2005.pubmed.ncbi.nlm.nih.gov/16285674
- [3]N. H. Tran, X. Zhang, L. Xin, B. Shan, and M. Li. De novo peptide sequencing by deep learning. Proc. Natl. Acad. Sci. USA, 114(31):8247–8252, 2017.DOI
- [4]R. Qiao, N. H. Tran, L. Xin, et al. Computationally instrument-resolution-independent de novo peptide sequencing for high-resolution devices. Nat. Mach. Intell., 3(5):420–425, 2021.DOI
- [5]M. Yilmaz, W. E. Fondrie, W. Bittremieux, S. Oh, and W. S. Noble. De novo mass spectrometry peptide sequencing with a transformer model. In Proc. ICML, PMLR 162:25514–25522, 2022.DOI
- [6]M. Yilmaz, W. E. Fondrie, W. Bittremieux, et al. Sequence-to-sequence translation from mass spectra to peptides with a transformer model. Nat. Commun., 15:6427, 2024.DOI
- [7]K. Eloff, K. Kalogeropoulos, A. Mabona, et al. InstaNovo enables diffusion-powered de novo peptide sequencing in large-scale proteomics experiments. Nat. Mach. Intell., 7(4):565–579, 2025.DOI
- [8]Z. Jin, S. Xu, X. Zhang, et al. ContraNovo: a contrastive learning approach to enhance de novo peptide sequencing. In Proc. AAAI, 38(1):144–152, 2024.arxiv.org/abs/2312.11584
- [9]X. Zhang, T. Ling, Z. Jin, et al. π-PrimeNovo: an accurate and efficient non-autoregressive deep learning model for de novo peptide sequencing. Nat. Commun., 16:267, 2025.DOI
- [10]Z. Mao, R. Zhang, L. Xin, and M. Li. Mitigating the missing-fragmentation problem in de novo peptide sequencing with a two-stage graph-based deep learning model. Nat. Mach. Intell., 5(11):1250–1260, 2023.DOI
- [11]J. Lafferty, A. McCallum, and F. Pereira. Conditional random fields: probabilistic models for segmenting and labeling sequence data. In Proc. ICML, pp. 282–289, 2001.
- [12]D. Andor, C. Alberti, D. Weiss, et al. Globally normalized transition-based neural networks. In Proc. ACL, pp. 2442–2452, 2016.arxiv.org/abs/1603.06042
- [13]A. Frank and P. Pevzner. PepNovo: de novo peptide sequencing via probabilistic network modeling. Anal. Chem., 77(4):964–973, 2005.pubmed.ncbi.nlm.nih.gov/15858974
- [14]B. Ma. Novor: real-time peptide de novo sequencing software. J. Am. Soc. Mass Spectrom., 26(11):1885–1894, 2015.
- [15]J. Zhou, S. Chen, J. Xia, et al. NovoBench: benchmarking deep learning-based de novo peptide sequencing methods in proteomics. In NeurIPS Datasets and Benchmarks Track, pp. 104776–104791, 2021.
- [16]P. Tillet, H. T. Kung, and D. Cox. Triton: an intermediate language and compiler for tiled neural network computations. In Proc. ACM MAPL, pp. 10–19, 2019.DOI
- [17]A. J. Viterbi. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE Trans. Inf. Theory, 13(2):260–269, 1967.
- [18]P. E. Hart, N. J. Nilsson, and B. Raphael. A formal basis for the heuristic determination of minimum cost paths. IEEE Trans. Syst. Sci. Cybern., 4(2):100–107, 1968.DOI
- [19]R. Schwartz and Y.-L. Chow. The N-best algorithms: an efficient and exact procedure for finding the N most likely sentence hypotheses. In Proc. ICASSP, pp. 81–84, 1990.
- [20]M. Wang, J. Wang, J. Carver, et al. Assembling the community-scale discoverable human proteome. Cell Syst., 7(4):412–421, 2018.DOI
- [21]D. P. Zolg, M. Wilhelm, K. Schnatbaum, et al. Building ProteomeTools based on a complete synthetic human proteome. Nat. Methods, 14(3):259–262, 2017.DOI
- [22]D. Catalán, D. Schneider, B. Pesce, et al. HLA class I-naturally presented synovial tissue peptides are recognized by CD8+ T lymphocytes from rheumatoid arthritis patients. Front. Immunol., 17:1843318, 2026.DOI
- [23]V. Chang, R. J. Chen, I. Lian, K. E. Mahoney, and S. A. Malaker. O-glycosylation shapes the proteolytic landscape of the native tear peptidome. JACS Au, 6(7):4321–4335, 2026.DOI
- [24]H. M. Garcia Alvarez, S. Kaabinejadian, H. Yari, et al. NetMHC-IphosPan: a machine learning tool for predicting HLA class II antigen presentation of phosphorylated peptides. J. Proteome Res., 25(5):2529–2545, 2026.
- [25]V. L. Simhadri, P. Bajgain, S. Vijayanand, et al. Pre-existing antibody and T cell responses to SaCas9, AsCas12a and CasΦ are comparable in naïve individuals. Nat. Commun., 17:8166, 2026.DOI
- [26]E. Maffioli, S. Nonnis, F. Grassi Scalvini, et al. Chronic environmental temperature affects protein expression in the eye of adult zebrafish (Danio rerio). Sci. Rep., 16:392, 2025.DOI
- [27]G. Straub, V. Ananth, W. E. Fondrie, et al. Improvements to Casanovo, a deep learning de novo peptide sequencer. J. Proteome Res., 25(2):755–764, 2026.DOI
- [28]X. Sun, L. Peng, T. Tsutaya, et al. The Japanese Archipelago sheltered cave lions, not tigers, during the Late Pleistocene. Proc. Natl. Acad. Sci. USA, 123(6):e2523901123, 2026.DOI
- [29]D. Pal and S. K. Sandur. Global proteomics of peroxiredoxin 6 knockdown A549 cells subjected to ionizing radiation. PRIDE dataset PXD076585, 2026.
- [30]J. M. Moen, A. L. Richards, E. K. Krogsæter, et al. Functional diversification of the cephalopod proteome by RNA editing. Cell, 2026. doi:10.1016/j.cell.2026.09.043.DOI
- [31]A. P. Sachslehner, J. Steinbinder, A. Wagner, K. Kratochwill, and L. Eckhart. Evolution of an amphibian-specific family of epidermal differentiation-associated genes. Mol. Biol. Evol., 43(8):msag196, 2026.DOI
- [32]I. Bera, R. Fernández-Díaz, M. O’Sullivan, et al. Optibomics mapping of proteolysis highlights triple activation of sprouted seeds by germination, homogenisation and species mixture. Food Chem., 517:1494370, 2026.
- [33]S. Rodrigues Dos Santos Junior, P. R. Stempinski, A. Van Wieren, et al. Protein-related hydrophobicity differences among strains belonging to Candida auris (Candida auris) clades. Microbiol. Spectr., 14(5):e02897-25, 2026.DOI
- [34]M. Courchelles, M.-P. Hardy, C. Durette, et al. Noncanonical transcription and splicing shape the colorectal cancer immunopeptidome in MSI and MSS tumors. Mol. Cell. Proteomics, 25(6):101581, 2026.
- [35]S. Hwang, M. Yano, Y. Jang, et al. Carbamazepine activates private self and viral reactive TCRs through a drug-permissive HLA-B cleft. Front. Immunol., 17:1919927, 2026.DOI
- [36]J. Zhang, L. Xin, B. Shan, et al. PEAKS DB: de novo sequencing assisted database search for sensitive and accurate peptide identification. Mol. Cell. Proteomics, 11(4):M111.010587, 2012.DOI