CoolFace
Datasetpublic

Synthyra/SwissProt-Annotation-Vocabulary

Swiss-Prot Annotation Vocabulary 2026_02 This release converts a pinned Swiss-Prot snapshot into a versioned protein annotation vocabulary. Stable, namespaced term identifiers are the biological identity. Integer tokens are specific to this vocabulary and grammar version. Release summary Field Value Vocabulary version 2026_02-support10-v1 Grammar version 1 Swiss-Prot release 2026_02 Swiss-Prot release date 2026-06-10 Build date 2026-08-26… See the full description on the dataset page: https://huggingface.co/datasets/Synthyra/SwissProt-Annotation-Vocabulary.

sourceHugging Faceotherupdated 27d agoView on Hugging Face
1likes263downloads
Dataset Card

Swiss-Prot Annotation Vocabulary 2026_02

This release converts a pinned Swiss-Prot snapshot into a versioned protein annotation vocabulary. Stable, namespaced term identifiers are the biological identity. Integer tokens are specific to this vocabulary and grammar version.

Release summary

FieldValue
Vocabulary version2026_02-support10-v1
Grammar version1
Swiss-Prot release2026_02
Swiss-Prot release date2026-06-10
Build date2026-08-26
Proteins575,503
Retained terms66,967
Terms below support threshold108,484
Local annotation intervals or points10,259,463
Minimum protein support10

Load the data

Each table is a named Hugging Face configuration:

python
from datasets import load_dataset

clusters = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "clusters")
excluded = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "excluded")
migration = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "migration")
minimal = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "minimal")
rich = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "rich")
terms = load_dataset("Synthyra/SwissProt-Annotation-Vocabulary", "terms")

Pin a Hub commit revision for reproducible downstream work.

Dataset configurations

ConfigurationPurposeSplit paths
clustersWhole-cluster split assignments.clusters: clusters/cluster_assignments.parquet
excludedObserved terms below the configured support threshold.excluded: terms/excluded_terms.parquet
migrationAudited legacy raw-token migration outcomes.migration: migrations/legacy_to_current.parquet
minimalSequence and annotation-token view.train: views/sequence_annotations/train-*.parquet; validation: views/sequence_annotations/validation-*.parquet; test: views/sequence_annotations/test-*.parquet
richFull protein records and provenance.train: data/train-*.parquet; validation: data/validation-*.parquet; test: data/test-*.parquet
termsRetained token and stable-identifier dictionary.terms: terms/term_dictionary.parquet

Tables and columns

The rich protein table contains the full release record. Its main fields are:

ColumnTypeMeaning
accessionstringSwiss-Prot primary accession.
sequencestringProtein sequence.
vocabulary_versionstringVersion that defines the biological token mapping.
grammar_versionstringVersion of the aspect and identifier ordering rules.
source_releaseslist[struct]Pinned source-field and release pairs used by this build.
annotationslist[int32]Sorted unique union of retained global and local biological tokens.
global_term_idslist[string]Stable namespaced identifiers for global terms.
global_tokenslist[int32]Version-specific tokens for the global terms.
global_labelslist[list[string]]Source labels for each global term.
global_evidencelist[list[string]]Evidence identifiers for each global term.
global_raw_valueslist[list[string]]Source assertions exposed by the source adapters for each global term.
global_relationslist[list[string]]Source relations for each global term.
global_source_referenceslist[list[string]]Source references for each global term.
local_stable_term_idslist[string]Stable identifiers for coordinate-bearing terms.
local_term_idslist[int32]Version-specific local-term tokens.
local_starts, local_endslist[int32]Parallel 1-based inclusive coordinates.
local_feature_typeslist[string]UniProt feature keys such as ACT_SITE, BINDING, and DOMAIN.
local_evidencelist[list[string]]Source evidence identifiers, when supplied.
taxon_id, lineage_taxon_idsint64, list[int64]NCBI taxonomy identifiers.
cluster_idstringMMseqs2 cluster identifier.
splitstringCluster-disjoint split assignment.

All global_* arrays are parallel at the outer level; each inner provenance list contains the sorted unique values exposed by the source adapters for that term. All local_* arrays are parallel and have equal length within a row. The table also retains local source labels, descriptions, feature identifiers, coordinate modifiers, ligand identifiers, relations, and source references.

