Human Genes Re-Review: REMOVE actions

Species: human

Re-review of REMOVE actions in human gene reviews

Back to the project page. Tracked in
#4097.

Bottom line: every annotation row with action: REMOVE in
genes/human was read again against the current review rules (November
2026). There were 23,802 such rows in 1,699 of the 3,588 human review files.
22,013 are bare protein binding rows, which the protein-binding policy
removes as uninformative; they were audited by script and none changed
action. The other 1,789 rows, in 820 reviews, were read one at a time.
408 of them (23%) no longer say REMOVE, 1,381 stand, and 64 errors in
source records were written down as structured source_defects. 222 review
files were edited. No row was changed to REMOVE.

The row-level record is in
remove_rereview_changes.yaml: every changed
row with its old and new action and the rule applied, and 97 REMOVE rows
that were examined closely and left in place, each with a note. 48 of those
are marked close_call: a curator might decide them differently.

Why this pass

REMOVE says the claim is unlikely to be correct. The first-pass reviews
also used it for things that are not that: a second row for a claim already
accepted, a true but broad term, a real observation thought unimportant, an
experimental annotation whose paper could not be read. The July sweep saw the
pattern and left it as reviewer discretion (see "Method notes" on the project
page). Since then the rules have been made explicit: a review judges claims,
not evidence codes; rows that share a term must agree; a true but broad term
is TOO_GENERAL or MODIFY; an experimental annotation is not overruled
from an abstract; ND and root organelle terms have their own policies. This
pass applies those rules to every REMOVE row.

Method

  1. All REMOVE rows were extracted from the review files. Bare GO:0005515
    rows were set aside for the policy audit below.
  2. The 1,789 other rows were read in 25 alphabetical batches. For each row the
    reading used the term, evidence code and reference, the reviewer's summary
    and reason, the other rows of the review that carry the same term, any kept
    descendant of the term, and the cached publication with its
    full_text_available flag. For electronic and similarity transfers the
    donor annotation and its reference were looked up in QuickGO, and the donor
    paper's abstract was read from PubMed before anything was written about it.
  3. REMOVE was kept wherever it is defensible under the rules. A row was
    changed only when the removal broke a rule, when its argument failed once
    the evidence was read, or when the reason itself conceded that the claim is
    true.
  4. Edits were applied by a script that rewrites only the review block of the
    named row and checks that the rest of the file parses to the same content.
    Each batch was validated with ai-gene-review validate against a baseline
    taken before the pass, and all 222 edited files were validated together
    once more at the end: all are valid and no new error was introduced. Two of
    them (FZD7, GK5) had failed before the pass on three reference quotes that
    were not verbatim; those quotes were re-quoted from the cached papers.
  5. The checks that CI runs on changed gene reviews were then run on the whole
    set: the PMID-reference check, the repository-wide quote check and the
    family/gene cross-check (just validate-families). The cross-check found
    one disagreement with a curated family review: extracellular matrix had
    been kept as non-core on PRG2 and PRG3 from two matrix proteomics studies,
    while the review of their PANTHER family (PTHR22803) scopes that term as
    not applicable to any member. Those four rows are
    MARK_AS_OVER_ANNOTATED: the detection is real, the location is not
    retained.

Results

Outcome for the 1,789 substantive REMOVE rows Rows
REMOVE stands 1,381
→ MARK_AS_OVER_ANNOTATED 178
→ KEEP_AS_NON_CORE 123
→ TOO_GENERAL 30
→ UNDECIDED 34
→ ACCEPT 26
→ MODIFY 17

Nine of the rows that stay REMOVE had a wrong or missing reason and were given
a correct one. One row that was not REMOVE was changed as well, so that the
rows of a re-adjudicated term agree: the electronic centriole row of HSPA1B,
from MARK_AS_OVER_ANNOTATED to ACCEPT.

The share of rows that changed depends strongly on the evidence code. Removals
of phylogenetic annotations, where the first-pass reviews argued at the PAINT
node, almost all stand. Removals of proteomics observations almost all fell.

