# TCDB -> GO mapping (SSSOM) -- curated seed of TC-family -> GO molecular-function mappings
#
# GO curates some TC references on its terms (see tc2go.from_go.sssom.yaml: 170 MF terms / 63
# families), but there is NO tc2go external2go ANNOTATION pipeline (unlike rhea2go / ec2go), so a
# protein's TC classification is never propagated to a GO term. TCDB also publishes a per-protein GO
# dump (https://tcdb.org/cgi-bin/projectv/public/go.py) but it is a noisy multi-aspect aggregation,
# not a curated pipeline (see ../TCDB.md, TCDB-METHODOLOGY.md). These are hand-curated TC-family ->
# GO transporter-activity (molecular function) mappings (8 rows), each backed by a REVIEWED
# (Swiss-Prot) transporter that carries the activity. The strength of that backing VARIES and is
# stated per row: some backings carry experimental GO evidence (IDA/IMP), others carry the term
# only by IEA -- and for 2.A.38 the in-repo review judges the family term an OVER-ANNOTATION of the
# backing protein, which is why that row is a narrowMatch. Read each comment; do not assume
# experimental support across the board.
#
# GO-xref overlap: 6 of the 8 sit in a family GO already xrefs (1.A.8 and 2.A.69 do not). But only
# 2.A.22.1.1 -> GO:0005335, 3.A.3.1.1 -> GO:0005391 and 2.A.36 -> GO:0015385 are the SAME TC->GO
# pair in GO's xrefs (genuine corroboration); for 2.A.17, 2.A.18 and 2.A.38 only the family
# co-occurs and GO's xref points at a different substrate term, which corroborates nothing.
#
# This file is the PROPAGATION-CURATION layer. GO's own TC xrefs (tc2go.from_go.sssom.yaml) are
# unreviewed sources: they say "a curator once linked this TC entry and this GO term", NOT "every
# protein with this TC number has this GO function". The curation question here is the PROPAGATION
# question -- is it justifiable for a protein carrying this TC id to INHERIT this GO term? The answer
# depends on whether the TC entry is mono-specific for that activity at the level cited:
#
#   * skos:exactMatch  -- PROPAGATION JUSTIFIED. Every member at this TC level has this activity, so a
#                         protein carrying the TC id can safely inherit the GO term. Ready-to-add tc2go.
#   * skos:narrowMatch -- PROPAGATION NOT JUSTIFIED AT THIS TC LEVEL. The GO term is narrower than the
#                         TC group (it applies only to a substrate-specific subfamily); blanket
#                         propagation would over-annotate the other members. Curate down to the
#                         subfamily/system (4-/5-level) TC id before propagating.
#   * skos:broadMatch  -- only a BROADER activity term exists; the comment names the narrower GO term
#                         to request (proposed_new_terms).
#
# Each comment states an explicit "Propagation:" verdict. Where a mapping is 5-level (a specific TC
# system) it is usually propagatable; where it is 3-level (a whole family) it usually is not.
#
# Provenance: every TC number + family name is from the UniProtKB DR TCDB cross-reference of the
# backing entry; every GO id/label was verified non-obsolete and molecular_function. Rows marked
# "(also GO-xref'd)" appear as a source in tc2go.from_go.sssom.yaml. Validate with:
#   just validate-tcdb-mappings

curie_map:
  TC: http://www.tcdb.org/search/result.php?tc=
  GO: http://purl.obolibrary.org/obo/GO_
  skos: http://www.w3.org/2004/02/skos/core#
  semapv: https://w3id.org/semapv/vocab/
  sssom: https://w3id.org/sssom/
  obo: http://purl.obolibrary.org/obo/