Taxonomy is rich protein metadata, not an annotation-vocabulary aspect. taxon_id, lineage_taxon_ids, and lineage_names are retained from the pinned NCBI taxonomy enrichment for stratification and confound control. Taxonomy does not receive biological tokens and is absent from global_term_ids, global_tokens, annotations, the term tables, and migration targets.

InterPro remains in the target vocabulary. Gene3D removal is a measured recipe decision, not a missing parser path: in the completed V1 coverage audit, only 468 of 574,627 Swiss-Prot proteins would lose their sole domain-level annotation when Gene3D was removed and InterPro retained. Raw Gene3D observations are used only for that separately recorded review. Gene3D is absent from global term and token arrays, minimal annotations, retained and excluded term tables, released per-aspect statistics, and migration targets.

The minimal table contains only sequence and annotations. The terms table maps every retained integer token to stable identity, label, description, locality, support, deterministic grammar-key material, observed evidence codes, relations, source references, hierarchy or replacement identifiers when supplied, source-pin fields, vocabulary version, and the primary source-specific release. sort_aspect_rank is the configured aspect-grammar rank. sort_identifier_key is compact JSON containing the remainder of the canonical term sort key: naturalized accession components, case-folded source database, and canonical term ID. Evidence codes, relations, and source references are sorted unique unions over all non-negated observations of the term. source_provenance names the pinned input fields that define or observe the term, while source_release is the primary source-specific release for that aspect.

parent_ids contains direct, canonical, source-prefixed parent term IDs exposed by the selected ontology adapter; a parent need not pass this vocabulary's support threshold. replacement_ids contains only canonical, source-prefixed automatic replacement IDs backed by an explicit source assertion such as Gene Ontology replaced_by. Gene Ontology consider suggestions are excluded from automatic replacements and remain migration manual-review candidates. Either array is empty when no selected source adapter exposes the assertion. The separate migration table is authoritative for old-token translation because multiple historical tokens can resolve to one current term.

Clustering and splits

Sequences were clustered with MMseqs2 eec9c354be4276d2373996af2e50808b1390d527 at 30% sequence identity and 50% alignment coverage. Coverage mode 0 requires the query and target to each meet the threshold. Equivalently, the minimum of query coverage and target coverage must be at least 50%.

Whole clusters were assigned with seed 42 toward 90% train, 5% validation, and 5% test by protein count. A cluster occurs in exactly one split.

SplitTargetProteinsActualClusters
train90%517,95390.00%53,857
validation5%28,7755.00%2,993
test5%28,7755.00%2,993

Vocabulary identity and grammar

Canonical identifiers use av::aspect::source_database::stable_accession. Terms are ordered first by the explicit aspect grammar and then by natural stable-accession order. Biological tokens start at zero. Special tokens are appended after all biological tokens, so they cannot collide with biological token zero.

Terms observed in fewer than 10 distinct Swiss-Prot proteins are excluded from the integer vocabulary. Their measured counts remain in the release artifacts so another threshold can be applied without treating absence as nonexistence.

AspectRetained terms
cofactor76
disease108
ec2,125
go_bp9,106
go_cc1,801
go_mf4,407
interpro17,829
keyword1,084
local_active_site1
local_binding1
local_chain1
local_coiled_coil1
local_compositional_bias1
local_crosslink1
local_disulfide1
local_dna_binding1
local_domain1
local_glycosylation1
local_helix1
local_interpro17,924
local_intramembrane1
local_lipidation1
local_modified_residue1
local_motif1
local_peptide1
local_propeptide1
local_region1
local_repeat1
local_signal_peptide1
local_site1
local_strand1
local_topological_domain1
local_transit_peptide1
local_transmembrane1
local_turn1
local_zinc_finger1
membrane_orientation8
membrane_topology10
pfam7,659
rhea4,426
subcellular_location377

Local annotation coordinates

Local starts and ends are 1-based and inclusive, matching the normalized release convention. For a Python string, use sequence[start - 1:end]. Point features have start == end. Paired features, such as disulfide bonds, use local_pair_members to preserve endpoint membership.

Fuzzy, unknown, or out-of-range source coordinates are not converted into exact spans. Their exclusions and counts belong in the build manifest. A local term reports a source annotation at that position; it does not establish that every residue inside a broad region has the same function.

Migration from older raw tokens

