Skip to content

A GTDB block sits on a plant taxon: NCBITaxon:169215 is Bosea (Amaranthaceae), used for a bacterium #365

Description

@realmarcin

Found reviewing PR #364. Pre-existing; no gate can see it.

NCBITaxon:169215 is the plant genus Bosea (Eukaryota → Viridiplantae → Amaranthaceae, rank genus). Two records use it for the alphaproteobacterium and carry a bacterial GTDB block derived from it:

  • kb/communities/MSC1_Dominant_Core.yamlBosea sp.
  • kb/communities/EcoFAB_Ring_Trial_SynCom17.yamlBosea sp. OAE506

both with gtdb_lineage: d__Bacteria;p__Pseudomonadota;…;g__Bosea.

The block was produced by a name collision: gtdb_ground.py's higher-rank path matches on the cleaned label string, never on the id, so "Bosea" resolved to the bacterial genus while the id points at a plant.

Invisible to every existing gate. ncbi_source_id == term.id, so the freshness test added in #364 passes. "Bosea" genuinely is NCBITaxon:169215's label, so id↔label correspondence passes. linkml-validate has nothing to say.

Same defect class as the two entries deliberately withheld under #292 — except here the block was written rather than withheld.

Candidate correct ids (a curation call, which is why this is filed rather than fixed): NCBI appears to have renamed the alphaproteobacterial genus — NCBITaxon:85413 is now Allobosea, and NCBITaxon:1871050 is Bosea sp. (in: a-proteobacteria).

Mechanical guard worth adding either way: if gtdb_lineage starts d__Bacteria or d__Archaea, then term.id must sit under NCBITaxon:2 or NCBITaxon:2157. GTDB is prokaryote-only, so a eukaryotic id carrying a prokaryotic lineage is always wrong. That check would have caught this at write time.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions