Skip to content

abundance_level's documented thresholds are impossible for most defined communities that use it #748

Closed

Description

@realmarcin

Found reviewing PR #747.

AbundanceLevelEnum documents numeric relative-abundance bands:

value description in the schema
DOMINANT Greater than 1% relative abundance
ABUNDANT 0.1-1% relative abundance
COMMON 0.01-0.1% relative abundance
RARE Less than 0.01% relative abundance

In a closed two-member coculture each member is necessarily above 1%, so
DOMINANT is the only value the definitions permit. The corpus does not read them
that way.

Counted over kb/communities/ + data/isolates/ this session, restricted to
records with community_origin: SYNTHETIC and at most four members — where the
arithmetic is not in doubt:

ABUNDANT: 53    COMMON: 23    DOMINANT: 15

76 of 91 assignments claim the member is under 1% of a community of two to
four organisms.
Widening to all records with at most four members regardless
of origin gives 82 ABUNDANT, 46 COMMON, 1 RARE against 72 DOMINANT.

Examples, each a two-member coculture with both members marked ABUNDANT
(0.1-1%): Acetobacterium_Clostridium_CO2_Electrolysis_Coculture.yaml,
Bifidobacterium_Ruminococcus_Infant_HMO_CrossFeeding.yaml,
Cellulomonas_Rhodobacter_Cellulose_Photohydrogen_Coculture.yaml,
Chlorella_Ecoli_Mixotrophic_Biofuel_Coculture.yaml.

The practice is clearly a qualitative rank within the record — "this one is
the major partner, that one the minor" — which is a reasonable thing to want.
The schema documents something else, and nothing checks the difference, so a
consumer reading the descriptions gets numbers that are wrong by two orders of
magnitude.

I hit this writing a new record: I reasoned from the English word and put
COMMON on a member the record's own evidence says is ~25% of the population.
Nothing caught it. That is the shape of the problem — the descriptions are not
where a curator looks, and the words invite the qualitative reading.

Options

  1. Rewrite the descriptions to match practice — make them explicitly ordinal
    ("the major partner", "a minority partner"), drop the percentages, and say
    the value is relative within the record. Cheapest, and honest about what the
    115 existing DOMINANT-in-a-pair assignments already mean.
  2. Keep the thresholds and sweep the corpus, moving every closed-community
    member to DOMINANT. This makes the field carry no information in defined
    communities, which is why practice drifted away from it.
  3. Split the concept: a numeric relative_abundance for records that measured
    one, and an ordinal abundance_rank for the rest.

I'd take option 1 unless someone is consuming the percentages, and add a check
that flags a member of a <=4-member record marked below DOMINANT so the two
readings cannot silently diverge again.

Whichever way it goes, the descriptions and the data should agree; right now
they do not, in 76 of 91 places where the arithmetic can be checked.

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