Migration follows four explicit steps: old raw token to the old token dictionary, old label to a stable biological identifier, official replacement or obsolete-term mapping when available, and stable identifier to the new token dictionary. It never assumes that an integer has the same meaning across vocabulary versions.

Each migration row reports one of the API statuses: exact, replaced, current_but_filtered, current_not_observed, ambiguous, obsolete, removed/unmapped, unknown_old_token, or invalid_legacy_label. current_but_filtered means the term is current and observed in this Swiss-Prot release, but measured protein support is below the vocabulary threshold; its canonical candidate is retained with a null token and no automatic token is assigned. current_not_observed means a source-backed current or canonical candidate is absent from this pinned Swiss-Prot release; the candidate is retained with a null token and no automatic token is assigned. ambiguous includes every Gene Ontology consider suggestion, even a single suggestion, and records manual_review_candidates separately. Outcomes other than exact or replaced require review. Legacy token zero is also reported explicitly because the historical Translator vocabulary used zero for both a biological term and padding in different contexts. Callers must state whether input tokens are biological annotations or model-sequence tokens.

Legacy _threed labels retain their parsed Gene3D identity for audit but always report removed/unmapped with exclusion_reason=aspect_excluded_from_target_recipe. They have no candidate, new term, or new token, even if a caller supplies a replacement bridge.

Sources and licenses

This card uses license: other because the release combines records derived from multiple upstream resources. No new license grant is asserted here. Users must follow the terms named by each source and verify them for their intended use.

SourceReleaseURLLicenseSource SHA-256
Gene Ontology Basicreleases/2026-07-26https://purl.obolibrary.org/obo/go/go-basic.oboCC BY 4.0b08d45b268b8c24ccb2513dbbbc7d4df9f6521c099b413f79eb31e06e0fa3bcc
InterPro protein coordinates109.0https://ftp.ebi.ac.uk/pub/databases/interpro/releases/109.0/protein2ipr.dat.gzCC0 1.0b4f50cb086299854ed1f6a47eea92b72213fd030c88a03a22212646c3d219efe
NCBI Taxonomyretrieved-2026-08-26https://ftp.ncbi.nlm.nih.gov/pub/taxonomy/taxdump.tar.gzNCBI data usage policybec88639770804dc166e99b37dacc514de38841be5aee15ee3ad849d6b3b277d
UniProt disease vocabulary2026_02https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/docs/humdisease.txtCC BY 4.0bb42e9b1e7a85b1d9867e3996f90e6e3aca6caef4cae904012fdd84bb2ed9e22
UniProt keyword vocabulary2026_02https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/docs/keywlist.txtCC BY 4.0090f1b8625ef483db4d010185c1f038084847cd982ae9a9cc1e3edd11304d59d
UniProt subcellular-location vocabulary2026_02https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/docs/subcell.txtCC BY 4.078989ca7bfa17138a537d30817230620cb399e6fdb968effbd44e9f2feaa5257
UniProtKB release metadata2026_02https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/complete/reldate.txtCC BY 4.07ef2a745c849694a02dce241741f02491248424481219d36284cb9fdca198ce1
UniProtKB/Swiss-Prot DAT2026_02https://ftp.uniprot.org/pub/databases/uniprot/currentrelease/knowledgebase/complete/uniprotsprot.dat.gzCC BY 4.0741bcb144f98b8d10f0369b145d562b6751bfd17c285e936553aeb9cb54ab592
UniProtKB/Swiss-Prot FASTA2026_02https://ftp.uniprot.org/pub/databases/uniprot/currentrelease/knowledgebase/complete/uniprotsprot.fasta.gzCC BY 4.0b774748a050fd3de0bf2ad49b359ed59a2c2b02c89df3fe0679fafa446751794

Artifact integrity

The release manifest fixes artifact paths, byte sizes, row counts where applicable, and SHA-256 digests. Verify the digest after downloading an artifact and pin the exact Hub revision used by an experiment.

