MOD gene descriptions as review input

IN_PROGRESS PIPELINEEVALUATION

Species: worm, yeast, DROME

MOD gene descriptions as review input

Bottom line: model organism databases (MODs) publish hand-written gene
descriptions, for example WormBase's paragraph for
rab-11.1. This project
fetches them for every worm, yeast and fly gene we review, saves each as a
deep-research source, scores it against our review, and acts on what it finds.

Worm (WormBase) Yeast (SGD) Fly (FlyBase)
Genes reviewed 432 890 539
With a curated MOD description 374 (87%) 890 (100%) 345 (64%)
Median MOD text length (words) 75 33 37
MOD text correctness, 1-5 (UniProt) 4.2 (4.5) 4.8 (4.6) 4.7 (4.6)
Description-text defects recorded (MOD + UniProt) 100 (73 + 27) 89 (44 + 45) 73 (39 + 34)
Reviews edited in the follow-up about 60 249 124
NEW annotation rows 0 2 1

What we learned:

Decision (2026-10-30): treat the curated description as a deep-research
source
, the same way as Affinage. It is written verbatim to
<gene>-deep-research-<mod>.md (wormbase, sgd, flybase) by
just mod-description-deep-research. It is cited as a file: reference, and the
reviewer's judgment goes in references[].reference_review. The source is sparse,
uncited, undated and only partly trusted, but no new data structures or processes
are needed for it. See Deep-research integration.

The work began with repairs. A fetcher and sidecar format existed
(ai-gene-review fetch-descriptions, <gene>-descriptions.yaml). They had only been
run on 118 yeast genes, nothing in fetch-gene or the reviewer skills read the
files, and the fetcher had stopped working. The Alliance API had changed its response
shape, and the worm cross-reference was parsed wrongly. Both are now fixed.

Data and method

Measure (worm) Value
Genes fetched 432
With curated WormBase description 374
Median words, WormBase curated 75
Median words, our description 143 (139 before the follow-up)
Median share of WormBase content words found in ours 0.37 (0.35 before the follow-up)

Acting on the findings (below) raised both numbers: the descriptions gained
sentences for verified gaps, so more of the WormBase content now appears in them.

Hand comparison (16 genes)

There were eight lowest-overlap genes (cep-1, let-60, fshr-1, lgg-2, gst-4,
mpk-1, ced-4, atg-18) and eight random ones (skn-1, sup-17, fasn-1,
hsp-16.41, rsks-1, lag-2, gpr-1, lipl-4). Low lexical overlap mostly reflects
different emphasis, not error.

Gaps in our reviews that WormBase points to

Where WormBase is stale or weaker

Deep-research integration

Worked example: fshr-1. The WormBase text led to Buckley et al. 2024
(PMID:39561202). That paper shows that intestinal FSHR-1 is necessary and
sufficient for acetylcholine release at the neuromuscular junction, with
GSA-1/Gas and ACY-1 acting downstream and the glycoprotein hormone subunits
GPLA-1 and GPLB-1 upstream. The review now has a NEW
GO:1900075 positive regulation of neuromuscular synaptic transmission (IMP)
row, a corrected description (which had wrongly said FSHR-1 had been
"repurposed" away from hormone signaling), stronger support for the IBA
adenylate-cyclase row, and updated open questions. The WormBase reference's
reference_review records which claims were traced (synaptic role) and which
were judged stale (FLP-1 and NLP-12 as candidate ligands).

Description reviews (all 432 worm genes)

The review of each text is stored in the gene's <gene>-descriptions.yaml,
separate from both the gene review and the deep-research file. Every source
(UniProt FUNCTION, WormBase curated, Alliance automated, RefSeq) gets a 1–5
score on correctness, utility, compactness, completeness and specificity, with a
note. The file also gets an overall_concordance score across sources and
findings (gap, discrepancy, insight). All 432 worm files are COMPLETE
(ai-gene-review descriptions-status worm). Scores are AI judgments made
against each gene's review and the literature it cites. 16 genes were scored by
hand, and parallel agents scored the other 416, calibrated on those 16. Their
output was schema-checked, and several of their
discrepancy calls (sem-5, spg-7, met-2) were spot-checked against the reviews.

Source (genes) Correctness Utility Compactness Completeness Specificity
UniProt FUNCTION (315) 4.5 3.7 3.7 3.5 3.7
WormBase curated (374) 4.2 3.4 3.6 3.1 3.3
Alliance automated (432) 3.9 2.7 4.0 2.6 2.7

Concordance across sources: mean 4.25 (5: 187 genes, 4: 177, 3: 57, 2: 10, 1: 1).
RefSeq is left out of the table. It is usually a copy of the Alliance automated
text, but for about a third of genes it comes from an older or newer Alliance
release and was scored separately.