mapping_set_id: https://w3id.org/ai4curation/ai-gene-review/mappings/tc2go
mapping_set_title: TCDB to GO (curated propagation judgments toward a tc2go)
mapping_set_description: >-
  Hand-curated TC -> GO molecular-function (transporter activity) mappings, each carrying an explicit
  PROPAGATION verdict: is it justifiable for a protein with this TC id to inherit this GO term? TCDB
  has no external2go pipeline, and GO's own TC xrefs (tc2go.from_go.sssom.yaml) are unreviewed
  sources, so propagation must be curated per entry. exactMatch = propagation justified (member set is
  mono-specific at the cited TC level -- e.g. the 5-level systems 2.A.22.1.1 SERT->GO:0005335 and
  3.A.3.1.1 Na/K-ATPase->GO:0005391, and the mono-specific family 2.A.69 AEC); narrowMatch =
  propagation NOT justified at that TC level (the GO term is a subfamily property; propagate only to
  the subfamily/system). Each backed by a reviewed Swiss-Prot transporter (PIN1 Q9C6B8, AUX1 Q96247,
  SOS1 Q9LKW9, CHL1/NRT1.1 Q05085, HKT1 Q84TI7, AQP1 P29972, SERT/SLC6A4 P31645, ATP1A1 P05023).
license: https://creativecommons.org/licenses/by/4.0/
creator_label:
- AI Gene Review project
mapping_date: "2026-07-18"
subject_source: tcdb
object_source: GO

mappings:
# ===== exactMatch: PROPAGATION JUSTIFIED (member set is mono-specific at the cited TC level) =====

- subject_id: TC:2.A.69
  subject_label: The Auxin Efflux Carrier (AEC) Family
  predicate_id: skos:exactMatch
  predicate_label: exact match
  object_id: GO:0010329
  object_label: auxin efflux transmembrane transporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: JUSTIFIED at family level. The AEC family (PIN proteins) is mono-specific for auxin
    efflux, so any 2.A.69 member can inherit GO:0010329. Backed by Arabidopsis PIN1 (Q9C6B8,
    DR TCDB 2.A.69.1.1) reviewed in this repo with GO:0010329 by IDA and IMP. Not a GO xref; not in
    any external2go mapping.