PathRowsBytesSHA-256
.gitattributes4630129f61f2a1b984b358279fb24769ff73836dc7f839a765b67775ae2af04a13
clusters/cluster_assignments.parquet2,189,703a04da313f28d9a5a148cf0dec8e1920d1c5d98cbe830a93977ca8eb50e7c4e30
clusters/mmseqs_memberships.tsv8,105,806bb7d5f36e991ba8be0b3c236f4408d69fca214f65ab27ba7cfabce424730afba
data/test-00000-of-00001.parquet19,980,440d2d84c78e1ee737103816cf03757848f8704e65af37ff2d666a247d29c44e8eb
data/train-00000-of-00011.parquet43,698,534ce44ee828717dafb94523fd0117f314d490b84a7a0db493e924f154cd96823a8
data/train-00001-of-00011.parquet40,517,142b3b2ce9f818a22a437716f44ce0a52c7be1967b52cbf473085a37c319baf06b5
data/train-00002-of-00011.parquet36,225,780412b5483e00409684843590368fc9ba12176f9dbf7cdbd4ccb22716e23ce3ad2
data/train-00003-of-00011.parquet55,083,3061e8d9e99592f1196457e7b25af94493c142acad8714c2401d69f7ac0d63afa77
data/train-00004-of-00011.parquet56,681,27093f178980662be456c4dbcb6ec0b81b4988bd861e9bf05bf8672458311d7669c
data/train-00005-of-00011.parquet47,541,3027bb7802cf1acd714526bc4372fe580ed5589f26e9094975d70363423735878ae
data/train-00006-of-00011.parquet46,209,83798db8e73bad750ed186adbac6c04a9b52020aa2707bb64ac29015fc1eb50a50f
data/train-00007-of-00011.parquet53,536,1510209d51103fe65c8e3f85243c2a1eb7f52097a2845f55a5b07f83ac71da956b1
data/train-00008-of-00011.parquet50,954,194c2b2c44f93552335e2bc88de3e69ed886f73092b8e5f6d8add1e196a3952a69a
data/train-00009-of-00011.parquet59,631,604b4e751001c359b1e591ad051bb5717e7b162b2c0da6c99d586ed71fa68b61c3d
data/train-00010-of-00011.parquet22,851,808a87010c71badea1436dad3fc0f2ef9b389feb8d42f8a0a0c19c75d94fecc44f2
data/validation-00000-of-00001.parquet20,711,059336fd02dc61ab46da5e3ca307f084ccecaba97f5852ff19f998bfe01a3e17333
manifests/build.json175,2875adb57dd09a878de309c3299dbf1a5636c9e1dfb45af339e62f5e94a63d1c12f
manifests/clustering.json2,4301e83b8a07a69cd3079ecfc841aef27f8205e83d0a63181a802f0ce12dacd7e3a
manifests/mmseqs_run_manifest.json2,4049c64b27b8f252afb1922b4e6feb405f80edb3337a8b4013b44eda525986cded3
manifests/software.json15,592a0f22ae7d3f931ee0596409081bbfda5e5294a72bfe60a1fea4d83ef0e42e1dd
manifests/source_pins.json3,335743d4022ce44906d2b33df488a3b183c4062c85bb4526ce70651c826cd3541a3
manifests/sources.json6,329aa6aaf5b2406ebda86c5f298c8f04787a4c5028aa98348388758b2ce1c0dd01c
migrations/legacy_release.json97,903,985a803561b938b59a5d83ccd0e67a949adae967d29ad6a034327b77a3a15eada61
migrations/legacy_to_current.parquet3,508,117d6b76d39d25124027e5dacdf24abb3d5ccd0c9b28e4b3a5af793038fbbd8c9b4
migrations/legacy_vocabulary.json6,079,624e2f98fc8d1ce7c12d29a4add3ac093d04834529ea84c1606719bf425f27b5f61
migrations/legacy_vocabulary.parquet1,097,96458cd14c2b3b2edac3657e77190d9476b94c86aa4b7f7cd324b0a63e49855e2f7
migrations/replacement_rule_audit.json1,55762994c8d1071cd7b1971774edc481c78c87a600de5c42ac9e1c29c8288ee1536
software/requirements-analysis-py312-cu128.lock.txt3,21611c3ced98a8d7c16d7884961c8246671b3faebd66e9925029a246fcfbdfd8fe1
software/source_snapshot.tar.gz214,52546be750e5f4a41a64ba0a0a7fc7599dedfc131d3dfff0e3f867c997321de694d
terms/excluded_terms.parquet3,805,978363eee8f185aa77fcec2ea151f78f1a74a075acf10d6ade448f37421d81b7e5e
terms/term_dictionary.parquet3,997,855daa646fa4e7563b4df65ce389483368c1711180864f48b1ccb5a4fe840291e41
views/sequence_annotations/test-00000-of-00001.parquet4,639,417ea4dafb9e1e4d34c12712f4ebb46b5dccdb7127e849dd5a0bcc855d721dbf45a
views/sequence_annotations/train-00000-of-00011.parquet9,756,186766847e06c1a5680c81d5934c3365b12b98849506858f0ba9a137b32f8f5f19b
views/sequence_annotations/train-00001-of-00011.parquet9,033,779d282b9422126cd27ec1a67513bd61600719d64ce88a6d855d041f92ee9fe6f48
views/sequence_annotations/train-00002-of-00011.parquet7,290,9846a4b80a822d101c34be189ae1666f03af912412e3c76c80ccc9c6192d3a28cae
views/sequence_annotations/train-00003-of-00011.parquet10,875,412db4dcbb8935ee36ba565dc82152fd179c1116babb489db759de49289d242f111
views/sequence_annotations/train-00004-of-00011.parquet10,204,02387c10064de051dd75eb751605373c5e224b792f2a7bd2b16befcd105b1220c2a
views/sequence_annotations/train-00005-of-00011.parquet8,963,88390c0660c7f2028847dfcf7ab5afdf6e9be603b72413d36ce0a24f00ea946b8bd
views/sequence_annotations/train-00006-of-00011.parquet9,536,259cbb2f3b2c64a30c50f5afda5b5392ed5663df50a28912f52a2f628e37fb16051
views/sequence_annotations/train-00007-of-00011.parquet11,765,15438bd9f626e93487fcce54d7c29d8e4c27d2f1b4948a64ed037f4b225e4e3e88e
views/sequence_annotations/train-00008-of-00011.parquet10,864,914f4100ca144629aea6f79d2bbbed142f4a41cdf92799ee43c39c9610883f9a11f
views/sequence_annotations/train-00009-of-00011.parquet12,342,96198135c8422f11b69f02e3a8958745c9dd38741e1d825324d82c3ff4da6e5698c
views/sequence_annotations/train-00010-of-00011.parquet4,986,846f2b5b88e9fd4119ae30e70cf6e77a08f0d850547c4e722f4cdb63a491f03a649
views/sequence_annotations/validation-00000-of-00001.parquet4,704,576ce980714c60b49cd71ca4baafd12847987f0cf83a4625558efaf87c7b31bfd7d

