UniProt Q02952, 1782 aa, PE 1: Evidence at protein level. PANTHER PTHR23209:SF4,
InterPro family IPR028540.
AKAP12-goa.tsv has 39 lines (38 data rows). The fetch-gene stub seeded 38
existing_annotations entries, and a programmatic 1:1 match on
(term, evidence, reference, with/from) came back with zero rows missing and zero
extra. This is the first gene in this batch where the stub did not collapse
GO:0005515 rows: all nine partner rows survived as separate entries, including the three
that share PMID:35271311. The check is worth running anyway — it is what later caught my
own dropped supporting_entities (below).
Final: 42 existing_annotations = 38 GOA rows + 4 NEW proposals.
The affinage record (gates_passed: True, 44 citations, all numeric PMIDs) is rich and
mostly accurate, but its citation list starts at 1997 with PMID:9187136 and never
includes PMID:9000000 — Nauert, Klauck, Langeberg & Scott, Curr Biol 1997, "Gravin,
an autoantigen recognized by serum from myasthenia gravis patients, is a kinase scaffold
protein."
That paper is the single most important publication on this gene. On the human protein
it maps both anchoring determinants in one experiment:
residues 1526-1780 of gravin bind the regulatory subunit (RII) of protein kinase A with
high affinity, and residues 265-556 bind protein kinase C
and isolates a PKA–gravin complex from human erythroleukemia cells. It is also the source
of UniProt's REGION 266..557 /note="Involved in PKC-binding".
It was found in the UniProt RN reference list, not by any AKAP12-keyed search — the title
names an autoimmune disease, not a function. This is the campaign's established recall
pattern (ADAMTSL1, ACTG2, AHSP): the decisive paper for a gene is often titled for
something else. Recording it here because that is the only way the provider's recall gets
measured.
(The round-numbered PMID is a genuine PubMed identifier, not a placeholder — verified
against the PubMed record.)
Affinage lists the AKAP12/ATR/nucleotide-excision-repair paper as a High confidence
finding with no flag, and it is the sole source of that record's DNA-repair claims and of
its R-HSA-73894 DNA Repair Reactome grounding.
It was retracted in 2020 (PMID:33091128):
The authors are requesting retraction of the above article pursuant to an internal
investigation by a team of scientists at the University of Kentucky that recently
determined it contains fabricated and/or falsified data.
Set is_invalid: true; no annotation in this review rests on it and no NER/ATR term was
proposed.
A systematic check of all 61 candidate PMIDs via CommentsCorrections/RefType on each
article's own PubMed record (not a publication-type search, which misses Publisher
Corrections) found three flags in total:
| PMID | flag |
|---|---|
PMID:27683220 |
Retracted → PMID:33091128 |
PMID:22584896 |
Erratum → PMID:37934326 (Correction, scope not stated in the notice) |
PMID:9187136 |
ErratumIn (no PMID given in the record) |
Nothing in the review rests on the latter two.
The highest-value finding after PMID:9000000. GO:0043116 negative regulation of vascular
permeability reaches human AKAP12 by Ensembl Compara from rat Q5QD51, where RGD holds it
as IMP from PMID:20454828. That paper reports the opposite sign:
Depletion of endogenous SSeCKS in RPMVEC significantly attenuated cytokine-induced
decrease in TER and increase in P (d), but not to the basal levels.
TER is transendothelial electrical resistance: cytokines lower it (leakier barrier),
and removing SSeCKS blunted that, i.e. the protein promotes permeability here. The
authors' own CONCLUSIONS sentence says so outright:
SSeCKS is involved in the endothelial hyperpermeability induced by IL-1β and TNF-α in
inflammatory process.
On its own evidence the rat annotation should be GO:0043117 positive regulation of
vascular permeability.
But the term survives on the human row, because a different body of evidence supports
it: mouse-specific siRNA against Akap12 in MyEnd endothelial cells impairs barrier function
(PMID:25188285), and Akap12-knockout mice have leakier vessels. So the action is
KEEP_AS_NON_CORE with propagation_review: root_cause: SOURCE_BAD,
failure_modes: [REGULATORY_SIGN_INVERSION] — the term is right, the provenance is not,
and both facts are recorded rather than one silently inheriting the other.
The two results are probably reconcilable: barrier-protective basally, permeability-promoting
under inflammatory cytokine stimulation. That is the suggested_experiments entry with
matched stimulation arms.
Assessed from the abstract only (full text unavailable), so the note to RGD is phrased as a
re-examination request, not a verdict.
PMID:21903576 (Gelman lab) publishes a PKC-binding consensus for rodent SSeCKS,
EG(I/V)(T/S)XWXSFK(K/R)(M/L)VTP(K/R)K(K/R)X(K/R)XXXEXXXE(E/D), at aa 592-620 and 741-769.
Those coordinates are rodent, so they cannot simply be read onto human AKAP12.
Rather than transfer the numbers, the consensus was run as a regex against the human Q02952
sequence parsed from AKAP12-uniprot.txt (script:
AKAP12-bioinformatics/akap12_motifs.py; length asserted == 1782 before use). Exactly two matches:
605-633 EGVTPWASFKKMVTPKKRVRRPSESDKED
754-782 EGVSTWESFKRLVTPRKKSKSKLEEKSED
UniProt annotates AKAP CaM-binding (WSK) motifs at 607-627, 756-776 and 801-821.
So matches 1 and 2 coincide with CaM motifs 1 and 2; the shared W.S.K cores are WASFK
and WESFK. The third CaM motif (WVSIK, 801-821) does not match the PKC consensus.
Two consequences:
GO:0005080 defensible with the human PMID:9000000 evidence as primaryPMID:11820772's observation that PKC phosphorylationsuggested_experiments ITC competition experiment.Note what this is not: it is not evidence that UniProt's REGION 266..557 PKC-binding
annotation is misplaced. That region comes from PMID:9000000's human fragment mapping and
is a genuinely separate determinant. AKAP12 has two mapped PKC-binding regions from two
labs; UniProt records one of them. Filed as an additive UniProt suggestion, not a correction.
IntAct findInteractions/Q02952 returns 128 records over 105 distinct partners, expanded
and counted by distinct publication + detection method, never by NbExp.
Partner promiscuity was measured too (total IntAct interaction records, against AKAP12's
128), because "two orthogonal methods recovered it" means much less for a hub:
| partner | rows | IntAct records | independent evidence | verdict |
|---|---|---|---|---|
PRKAR2A P13861 |
2 | 231 | filter binding (PMID:16642035, direct in vitro) + OpenCell coIP + human region mapping (PMID:9000000) |
MODIFY → GO:0034237 |
FHL1 Q13642 |
3 | 97 (78 partners) | Y2H ×2 (different libraries/labs) + OpenCell coIP | KEEP_AS_NON_CORE |
CTNNB1 P35222 |
2 | 1138 | mRNA display + OpenCell coIP | MARK_AS_OVER_ANNOTATED |
EGFR P00533 |
2 | 2526 | both split-ubiquitin MYTH, overlapping authors (Curak, Stagljar) | MARK_AS_OVER_ANNOTATED |
All four partners resolve to reviewed canonical Swiss-Prot entries with the expected
lengths — no TrEMBL/ORFeome substitutions of the kind found on ACRV1. Reporting that as a
negative result of a check that was run.
The EGFR call is the NbExp lesson in a new guise: two publications but one assay
platform and an overlapping author group, so they are not independent replication. Neither
paper names AKAP12 anywhere in its cached text. The 2526 records — a 20-fold hub — make the
call quantitative rather than merely sceptical.
GO:0008013 for CTNNB1 and then withdrew itWorth recording as a reversal, not hidden. The first pass reasoned "two orthogonal methods
from two unrelated groups ⇒ name the partner" and proposed MODIFY → GO:0008013 beta-catenin
binding. Three things then argued against it, and only one of them was new:
GO:0008013 asserts. mRNA displayPMID:25188285). I had put that in the reason as aA corpus cross-check made the first pass look worse: across 4796 merged reviews,
PMID:20195357 rows resolve 14 MARK_AS_OVER_ANNOTATED / 7 KEEP_AS_NON_CORE / 3 REMOVE /
1 MODIFY — my call was the singleton. Both CTNNB1 rows now share one verdict, because a
partner split across two verdicts is the AADACL2/3/4 defect.
Since PTHR23209 is a single-gene orthogroup there is no paralogue to compare against, so
the analogous check is by shared reference. Result after the CTNNB1 correction:
| reference | corpus spread | AKAP12 |
|---|---|---|
PMID:21423176 GO:0005925 |
15 KEEP_AS_NON_CORE / 7 over-ann. / 5 ACCEPT / 1 REMOVE | KEEP_AS_NON_CORE — majority |
PMID:21900206 GO:0005515 |
11 KEEP_AS_NON_CORE / 7 over-ann. / 3 REMOVE / 2 MODIFY | KEEP_AS_NON_CORE — majority |
PMID:23414517 GO:0005515 |
6 KEEP_AS_NON_CORE / 5 over-ann. / 2 REMOVE | KEEP_AS_NON_CORE — majority |
PMID:31980649 GO:0005515 |
24 over-ann. / 14 REMOVE / 12 KEEP_AS_NON_CORE | over-annotated — majority |
PMID:20195357 GO:0005515 |
14 over-ann. / 7 KEEP_AS_NON_CORE / 3 REMOVE | over-annotated — majority |
GO_REF:0000107 GO:0043025 |
30 KEEP_AS_NON_CORE / 6 over-ann. / 6 ACCEPT | KEEP_AS_NON_CORE — majority |
GO_REF:0000107 GO:0032496 |
12 KEEP_AS_NON_CORE / 9 over-ann. / 1 ACCEPT | KEEP_AS_NON_CORE — majority |
PMID:20029029 GO:0005515 |
6 KEEP_AS_NON_CORE / 4 over-ann. / 3 UNDECIDED / 2 REMOVE | over-annotated — minority, deliberate |
PMID:35271311 GO:0005515 |
108 over-ann. / 58 KEEP_AS_NON_CORE / 25 REMOVE / 14 MODIFY | MODIFY (PRKAR2A only) — minority, deliberate |
Two deliberate divergences, both defensible and both stated rather than silent:
PMID:20029029: the corpus leans KEEP_AS_NON_CORE here but leansPMID:31980649 — the same assay platform and anPMID:35271311: MODIFY is a minority but established practice (14/212). It is appliedQueried QuickGO by reference for every high-throughput source:
PMID:21423176 → GO:0005925 on 285 annotations, all HDA, all UniProt-assigned.P05388 RPLP0, P05386 RPLP1 and P05387 RPLP2 — three cytoplasmicPMID:35271311 (OpenCell) → 2872 GO:0005515 annotations. Endogenous tagging makesBoth queries were paginated; numberOfHits was compared against len(results) and the
truncation was reported rather than a page total being read as a whole.
Every GO_REF:0000107 row was traced through QuickGO on UniProtKB:Q5QD51 (reviewed rat
Akap12, 1687 aa, same PTHR23209:SF4 subfamily — a true 1:1 orthologue, not a paralog
transfer).
| human row | rat evidence | verdict |
|---|---|---|
GO:0032496 response to LPS |
IEP PMID:23912647 (+ independent PMID:17873284) |
KEEP_AS_NON_CORE |
GO:0032760 +reg TNF production |
IMP ×2 (PMID:17873284, PMID:19937403) |
KEEP_AS_NON_CORE |
GO:0035733 hepatic stellate cell activation |
IEP PMID:23925424 |
MARK_AS_OVER_ANNOTATED |
GO:0043025 neuronal cell body |
IDA PMID:11814414 |
KEEP_AS_NON_CORE |
GO:0043116 −reg vascular permeability |
IMP PMID:20454828 (sign-inverted) |
KEEP_AS_NON_CORE + SOURCE_BAD |
GO:0051602 response to electrical stimulus |
IEP PMID:23912647 |
MARK_AS_OVER_ANNOTATED |
GO:0061870 +reg HSC migration |
IMP PMID:23925424 (no migration assay in the abstract) |
MARK_AS_OVER_ANNOTATED |
GO:0070374 +reg ERK1/2 |
IMP PMID:19937403 |
KEEP_AS_NON_CORE |
GO:0071347 cell. response to IL-1 |
IEP PMID:20454828 |
KEEP_AS_NON_CORE |
GO:0071356 cell. response to TNF |
IEP PMID:20454828 |
KEEP_AS_NON_CORE |
GO:1900143 +reg oligodendrocyte apoptosis |
IMP PMID:20155814 |
KEEP_AS_NON_CORE |
Three discriminations worth keeping:
GO:0071347/GO:0071356 come from cytokine appliedGO:0051602 comes from an electrode on the vagus nerve of a whole rat, with Akap12PMID:23925424 supplied both GO:0035733GO:0061870 (IMP), yet its abstract describes only expression measurement —MARK_AS_OVER_ANNOTATED and the question is passed to a curator rather than settled.GO:0070374 is directionally contested, not wrong. The rat astrocyte siRNA is real,PMID:20018890).An error worth recording: the first draft wrote "in fibroblasts" here, a detail that
appears in neither the paper nor the provider summary — I supplied it. Caught by going
back to the abstract to verify a claim I had carried over from the affinage narrative.
The provider's sentence was accurate; the embellishment was mine. Two further
provider-sourced claims were verified the same way and both held
(PMID:16547152 RhoA/Cdc42 >5-fold; PMID:33260683 ZO-1/claudin-5), with one refinement:
the ZO-1/claudin-5 result is from siRNA in cultured cells, not from the knockout mice, so
the two halves of that sentence were separated in the GO:0061028 reason.
GO:0007165 signal transduction by IBA looks like a textbook GRANULARITY_MISMATCH. It is
not, because that classification requires the donors to agree.
WITH/FROM is PANTHER:PTN002755149 | UniProtKB:Q02952 | ZFIN:ZDB-GENE-030131-9753:
PTN002755149 — a tree node, not a protein.Q02952 — self-referential (this is AKAP12). Valid: it records a PAINT curatorZDB-GENE-030131-9753 — zebrafish akap12b. Both UniProt entries (F2Z4T4,A0A0R4IC31) are unreviewed (TrEMBL); reporting that because an unreviewed source isQuerying akap12b's own GO record: it carries GO:0005737 by IDA twice
(PMID:17575056, PMID:18725198) — so the cytoplasm IBA rests on measurement. And its
experimental BP annotations are GO:0035024 negative regulation of Rho signalling,
GO:0032060 bleb assembly, GO:0060028 convergent extension — a cytoskeletal/Rho axis,
whereas the human protein's measured signalling is cAMP/PKA and PKC. The donors
genuinely disagree, so signal transduction is the honest LCA. ACCEPT.
The reciprocal half is a finding: akap12b's GO:0035024 IMP stops at the zebrafish gene,
while mammalian work independently reports AKAP12 restraining RhoA/Cdc42 (PMID:16547152)
and the Rho kinase pathway (PMID:33260683). That is a PAINT coverage gap, filed in
suggested_questions.
Verified rather than assumed:
| gene | PANTHER | length |
|---|---|---|
AKAP12 Q02952 |
PTHR23209 / :SF4 |
1782 |
AKAP10 O43572 |
PTHR13155 / :SF1 |
662 |
AKAP5 P24588 |
PTHR15182 / :SF0 |
427 |
Three disjoint families. "AKAP" is a functional class defined by an amphipathic RII-binding
helix, not a homology family, so there is no family-level inference path between them. No
WITH/FROM token on AKAP12 names AKAP10 or any other AKAP. Nothing was imported across.
PTHR23209 is unusual and worth noting: 1185 proteins, one subfamily, and the only three
reviewed members are human, rat and mouse AKAP12. It is a single-gene orthogroup. That is
why IPR028540-derived IEAs (GO:0051018, GO:0090036, GO:0141156) are treated as well
founded rather than fold-level guesses — and why the "the general term is the LCA of a
heterogeneous clade" defence would not have been available if the donors had agreed.
GO:0019899 enzyme binding has 28 direct children — including GO:0008179 adenylate
cyclase binding, GO:0019902 phosphatase binding, GO:0035473 lipase binding,
GO:0043274 phospholipase binding — and none for a phosphodiesterase.
Checked by enumerating the parent's children, not only by keyword search, because ontology
search is token-based and a failed query is not evidence of absence (the AHSP lesson).
Keyword searches for "phosphodiesterase binding" and "cyclic nucleotide phosphodiesterase
binding" return only GO:0004112, GO:0170005 and GO:0051344 — catalysis and regulation,
no binding term.
The cost is immediate: the best human experiment on AKAP12 (PMID:16642035) shows a gravin
complex containing PKA and PDE4D, and GOA can record the PKA half and not the PDE4D
half. Filed as proposed_new_terms. GO already models the analogous regulatory relation
(GO:0170005 cyclic nucleotide phosphodiesterase activator activity), so a binding term
completes a pattern rather than inventing one.
"Tumour suppressor" is not an MF or a BP. AKAP12/SSeCKS is described as a tumour and
metastasis suppressor throughout the literature, and affinage's narrative leads with it.
No tumour-suppression, growth-arrest, senescence or metastasis term was proposed. The
underlying experiments are ectopic over-expression in transformed rodent lines
(PMID:9187136, PMID:9744295, PMID:10982843 — the G1 arrest is a tetracycline-induced
over-expression phenotype) or downregulation-in-cancer expression correlations. Neither
establishes a normal physiological process for the wild-type protein. This is noted in the
individual reference_review.review_notes for those papers.
Scaffolds accumulate their clients' functions. Deliberately avoided: PKA's kinase
activity, PDE4D's hydrolase activity and the cyclases' lyase activity are not AKAP12's.
The MF chosen for the bridging role is GO:0035591 signaling adaptor activity, whose
definition explicitly covers tethering and localising signalling components without
catalysis — the same shape as the AFF1/AFF4 pair's GO:0030674, narrowed one level because
all of AKAP12's clients are in one signalling pathway. No contributes_to_molecular_function
was used, because AKAP12 is not a subunit of a catalytic complex; it is an external tether.
Species discipline. Checked per row. Notably PMID:25188285's abstract says the study
analysed "human and mouse microvascular endothelial cells as well as isolated rat mesenteric
microvessels", which invites an IMP — but the methods state the knockdown used
mouse-specific siRNA in MyEnd mouse cells, so GO:0061028 is ISS with
UniProtKB:Q9WTQ5 (mouse Akap12) as the supporting entity. Which reagent was human is the
question, not which materials appear in the paper.
Recording the negatives, since an omission with a reason is more useful than a silent gap.
GO:0051015 actin filament binding — PMID:12083796 reports bacterially expressedPMID:9885289, from the same laboratory, reports SSeCKS along "a cytoskeletal networkGO:0140313 molecular sequestering activity — the cyclin D1 story is well supportedPMID:10982843 CY-motif binding with K→S ablation; PMID:22249313 in rat PECs) butGO:0004860 protein kinase inhibitor activity — PKC binding lowers PKC-α activityPMID:21903576), but the mechanism is sequestration, not classical inhibition, andGO:0090036 regulation of protein kinase C signaling (already annotated) captures it atPMID:27683220.GO:0002031 G protein-coupled receptor internalization — PMID:10858453 reports thatAKAP12-bioinformatics/akap12_audit.py asserts: strict duplicate-key YAML load; raw-vs-parsed
reference_id counts (53 = 53, anchored to ^\s*- reference_id: so
original_reference_id: cannot match); GOA row coverage by (term, evidence, reference,
with/from); source_entities derived from the GOA WITH/FROM field with a count assertion;
root_cause/failure_modes/action agreement; no undeclared references; and species
discipline on NEW rows.
It caught a real defect in my own draft: the GO:0016020 row had lost its
supporting_entities: [UniProtKB-SubCell:SL-0162], which no other gate would have seen —
the repo validator reported ✓ Valid with it missing. The by-eye check had passed.
It also produced a false positive that was worth fixing properly: the first version of
the species check was a keyword blacklist ("does the reason mention rodent?"), and it
fired on GO:0005080, whose primary evidence is human (PMID:9000000) and whose rodent
mention is corroboration. A blacklist cannot tell those apart. Replaced with the positive
invariant — an experimental code must state the species the experiment was done in — which
is the claim actually being made.
AKAP12-bioinformatics/akap12_audit_selftest.py breaks the document ten ways (eight
mutations that must trip a named guard, two controls that must not), asserting each anchor
string is present before replacing it so a drifted mutation cannot "pass" by changing
nothing. Mutants are written to a tempfile and the audit is pointed at them via its
optional path argument, so the curated file is never written at all — the script asserts
that at the end rather than relying on a restore step.
The anchor assertion earned its keep immediately: when the eighth mutation was added, its
anchor was copied by hand and dropped the word regeneration, and the run reported ANCHOR
NOT FOUND - mutation would have been a silent no-op instead of quietly claiming a pass.
Presence is not enough — the anchor must be unique. The eighth mutation's corrected
anchor then matched two sites (:788 and :1030), and replace(old, new, 1) takes the
first, so the mutation would have silently tested a row it was not written for. Matching
twice is the same failure as matching zero times, wearing a passing result. Added:
if n > 1:
failures.append(f"{name}: ANCHOR AMBIGUOUS - matches {n} sites, mutation would hit the first")
On its first run it failed the suite on a pre-existing ambiguous anchor that nobody had
flagged: the MODIFY → GO:0034237 mutation matches both GO:0034237 rows (:69-71 and
:236-238), whose proposed_replacement_terms blocks are byte-identical. That mutation had
been quietly exercising the first row since it was written. Both anchors now extend into
text unique to their row.
That is twice in consecutive rounds that a guard added for one reason caught something else
on the commit that introduced it — which is the argument for writing the general check
rather than lengthening the one anchor that was complained about.
Two further defects came out of that, both worth recording because neither was found by
reading:
description left an identical claim standing incore_functions entry. Found by grep, not by the edit. The fix was not to enumerateamphipathic is textbook for the AKAP class; it is not stated for AKAP12 in any cachedGO:0034237 occurs "at least 4" times. It actually occursproposed_replacement_terms out still left 6 and the check passed a genuinely brokenGO:0034237, exactly 1 targetsGO:0007188, and no MODIFY row proposes bare GO:0005515), plus aPMID:27683220 stays is_invalid and is never cited as support.GO:0008013". Withdrawing the CTNNB1 MODIFY took that countAKAP12-bioinformatics/ so the next edit is checked rather than trusted. Currentcheckquotes.py from the shared scratchpad was run after confirming it resolved the correct
repo root (it prints it; it derived this worktree, not another agent's). 83 quotes, 0
problems, and 0 file: quotes — none were used, because CI does not validate them.
validate warning about the deep-research file is left standingjust validate warns that no annotation references AKAP12-deep-research-affinage.md. That
is deliberate. The campaign rule is that a provider sentence is a lead, never a
supporting_text for a mechanistic claim, and quoting file: paths is the one fabrication
surface CI does not check. Every claim in this review is anchored to a PMID quote instead.
The affinage record's contributions are real and are credited above — it supplied the
PMID set that led to PMID:21903576, PMID:25188285 and PMID:19055733 — and its two
defects (missing PMID:9000000, citing a retracted paper unflagged) are recorded rather
than papered over.
PR #3007 was merged with eleven unresolved review threads still open. main requires
conversation resolution, so the merge only went through with --admin; two of those threads
held real defects, both introduced by the round-5 reflow that was supposed to be cosmetic.
1. A folded scalar turned a hyphenated word into two words. description is >-, so a
newline folds to a space. The 95-column rewrap split A-kinase-anchoring across lines
11-12, and the rendered text became A-kinase- anchoring — reaching the published page via
just render. The source looked fine; only the fold changed the meaning. Re-wrapped with
textwrap.fill(..., break_on_hyphens=False), and the block now has no line ending in -.
2. The tet system was described backwards. The clause said "Tetracycline-induced
expression of SSeCKS", but PMID:9744295 is tet-off: "The induction of SSeCKS (removal
of tet) caused significant cell flattening and the elaboration of an SSeCKS-associated
cortical cytoskeletal matrix resistant to Triton X-100 extraction." I had quoted that exact
sentence in the round-5 history record and still wrote the inducer as the thing that turns
expression on. Now: "Tet-regulated induction of SSeCKS, on removal of tetracycline".
Both are the same lesson in different clothes: a cosmetic edit is still an edit. The
reflow was justified as whitespace-only, so neither the validator (which parses YAML, where
both forms are legal) nor my own reading caught a change to the rendered prose. Nothing in
the repo checks that a folded scalar renders the way its source looks.