- subject_id: TC:2.A.22.1.1
  subject_label: The Neurotransmitter:Sodium Symporter (NSS) Family
  predicate_id: skos:exactMatch
  predicate_label: exact match
  object_id: GO:0005335
  object_label: serotonin:sodium:chloride symporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: JUSTIFIED at system level. TC 2.A.22.1.1 is specifically the serotonin transporter
    (SERT), so this 5-level id maps cleanly to GO:0005335. Backed by human SERT/SLC6A4 (P31645), which
    carries GO:0005335 (verified live). Curated up from a GO source: GO already xrefs this TC on
    GO:0005335 (also GO-xref'd), and here the propagation is confirmed justifiable. Note the parent
    FAMILY 2.A.22 (NSS) is poly-specific (dopamine, GABA, glycine, ...), so only the 5-level id
    propagates -- not the family.

- subject_id: TC:3.A.3.1.1
  subject_label: The P-type ATPase (P-ATPase) Superfamily
  predicate_id: skos:exactMatch
  predicate_label: exact match
  object_id: GO:0005391
  object_label: P-type sodium:potassium-exchanging transporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: JUSTIFIED at system level. TC 3.A.3.1.1 is the Na+/K+-exchanging P-type ATPase, so
    this 5-level id maps cleanly to GO:0005391. Backed by human ATP1A1 (P05023, EC 7.2.2.13) which
    carries GO:0005391 (verified live). Curated up from a GO source (also GO-xref'd). The P-ATPase
    superfamily 3.A.3 as a whole pumps many cations (H+, Ca2+, Cu+, ...), so only the 5-level id
    propagates.

# ===== narrowMatch: PROPAGATION NOT JUSTIFIED at the cited TC level (GO term is a subfamily property) =====

- subject_id: TC:1.A.8
  subject_label: The Major Intrinsic Protein (MIP) Family
  predicate_id: skos:narrowMatch
  predicate_label: narrow match
  object_id: GO:0015250
  object_label: water channel activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: NOT justified at family level. The MIP family splits into classical aquaporins
    (water) and aquaglyceroporins (glycerol), so a 1.A.8 member cannot be assumed to be a water
    channel -- propagate only to the aquaporin subfamily. Backed by human AQP1 (P29972,
    DR TCDB 1.A.8.8.1, GO:0015250, verified live) for the water-channel subfamily specifically. Not a
    GO xref; not in any external2go mapping.

- subject_id: TC:2.A.17
  subject_label: The Proton-dependent Oligopeptide Transporter (POT/PTR) Family
  predicate_id: skos:narrowMatch
  predicate_label: narrow match
  object_id: GO:0015112
  object_label: nitrate transmembrane transporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: NOT justified at family level (worked case). The POT/PTR family is broadly a
    proton-dependent oligopeptide transporter; only the plant NRT1/NPF subfamily transports nitrate,
    so GO:0015112 must not propagate to the whole family. Backed by Arabidopsis CHL1/NRT1.1 (Q05085,
    DR TCDB 2.A.17.3.1) reviewed in this repo with GO:0015112 by IMP (also GO-xref'd).

- subject_id: TC:2.A.18
  subject_label: The Amino Acid/Auxin Permease (AAAP) Family
  predicate_id: skos:narrowMatch
  predicate_label: narrow match
  object_id: GO:0010328
  object_label: auxin influx transmembrane transporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: NOT justified at family level. The AAAP family is broadly an amino acid permease
    (family-level term GO:0015171); only the AUX/LAX subfamily is a proton-driven auxin importer, so
    GO:0010328 propagates to that subfamily only. Backed by Arabidopsis AUX1 (Q96247,
    DR TCDB 2.A.18.1.1) reviewed in this repo with GO:0010328 by IDA (also GO-xref'd).

- subject_id: TC:2.A.36
  subject_label: The Monovalent Cation:Proton Antiporter-1 (CPA1) Family
  predicate_id: skos:narrowMatch
  predicate_label: narrow match
  object_id: GO:0015385
  object_label: sodium:proton antiporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: NOT justified at family level. The CPA1 family is monovalent-cation:proton
    antiporters; the exact cation (Na+, K+) is member-specific, so GO:0015385 is a subfamily property
    (family-level term is GO:0015297 antiporter activity). Backed by Arabidopsis SOS1 (Q9LKW9,
    DR TCDB 2.A.36.7.6) reviewed in this repo, a plasma-membrane Na+/H+ antiporter (also GO-xref'd).

- subject_id: TC:2.A.38
  subject_label: The K+ Transporter (Trk) Family
  predicate_id: skos:narrowMatch
  predicate_label: narrow match
  object_id: GO:0015079
  object_label: potassium ion transmembrane transporter activity
  mapping_justification: semapv:ManualMappingCuration
  comment: >-
    Propagation: NOT justified at family level. The Trk/Ktr/HKT family is broadly a K+ transporter,
    but the plant HKT subfamily includes Na+-selective members, so substrate is subfamily-dependent.
    Backed by yeast TRK1 (P12685, DR TCDB 2.A.38.2.1), which carries GO:0015079 by IDA (SGD) --
    the K+ activity is real for the Trk subfamily. The COUNTER-EXAMPLE that makes this narrowMatch
    rather than exactMatch is Arabidopsis HKT1 (Q84TI7, DR TCDB 2.A.38.3.2), reviewed in this repo:
    its GO:0015079 is IEA and is marked MARK_AS_OVER_ANNOTATED (AtHKT1;1 is Na+-selective, lacks the
    conserved Gly-68 of K+-permeable HKTs, and does not transport K+ in planta; its experimentally
    supported activity is GO:0015081 Na+ by IDA). Propagating GO:0015079 across 2.A.38 would
    reproduce exactly that over-annotation. GO xrefs the family, but to GO:0015387 / GO:0009674,
    not to GO:0015079.
