Found selecting the next #183 records. Not a defect in any shipped record — a defect in how I was choosing them, and one the repo has hit before.
The case
Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture looked like the best remaining candidate: 47k characters of cached full text, and a methods section with everything you could want — LABFORS 3 bioreactor, 2 L working volume, 45 °C, 450 rpm, fed-batch switched to chemostat operation.
Its cited reference, PMID:33841379, mentions Galdieria zero times and the word "coculture" zero times. It is a Methylacidiphilum monoculture study of formic acid metabolism. Every one of those numbers describes one member grown alone.
Curating them as the community's cultivation_setup would have been wrong in the way that is hardest to catch later: each value individually correct, each snippet verbatim, just validate and just validate-references both clean, and the block asserting that a two-member coculture was run under conditions that were never applied to it.
This has happened before
Soil_Corrinoid_B12_Reservoir_Community was scored 5/5 on growth conditions belonging to an E. coli reporter strain — the community itself is metagenomic and was never cultured. Only reading the record caught it. Same shape: a rich methods section attached to the wrong organism.
A cheap discriminator that works
Count how many of the record's taxonomy members are named anywhere in the cited source:
| record |
members |
named in source |
"coculture" in source |
Clostridium_Autoethanogenum_Kluyveri_Syngas_Coculture |
2 |
2 |
yes |
Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture |
2 |
2 |
no |
SIHUMIx_Human_Intestinal_Model_Community |
8 |
8 |
no |
Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture |
2 |
1 |
no |
The one that fails is the one that should be rejected. It is not proof — a paper can name every member and still report monoculture conditions — but it is a strong, free signal that costs one grep and would have saved the whole analysis above.
Proposed
A test that, for every record carrying cultivation_setup, checks each evidence reference against the member list and fails when a cited source names fewer than half the members — with an exemption list for the legitimate cases (a setup sourced from a methods paper that describes the apparatus generically, say). Half rather than all, because members are often named by strain designation or abbreviated after first use.
Cheap, and it targets the one error class in this sweep that no existing gate can see: validate-references confirms the snippet is verbatim, and nothing confirms the paper is about this community.
Found selecting the next #183 records. Not a defect in any shipped record — a defect in how I was choosing them, and one the repo has hit before.
The case
Methylacidiphilum_Galdieria_Thermoacidophilic_Coculturelooked like the best remaining candidate: 47k characters of cached full text, and a methods section with everything you could want — LABFORS 3 bioreactor, 2 L working volume, 45 °C, 450 rpm, fed-batch switched to chemostat operation.Its cited reference, PMID:33841379, mentions Galdieria zero times and the word "coculture" zero times. It is a Methylacidiphilum monoculture study of formic acid metabolism. Every one of those numbers describes one member grown alone.
Curating them as the community's
cultivation_setupwould have been wrong in the way that is hardest to catch later: each value individually correct, each snippet verbatim,just validateandjust validate-referencesboth clean, and the block asserting that a two-member coculture was run under conditions that were never applied to it.This has happened before
Soil_Corrinoid_B12_Reservoir_Communitywas scored 5/5 on growth conditions belonging to an E. coli reporter strain — the community itself is metagenomic and was never cultured. Only reading the record caught it. Same shape: a rich methods section attached to the wrong organism.A cheap discriminator that works
Count how many of the record's
taxonomymembers are named anywhere in the cited source:Clostridium_Autoethanogenum_Kluyveri_Syngas_CocultureClostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_CocultureSIHUMIx_Human_Intestinal_Model_CommunityMethylacidiphilum_Galdieria_Thermoacidophilic_CocultureThe one that fails is the one that should be rejected. It is not proof — a paper can name every member and still report monoculture conditions — but it is a strong, free signal that costs one grep and would have saved the whole analysis above.
Proposed
A test that, for every record carrying
cultivation_setup, checks each evidence reference against the member list and fails when a cited source names fewer than half the members — with an exemption list for the legitimate cases (a setup sourced from a methods paper that describes the apparatus generically, say). Half rather than all, because members are often named by strain designation or abbreviated after first use.Cheap, and it targets the one error class in this sweep that no existing gate can see:
validate-referencesconfirms the snippet is verbatim, and nothing confirms the paper is about this community.