The 313 findings (142 gaps, 105 discrepancies, 66 insights; one lgg-2 discrepancy
was added later) are collected in
worm-findings.yaml, which is a curator
worklist. Recurring patterns:

Follow-up: acting on the findings

The 244 gap and discrepancy findings (216 genes) were each checked against the
literature, and acted on under the CLAUDE.md curation rules. Parallel agents did
the work; each edited gene was validated and given a history record. Batch
results were spot-checked (pek-1, lrx-1, sem-5).

Yeast (SGD)

Source (yeast genes) Correctness Utility Compactness Completeness Specificity
SGD curated (890) 4.8 4.1 4.3 4.0 4.0
UniProt FUNCTION (798) 4.6 3.7 4.0 3.5 3.8
Alliance automated (890) 4.4 2.9 3.8 3.1 2.9

The counts include one protein twice: genes/yeast/ERG19 and genes/yeast/MVD1
are the same entry (P32377; MVD1 is the SGD standard name and ERG19 a synonym). Merging them is
issue 5837. Two genes, HKR1 and
MSB2, have no gene review, so their concordance scores compare the sources with
each other only.

The test the worm run could not make: SGD's maintained text is the best source.
It scores above UniProt on every rubric, whereas WormBase scored below it (4.2
against 4.5). Only two SGD texts score 2 or less on correctness:
- ALG11: Man5 rather than Man3-to-Man5.
- RIB7: called a deaminase; it is the reductase.

Twelve WormBase texts did. Concordance is a mean 4.48 (worm 4.25). The 354
findings (182 gaps, 163 discrepancies, 9 insights) are in
yeast-findings.yaml. Most discrepancies
involve the automated text (108 of 163), which picks GO terms the reviews
reject. Examples:
- kinase activity for the pseudo- or non-kinases KDX1 and CAF120;
- THI3 decarboxylase activity.

SGD text is involved in 61 discrepancies and UniProt in 51 (one discrepancy can
involve several sources). The UniProt cases are often dated or transferred text,
for example:
- ACP1: a Complex I subunit, in a species that has no Complex I.
- ACH1 and VIP1: claims transferred from mammalian or S. pombe homologues.
- ERG12, ERG19 (also filed as MVD1) and ERG20: mevalonate pathway steps placed
in the vacuole; the reviews have these enzymes in the cytosol.

Yeast has only 9 insight findings against 66 for worm, while gaps and
discrepancies rose. That may be because SGD's shorter text yields fewer side
observations, or because the yeast agents used the category more narrowly; the
data cannot tell the two apart.
SGD has two self-referencing copy errors: GTT2 "overlaps with Gtt2p", and IRC24
is "a putative paralog of IRC24".
- Follow-up on the yeast findings. Eight parallel agents worked through the 345 gap
and discrepancy findings (316 genes) under the same rules as for worm. Each edited
gene was validated and given a history record.
- 89 description-text source_defects across 81 genes: 44 SGD and 45 UniProt (one in a UniProt SUBUNIT comment);
49 WRONG_STATEMENT, 25 OUTDATED_STATEMENT, 15 MISSING_STATEMENT; 38 of them
CONFIRMED by a quoted paper.
- 249 reviews edited, mostly with a description sentence for a verified gap.
- Two NEW rows, both checked against the NEW bar:
- MIH1 GO:1905279 regulation of retrograde transport, endosome to Golgi:
purified Mih1 dephosphorylates Vps26.
- HOG1 GO:0071243 cellular response to arsenic-containing substance: Hog1
senses arsenic through conserved cysteines.
- Three action changes. RAS2's duplicate IEA bud-neck row is now ACCEPT, matching
the accepted IGI row. DCI1's two dienoyl-CoA isomerase rows are now UNDECIDED,
because purified Dci1 shows no activity (PMID:19830908), against an earlier
crude-extract result.
- As for worm, lexical overlap rose (recall 0.42 to 0.44, median 111 to 115 words).
- Examples of SGD defects:
- RIB7 called a deaminase;
- ALG11's Man5 substrate;
- PFK1 ribosome association, which belongs to Pfk2;
- KDX1 called a kinase;
- GUT1 regulators swapped.
- Examples of UniProt defects:
- THI3 decarboxylase activity that direct assays do not find;
- BTS1 contradicted by its own kinetic data;
- CPT1 given Ept1's substrate;
- the vacuolar mevalonate module.
- correctness convention, now in the review skill: DISPUTED if any claim is
wrong, otherwise UNVERIFIED if any claim could not be traced, otherwise VERIFIED.
53 earlier worm and yeast MOD and UniProt references were brought into line with it.

Fly (FlyBase)

