Protein annotation leaderboard

Region pile-up

Where each tool's calls fall around 2,435 known Pfam domains on 998 human proteins, searching the zebrafish proteome (430 million years since the split).

Data from 15 Oct 2026, commit 4a4b1171 (source)

The 7 aligners cover 78% to 86% of each domain on average, and also 71% to 84% of the 100 residues either side: their calls run well past the domain's ends. kmerseek (gbmr4, k = 21, its best setting by Fmax) misses 83% of the domains. hmmscan, graded on its own models, covers 99% inside and 29% of the flanks.

Loading 23 panels…

Figure 9. Calls piled up around each domain, one panel per tool. Top of each panel: the share of domains covered at each position, from 100 residues before the domain's start to 100 after its end. Below: every domain as a row; stronger colour means more of the rows there are covered. Click a panel to draw it full size below.
share of all domains covered, in the tool's colour thin line: the same, one domain per Pfam family the domain's start and end not covered past the protein's end
How to read a panel: covered, missed, inside, flanks, edge sharpness

A call is a stretch of a human protein that a tool matched to a zebrafish protein carrying a Pfam domain. It names that domain and spans the whole matched stretch, which can be much wider than the domain. A residue is covered when a call naming that row's own Pfam family spans it, at any score the tool reported (E-value cutoff 10). Covered does not mean correctly placed: a call that runs far past the domain still covers it.

Each row shows 100 residues before the domain, then the domain stretched or squeezed into 100 equal steps, then 100 residues after it, as deepTools does for genes. The median domain is 89 aa, so one step is about 0.9 aa.

The numbers under each panel: missed is the share of domains with no covered residue inside (lower is better). Inside is the mean coverage inside the domain (higher is better). Flanks is the mean coverage in the 100 residues either side; for placing domain ends lower is better, though a second copy of the same domain nearby counts as covered too. Edge sharpness is how many residues the curve takes to fall from 0.8 to 0.2 at each end of the domain: fewer residues means a sharper edge. "None" means the curve never reaches 0.8 inside the domain, or never falls to 0.2 within 100 residues outside it; the chosen panel below says which.

Rows from one protein or one family are not independent, so the thin line repeats the curve with one domain per Pfam family (1,089 families).

Figure 9, chosen panel: . Hover a row to see its protein, domain, coordinates, calls and residues.
Order rows (in every panel) by:
left strip: rows from one protein share a shade Colour by:

Identity is the best pairwise identity between the human domain and any zebrafish domain of its family. Domains with no such domain, or no matching AlphaFold model, sort last.

Where calls start

Figure 10. Among the aligners, 45% (phmmer) to 60% (ProstT5 + Foldseek) of calls start more than 100 residues before the domain, because a call spans the whole matched stretch. hmmscan's calls start on the domain, whose ends its own models define. Each panel is one tool. For each domain with a call, it takes the call that overlaps the domain most (ties to the higher score, then the earlier start). It plots that call's first residue minus the domain's first residue, as a share of the tool's domains with a call (n on the panel), in 5-residue steps. The end bins hold everything beyond 100 residues. kmerseek is drawn at gbmr4, k = 21 (gbmr4_k21_lcFalse). All panels share one vertical scale except hmmscan's, whose peak near 1 would flatten the rest. Where calls end is not drawn.
this panel's tool, in its colour the other tools, for comparison 0: the call starts on the domain's first residue

Counts and sources

2,429 of the 2,435 domains have at least one residue inside their protein's sequence; the readouts use those. With one domain per Pfam family (1,089 families), the domain kept is the first by protein accession, then start. 9 Pfam domains run partly or wholly past the end of the protein sequence this run searched, so their Pfam coordinates belong to a different version of the sequence.

The 9 domains that run past their protein's end
  • P15692 PF00341: 232–310 on a 232 aa sequence
  • P15692 PF14554: 342–395 on a 232 aa sequence
  • Q5VWP3 PF15274: 130–906 on a 458 aa sequence
  • Q8NFD5 PF12031: 2010–2265 on a 2236 aa sequence
  • Q9Y233 PF00233: 790–1021 on a 779 aa sequence
  • Q9Y4K1 PF00030: 1728–1811 on a 1723 aa sequence
  • Q9Y4K1 PF00030: 1824–1903 on a 1723 aa sequence
  • Q9Y4K1 PF00030: 1911–1991 on a 1723 aa sequence
  • Q9Y4K1 PF00652: 1996–2124 on a 1723 aa sequence

The pile-up's own tables (domains and calls) come from seanome/2024-kmerseek-analysis at commit 39d81ec9 (results/leaderboard/pileup).