You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
collect_rows()breaks after the first matching rank column, so which rank a mapping row is indexed under depends on which other taxa are in the same run. The same taxon can therefore resolve differently depending on batch composition.
Demonstrated with Euryarchaeota (NCBITaxon:28890, in High_Solids_Switchgrass_Methanogenic_Microbiome.yaml):
ungrounded-only batch → AMBIGUOUS (no block emitted)
whole-KB batch → grounds to GTDB:p__Halobacteriota
Grounding is not reproducible from the record alone, which undercuts mapping_source as provenance: the same mapping release and the same id can yield different answers.
Fix: make collect_rows() index a row under every rank it matches rather than breaking at the first, so resolution depends only on the taxon and the mapping table.
Found reviewing PR #364. Pre-existing.
collect_rows()breaks after the first matching rank column, so which rank a mapping row is indexed under depends on which other taxa are in the same run. The same taxon can therefore resolve differently depending on batch composition.Demonstrated with
Euryarchaeota(NCBITaxon:28890, inHigh_Solids_Switchgrass_Methanogenic_Microbiome.yaml):GTDB:p__HalobacteriotaThis matters twice over:
gtdb_ground.py --applyon these records" — a per-record run may not reproduce what a whole-KB run produced, or vice versa.mapping_sourceas provenance: the same mapping release and the same id can yield different answers.Fix: make
collect_rows()index a row under every rank it matches rather than breaking at the first, so resolution depends only on the taxon and the mapping table.