Third review pass on #297.
gene_names() reads geneName and synonyms only:
value = (gene.get("geneName") or {}).get("value")
names += [s["value"] for s in gene.get("synonyms") or [] if s.get("value")]
UniProt also carries orderedLocusNames and orfNames, and several components
declare exactly those. attachment_organelle#hmw3_terminal_button declares
hmw3 and mpn452; the accession it already holds, Q50360, is gene hmw3 with
ordered locus MPN_452. So mpn452 is covered by the entry already on the
component, and --gaps reports it as NO_REVIEWED_ENTRY.
Four rows affected today: mpn309, mpn310, mpn452, and the same shape
elsewhere.
Why this was not fixed in #297
Making the report read locus names while the seeder does not would
recreate the report/seeder divergence #298 was filed for. Making both read them
changes what the seeder will match on, which is a real semantic change — a
locus tag identifies an entry, but matching on one is a different claim from
matching on a gene name, and it deserves its own canary and its own PR.
Excluding them may also be deliberate: gene_names() is the exact-match recheck
that stops the adapter trusting UniProt's looser search, and every name it accepts
widens that. Worth deciding explicitly rather than by extension.
Third review pass on #297.
gene_names()readsgeneNameandsynonymsonly:UniProt also carries
orderedLocusNamesandorfNames, and several componentsdeclare exactly those.
attachment_organelle#hmw3_terminal_buttondeclareshmw3andmpn452; the accession it already holds, Q50360, is genehmw3withordered locus
MPN_452. Sompn452is covered by the entry already on thecomponent, and
--gapsreports it asNO_REVIEWED_ENTRY.Four rows affected today:
mpn309,mpn310,mpn452, and the same shapeelsewhere.
Why this was not fixed in #297
Making the report read locus names while the seeder does not would
recreate the report/seeder divergence #298 was filed for. Making both read them
changes what the seeder will match on, which is a real semantic change — a
locus tag identifies an entry, but matching on one is a different claim from
matching on a gene name, and it deserves its own canary and its own PR.
Excluding them may also be deliberate:
gene_names()is the exact-match recheckthat stops the adapter trusting UniProt's looser search, and every name it accepts
widens that. Worth deciding explicitly rather than by extension.