Evidence REMOVE rows at start Changed Share
IEA 669 165 25%
TAS 310 57 18%
IDA 215 54 25%
IBA 216 7 3%
ISS 109 31 28%
NAS 93 7 8%
IMP 55 15 27%
HDA 45 39 87%
IPI (not bare protein binding) 35 23 66%
IEP 12 5 42%
ND 11 0 0%
other (EXP, IGI, RCA, IC, HTP, HEP) 19 5 26%

Rules applied

Counts are rows. The rule names are the keys used in the data file.

Rule MARK KEEP TOO_GENERAL UNDECIDED ACCEPT MODIFY Total
same-term-kept 22 9 2 23 4 60
ancestor-of-kept 1 1 30 1 33
reason-concedes-truth, true-but-broad 10 29 39
general-to-specific, lateral-correction 13 13
claim-established 52 2 54
electronic-unsupported-plausible, downstream-readout 65 65
experimental-incomplete-evidence, experimental-fulltext-supports 6 4 29 39
curated-statement 6 2 8
omics-location, omics-function 45 3 48
expression-only 8 8
reactome-location, er-transit, organelle-root 11 25 36
other (cross-gene consistency, IBA node, promiscuous activity) 4 1 5

What the main rules mean in practice:

What REMOVE means in the human set now

The 1,381 rows that stand are removals of the claim itself: an annotation on
the wrong gene product or from a symbol collision; a substrate, cargo or
stimulus annotated as a participant; a pseudoenzyme given the ancestral
activity; a sign error or the wrong enzyme class; an electronic mapping that
is wrong for this family member or this taxon; a phylogenetic annotation
argued against at its node; a Reactome placement that is biologically wrong;
a direct contradiction in the cited paper. All 12 removed NOT rows and all 11
removed ND rows were checked against the NOT and ND rules and stand.

Eight REMOVE rows still share a term with a kept row (ABCD4, ACTG2, CKB,
CSDE1, CXCR3, LPCAT4 twice, TLR2). Each was checked: the kept row is a
MODIFY that redirects an experiment to another term, a located_in row
beside a removed is_active_in row, or an UNDECIDED row beside accepted NOT
rows. Both actions agree that the stated claim is wrong.

Corrections after review

The pull request for this pass
(ai4curation/ai-gene-review#6257)
was checked against the steps CI runs and was reviewed. That produced a
second round of changes, all included in the numbers above.

Earlier fence cases, now resolved

The project page listed four fence cases and two literature questions.

Source defects

When a row is wrong because the source record is wrong, the action says what
this repository does with the claim and review.source_defects says what the
source should fix. 64 defects were recorded on rows examined in this pass,
and one more on a sibling row of ADGRA2.

Type Count
WRONG_GENE_PRODUCT 40
WRONG_TERM 12
WRONG_REFERENCE 7
WRONG_WITH_FROM 2
WRONG_EVIDENCE_CODE 3

By responsible resource: UniProt 33, MGI 12, ARUK-UCL 2, ComplexPortal 2,
IntAct 1, RGD 1, GO Central 1, and 12 assigned by groups the schema does not
list. 28 are marked CONFIRMED, 33 PROBABLE and 3 SUSPECTED. Examples:

just export-source-defects turns these into per-resource reports.

Protein binding audit

The 22,013 bare protein binding REMOVE rows (1,234 reviews; 22,009 IPI, 3
IDA, 1 ISS; none negated) were checked by script rather than read one by one,
because the policy removes the term whatever the evidence. The checks looked
for rows that are not what the policy covers. They flagged 255 rows whose text
questions the interaction itself and 100 rows whose text names a specific
binding term that the review does not assert; these were screened and the
distinct cases among them read. No action changed. Two rows
whose interactor is the wrong gene product (CALCA, TFAP2A) received source
defects, and 66 templated summaries in STAT3 that cited the wrong GO id for
protein kinase binding were corrected. 78 of these rows have no reason; the
policy is the reason, and they were left as they are.

Follow-ups