GO Annotations (GOA) Reference Ingest Guide¶
Source Information¶
InfoRes ID: infores:goa
Description: The Gene Ontology (GO) Annotations (GOA) dataset connects genes and gene products to Gene Ontology terms that describe a molecular function the gene product enables, a biological process in which it participates, or a cellular component in which it is active or located. Annotations are produced by members of the GO Consortium (including model organism databases, UniProt, and specialist curation groups). Most annotations are created through rigorous manual curation of the experimental literature, each supported by a GO evidence code and, where available, a publication reference. A large fraction of annotations are instead generated by automated pipelines that assign GO terms based on evidence such as sequence orthology, sequence similarity, phylogenetic inference, or InterPro-to-GO mappings (e.g. IEA, IBA). GOA is released as Gene Association Format (GAF 2.2) files, one per contributing group or organism, and is a foundational, broadly relevant source of gene function knowledge for Translator use cases.
Citations: - Data Archive: https://zenodo.org/records/10536401 - Publication: https://doi.org/10.1093/nar/gky1055
Data Access Locations: - All downloads: https://geneontology.org/docs/download-go-annotations/ - Commonly studied organisms: https://current.geneontology.org/products/pages/downloads.html - Per-file annotations directory (files actually ingested): https://current.geneontology.org/annotations/
Data Provision Mechanisms: file_download
Data Formats: tsv
Data Versioning and Releases: Release cadence: approximately every four weeks, synchronized with UniProtKB. Versioning: by release date - each GAF header includes a !Generated: YYYY-MM-DD line, and the ingest records the version from the https://current.geneontology.org/metadata/release-date.json metadata endpoint. Release notes: https://geneontology.org/docs/download-go-annotations/ and https://geneontology.org/docs/go-annotation-file-gaf-format-2.2/. Release archive: https://release.geneontology.org/. Format: tsv in GAF 2.2 (17 columns).
Ingest Information¶
Ingest Categories: primary_knowledge_provider
Utility: GOA is a rich source of manually curated (and computationally inferred) knowledge about gene function, with broad relevance to nearly all Translator queries and use cases involving genes, gene products, and the molecular functions, biological processes, and cellular components they are associated with.
Scope: This initial ingest of GOA covers molecular function (Aspect F), biological process (Aspect P), and cellular component (Aspect C) annotations for human, mouse, and rat genes and gene products, including both manually curated and electronically/computationally inferred content. Content is taken from GAF 2.2 files only (GPAD and GPI formats are not ingested). Records are restricted to NCBITaxon:9606 (human), NCBITaxon:10090 (mouse), and NCBITaxon:10116 (rat) via a taxon filter on the Taxon column. Other species may be added in future iterations of the ingest.
Relevant Files¶
| File Name | Location | Description |
|---|---|---|
| goa_human.gaf.gz | https://current.geneontology.org/annotations/goa_human.gaf.gz | Human gene-product to GO term associations (GAF 2.2), sourced primarily from UniProtKB. |
| mgi.gaf.gz | https://current.geneontology.org/annotations/mgi.gaf.gz | Mouse gene-product to GO term associations (GAF 2.2), from Mouse Genome Informatics (MGI). |
| rgd.gaf.gz | https://current.geneontology.org/annotations/rgd.gaf.gz | Rat gene-product to GO term associations (GAF 2.2), from Rat Genome Database (RGD). |
Included Content¶
| File Name | Included Records | Fields Used |
|---|---|---|
| goa_human.gaf.gz | Records whose Taxon column exactly matches one of taxon:9606, taxon:10090, or taxon:10116; in practice this file contributes the NCBITaxon:9606 (human) records. No evidence-code or aspect filtering is applied; negated (NOT) annotations are retained and represented explicitly. | DB, DB_Object_ID, DB_Object_Symbol, Qualifier, GO_ID, DB_Reference, Evidence_Code, Aspect, DB_Object_Name, DB_Object_Type, Taxon, Assigned_By |
| mgi.gaf.gz | Records matching the same shared taxon inclusion list; in practice this file contributes the NCBITaxon:10090 (mouse) records, as every row is taxon:10090. No evidence-code or aspect filtering is applied; negated (NOT) annotations are retained and represented explicitly. | DB, DB_Object_ID, DB_Object_Symbol, Qualifier, GO_ID, DB_Reference, Evidence_Code, Aspect, DB_Object_Name, DB_Object_Type, Taxon, Assigned_By |
| rgd.gaf.gz | Records matching the same shared taxon inclusion list; in practice this file contributes the NCBITaxon:10116 (rat) records, as every row is taxon:10116. No evidence-code or aspect filtering is applied; negated (NOT) annotations are retained and represented explicitly. | DB, DB_Object_ID, DB_Object_Symbol, Qualifier, GO_ID, DB_Reference, Evidence_Code, Aspect, DB_Object_Name, DB_Object_Type, Taxon, Assigned_By |
Filtered Content¶
| File Name | Filtered Records | Rationale |
|---|---|---|
| goa_human.gaf.gz | Rows whose Taxon column is not exactly taxon:9606, taxon:10090, or taxon:10116 are dropped by the Koza taxon filter. Because the filter is an exact match on the raw column, multi-organism rows such as 'taxon:9606 | taxon:562' never match and are excluded (851 rows in the current release). DB_Reference values that are not PMIDs (e.g. GO_REF, ISBN, Reactome, and other non-PMID references) are dropped from the publications edge property. Records whose DB source is not recognized in the DB-to-Biolink-class mapping are skipped entirely. |
| mgi.gaf.gz | The same shared taxon filter applies, but no rows are dropped by it: every row is taxon:10090. Non-PMID DB_Reference values are excluded from the publications property, and records from unrecognized DB sources are skipped. | Only PMIDs are retained as publications; records from unmapped source databases cannot be reliably typed to a Biolink subject category. |
| rgd.gaf.gz | The same shared taxon filter applies, but no rows are dropped by it: every row is taxon:10116. Non-PMID DB_Reference values are excluded from the publications property, and records from unrecognized DB sources are skipped. | Only PMIDs are retained as publications; records from unmapped source databases cannot be reliably typed to a Biolink subject category. |
Future Content Considerations¶
edge_content: Consider ingesting Gene/Product to GO Term annotations for taxa beyond human, mouse, and rat.
edge_property_content: Consider inclusion of qualifying/provenance information found in the Annotation Extension or With_Or_From columns. The With_Or_From column in particular can show provenance of inferred associations (e.g. the source of an IBA or IEA inference).
edge_content: Consider ingesting associations between two GO Terms, per the Annotation Extension Relations specification at https://wiki.geneontology.org/index.php/Annotation_Relations#Standard_Annotation:_Annotation_Extension_Relations
node_property_content: GOA generally adds curatorial value (id mapping, quality checking, and often more) when pulling annotations from sources like MODs, PANTHER, etc. This is why infores:goa is treated as the primary source; the upstream provider (from the Assigned_By field) is attributed as a supporting_data_source when it maps to a known infores (implemented for MGI, RGD, Reactome, IntAct, and GO-CAM/GO_Central/GOC).
node_property_content: To be decided whether to bring in taxon info about gene/gene-product nodes from GOA, or rely on other gene property authorities for this information (e.g. ncbigene). Currently in_taxon is set on subject nodes from the GAF Taxon column.
Target Information¶
Edge Types¶
| Subject Categories | Predicate | Object Categories | Knowledge Level | Agent Type | UI Explanation |
|---|---|---|---|---|---|
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex, biolink:RNAProduct | biolink:MolecularActivity | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product enables a molecular function (GO Aspect F). It was created from a GO annotation curated by a GO Consortium contributor from the experimental literature, or generated by an automated pipeline (e.g. electronic annotation). The GO evidence code on the source annotation determines the edge's knowledge level and agent type (e.g. an IDA/direct-assay annotation yields a manually-asserted edge, while an IEA/electronic annotation yields an automated prediction). GOA uses the 'enables' relation when a gene product is solely capable of executing the reported activity, which is represented here with the Biolink 'enables' predicate. | |
| biolink:Gene, biolink:Protein, biolink:RNAProduct | biolink:MolecularActivity | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene product contributes to a molecular function (GO Aspect F) as one required part of a larger macromolecular complex, rather than by executing the activity on its own. It was created from a GO annotation using the 'contributes_to' relation; the GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'contributes_to' predicate. | |
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex, biolink:RNAProduct | biolink:BiologicalProcess | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product is involved in a biological process (GO Aspect P), i.e. its molecular function plays an integral role in that process. It was created from a GO annotation using the 'involved_in' relation, or by aspect-based fallback when no qualifier is present. The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'actively_involved_in' predicate. | |
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex, biolink:RNAProduct | biolink:BiologicalProcess | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product acts upstream of a biological process (GO Aspect P). GOA provides several 'acts upstream of' relations that were consolidated into this single edge type because they share the same subject/object categories and provenance; the specific predicate captures how direct the causal chain is (acts_upstream_of vs acts_upstream_of_or_within) and, where the source records it, the direction of the effect (positive/negative). The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented with the corresponding Biolink 'acts upstream of' predicate. | |
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex, biolink:RNAProduct | biolink:CellularComponent | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product carries out its molecular function in a particular cellular component (GO Aspect C). It was created from a GO annotation using the 'is_active_in' relation, which GOA uses to state where a gene product is active rather than merely where it has been observed. The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'active_in' predicate. | |
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex, biolink:RNAProduct | biolink:CellularComponent | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product is stably located in a cellular component (GO Aspect C). It was created from a GO annotation using the 'located_in' relation, which records where the gene product resides without claiming that it performs its molecular function there. The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'located_in' predicate. | |
| biolink:Gene, biolink:Protein, biolink:MacromolecularComplex | biolink:CellularComponent | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product transiently or partially co-localizes with a cellular component (GO Aspect C), a weaker claim than stable localization. It was created from a GO annotation using the 'colocalizes_with' relation. The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'colocalizes_with' predicate, which is symmetric and so should be read as an association between the two entities rather than as a directed claim about the subject. | |
| biolink:Gene, biolink:Protein, biolink:RNAProduct | biolink:CellularComponent | knowledge_assertion, prediction, not_provided | manual_agent, automated_agent, manual_validation_of_automated_agent, not_provided | This edge asserts that a gene or gene product is part of a cellular component (GO Aspect C), such as a protein-containing complex or a larger subcellular structure. It was created from a GO annotation using the 'part_of' relation. The GO evidence code on the source annotation determines the edge's knowledge level and agent type. The relationship is represented here with the Biolink 'part_of' predicate. (Note: downstream normalization may invert part_of to has_part; see target additional_notes.) |
Node Types¶
| Node Category | Source Identifier Types | Additional Notes |
|---|---|---|
| biolink:Gene | MGI, RGD | Gene subjects come from model organism databases (MGI for mouse, RGD for rat) as identified by the GAF DB column. |
| biolink:Protein | UniProtKB | Protein subjects (primarily human) are identified by UniProtKB accession from the GAF DB/DB_Object_ID columns. |
| biolink:MacromolecularComplex | ComplexPortal | |
| biolink:RNAProduct | RNAcentral | |
| biolink:BiologicalProcess | GO (Aspect P) | |
| biolink:MolecularActivity | GO (Aspect F) | |
| biolink:CellularComponent | GO (Aspect C) | |
| biolink:Pathway | GO (Aspect P, re-categorized by downstream normalization) | Not assigned by the ingest itself: downstream Babel/node normalization re-categorizes a subset of GO biological-process terms (~403 observed) as Pathway. Documented here so the resulting node category is expected rather than surprising. |
Future Modeling Considerations¶
qualifiers: Introduce qualifier-based representation if/when we decide to ingest any qualifying context on GO annotations (e.g. from Annotation Extension or With_Or_From columns).
node_properties: If we ingest taxon info for gene nodes, we may need Biolink Model updates: in_taxon is currently modeled as a predicate and species_context_qualifier as an edge property, but there is no dedicated taxon node property.
spoq_pattern: The six upstream-effect predicates are consolidated into one edge type because acts_upstream_of is their common ancestor, while the cellular-component relations are split into separate active_in, located_in, and colocalizes_with edge types because they are siblings across different Biolink branches rather than a predicate plus its descendants. Monitor whether further consolidation is warranted if the Biolink predicate hierarchy changes.
Additional Notes: ['Known post-normalization behavior: downstream Babel/normalization can transform some predicates - e.g. involved_in may be generalized to related_to, and part_of may be inverted to has_part (with subject/object swap). This is expected normalization behavior, not a defect in the GOA ingest, which emits the semantically correct source predicates. See predicate_map.json in ingest output.', 'Known accepted validation warnings: normalization mapping involved_in edges to the broad related_to predicate, and enables edges having Gene/Protein subjects, produce domain/range warnings (~27k sampled). Edges still pass validation; the warnings reflect Biolink Model strictness.', 'Known node re-categorization: normalization re-categorizes ~403 GO biological-process terms to Pathway; biolink:Pathway is documented in node_type_info to reflect this.', 'Aggregator knowledge source: none is asserted on GOA edges (aggregator_knowledge_source was intentionally omitted per data-modeling review). infores:goa is the single primary knowledge source per edge.']
Provenance Information¶
Contributors: - Adilbek Bazarkulov: code author, domain expertise - Evan Morris: code support - Sierra Moxon: data modeling, domain expertise - Matthew Brush: data modeling, domain expertise
Artifacts: - Ingest Survey: https://docs.google.com/spreadsheets/d/18wGm2a0W1oIXm7cn8TZ99xn_aAMJ91SgAsuPDcV-lII/edit?gid=325339947#gid=325339947 - Ingest Ticket: https://github.com/NCATSTranslator/Data-Ingest-Coordination-Working-Group/issues/8