AFP review integrity audit

Generated by audit_afp_claims.py. Run from the repository root:

uv run python genes/human/AFP/AFP-bioinformatics/audit_afp_claims.py

These are mechanical checks on AFP-ai-review.yaml, not biological analyses.
They cover three things the repository validators do not: that every GOA row has
its own reviewed entry (the fetch-gene stub collapses rows that differ only by
assigner), that file: quotes are verbatim (CI checks only PMID: quotes), and
that no duplicated YAML key has silently discarded data.

Result

PASS - all checks clean.

Counts

quantity value
GOA data rows 8
existing_annotations entries 11
- derived from GOA 8
- proposed here (action: NEW) 3
distinct GO terms in GOA 6
GOA rows with an experimental evidence code 3
GOA assigners AgBase, Ensembl, GO_Central, IntAct, Reactome, UniProt
supporting_text quotes verified 71
- in supported_by 42
- in references[].findings[] 29
of which cite a file: source (unchecked by CI) 5
retracted phrasings swept for (review + notes) 13
required corrections asserted with minimum counts 6

Notes on the counts

The GOA TSV has 8 data rows while the generated stub seeded 7: the two
GO:0005515 rows for PMID:26808496 differ only in assigner, IntAct versus
AgBase, and were collapsed into one. They are restored as separate entries so
each assigner gets its own verdict, and so that one co-immunoprecipitation is not
counted as two independent supports.

All 3 experimentally-coded GOA rows are IPI protein-binding rows. There is
no experimental molecular-function row of any other kind and no experimental
biological-process row, which is why this review's diagnosis is under-annotation
rather than over-annotation.