Two genes are still not fetched. CG4592's UniProt entry gives only a VectorBase id,
and the Alliance API rejects GatB's FBgn0039153 with HTTP 400.
- FlyBase texts are a median 37 words (SGD 33, WormBase 75), and a median 0.50 of their
content words appear in our descriptions, the highest of the three MODs. See
fly-comparison.yaml.
- 531 files are COMPLETE, scored by 8 parallel agents with the yeast brief adapted for
fly. Eight genes have no description from any source and were left unscored.

Source (fly genes) Correctness Utility Compactness Completeness Specificity
FlyBase curated (345) 4.7 3.7 4.8 3.4 3.5
UniProt FUNCTION (319) 4.6 3.8 3.9 3.6 3.8
Alliance automated (529) 4.3 2.9 3.7 3.0 2.8

As with SGD, the curated MOD text is the most accurate source. Unlike SGD, it is not
the most informative: UniProt scores higher on utility, completeness and specificity,
and FlyBase's lead is in compactness. Concordance is a mean 4.34. The 211 findings
(116 discrepancies, 89 gaps, 5 insights, 1 consensus) are in
fly-findings.yaml. The automated text is
involved in 74 of the 116 discrepancies, UniProt in 38 and FlyBase in 37.
- Follow-up on the fly findings. Eight agents worked through the 205 gap and
discrepancy findings (187 genes) under the yeast rules.
- 73 description-text source_defects across 64 genes: 39 FlyBase and 34 UniProt;
34 WRONG_STATEMENT, 13 OUTDATED_STATEMENT, 26 MISSING_STATEMENT; 25 of them
CONFIRMED by a quoted paper.
- 124 reviews edited, mostly with a description sentence or a reference_review.
- One NEW row: Tango5 GO:0000045 autophagosome assembly (IMP, PMID:34019822).
Tango5 is the fly VMP1, the ER scramblase that does part of the work, and human
VMP1 carries the term.
- Lexical overlap did not move (median recall 0.50; review median 125 to 128 words).
- Examples of FlyBase defects:
- Pxd called a catalase-like, glutathione-oxidising enzyme; it is the chorion
peroxidase that makes di-tyrosine cross-links.
- Br140 and Ing5 called histone acetyltransferases; Enok is the enzyme.
- Lis-1 called a PAF-AH subunit; fly Lis-1 does not bind the fly alpha homolog.
- amon said to cleave Slit; Tolkin is the Slit protease.
- SREBP said to respond to cholesterol; fly SREBP responds to phosphatidylethanolamine.
- UniProt defects are mostly mammalian text carried over to the fly entry:
- smo and SCAP: cilium and sterol mechanisms.
- cact and IKKbeta: IKK as the Cactus kinase; Pelle phosphorylates Cactus.
- spi: Gurken named as the EGF receptor.
- Ccs: described as a dismutase; it is the copper chaperone for Sod1.
- borr: copied from the Australin paper and contradicted by the borr paper it cites.
- Alliance automated text: two losses (Mtpalpha, IKKepsilon) and two doubtful human
orthologs (ey given PAX4, tin given NKX2-2), in
alliance-automated-regressions.

Mouse (MGI): not used

MGI's MOD_provided_gene_description is a summary of mutant phenotypes, not a
description of what the gene does. In a random sample of 25 of the 221 mouse
genes, 22 have text and all 22 describe allele phenotypes:

Cd79a and Cd79b, outside the sample, share the same sentence word for word. The sample
and these two notes are in mouse-mgi-sample.yaml,
written by mgi_sample.py. Mutant phenotypes establish
necessity, not participation, so under the NEW bar they almost never support an
annotation, and a worm- or fly-style review would mostly list phenotypes that are
correctly left out. The mouse run was therefore stopped after the sample (2026-11-02),
and mod-description-deep-research now skips MGI, so no -deep-research-mgi.md files
are written. The sample also exposed a latent bug,
now fixed: MGI's own UniProt line carries the prefix (DR MGI; MGI:106913;), so the
descriptions fetcher would have asked the Alliance API for MGI:MGI:106913.

Recommendations

  1. Use the curated MOD description as an input, not as an authority. This
    is done through the deep-research file above. Each claim in the curated text
    should be either covered by the review or set aside in reference_review
    (for example, "stale: CED-4 is the Apaf-1-like apoptosome adaptor").
  2. Treat a claim that appears only in the MOD text as a literature lead.
    fshr-1 is the model case: the gap is a missed role, not wording.
  3. Re-audit existing reviews with the comparison script, starting with the
    lowest-overlap genes. The remaining Alliance MODs add nothing here: MGI's note is a
    phenotype summary, RGD's is automated text, and ZFIN and Xenbase have none.
  4. The NCBI step hits rate limits (HTTP 429) on bulk runs. It should honour an
    NCBI_API_KEY, or back off and retry.

Status and next steps