Caveats

  • Swiss-Prot annotations are curated but incomplete and concentrated in well-studied proteins and taxa.
  • The support filter removes rare terms from integer labels, not from biological reality.
  • Sequence length and annotation count are correlated in Swiss-Prot. Naive pooled association or prediction can exploit annotation density and the number of opportunities for a model feature to activate. Use cluster-disjoint evaluation and control both quantities.
  • Taxonomy can act as a shortcut in predictive models. Evaluate results with taxonomy and sequence length controlled when they can confound the question.
  • MMseqs2 cluster-disjoint splits limit leakage under the stated sequence thresholds. They do not exclude every remote evolutionary, structural, or functional relationship.
  • Database annotations, migration matches, and model associations are evidence-bearing records. They are not experimental confirmation of a protein function or residue mechanism.
  • Rich provenance is lossless for values exposed by the selected source adapters, not necessarily for every raw source line. Biopython's Swiss-Prot parser normalizes keyword fields and does not expose raw keyword ECO blocks. A full scan found no evidence-bearing keyword lines in the pinned 2026_02 DAT; future source releases must repeat this audit.
  • Exact build exclusions, parser decisions, source checksums, and validation results are defined by the pinned manifests, not by mutable upstream URLs.

Citation

Cite the exact Hugging Face commit revision loaded by the experiment and the upstream resources listed in this card.

bibtex
@dataset{annotation_vocabulary_2026_02,
  author = {Annotation Vocabulary contributors},
  title = {Swiss-Prot Annotation Vocabulary 2026_02},
  year = {2026},
  version = {2026_02-support10-v1},
  publisher = {Hugging Face},
  url = {https://huggingface.co/datasets/Synthyra/SwissProt-Annotation-Vocabulary},
  note = {Pin the immutable Hub commit revision used by the experiment}
}