APB Catalog¶
APB Catalog tells a consumer which field of an APB2 result carries the meaning it needs, so the consumer never names vendor columns such as MaxQuant's PEP, Spectronaut's EG_PEP or DIA-NN's Q_Value.
from apb_catalog.api import Catalog
catalog = Catalog(parsed, "identification_confidence")
catalog.layer("ion", concept="confidence") # ('pep', 'q_value')
pep = catalog.layer("ion", concept="confidence", kind="pep")
pep is the apb2 layer table itself, the same ions × runs as the abundance layer, or None when the vendor reports no PEP.
Catalogues per consumer¶
A catalogue annotates only what one consumer needs, never every vendor column.
| Set | Used by | Annotates |
|---|---|---|
identification_confidence |
apb-aggregate | Per-run and per-feature PEP and q-value, how likely each identification is correct |
miape |
MIAPE-AnnData export (draft) | Protein, peptide and peptidoform fields and the raw layer of the MIAPE-AnnData 0.4.0 draft |
proteobench_entrapment |
apb-proteobench entrapment scoring | Run, library and experiment-wide precursor q-values, each its own kind |
Every set lists every rule APB2 packages, so a vendor without a relevant field answers None, while a software version nobody reviewed raises. See Catalogues for every entry.
Catalogue or column role?¶
APB2 rules already declare some meanings themselves: each column entry in rules.json can carry semantic roles such as abundance, protein_assignment or fasta_accessions, and every result records them in uns["column_roles"] and uns["layer_roles"]. The role policy owns the vocabulary.
Rule of thumb:
- Meaning several tools need, or apb2 itself defines → role in
rules.json - Meaning one consumer or an external standard needs → catalogue
- A catalogue copy of a role would be a second source of truth
How it stays correct¶
- An entry holds for the software versions it was reviewed against: the
software_nameandsoftware_version_patterneach level's storedrule_jsondeclares - Tests fail when APB2 adds a rule version or level, until a reviewer adds its variant; editing a rule within a version keeps its entries
- Lookups never transform values; the consumer reads the layer or column it is handed
- A snapshot of every lookup can be stored in the result, readable without this package
Pages¶
- Get started: install, look up, use the data, map to MIAPE
- Catalogues: every entry of all three sets
- Python API: lookups, errors and snapshots
- Maintaining: APB2 rule changes, new consumers, a worked catalogue example