From a5bdf075f232d598274488c883ddd713cdf38b96 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Mon, 5 Oct 2026 17:31:17 -0700 Subject: [PATCH] Review biohydrogen, minority-mediator and syngas causal graphs --- ...monas_Cellulose_Biohydrogen_Coculture.html | 80 ++- ...fovibrio_Minority_Mediator_Consortium.html | 105 ++-- ...lii_Kluyveri_Syngas_Alcohol_Coculture.html | 128 ++-- .../2026-10-06T002338Z-codex-e65507.yaml | 27 + .../2026-10-06T002338Z-codex-3e7140.yaml | 29 + .../2026-10-06T002339Z-codex-426420.yaml | 28 + ...monas_Cellulose_Biohydrogen_Coculture.yaml | 90 +-- ...fovibrio_Minority_Mediator_Consortium.yaml | 119 ++-- ...lii_Kluyveri_Syngas_Alcohol_Coculture.yaml | 145 +++-- .../adversarial-review-20261005-batch20.yaml | 105 ++++ .../20261005-three-records-batch20.yaml | 296 ++++++++++ reports/causal_graph_review/inventory.tsv | 6 +- reports/causal_graph_review/summary.json | 8 +- .../validation-20261005-batch20.json | 550 ++++++++++++++++++ tests/test_causal_review_batch20.py | 139 +++++ tests/test_participating_taxa.py | 1 + 16 files changed, 1561 insertions(+), 295 deletions(-) create mode 100644 history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml create mode 100644 history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml create mode 100644 history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261005-batch20.yaml create mode 100644 reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml create mode 100644 reports/causal_graph_review/validation-20261005-batch20.json create mode 100644 tests/test_causal_review_batch20.py diff --git a/docs/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.html b/docs/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.html index 4dfd83dd3..db2dda81a 100644 --- a/docs/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.html +++ b/docs/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.html @@ -585,7 +585,7 @@

Ecological Interactions

Ecological interaction network for Clostridium cellulovorans-Rhodopseudomonas palustris Cellulose Biohydrogen Coculture - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding, syntrophy). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding).
@@ -598,8 +598,8 @@

Ecological Interactions

Syntrophy + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -610,8 +610,7 @@

Ecological Interactions

VFA Cross-Feeding and pH Stabilization

CROSS_FEEDING -

C. cellulovorans degrades cellulose and releases volatile fatty acids, while R. palustris consumes some of those acids, stabilizing pH and allowing greater cellulose consumption. -

+

C. cellulovorans supplies VFAs to R. palustris in illuminated cellulose-fed coculture. PARTIAL - the measured pH and substrate profiles support product-removal feedback, but do not isolate pH as its only mediator. Cellulose is the upstream substrate, not a compound directly donated to R. palustris.

Source Taxon: Clostridium cellulovorans 743B

@@ -660,8 +659,7 @@

VFA Cross-Feeding and pH Stabilization

→ Integrated Dark and Photo Fermentation for Hydrogen -

R. palustris consumption of C. cellulovorans volatile fatty acids links cellulose-fed dark fermentation to photofermentative metabolism and the enhanced hydrogen yield. -

+

VFA supply supports R. palustris photofermentation. PARTIAL - acid consumption can also sustain fermenter activity through a smaller pH decline; partner fluxes and the separate contributions of these routes are not directly resolved.

@@ -677,7 +675,7 @@

Evidence

doi:10.1128/AEM.00789-16 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"genes related to biosynthesis of volatile fatty acids (VFAs) in C. cellulovorans were upregulated"
@@ -690,7 +688,7 @@

Evidence

doi:10.1128/AEM.00789-16 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"a gene that mediates organic compound catabolism in R. palustris was also upregulated"
@@ -704,10 +702,8 @@

Evidence

Integrated Dark and Photo Fermentation for Hydrogen

- SYNTROPHY
-

Dark fermentation by C. cellulovorans and photofermentative metabolism by R. palustris jointly enhance hydrogen production from cellulose relative to monocultures. -

+

Coculture hydrogen output exceeded C. cellulovorans monoculture output. PARTIAL - ammonium suppression supports R. palustris nitrogenase involvement in the enhancement, not a directly measured partition of all hydrogen between partners. Nitrogenase-associated proton reduction is not itself evidence of N2 fixation under the argon headspace.

@@ -737,12 +733,6 @@

Integrated Dark and Photo Fermentation for Hydrogen

class="term-link" target="_blank" rel="noopener noreferrer">GO:0015979) -
  • - nitrogen fixation - (GO:0009399) -
  • - @@ -771,7 +761,7 @@

    Evidence

    doi:10.1128/AEM.00789-16 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "the enhanced H 2 yield was contributed mainly by R. palustris"
    @@ -784,11 +774,9 @@

    Evidence

    -

    Transcriptomic Division of Labor

    - CROSS_FEEDING +

    Transcriptomic Responses Associated with Cocultivation

    -

    Cocultivation upregulates C. cellulovorans cellulosomal genes and R. palustris nitrogen fixation genes, indicating complementary functional responses during cellulose-grown hydrogen production. -

    +

    Cellulosomal and nitrogenase-related transcription changes accompany cocultivation. They are measured responses, not demonstrated metabolite exchange or a selectively established cause of the hydrogen phenotype.

    @@ -806,27 +794,10 @@

    Transcriptomic Division of Labor

    class="term-link" target="_blank" rel="noopener noreferrer">GO:0030245) -
  • - nitrogen fixation - (GO:0009399) -
  • - -
    - Downstream Effects: - -
    - → Integrated Dark and Photo Fermentation for Hydrogen -

    C. cellulovorans cellulosomal induction and R. palustris nitrogenase induction represent the coordinated dark- and photo-fermentative activities that drive enhanced cellulose-fed hydrogen production. -

    -
    - -
    -

    Evidence

    @@ -907,6 +878,25 @@

    Associated Datasets

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + How much of the hydrogen enhancement is mediated by nitrogenase activity and pH-dependent product-removal feedback? +

    +

    The ammonium intervention supports nitrogenase involvement. Partner-resolved flux and matched-pH or selective pathway interventions would distinguish the remaining mechanisms. Monoculture carbon substrates differ; the transcriptomic model is inferential.

    + +

    Attaches to: ecological_interactions#VFA Cross-Feeding and pH Stabilization, ecological_interactions#Integrated Dark and Photo Fermentation for Hydrogen, ecological_interactions#Transcriptomic Responses Associated with Cocultivation

    + + + + +
    + +
    @@ -1233,7 +1223,7 @@

    Evidence

    (function() { var intId = "interaction:1"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1247,8 +1237,6 @@

    Evidence

    processes.push("photosynthesis"); - processes.push("nitrogen fixation"); - var evidenceCount = 2; @@ -1269,7 +1257,7 @@

    Evidence

    (function() { var intId = "interaction:2"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1277,14 +1265,12 @@

    Evidence

    processes.push("cellulose catabolic process"); - processes.push("nitrogen fixation"); - var evidenceCount = 1; nodes.push({ id: intId, - label: "Transcriptomic Division of Labor", + label: "Transcriptomic Responses Associated with Cocultivation", type: "interaction", interactionType: intType, metabolites: metabolites, diff --git a/docs/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.html b/docs/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.html index 5c03e12c6..25ef35a30 100644 --- a/docs/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.html +++ b/docs/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.html @@ -619,7 +619,7 @@

    Ecological Interactions

    Ecological interaction network for Clostridium-E. coli-Nitratidesulfovibrio Minority-Mediator Consortium - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding, competition, colonization facilitation). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding).
    @@ -632,13 +632,8 @@

    Ecological Interactions

    Competition -
    -
    - Colonization facilitation + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
    @@ -646,11 +641,9 @@

    Ecological Interactions

    -

    Minority-member mediation of community interactions

    - CROSS_FEEDING +

    Fluorescent-Label Exchange and Proposed Minority-Member Shuttle

    -

    N. vulgaris physically associates with both other members and exchanges cytoplasmic material bidirectionally, allowing it to act as a mediator even though C. acetobutylicum and E. coli do not exchange cytoplasmic material directly. -

    +

    PARTIAL - confocal experiments using calcein-labeled C. acetobutylicum, mCherry-expressing E. coli and initially unlabeled N. vulgaris support exchange of fluorescent cytoplasmic labels. The authors propose that N. vulgaris acts as a shuttle between the other members. This does not identify a growth-supporting metabolite or establish that label exchange causes the growth benefit; the two rod-shaped partners are not readily distinguishable by morphology.

    @@ -672,17 +665,6 @@

    Minority-member mediation of community interactions

    -
    - Downstream Effects: - -
    - → Nitratidesulfovibrio Protection of Clostridial Growth -

    N. vulgaris shuttle activity is the mediator phenotype that reshapes the E. coli-C. acetobutylicum relationship in the three-member consortium. -

    -
    - -
    -

    Evidence

    @@ -694,7 +676,7 @@

    Evidence

    PMID:41684672 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "Confocal microscopy confirmed that N. vulgaris exchanges cytoplasmic material with both C. acetobutylicum and E. coli bidirectionally, suggesting its role as a mediator in the consortium."
    @@ -707,7 +689,7 @@

    Evidence

    PMID:41684672 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "Thus, N. vulgaris may function as a shuttle between E. coli and C. acetobutylicum."
    @@ -721,10 +703,8 @@

    Evidence

    E. coli-associated inhibition of C. acetobutylicum

    - COMPETITION
    -

    E. coli passively competes with C. acetobutylicum through resource use and medium acidification; adding N. vulgaris restores the C. acetobutylicum-like second growth phase in the three-member consortium. -

    +

    PARTIAL - the E. coli/C. acetobutylicum culture has a slower second OD600 growth phase attributed to C. acetobutylicum, while the early E. coli phase appears unaffected. The authors call the relationship passive competition, but reciprocal negative effects required by the local COMPETITION type are not established. Glucose depletion, acidification, added metabolites and filtered supernatants do not reproduce every live-coculture feature; the inhibition mechanism remains incompletely resolved.

    Source Taxon: Escherichia coli DH10B

    @@ -750,17 +730,6 @@

    E. coli-associated inhibition of C. acetobutylicum

    -
    - Downstream Effects: - -
    - → Nitratidesulfovibrio Protection of Clostridial Growth -

    E. coli-associated inhibition is the pairwise phenotype attenuated when N. vulgaris is added as a third, minority member. -

    -
    - -
    -

    Evidence

    @@ -772,7 +741,7 @@

    Evidence

    PMID:41684672 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "The results indicate that E. coli engages in passive competition with C. acetobutylicum"
    @@ -785,7 +754,7 @@

    Evidence

    PMID:41684672 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "the presence of N. vulgaris could prevent the inhibition of C. acetobutylicum growth by E. coli"
    @@ -801,7 +770,7 @@

    Evidence

    E. coli-to-Clostridium lactate cross-feeding

    CROSS_FEEDING -

    C. acetobutylicum consumes lactate associated with E. coli metabolism in coculture.

    +

    C. acetobutylicum consumes E. coli-associated lactate in the binary coculture and in filtered E. coli supernatant. These complementary assays support extracellular lactate cross-feeding. They do not quantify every donor-resolved carbon flux or identify lactate as the unique cause of the hydrogen-yield changes.

    Source Taxon: Escherichia coli DH10B

    @@ -848,11 +817,9 @@

    Evidence

    -

    Nitratidesulfovibrio Protection of Clostridial Growth

    - COLONIZATION_FACILITATION +

    Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth

    -

    Adding minority N. vulgaris prevents part of the growth inhibition imposed by E. coli on C. acetobutylicum, restoring a faster C. acetobutylicum-like second growth phase in the three-member consortium. -

    +

    Adding N. vulgaris restores a faster second mixed-culture OD600 phase, with author-reported doubling estimates of 5.5 h versus 9 h in the E. coli/C. acetobutylicum culture. Separate genomic qPCR supports the growth-phase assignment, but copies per ng DNA are not direct live-cell counts. Filtered N. vulgaris/E. coli supernatant also improves C. acetobutylicum growth without simultaneous contact with that recipient. The soluble factor and any necessity of cytoplasmic exchange remain unresolved; faster liquid-culture growth is not itself a colonization assay.

    @@ -898,13 +865,26 @@

    Evidence

    PMID:41684672 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "N. vulgaris emerges as an unexpected mediator and protector"
    +
  • +
    + + PMID:41684672 + + - SUPPORT (IN_VITRO) +
    + +
    "C. acetobutylicum growth is also considerably enhanced in the supernatant of N. vulgaris/E. coli"
    + +
  • + @@ -914,6 +894,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which soluble factors or direct exchanges cause the N. vulgaris-associated growth benefit? +

    +

    PMID:41684672 supports label exchange, altered growth/metabolite kinetics, lactate uptake and a filtered-supernatant benefit. It does not selectively establish a shuttle or identify the growth-promoting molecule. Matched pH/resource conditions, recipient-specific viable growth measurements and selective contact/transfer perturbations would distinguish these mechanisms. Genomic qPCR normalization and species-specific extraction differences constrain abundance comparisons.

    + +

    Attaches to: ecological_interactions#Fluorescent-Label Exchange and Proposed Minority-Member Shuttle, ecological_interactions#E. coli-associated inhibition of C. acetobutylicum, ecological_interactions#E. coli-to-Clostridium lactate cross-feeding, ecological_interactions#Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth

    + + + + +
    + +
    @@ -1255,7 +1254,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1268,7 +1267,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Minority-member mediation of community interactions", + label: "Fluorescent-Label Exchange and Proposed Minority-Member Shuttle", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1283,7 +1282,7 @@

    Evidence

    (function() { var intId = "interaction:1"; - var intType = "COMPETITION"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1359,7 +1358,7 @@

    Evidence

    (function() { var intId = "interaction:3"; - var intType = "COLONIZATION_FACILITATION"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1368,11 +1367,11 @@

    Evidence

    processes.push("biological process involved in interspecies interaction between organisms"); - var evidenceCount = 2; + var evidenceCount = 3; nodes.push({ id: intId, - label: "Nitratidesulfovibrio Protection of Clostridial Growth", + label: "Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth", type: "interaction", interactionType: intType, metabolites: metabolites, diff --git a/docs/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.html b/docs/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.html index 556f39d34..03d44d846 100644 --- a/docs/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.html +++ b/docs/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.html @@ -583,7 +583,7 @@

    Ecological Interactions

    Ecological interaction network for Clostridium ljungdahlii-Clostridium kluyveri Syngas Alcohol Coculture - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding, competition). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding).
    @@ -596,8 +596,8 @@

    Ecological Interactions

    Competition + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
    @@ -608,7 +608,7 @@

    Ecological Interactions

    Syngas Fermentation to Ethanol and Acetate

    CROSS_FEEDING -

    C. ljungdahlii converts syngas into ethanol and acetate, creating reduced and oxidized C2 intermediates that support chain elongation by C. kluyveri.

    +

    C. ljungdahlii converts syngas to ethanol and acetate that support C. kluyveri chain elongation in the tested continuous reactor. The gases are feed substrates and the C2 compounds are the proposed exchanged products. Product balances support this division of labor; the estimate that roughly two-thirds of ethanol production supported chain elongation is calculated from stoichiometry rather than directly traced partner flux.

    Source Taxon: Clostridium ljungdahlii

    @@ -696,7 +696,7 @@

    Evidence

    - SUPPORT (IN_VITRO) -
    "ethanol and acetate"
    +
    "These products were used as substrates by C. kluyveri to chain-elongate them into longer-chain carboxylates."
    @@ -709,7 +709,7 @@

    Evidence

    Ethanol-Driven Chain Elongation

    CROSS_FEEDING -

    C. kluyveri uses ethanol from C. ljungdahlii to perform reverse beta-oxidation chain elongation, producing butyrate and caproate.

    +

    C. kluyveri uses ethanol and acetate supplied by C. ljungdahlii to form butyrate and hexanoate by chain elongation. PARTIAL - the C. kluyveri-to-C. ljungdahlii direction denotes proposed carboxylate supply for subsequent reduction, not ethanol transfer in that direction. Bulk products and stoichiometric calculations do not directly resolve all partner fluxes.

    Source Taxon: Clostridium kluyveri

    @@ -731,12 +731,12 @@

    Ethanol-Driven Chain Elongation

    class="term-link" target="_blank" rel="noopener noreferrer">CHEBI:30089), butyrate - (CHEBI:30772), + (CHEBI:17968), hexanoate - (CHEBI:30776) + (CHEBI:17120)

    @@ -759,9 +759,8 @@

    Ethanol-Driven Chain Elongation

    Downstream Effects:
    - → Biological Reduction to Longer-Chain Alcohols -

    Chain elongation generates butyrate and hexanoate that C. ljungdahlii can reduce to the longer-chain alcohols detected in the syngas coculture. -

    + → Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols +

    PARTIAL - chain elongation supplies the carboxylate precursors for the observed longer-chain alcohols. The primary study proposes that C. ljungdahlii reduces them, but does not selectively establish the reducing organism or quantify donor-resolved precursor flux.

    @@ -803,29 +802,32 @@

    Evidence

    -

    Biological Reduction to Longer-Chain Alcohols

    - CROSS_FEEDING +

    Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols

    -

    C. ljungdahlii likely reduces chain-elongated carboxylates to longer-chain alcohols using reducing power from syngas, yielding butanol, hexanol, and trace octanol.

    +

    PARTIAL - the coculture produced butanol, hexanol and trace octanol. The proposed mechanism is reduction of chain-elongated carboxylates, most likely by C. ljungdahlii using syngas-derived reducing power. The reducing partner was not selectively resolved, and the paper does not exclude a C. kluyveri contribution. These are community products, not demonstrated alcohol donation from C. ljungdahlii to C. kluyveri. Named carboxylate pools coexist with pH-dependent undissociated acids relevant to the proposed reduction.

    -

    Source Taxon: Clostridium ljungdahlii

    +

    Participating Taxa: -

    Target Taxon: Clostridium kluyveri

    + Clostridium ljungdahlii, + + Clostridium kluyveri + +

    Metabolites: butyrate - (CHEBI:30772), + (CHEBI:17968), hexanoate - (CHEBI:30776), + (CHEBI:17120), butanol (Evidence PMID:27877166 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)

    "likely reduced the produced carboxylates to their corresponding alcohols"
    @@ -885,17 +887,20 @@

    Evidence

    -

    pH-Restricted Product Formation

    - COMPETITION +

    pH-Dependent Process Performance

    -

    Longer-chain alcohol production depended on a narrow pH range because C. ljungdahlii and C. kluyveri have different pH optima, causing a process-level tradeoff between acetogenesis, chain elongation, and biological reduction.

    +

    Longer-chain products were observed across the tested pH range of 5.7-6.4 in phases of one continuously operated reactor. The phase comparisons, altered medium flow and operational disturbances support condition-dependent process tradeoffs, not a universal optimum or independent replicated pH treatments. Competition between chain elongation and reduction for carboxylate intermediates is a process-allocation model, not measured reciprocal ecological harm to both organisms.

    -

    Source Taxon: Clostridium ljungdahlii

    +

    Participating Taxa: -

    Target Taxon: Clostridium kluyveri

    + Clostridium ljungdahlii, + + Clostridium kluyveri + +

    @@ -950,7 +955,7 @@

    Evidence

    PMID:27877166 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    "two bioprocesses compete for intermediates"
    @@ -966,6 +971,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which partner reduces each carboxylate, and how do pH and operating conditions partition flux between elongation and reduction? +

    +

    PMID:27877166 reports products and condition responses from one reactor. Intermediate production and ethanol utilization are reconstructed from stoichiometry; reducing-organism attribution and several pH mechanisms remain proposed. Partner-selective or isotope-resolved experiments and replicated matched-flow pH comparisons would separate these mechanisms. Do not equate competing process routes with reciprocal organismal fitness harm.

    + +

    Attaches to: ecological_interactions#Syngas Fermentation to Ethanol and Acetate, ecological_interactions#Ethanol-Driven Chain Elongation, ecological_interactions#Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols, ecological_interactions#pH-Dependent Process Performance

    + + + + +
    + +
    @@ -1459,7 +1483,7 @@

    Evidence

    (function() { var intId = "interaction:2"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1480,7 +1504,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Biological Reduction to Longer-Chain Alcohols", + label: "Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1489,23 +1513,26 @@

    Evidence

    }); - var srcKey = "Clostridium ljungdahlii"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Clostridium kluyveri"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Clostridium ljungdahlii", + + "Clostridium kluyveri" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:3"; - var intType = "COMPETITION"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1524,7 +1551,7 @@

    Evidence

    nodes.push({ id: intId, - label: "pH-Restricted Product Formation", + label: "pH-Dependent Process Performance", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1533,17 +1560,20 @@

    Evidence

    }); - var srcKey = "Clostridium ljungdahlii"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Clostridium kluyveri"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Clostridium ljungdahlii", + + "Clostridium kluyveri" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); diff --git a/history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml b/history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml new file mode 100644 index 000000000..c9caedadd --- /dev/null +++ b/history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml @@ -0,0 +1,27 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml + slug: Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture +session: + id: 2026-10-06T002338Z-codex-e65507 + timestamp: '2026-10-06T00:23:38Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1330 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain VFA supply and a qualified metabolic link; separate pools and pH feedback + from resolved flux.; Retain enhanced output and the ammonium intervention; remove categorical + endpoint syntrophy and unmeasured N2-fixation typing.; Preserve expression observations; + remove transfer typing and the expression-to-output arrow. + details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml diff --git a/history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml b/history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml new file mode 100644 index 000000000..37dfaa172 --- /dev/null +++ b/history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml @@ -0,0 +1,29 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml + slug: Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium +session: + id: 2026-10-06T002338Z-codex-3e7140 + timestamp: '2026-10-06T00:23:38Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1331 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Preserve observed label exchange and proposed shuttle, without metabolite-transfer + typing or a growth-mediation arrow.; Preserve directed inhibition and assay controls; + remove reciprocal-competition typing and the inhibition-to-protection arrow.; Retain directed + lactate cross-feeding supported in the binary culture and filtered supernatant.; Retain + addition and soluble-medium benefits with OD600/qPCR limits, without colonization or unique + shuttle causality. + details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml diff --git a/history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml b/history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml new file mode 100644 index 000000000..3cad8a8cf --- /dev/null +++ b/history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml + slug: Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture +session: + id: 2026-10-06T002339Z-codex-426420 + timestamp: '2026-10-06T00:23:39Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1332 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the supported C2 supply link while distinguishing measured net products + from inferred total flux.; Clarify the carboxylate-supply direction and qualify its reduction + arrow; correct named anion groundings.; Retain alcohol products and proposed reduction + without inventing reverse alcohol donation or a resolved reducing partner.; Preserve tested + pH/operating effects as community-level performance, not reciprocal ecological competition. + details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml diff --git a/kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml b/kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml index 79262bf7d..06f5bbd14 100644 --- a/kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml +++ b/kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml @@ -117,10 +117,9 @@ taxonomy: explanation: Supports the R. palustris nitrogenase-linked contribution to coculture biohydrogen physiology. ecological_interactions: - name: VFA Cross-Feeding and pH Stabilization - description: > - C. cellulovorans degrades cellulose and releases volatile fatty acids, while - R. palustris consumes some of those acids, stabilizing pH and allowing - greater cellulose consumption. + description: C. cellulovorans supplies VFAs to R. palustris in illuminated cellulose-fed coculture. PARTIAL - + the measured pH and substrate profiles support product-removal feedback, but do not isolate pH as its only mediator. + Cellulose is the upstream substrate, not a compound directly donated to R. palustris. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -154,27 +153,27 @@ ecological_interactions: label: fermentation downstream: - target: Integrated Dark and Photo Fermentation for Hydrogen - description: > - R. palustris consumption of C. cellulovorans volatile fatty acids links - cellulose-fed dark fermentation to photofermentative metabolism and the - enhanced hydrogen yield. + description: VFA supply supports R. palustris photofermentation. PARTIAL - acid consumption can also sustain + fermenter activity through a smaller pH decline; partner fluxes and the separate contributions of these routes + are not directly resolved. evidence: - reference: doi:10.1128/AEM.00789-16 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: genes related to biosynthesis of volatile fatty acids (VFAs) in C. cellulovorans were upregulated - explanation: Supports C. cellulovorans production of VFA-related fermentation products in coculture. + explanation: Expression supports the proposed exchange model, not measured transfer flux; primary physiological + comparisons provide complementary support. - reference: doi:10.1128/AEM.00789-16 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: a gene that mediates organic compound catabolism in R. palustris was also upregulated - explanation: Supports R. palustris catabolism of organic compounds produced in the coculture. + explanation: Expression supports the proposed exchange model, not measured transfer flux; primary physiological + comparisons provide complementary support. - name: Integrated Dark and Photo Fermentation for Hydrogen - description: > - Dark fermentation by C. cellulovorans and photofermentative metabolism by - R. palustris jointly enhance hydrogen production from cellulose relative to - monocultures. - interaction_type: SYNTROPHY + description: Coculture hydrogen output exceeded C. cellulovorans monoculture output. PARTIAL - ammonium suppression + supports R. palustris nitrogenase involvement in the enhancement, not a directly measured partition of all hydrogen + between partners. Nitrogenase-associated proton reduction is not itself evidence of N2 fixation under the argon + headspace. scope: COMMUNITY_LEVEL metabolites: - preferred_term: dihydrogen @@ -190,49 +189,34 @@ ecological_interactions: term: id: GO:0015979 label: photosynthesis - - preferred_term: nitrogen fixation - term: - id: GO:0009399 - label: nitrogen fixation evidence: - reference: doi:10.1128/AEM.00789-16 supports: SUPPORT evidence_source: IN_VITRO snippet: consistent with the physiological observations of enhanced H 2 production and cellulose degradation - explanation: Supports prior physiological observations of enhanced hydrogen production and cellulose degradation in coculture. + explanation: Supports prior physiological observations of enhanced hydrogen production and cellulose degradation + in coculture. - reference: doi:10.1128/AEM.00789-16 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: the enhanced H 2 yield was contributed mainly by R. palustris - explanation: Supports R. palustris nitrogenase activity as a major contributor to enhanced hydrogen production. -- name: Transcriptomic Division of Labor - description: > - Cocultivation upregulates C. cellulovorans cellulosomal genes and - R. palustris nitrogen fixation genes, indicating complementary functional - responses during cellulose-grown hydrogen production. - interaction_type: CROSS_FEEDING + explanation: The abstract infers the enhanced component from expression; the primary ammonium experiment additionally + supports nitrogenase involvement without directly partitioning partner gas flux. +- name: Transcriptomic Responses Associated with Cocultivation + description: Cellulosomal and nitrogenase-related transcription changes accompany cocultivation. They are measured + responses, not demonstrated metabolite exchange or a selectively established cause of the hydrogen phenotype. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: cellulose catabolic process term: id: GO:0030245 label: cellulose catabolic process - - preferred_term: nitrogen fixation - term: - id: GO:0009399 - label: nitrogen fixation - downstream: - - target: Integrated Dark and Photo Fermentation for Hydrogen - description: > - C. cellulovorans cellulosomal induction and R. palustris nitrogenase - induction represent the coordinated dark- and photo-fermentative - activities that drive enhanced cellulose-fed hydrogen production. evidence: - reference: doi:10.1128/AEM.00789-16 supports: SUPPORT evidence_source: IN_VITRO snippet: nitrogen fixation genes in R. palustris and the cellulosomal genes in C. cellulovorans were upregulated - explanation: Supports complementary transcriptional responses in the two coculture members. + explanation: Supports differential expression, not nitrogen-fixation flux or causal mediation of hydrogen production. environmental_factors: - name: Renewable cellulose substrate value: cellulose-grown coculture @@ -371,3 +355,27 @@ metal_relevance: NOT_APPLICABLE metal_notes: > No metal or rare earth element processing role is curated for this cellulose-fed biohydrogen coculture. +discussions: +- discussion_id: cellulose_photofermentation_mediator_partition + prompt: How much of the hydrogen enhancement is mediated by nitrogenase activity and pH-dependent product-removal + feedback? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#VFA Cross-Feeding and pH Stabilization + - ecological_interactions#Integrated Dark and Photo Fermentation for Hydrogen + - ecological_interactions#Transcriptomic Responses Associated with Cocultivation + rationale: The ammonium intervention supports nitrogenase involvement. Partner-resolved flux and matched-pH or + selective pathway interventions would distinguish the remaining mechanisms. Monoculture carbon substrates differ; + the transcriptomic model is inferential. + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-06T00:23:37Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain VFA supply and a qualified metabolic link; separate pools and pH feedback from resolved flux.; + Retain enhanced output and the ammonium intervention; remove categorical endpoint syntrophy and unmeasured N2-fixation + typing.; Preserve expression observations; remove transfer typing and the expression-to-output arrow. Issue + #1330; reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml' + llm_assisted: true diff --git a/kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml b/kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml index 726976b15..a616d115d 100644 --- a/kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml +++ b/kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml @@ -117,41 +117,38 @@ taxonomy: snippet: N. vulgaris emerges as an unexpected mediator and protector explanation: Supports the minority member's mediator role in the three-member community. ecological_interactions: -- name: Minority-member mediation of community interactions - description: > - N. vulgaris physically associates with both other members and exchanges - cytoplasmic material bidirectionally, allowing it to act as a mediator even - though C. acetobutylicum and E. coli do not exchange cytoplasmic material - directly. - interaction_type: CROSS_FEEDING +- name: Fluorescent-Label Exchange and Proposed Minority-Member Shuttle + description: PARTIAL - confocal experiments using calcein-labeled C. acetobutylicum, mCherry-expressing E. coli + and initially unlabeled N. vulgaris support exchange of fluorescent cytoplasmic labels. The authors propose + that N. vulgaris acts as a shuttle between the other members. This does not identify a growth-supporting metabolite + or establish that label exchange causes the growth benefit; the two rod-shaped partners are not readily distinguishable + by morphology. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: biological process involved in interspecies interaction between organisms term: id: GO:0044419 label: biological process involved in interspecies interaction between organisms - downstream: - - target: Nitratidesulfovibrio Protection of Clostridial Growth - description: > - N. vulgaris shuttle activity is the mediator phenotype that reshapes the - E. coli-C. acetobutylicum relationship in the three-member consortium. evidence: - reference: PMID:41684672 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO - snippet: Confocal microscopy confirmed that N. vulgaris exchanges cytoplasmic material with both C. acetobutylicum and E. coli bidirectionally, suggesting its role as a mediator in the consortium. - explanation: Directly supports the mediator mechanism and its dependence on N. vulgaris. + snippet: Confocal microscopy confirmed that N. vulgaris exchanges cytoplasmic material with both C. acetobutylicum + and E. coli bidirectionally, suggesting its role as a mediator in the consortium. + explanation: Supports observed label exchange and the authors' mediator interpretation, not necessity or sufficiency + of a physical shuttle for growth protection. - reference: PMID:41684672 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: Thus, N. vulgaris may function as a shuttle between E. coli and C. acetobutylicum. - explanation: Supports the shuttle interpretation of the fluorescent-label transfer experiment. + explanation: The source explicitly proposes a shuttle; fluorescent labeling is not a nutrient-flux or growth-mediator + intervention. - name: E. coli-associated inhibition of C. acetobutylicum - description: > - E. coli passively competes with C. acetobutylicum through resource use and - medium acidification; adding N. vulgaris restores the C. acetobutylicum-like - second growth phase in the three-member consortium. - interaction_type: COMPETITION + description: PARTIAL - the E. coli/C. acetobutylicum culture has a slower second OD600 growth phase attributed + to C. acetobutylicum, while the early E. coli phase appears unaffected. The authors call the relationship passive + competition, but reciprocal negative effects required by the local COMPETITION type are not established. Glucose + depletion, acidification, added metabolites and filtered supernatants do not reproduce every live-coculture + feature; the inhibition mechanism remains incompletely resolved. scope: PAIRWISE source_taxon: preferred_term: Escherichia coli DH10B @@ -168,24 +165,23 @@ ecological_interactions: term: id: GO:0044419 label: biological process involved in interspecies interaction between organisms - downstream: - - target: Nitratidesulfovibrio Protection of Clostridial Growth - description: > - E. coli-associated inhibition is the pairwise phenotype attenuated when - N. vulgaris is added as a third, minority member. evidence: - reference: PMID:41684672 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: The results indicate that E. coli engages in passive competition with C. acetobutylicum - explanation: Supports classification of the pairwise relationship as competition. + explanation: Retains the authors' terminology as an interpretation. Their early E. coli measurements do not + demonstrate a negative effect on both partners, as the local COMPETITION enum requires. - reference: PMID:41684672 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: the presence of N. vulgaris could prevent the inhibition of C. acetobutylicum growth by E. coli - explanation: Supports the protective effect observed after adding the minority member. + explanation: The addition comparison supports attenuation of the second-phase inhibition, not an arrow asserting + that inhibition itself causes protection. - name: E. coli-to-Clostridium lactate cross-feeding - description: C. acetobutylicum consumes lactate associated with E. coli metabolism in coculture. + description: C. acetobutylicum consumes E. coli-associated lactate in the binary coculture and in filtered E. + coli supernatant. These complementary assays support extracellular lactate cross-feeding. They do not quantify + every donor-resolved carbon flux or identify lactate as the unique cause of the hydrogen-yield changes. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -207,14 +203,16 @@ ecological_interactions: - reference: PMID:41684672 supports: SUPPORT evidence_source: IN_VITRO - snippet: the utilization of lactate by C. acetobutylicum is observed in both conditions, i.e., in the consortia C. acetobutylicum E. coli and C. acetobutylicum in E. coli's supernatant + snippet: the utilization of lactate by C. acetobutylicum is observed in both conditions, i.e., in the consortia + C. acetobutylicum E. coli and C. acetobutylicum in E. coli's supernatant explanation: Supports consumption by C. acetobutylicum of an E. coli-associated extracellular metabolite. -- name: Nitratidesulfovibrio Protection of Clostridial Growth - description: > - Adding minority N. vulgaris prevents part of the growth inhibition imposed - by E. coli on C. acetobutylicum, restoring a faster C. acetobutylicum-like - second growth phase in the three-member consortium. - interaction_type: COLONIZATION_FACILITATION +- name: Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth + description: Adding N. vulgaris restores a faster second mixed-culture OD600 phase, with author-reported doubling + estimates of 5.5 h versus 9 h in the E. coli/C. acetobutylicum culture. Separate genomic qPCR supports the growth-phase + assignment, but copies per ng DNA are not direct live-cell counts. Filtered N. vulgaris/E. coli supernatant + also improves C. acetobutylicum growth without simultaneous contact with that recipient. The soluble factor + and any necessity of cytoplasmic exchange remain unresolved; faster liquid-culture growth is not itself a colonization + assay. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: biological process involved in interspecies interaction between organisms @@ -226,14 +224,20 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: the presence of N. vulgaris could prevent the inhibition of C. acetobutylicum growth by E. coli - explanation: > - Supports the protective effect of N. vulgaris in the three-member - consortium. + explanation: Supports the three-member addition comparison; the reported doubling estimates refer to the second + mixed-culture optical-density phase, not directly counted taxon-specific divisions. - reference: PMID:41684672 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: N. vulgaris emerges as an unexpected mediator and protector - explanation: Supports the authors' mediator/protector interpretation for the minority member. + explanation: The abstract summarizes the mediator/protector interpretation; the main-body supernatant control + supports a soluble effect but does not identify the causal molecule or require a shuttle. + - reference: PMID:41684672 + snippet: C. acetobutylicum growth is also considerably enhanced in the supernatant of N. vulgaris/E. coli + explanation: Supports a growth-promoting effect in cell-free spent medium, without simultaneous contact between + the recipient and its neighbors. + evidence_source: IN_VITRO + supports: SUPPORT environmental_factors: - name: Initial member ratio value: 1:1:1 @@ -299,3 +303,30 @@ external_resources: explanation: Links the publication to the record's defining mediator phenotype. metal_relevance: NOT_APPLICABLE metal_notes: No metal or rare-earth transformation role was reported for this consortium. +discussions: +- discussion_id: minority_member_growth_mediator + prompt: Which soluble factors or direct exchanges cause the N. vulgaris-associated growth benefit? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Fluorescent-Label Exchange and Proposed Minority-Member Shuttle + - ecological_interactions#E. coli-associated inhibition of C. acetobutylicum + - ecological_interactions#E. coli-to-Clostridium lactate cross-feeding + - ecological_interactions#Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth + rationale: PMID:41684672 supports label exchange, altered growth/metabolite kinetics, lactate uptake and a filtered-supernatant + benefit. It does not selectively establish a shuttle or identify the growth-promoting molecule. Matched pH/resource + conditions, recipient-specific viable growth measurements and selective contact/transfer perturbations would + distinguish these mechanisms. Genomic qPCR normalization and species-specific extraction differences constrain + abundance comparisons. + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-06T00:23:38Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Preserve observed label exchange and proposed shuttle, without metabolite-transfer typing or a growth-mediation + arrow.; Preserve directed inhibition and assay controls; remove reciprocal-competition typing and the inhibition-to-protection + arrow.; Retain directed lactate cross-feeding supported in the binary culture and filtered supernatant.; Retain + addition and soluble-medium benefits with OD600/qPCR limits, without colonization or unique shuttle causality. + Issue #1331; reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml' + llm_assisted: true diff --git a/kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml b/kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml index 2b702cc61..c56bf0f89 100644 --- a/kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml +++ b/kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml @@ -111,8 +111,10 @@ taxonomy: explanation: Supports the ethanol-consuming chain-elongation role. ecological_interactions: - name: Syngas Fermentation to Ethanol and Acetate - description: C. ljungdahlii converts syngas into ethanol and acetate, creating - reduced and oxidized C2 intermediates that support chain elongation by C. kluyveri. + description: C. ljungdahlii converts syngas to ethanol and acetate that support C. kluyveri chain elongation in + the tested continuous reactor. The gases are feed substrates and the C2 compounds are the proposed exchanged + products. Product balances support this division of labor; the estimate that roughly two-thirds of ethanol production + supported chain elongation is calculated from stoichiometry rather than directly traced partner flux. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -153,9 +155,10 @@ ecological_interactions: label: fermentation downstream: - target: Ethanol-Driven Chain Elongation - description: > - C. ljungdahlii syngas fermentation produces ethanol and acetate that - C. kluyveri uses for reverse beta-oxidation chain elongation. + description: 'C. ljungdahlii syngas fermentation produces ethanol and acetate that C. kluyveri uses for reverse + beta-oxidation chain elongation. + + ' evidence: - reference: PMID:27877166 supports: SUPPORT @@ -163,13 +166,16 @@ ecological_interactions: snippet: syngas-fermentation process with Clostridium ljungdahlii and Clostridium kluyveri explanation: Supports the syngas-fed coculture context. - reference: PMID:27877166 - supports: SUPPORT + snippet: These products were used as substrates by C. kluyveri to chain-elongate them into longer-chain carboxylates. + explanation: Supports the C2 supply model in the exact coculture. The primary Results distinguish measured net + products from calculated total intermediate production. evidence_source: IN_VITRO - snippet: ethanol and acetate - explanation: Supports the cross-fed C2 products of C. ljungdahlii fermentation. + supports: SUPPORT - name: Ethanol-Driven Chain Elongation - description: C. kluyveri uses ethanol from C. ljungdahlii to perform reverse - beta-oxidation chain elongation, producing butyrate and caproate. + description: C. kluyveri uses ethanol and acetate supplied by C. ljungdahlii to form butyrate and hexanoate by + chain elongation. PARTIAL - the C. kluyveri-to-C. ljungdahlii direction denotes proposed carboxylate supply + for subsequent reduction, not ethanol transfer in that direction. Bulk products and stoichiometric calculations + do not directly resolve all partner fluxes. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -193,22 +199,22 @@ ecological_interactions: label: acetate - preferred_term: butyrate term: - id: CHEBI:30772 - label: butyric acid + id: CHEBI:17968 + label: butyrate - preferred_term: hexanoate term: - id: CHEBI:30776 - label: hexanoic acid + id: CHEBI:17120 + label: hexanoate biological_processes: - preferred_term: fermentation term: id: GO:0006113 label: fermentation downstream: - - target: Biological Reduction to Longer-Chain Alcohols - description: > - Chain elongation generates butyrate and hexanoate that C. ljungdahlii can - reduce to the longer-chain alcohols detected in the syngas coculture. + - target: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + description: PARTIAL - chain elongation supplies the carboxylate precursors for the observed longer-chain alcohols. + The primary study proposes that C. ljungdahlii reduces them, but does not selectively establish the reducing + organism or quantify donor-resolved precursor flux. evidence: - reference: PMID:27877166 supports: SUPPORT @@ -220,31 +226,22 @@ ecological_interactions: evidence_source: IN_VITRO snippet: resulting in n-butyrate and n-caproate explanation: Supports butyrate and caproate as chain-elongation products. -- name: Biological Reduction to Longer-Chain Alcohols - description: C. ljungdahlii likely reduces chain-elongated carboxylates to - longer-chain alcohols using reducing power from syngas, yielding butanol, - hexanol, and trace octanol. - interaction_type: CROSS_FEEDING - scope: PAIRWISE - source_taxon: - preferred_term: Clostridium ljungdahlii - term: - id: NCBITaxon:1538 - label: Clostridium ljungdahlii - target_taxon: - preferred_term: Clostridium kluyveri - term: - id: NCBITaxon:1534 - label: Clostridium kluyveri +- name: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + description: PARTIAL - the coculture produced butanol, hexanol and trace octanol. The proposed mechanism is reduction + of chain-elongated carboxylates, most likely by C. ljungdahlii using syngas-derived reducing power. The reducing + partner was not selectively resolved, and the paper does not exclude a C. kluyveri contribution. These are community + products, not demonstrated alcohol donation from C. ljungdahlii to C. kluyveri. Named carboxylate pools coexist + with pH-dependent undissociated acids relevant to the proposed reduction. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: butyrate term: - id: CHEBI:30772 - label: butyric acid + id: CHEBI:17968 + label: butyrate - preferred_term: hexanoate term: - id: CHEBI:30776 - label: hexanoic acid + id: CHEBI:17120 + label: hexanoate - preferred_term: butanol term: id: CHEBI:28885 @@ -256,31 +253,33 @@ ecological_interactions: label: fermentation evidence: - reference: PMID:27877166 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: likely reduced the produced carboxylates to their corresponding alcohols - explanation: Supports carboxylate reduction by C. ljungdahlii as an inferred alcohol-production mechanism. + explanation: 'The source says likely: the reducing-organism assignment is a mechanistic inference, not a selective + organism/pathway assay or evidence of alcohol transfer to C. kluyveri.' - reference: PMID:27877166 supports: SUPPORT evidence_source: IN_VITRO snippet: longer-chain alcohols n-butanol, n-hexanol, and n-octanol - explanation: Supports the observed longer-chain alcohol product spectrum. -- name: pH-Restricted Product Formation - description: Longer-chain alcohol production depended on a narrow pH range - because C. ljungdahlii and C. kluyveri have different pH optima, causing a - process-level tradeoff between acetogenesis, chain elongation, and biological reduction. - interaction_type: COMPETITION - scope: PAIRWISE - source_taxon: - preferred_term: Clostridium ljungdahlii + explanation: Supports measured community alcohol products; product detection alone does not establish the reducing + partner or a donor-recipient relationship. + participating_taxa: + - preferred_term: Clostridium ljungdahlii term: id: NCBITaxon:1538 label: Clostridium ljungdahlii - target_taxon: - preferred_term: Clostridium kluyveri + - preferred_term: Clostridium kluyveri term: id: NCBITaxon:1534 label: Clostridium kluyveri +- name: pH-Dependent Process Performance + description: Longer-chain products were observed across the tested pH range of 5.7-6.4 in phases of one continuously + operated reactor. The phase comparisons, altered medium flow and operational disturbances support condition-dependent + process tradeoffs, not a universal optimum or independent replicated pH treatments. Competition between chain + elongation and reduction for carboxylate intermediates is a process-allocation model, not measured reciprocal + ecological harm to both organisms. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: acetate term: @@ -300,12 +299,23 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: narrow pH spectrum of 5.7-6.4 - explanation: Supports pH as a key environmental constraint on product formation. + explanation: Supports the tested operating range; primary Methods/Results report one reactor with multiple phases, + feed changes and disturbances. - reference: PMID:27877166 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: two bioprocesses compete for intermediates - explanation: Supports competition for carboxylate intermediates between chain elongation and biological reduction. + explanation: The competing entities are bioprocesses drawing on intermediates. This does not establish the local + COMPETITION (-/-) relation between the organisms. + participating_taxa: + - preferred_term: Clostridium ljungdahlii + term: + id: NCBITaxon:1538 + label: Clostridium ljungdahlii + - preferred_term: Clostridium kluyveri + term: + id: NCBITaxon:1534 + label: Clostridium kluyveri cultivation_setup: - cultivation_mode: CONTINUOUS system_type: STIRRED_TANK_BIOREACTOR @@ -607,3 +617,30 @@ metals_present: [] rare_earth_elements_present: [] metal_relevance: NOT_APPLICABLE metal_notes: No metal or rare earth element processing role is curated for this syngas fermentation coculture. +discussions: +- discussion_id: syngas_alcohol_partner_and_ph_partition + prompt: Which partner reduces each carboxylate, and how do pH and operating conditions partition flux between + elongation and reduction? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Syngas Fermentation to Ethanol and Acetate + - ecological_interactions#Ethanol-Driven Chain Elongation + - ecological_interactions#Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + - ecological_interactions#pH-Dependent Process Performance + rationale: PMID:27877166 reports products and condition responses from one reactor. Intermediate production and + ethanol utilization are reconstructed from stoichiometry; reducing-organism attribution and several pH mechanisms + remain proposed. Partner-selective or isotope-resolved experiments and replicated matched-flow pH comparisons + would separate these mechanisms. Do not equate competing process routes with reciprocal organismal fitness harm. + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-06T00:23:38Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the supported C2 supply link while distinguishing measured net products from inferred total flux.; + Clarify the carboxylate-supply direction and qualify its reduction arrow; correct named anion groundings.; Retain + alcohol products and proposed reduction without inventing reverse alcohol donation or a resolved reducing partner.; + Preserve tested pH/operating effects as community-level performance, not reciprocal ecological competition. + Issue #1332; reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261005-batch20.yaml b/reports/causal_graph_review/adversarial-review-20261005-batch20.yaml new file mode 100644 index 000000000..58c80539f --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261005-batch20.yaml @@ -0,0 +1,105 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: b2ff78be7c72cf747e8eb5dba398ffd9aa0ca16f +decision_ledger: reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml +validation_report: reports/causal_graph_review/validation-20261005-batch20.json +scope: +- kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml +- kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml +- kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml +findings: +- issue: 1330 + severity: P2 + finding: Expression-to-output causality, N2-fixation typing and hydrogen attribution exceeded assay support. + disposition: addressed_and_locally_verified +- issue: 1331 + severity: P2 + finding: Label exchange promoted to growth mediation, reciprocal competition inferred without E. coli harm, and + attenuation encoded as a causal arrow. + disposition: addressed_and_locally_verified +- issue: 1332 + severity: P2 + finding: Alcohol-donation direction, reducing-partner certainty, process-versus-fitness competition and graph + acid/base groundings. + disposition: addressed_and_locally_verified +open_nongraph_followups: +- issue: 1333 + disposition: intentionally_not_closed_by_graph_only_patch +- issue: 746 + disposition: existing_gtdb_grounding_reproducibility_followup_not_duplicated +adversarial_checks: +- 'Every original node and arrow accounted for: eleven nodes retained, five exact renames, three arrows retained/qualified, + three removed, none added.' +- 'Challenge abstract-only hydrogen skepticism with the primary ammonium intervention: retain its positive support + while not treating it as complete partner-resolved gas flux.' +- Keep enhanced hydrogen relative to C. cellulovorans; Methods use different monoculture carbon substrates. Nitrogenase-linked + proton reduction is not measured N2 fixation under argon. +- Do not encode transcriptomic covariance itself as metabolite exchange or as an isolated output driver; keep supported + VFA supply and qualified pH feedback. +- Distinguish engineered fluorescence-label assays from identified native nutrient transfer, shuttle necessity, + and causal growth mediation. +- Keep the cell-free N. vulgaris/E. coli supernatant control; it supports a soluble effect without simultaneous + contact with C. acetobutylicum, not complete independence from upstream partner interactions. +- 'Check the actual COMPETITION definition (-/-): the early E. coli phase is not measurably harmed in the reported + comparison. Preserve authors'' passive-competition interpretation without asserting that type.' +- Retain supported lactate uptake in binary culture and filtered E. coli supernatant; do not erase the metabolic + interaction when qualifying other mechanisms. +- Second-phase optical-density doubling estimates and genomic copies/ng DNA are not direct species-resolved live-cell + doubling counts. Preserve the authors' growth-phase interpretation with these assay bounds. +- Keep both syngas metabolic links, making the C. kluyveri-to-C. ljungdahlii direction explicitly proposed acid + supply, not reversed ethanol supply. +- Coculture alcohol output does not imply alcohol donation to C. kluyveri. The reducing-organism assignment remains + inferred; discussion of C. kluyveri alcohol capability does not quantify its contribution in this reactor. +- The two-thirds ethanol figure comes from stoichiometric reconstruction; do not treat net products or calculated + total production as directly traced interspecies flux. +- Correct named butyrate/hexanoate anions using official ChEBI conjugate relationships, while retaining pH-dependent + undissociated acids in the mechanism discussion. +- One reactor, altered medium flow, phased pH values and operational disturbances are not independent replicated + pH treatments or proof of reciprocal fitness competition. +- Participant list is exactly the two existing canonical syngas taxa; full connectivity tests and the exact registry + guard run without weakening bounds. +- Unrelated metadata remains byte-preserved and not scientifically certified; issue1333 and existing746 remain open. +- Selected publisher primary sections plus two full primary main bodies reviewed. No figure-image/supplement review + or independent approval is claimed. Caches unchanged, full copyrighted body not added. +verification: + status: local_validation_complete + checks: 30 + records: 460 + nodes: 1474 + edges: 710 + review_status_counts: + needs_research: 3 + pending: 348 + reviewed: 109 + structural_defects: 0 + network_errors: 0 + network_warnings: 25 + new_network_warnings: 0 + unchanged_raw_blocks: 48 + snippet_counts: + MATCH: 75 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + published_description_coverage: + pages: 456 + node_descriptions: 1460 + edge_descriptions: 702 + render_determinism: passed + regressions: 254 passed in 157.48s (0:02:37) + rights: 3 passed in 1.54s + rights_import_root_verified: true + caches_unchanged: true + primary_artifact_hashes_rechecked: true + participant_registry_change: Add only the intentional syngas user; exact-set equality and connectivity bounds + retained. + connectivity_survey: + records: 460 + with_community_level: 385 + mixed: 118 + community_level_only: 267 + taxa: 1491 + credited_solely_by_the_rule: 1218 diff --git a/reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml b/reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml new file mode 100644 index 000000000..e4d78bf9c --- /dev/null +++ b/reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml @@ -0,0 +1,296 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: b2ff78be7c72cf747e8eb5dba398ffd9aa0ca16f +issues: +- 1330 +- 1331 +- 1332 +open_nongraph_followups: +- 1333 +- 746 +issue_deduplication: + all_state_issue_titles_bodies: 669 + ignored_hidden_local_files_included: true + comments_exhaustive: false + relevant_issues_read: + - 1326 + - 1325 + - 1322 + - 1321 + - 1319 + - 1317 + - 1316 + - 1093 + - 856 + - 855 + - 752 + - 749 + - 746 + - 639 + - 605 + - 529 + - 294 + finding: No duplicate exact graph issue in searched scope. Existing 746 GTDB followup and broader enum issues + remain separate; subsequently created 1329 concerns CI. +reference_cache_original_hashes: + references_cache/doi_10.1128_AEM.00789-16.md: 472f88aa5a51f01cec1bd55f0c241f1a048b0ce5301f211c31b5812cea0f229d + references_cache/PMID_27208134.txt: 9d217a9411ef01ac74c463007b02d481416dddf69e9bec7f3e787eb1afd85030 + references_cache/doi_10.1016_j.ijhydene.2015.05.135.md: 01532520b45cb0bd05fa687240e472da0ce62c716a1a39c17114101dc9c02b8c + references_cache/PMID_41684672.md: a79b209e44712340ef9b0c877328edccd0f4b3cd992e851f07a84a4269fd4e1b + references_cache/PMID_27877166.md: f5d58eeda0793d84acbba058a501c80b29ecdce8deffb164183367c3c8f7ed3c +chemical_grounding: + butyrate: CHEBI:17968 + hexanoate: CHEBI:17120 + sources: + - https://www.ebi.ac.uk/chebi/CHEBI:17968 + - https://www.ebi.ac.uk/chebi/CHEBI:17120 + note: Official ChEBI conjugate-base relationships verified; four graph groundings corrected, unrelated ingredient + fields preserved for issue1333. +limitations: +- No new nodes/arrows or Edison spend; five exact renames and three removed arrows. +- Publisher primary access is selected-section; two other main bodies read. No visual images/supplements claimed. +- All five reference caches unchanged; no copyrighted full body added to git. +- Non-graph metadata and canonical taxonomy preserved, not scientifically certified. +- Source-based self-adversarial review is not independent approval or corpus completion. +records: +- path: kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml + id: CommunityMech:000264 + original_sha256: 784e79c6f8f3a4e87cabd49443686dce3284ed635752ca1dad687677a88b4004 + record_sha256: 609d1b7276a71d3a613fe7ffc299e75b6e4862e12c8057e6edf87822ff2816cb + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml + scope: Whole record and every original node/arrow; primary access scope bounded below. + summary: Retain VFA supply and a qualified metabolic link; separate pools and pH feedback from resolved flux.; + Retain enhanced output and the ammonium intervention; remove categorical endpoint syntrophy and unmeasured N2-fixation + typing.; Preserve expression observations; remove transfer typing and the expression-to-output arrow. + renamed_nodes: + Transcriptomic Division of Labor: Transcriptomic Responses Associated with Cocultivation + node_decisions: + - node: VFA Cross-Feeding and pH Stabilization + rationale: Retain VFA supply and a qualified metabolic link; separate pools and pH feedback from resolved flux. + - node: Integrated Dark and Photo Fermentation for Hydrogen + rationale: Retain enhanced output and the ammonium intervention; remove categorical endpoint syntrophy and unmeasured + N2-fixation typing. + - node: Transcriptomic Responses Associated with Cocultivation + rationale: Preserve expression observations; remove transfer typing and the expression-to-output arrow. + edges_before: + - source: VFA Cross-Feeding and pH Stabilization + target: Integrated Dark and Photo Fermentation for Hydrogen + description: 'R. palustris consumption of C. cellulovorans volatile fatty acids links cellulose-fed dark fermentation + to photofermentative metabolism and the enhanced hydrogen yield. + + ' + - source: Transcriptomic Division of Labor + target: Integrated Dark and Photo Fermentation for Hydrogen + description: 'C. cellulovorans cellulosomal induction and R. palustris nitrogenase induction represent the coordinated + dark- and photo-fermentative activities that drive enhanced cellulose-fed hydrogen production. + + ' + edges_after: + - source: VFA Cross-Feeding and pH Stabilization + target: Integrated Dark and Photo Fermentation for Hydrogen + description: VFA supply supports R. palustris photofermentation. PARTIAL - acid consumption can also sustain + fermenter activity through a smaller pH decline; partner fluxes and the separate contributions of these routes + are not directly resolved. + retained_edge_decisions: + - source: VFA Cross-Feeding and pH Stabilization + target: Integrated Dark and Photo Fermentation for Hydrogen + rationale: VFA supply supports R. palustris photofermentation. PARTIAL - acid consumption can also sustain fermenter + activity through a smaller pH decline; partner fluxes and the separate contributions of these routes are not + directly resolved. + removed_edge_decisions: + - source: Transcriptomic Division of Labor + target: Integrated Dark and Photo Fermentation for Hydrogen + description: 'C. cellulovorans cellulosomal induction and R. palustris nitrogenase induction represent the coordinated + dark- and photo-fermentative activities that drive enhanced cellulose-fed hydrogen production. + + ' + rationale: The reported association or attenuated phenotype does not establish this directed causal mechanism. + references: + - doi:10.1128/AEM.00789-16 + issues: + - 1330 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + source_review: + doi:10.1128/AEM.00789-16: + reference: doi:10.1128/AEM.00789-16 + equivalent_pmid: PMID:27208134 + url: https://journals.asm.org/doi/full/10.1128/aem.00789-16 + reviewed_scope: Cached abstracts plus publicly readable publisher culture Methods and selected Results/Discussion, + including ammonium intervention, cellulose degradation, photosynthesis, transcript tables and conceptual-model + limitations. Not a full-body, visual-image or supplement review. Browser full-text retrieval succeeded; + direct curl returned 403. Separate 2015 physiology body was not obtained. + copyright: 2016 ASM; all rights reserved. No full text added to git. + history_files: + - history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml +- path: kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml + id: CommunityMech:000333 + original_sha256: 2be858bacadcd30dc027e1b78c106675bebf13d50fd5d05221cc09c731e27cd2 + record_sha256: 2f6a2ce202dc1f694ca8135b2fa16a97affaee218748de4a8de42ebf127a5e7a + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml + scope: Whole record and every original node/arrow; primary access scope bounded below. + summary: Preserve observed label exchange and proposed shuttle, without metabolite-transfer typing or a growth-mediation + arrow.; Preserve directed inhibition and assay controls; remove reciprocal-competition typing and the inhibition-to-protection + arrow.; Retain directed lactate cross-feeding supported in the binary culture and filtered supernatant.; Retain + addition and soluble-medium benefits with OD600/qPCR limits, without colonization or unique shuttle causality. + renamed_nodes: + Minority-member mediation of community interactions: Fluorescent-Label Exchange and Proposed Minority-Member + Shuttle + Nitratidesulfovibrio Protection of Clostridial Growth: Nitratidesulfovibrio-Associated Recovery of Second-Phase + Growth + node_decisions: + - node: Fluorescent-Label Exchange and Proposed Minority-Member Shuttle + rationale: Preserve observed label exchange and proposed shuttle, without metabolite-transfer typing or a growth-mediation + arrow. + - node: E. coli-associated inhibition of C. acetobutylicum + rationale: Preserve directed inhibition and assay controls; remove reciprocal-competition typing and the inhibition-to-protection + arrow. + - node: E. coli-to-Clostridium lactate cross-feeding + rationale: Retain directed lactate cross-feeding supported in the binary culture and filtered supernatant. + - node: Nitratidesulfovibrio-Associated Recovery of Second-Phase Growth + rationale: Retain addition and soluble-medium benefits with OD600/qPCR limits, without colonization or unique + shuttle causality. + edges_before: + - source: Minority-member mediation of community interactions + target: Nitratidesulfovibrio Protection of Clostridial Growth + description: 'N. vulgaris shuttle activity is the mediator phenotype that reshapes the E. coli-C. acetobutylicum + relationship in the three-member consortium. + + ' + - source: E. coli-associated inhibition of C. acetobutylicum + target: Nitratidesulfovibrio Protection of Clostridial Growth + description: 'E. coli-associated inhibition is the pairwise phenotype attenuated when N. vulgaris is added as + a third, minority member. + + ' + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: + - source: Minority-member mediation of community interactions + target: Nitratidesulfovibrio Protection of Clostridial Growth + description: 'N. vulgaris shuttle activity is the mediator phenotype that reshapes the E. coli-C. acetobutylicum + relationship in the three-member consortium. + + ' + rationale: The reported association or attenuated phenotype does not establish this directed causal mechanism. + - source: E. coli-associated inhibition of C. acetobutylicum + target: Nitratidesulfovibrio Protection of Clostridial Growth + description: 'E. coli-associated inhibition is the pairwise phenotype attenuated when N. vulgaris is added as + a third, minority member. + + ' + rationale: The reported association or attenuated phenotype does not establish this directed causal mechanism. + references: + - PMID:41684672 + issues: + - 1331 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + source_review: + PMID:41684672: + reference: PMID:41684672 + pmcid: PMC12893348 + url: https://europepmc.org/articles/PMC12893348 + path: /private/tmp/communitymech-batch20/PMC12893348.xml + sha256: 11e0a13c235db5f00b4929ea591bc75580681bc34beaf93076e84032d1cbe004 + reviewed_scope: Full Introduction, Results, Discussion, Methods and all seven main figure captions; images/supplements + not inspected. + license: CC BY; version not inferred + history_files: + - history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml +- path: kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml + id: CommunityMech:000202 + original_sha256: 073efc4de28a6503de9a6ca62e8078c01ef5a5a779fdf31dc7a8dbe960cb6c05 + record_sha256: 20f83f2018d5e58a63e1886835d1b4728359a8bbc1f3ed5b1f14bf2e828bd217 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml + scope: Whole record and every original node/arrow; primary access scope bounded below. + summary: Retain the supported C2 supply link while distinguishing measured net products from inferred total flux.; + Clarify the carboxylate-supply direction and qualify its reduction arrow; correct named anion groundings.; Retain + alcohol products and proposed reduction without inventing reverse alcohol donation or a resolved reducing partner.; + Preserve tested pH/operating effects as community-level performance, not reciprocal ecological competition. + renamed_nodes: + Biological Reduction to Longer-Chain Alcohols: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + pH-Restricted Product Formation: pH-Dependent Process Performance + node_decisions: + - node: Syngas Fermentation to Ethanol and Acetate + rationale: Retain the supported C2 supply link while distinguishing measured net products from inferred total + flux. + - node: Ethanol-Driven Chain Elongation + rationale: Clarify the carboxylate-supply direction and qualify its reduction arrow; correct named anion groundings. + - node: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + rationale: Retain alcohol products and proposed reduction without inventing reverse alcohol donation or a resolved + reducing partner. + - node: pH-Dependent Process Performance + rationale: Preserve tested pH/operating effects as community-level performance, not reciprocal ecological competition. + edges_before: + - source: Syngas Fermentation to Ethanol and Acetate + target: Ethanol-Driven Chain Elongation + description: 'C. ljungdahlii syngas fermentation produces ethanol and acetate that C. kluyveri uses for reverse + beta-oxidation chain elongation. + + ' + - source: Ethanol-Driven Chain Elongation + target: Biological Reduction to Longer-Chain Alcohols + description: 'Chain elongation generates butyrate and hexanoate that C. ljungdahlii can reduce to the longer-chain + alcohols detected in the syngas coculture. + + ' + edges_after: + - source: Syngas Fermentation to Ethanol and Acetate + target: Ethanol-Driven Chain Elongation + description: 'C. ljungdahlii syngas fermentation produces ethanol and acetate that C. kluyveri uses for reverse + beta-oxidation chain elongation. + + ' + - source: Ethanol-Driven Chain Elongation + target: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + description: PARTIAL - chain elongation supplies the carboxylate precursors for the observed longer-chain alcohols. + The primary study proposes that C. ljungdahlii reduces them, but does not selectively establish the reducing + organism or quantify donor-resolved precursor flux. + retained_edge_decisions: + - source: Syngas Fermentation to Ethanol and Acetate + target: Ethanol-Driven Chain Elongation + rationale: 'C. ljungdahlii syngas fermentation produces ethanol and acetate that C. kluyveri uses for reverse + beta-oxidation chain elongation. + + ' + - source: Ethanol-Driven Chain Elongation + target: Proposed Carboxylate Reduction and Observed Longer-Chain Alcohols + rationale: PARTIAL - chain elongation supplies the carboxylate precursors for the observed longer-chain alcohols. + The primary study proposes that C. ljungdahlii reduces them, but does not selectively establish the reducing + organism or quantify donor-resolved precursor flux. + removed_edge_decisions: [] + references: + - PMID:27877166 + issues: + - 1332 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + source_review: + PMID:27877166: + reference: PMID:27877166 + pmcid: PMC5099930 + url: https://europepmc.org/articles/PMC5099930 + path: /private/tmp/communitymech-batch20/PMC5099930.xml + sha256: 1cf9e4323868798a2f4540ed7e4ceea943bd657965ebef33fe0ee3e24687d582 + reviewed_scope: Full Introduction, Methods, Results, Discussion, two main tables and five figure captions; + images/supplements not inspected. + license: CC BY 4.0 + history_files: + - history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index ae099dcca..289256627 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -108,9 +108,9 @@ kb/communities/Clostridium_Carboxidivorans_Kluyveri_CO_Chain_Elongation_Cocultur kb/communities/Clostridium_Cellulolyticum_Geobacter_Cellulose_MFC_Coculture.yaml CommunityMech:000175 bafb8c0e58150b2e586e92c84725b0e3ad88001a64c2d1acb1d2889ede2810b3 3 1 83.3 reports/causal_graph_review/decisions/20261005-three-records-batch19.yaml reviewed kb/communities/Clostridium_Cellulovorans_Beijerinckii_AECC_ABE_Coculture.yaml CommunityMech:000323 caf85d65ddbfd4b6c591335118414b5a2ceda81b17fbd201a4b1c8fb8641ce2c 3 0 71.7 reports/causal_graph_review/decisions/20261005-three-records-batch19.yaml reviewed kb/communities/Clostridium_Cellulovorans_Methanosarcina_Cellulose_Methane_Coculture.yaml CommunityMech:000174 c6b526dc6a76ffb307bdd56cc43df3b3365fc2def4fe027d53924869f5746d78 3 2 96.7 reports/causal_graph_review/decisions/20261005-three-records-batch19.yaml reviewed -kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml CommunityMech:000264 784e79c6f8f3a4e87cabd49443686dce3284ed635752ca1dad687677a88b4004 3 2 100.0 pending -kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml CommunityMech:000333 2be858bacadcd30dc027e1b78c106675bebf13d50fd5d05221cc09c731e27cd2 4 2 100.0 pending -kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml CommunityMech:000202 073efc4de28a6503de9a6ca62e8078c01ef5a5a779fdf31dc7a8dbe960cb6c05 4 2 100.0 pending +kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml CommunityMech:000264 609d1b7276a71d3a613fe7ffc299e75b6e4862e12c8057e6edf87822ff2816cb 3 1 83.3 reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml reviewed +kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml CommunityMech:000333 2f6a2ce202dc1f694ca8135b2fa16a97affaee218748de4a8de42ebf127a5e7a 4 0 67.5 reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml reviewed +kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml CommunityMech:000202 20f83f2018d5e58a63e1886835d1b4728359a8bbc1f3ed5b1f14bf2e828bd217 4 2 95.0 reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml reviewed kb/communities/Clostridium_Phytofermentans_Ecoli_Cellobiose_Biofilm_Consortium.yaml CommunityMech:000196 cc831b8ffc6ef81e59ddd671f8e071abe8e9a9ac68b27eac4a6fbc0811d7db94 4 3 100.0 pending kb/communities/Clostridium_Saccharomyces_Cellulose_Ethanol_Coculture.yaml CommunityMech:000206 5667bd49d4cff29eb9ece6d046c8fac61a8aca27bbb55e3369fea82c63ba611d 3 2 100.0 pending kb/communities/Clostridium_Thermoanaerobacter_Cellulosic_Bioethanol_Coculture.yaml CommunityMech:000168 4b15f63df86a441462b92e2edc669c7f2c53d39aa31af98335b613267c612871 3 2 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 49d7f4124..e96ecc0b1 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -3,13 +3,13 @@ "semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.", "records": 460, "nodes": 1474, - "edges": 713, + "edges": 710, "records_without_nodes": 8, - "records_without_edges": 140, + "records_without_edges": 141, "review_status_counts": { "needs_research": 3, - "pending": 351, - "reviewed": 106 + "pending": 348, + "reviewed": 109 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261005-batch20.json b/reports/causal_graph_review/validation-20261005-batch20.json new file mode 100644 index 000000000..b91710ffc --- /dev/null +++ b/reports/causal_graph_review/validation-20261005-batch20.json @@ -0,0 +1,550 @@ +{ + "base_commit": "b2ff78be7c72cf747e8eb5dba398ffd9aa0ca16f", + "scope": [ + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-strict.tsv", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-strict.tsv\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 20 evidence snippets scanned across 1 files\n MATCH 20\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000264\",\n \"name\": \"Clostridium cellulovorans-Rhodopseudomonas palustris Cellulose Biohydrogen Coculture\",\n \"score\": 83.3,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 1,\n \"interaction_evidence\": 5,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture.yaml\"\n }\n]\n" + }, + { + "check": "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture-history-0", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture/2026-10-06T002338Z-codex-e65507.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-strict.tsv", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-strict.tsv\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 19 evidence snippets scanned across 1 files\n MATCH 19\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000333\",\n \"name\": \"Clostridium-E. coli-Nitratidesulfovibrio Minority-Mediator Consortium\",\n \"score\": 67.5,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium.yaml\"\n }\n]\n" + }, + { + "check": "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium-history-0", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium/2026-10-06T002338Z-codex-3e7140.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-strict.tsv", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-strict.tsv\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 36 evidence snippets scanned across 1 files\n MATCH 36\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000202\",\n \"name\": \"Clostridium ljungdahlii-Clostridium kluyveri Syngas Alcohol Coculture\",\n \"score\": 95.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml\"\n }\n]\n" + }, + { + "check": "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture-history-0", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture/2026-10-06T002339Z-codex-426420.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1474,\n \"edges\": 710,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 141,\n \"review_status_counts\": {\n \"needs_research\": 3,\n \"pending\": 348,\n \"reviewed\": 109\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "command": [ + "python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "output": "Pinus massoniana' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Protective Enzyme and Resistance-Gene Activation\",\n \"interaction_index\": 2,\n \"taxon\": \"Pinus massoniana\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Pinus massoniana' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Brocadia_Low_Nitrogen_Anammox_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Ca. Kuenenia early-acclimation lineage\",\n \"taxon_id\": \"NCBITaxon:380738\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Ca. Kuenenia early-acclimation lineage\",\n \"term\": {\n \"id\": \"NCBITaxon:380738\",\n \"label\": \"Candidatus Kuenenia\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Ca. Kuenenia was resolved at genus level as an early-acclimation anammox lineage that was ultimately replaced by Ca. Brocadia.\"\n },\n \"functional_role\": [\n \"PRIMARY_PRODUCER\"\n ],\n \"evidence\": [\n {\n \"reference\": \"PMID:42323145\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"During early acclimation, Ca. Kuenenia reduced the expression of costly biosynthetic pathways\",\n \"explanation\": \"Supports Ca. Kuenenia as the early-acclimation lineage tracked in the biofilter succession study.\"\n }\n ]\n },\n \"message\": \"Taxon 'Ca. Kuenenia early-acclimation lineage' has no interactions\"\n }\n ],\n \"Mangrove_Benzene_MFC_Bioanode_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pelobacter\",\n \"taxon_id\": \"NCBITaxon:18\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pelobacter\",\n \"term\": {\n \"id\": \"NCBITaxon:18\",\n \"label\": \"Pelobacter\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pelobacter was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 2.22,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pelobacter as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pelobacter' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas\",\n \"taxon_id\": \"NCBITaxon:286\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas\",\n \"term\": {\n \"id\": \"NCBITaxon:286\",\n \"label\": \"Pseudomonas\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pseudomonas was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 0.87,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pseudomonas as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas' has no interactions\"\n }\n ],\n \"Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Legionella MAGs\",\n \"taxon_id\": \"NCBITaxon:445\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n" + }, + { + "check": "render", + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "render-repeat", + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "regressions", + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch10.py", + "tests/test_causal_review_batch11.py", + "tests/test_causal_review_batch12.py", + "tests/test_causal_review_batch13.py", + "tests/test_causal_review_batch14.py", + "tests/test_causal_review_batch15.py", + "tests/test_causal_review_batch16.py", + "tests/test_causal_review_batch17.py", + "tests/test_causal_review_batch18.py", + "tests/test_causal_review_batch19.py", + "tests/test_causal_review_batch20.py", + "tests/test_causal_review_batch5.py", + "tests/test_causal_review_batch6.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_causal_review_inventory.py", + "tests/test_rank_causal_graph_readiness.py", + "tests/test_network_auditor.py", + "tests/test_participating_taxa.py", + "tests/test_causal_descriptions_are_published.py", + "tests/test_published_pages_name_real_records.py", + "tests/test_reference_validator_actually_validates.py", + "tests/test_snippet_audit_artefact_classes.py", + "tests/test_reference_error_annotation.py", + "tests/test_community_level_connectivity_credit.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "........................................................................ [ 28%]\n........................................................................ [ 56%]\n........................................................................ [ 85%]\n...................................... [100%]\n254 passed in 157.48s (0:02:37)\n" + }, + { + "check": "workspace-rights", + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "... [100%]\n3 passed in 1.54s\n" + }, + { + "check": "black", + "command": [ + "black", + "--check", + "tests/test_causal_review_batch20.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "ruff", + "check", + "tests/test_causal_review_batch20.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "" + } + ], + "limitations": [ + "Source-based self-adversarial review, not independent approval or corpus completion.", + "Actual baseline just audit-network-json lacked its console entry point; exact repository CLI implementation used. No dependency changes.", + "All 669 prior issue titles/bodies and ignored-inclusive local reports/history/research/tests searched; comments not exhaustive.", + "Hydrogen paper reviewed through publisher culture Methods and selected Results/Discussion, including ammonium intervention. Minority and syngas main bodies read. Images/supplements not inspected.", + "Eleven nodes retained, five exact renames, three arrows removed and three retained. No new causal structure or Edison spend.", + "Non-graph followup #1333 and existing #746 remain open; unrelated YAML blocks and five reference caches byte-preserved.", + "Generated pages checked by deterministic rendering and exact parsed description coverage, not browser screenshots." + ], + "unchanged_raw_blocks": 48, + "reference_caches_unchanged": true, + "participant_registry_only_adds_intentional_user": true, + "connectivity_test_bounds_unchanged": true, + "new_network_warnings": [], + "render_determinism": "passed", + "published_description_coverage": { + "pages": 456, + "node_descriptions": 1460, + "edge_descriptions": 702 + }, + "rights_import_root_verified": true, + "connectivity_survey": { + "records": 460, + "with_community_level": 385, + "mixed": 118, + "community_level_only": 267, + "taxa": 1491, + "credited_solely_by_the_rule": 1218 + }, + "snippet_counts": { + "MATCH": 75, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1474, + "edges": 710, + "records_without_nodes": 8, + "records_without_edges": 141, + "review_status_counts": { + "needs_research": 3, + "pending": 348, + "reviewed": 109 + }, + "structural_defects": [] + }, + "network_warning_count": 25, + "status": "passed" +} diff --git a/tests/test_causal_review_batch20.py b/tests/test_causal_review_batch20.py new file mode 100644 index 000000000..88f294c87 --- /dev/null +++ b/tests/test_causal_review_batch20.py @@ -0,0 +1,139 @@ +"""Keep measured coculture outcomes distinct from inferred causal mechanisms.""" + +import hashlib +from collections import Counter +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261005-three-records-batch20.yaml" +STEMS = [ + "Clostridium_Cellulovorans_Rhodopseudomonas_Cellulose_Biohydrogen_Coculture", + "Clostridium_Ecoli_Nitratidesulfovibrio_Minority_Mediator_Consortium", + "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture", +] + + +def record(index): + return yaml.safe_load((ROOT / "kb/communities" / f"{STEMS[index]}.yaml").read_text()) + + +def test_hydrogen_keeps_ammonium_control_without_inventing_nitrogen_fixation_flux(): + supply, hydrogen, transcript = record(0)["ecological_interactions"] + assert supply["interaction_type"] == "CROSS_FEEDING" + assert supply["downstream"][0]["target"] == hydrogen["name"] + assert "PARTIAL" in supply["downstream"][0]["description"] + assert "ammonium suppression" in hydrogen["description"] + assert "not a directly measured partition" in hydrogen["description"] + assert "argon headspace" in hydrogen["description"] + assert "interaction_type" not in hydrogen + for node in (hydrogen, transcript): + assert "GO:0009399" not in {p["term"]["id"] for p in node["biological_processes"]} + assert hydrogen["evidence"][1]["supports"] == "PARTIAL" + + +def test_transcription_is_an_observation_not_a_causal_transfer_arrow(): + transcript = record(0)["ecological_interactions"][2] + assert transcript["name"] == "Transcriptomic Responses Associated with Cocultivation" + assert "interaction_type" not in transcript + assert "downstream" not in transcript + assert "measured responses" in transcript["description"] + + +def test_minority_exchange_and_inhibition_are_not_growth_mediation_or_minus_minus(): + exchange, inhibition, lactate, growth = record(1)["ecological_interactions"] + assert all("downstream" not in n for n in (exchange, inhibition, lactate, growth)) + assert "interaction_type" not in exchange + assert "does not identify a growth-supporting metabolite" in exchange["description"] + assert all(e["supports"] == "PARTIAL" for e in exchange["evidence"]) + assert "interaction_type" not in inhibition + assert "early E. coli phase appears unaffected" in inhibition["description"] + assert "do not reproduce every live-coculture feature" in inhibition["description"] + assert lactate["interaction_type"] == "CROSS_FEEDING" + assert lactate["source_taxon"]["term"]["id"] == "NCBITaxon:316385" + assert lactate["target_taxon"]["term"]["id"] == "NCBITaxon:272562" + assert "filtered E. coli supernatant" in lactate["description"] + + +def test_minority_growth_keeps_soluble_control_and_abundance_assay_limits(): + growth = record(1)["ecological_interactions"][3] + assert "interaction_type" not in growth + assert "5.5 h versus 9 h" in growth["description"] + assert "mixed-culture OD600" in growth["description"] + assert "copies per ng DNA are not direct live-cell counts" in growth["description"] + assert "without simultaneous contact" in growth["description"] + assert "not itself a colonization assay" in growth["description"] + assert "supernatant" in growth["evidence"][-1]["snippet"] + + +def test_syngas_retains_links_without_reverse_alcohol_donation(): + supply, elongation, alcohol, ph = record(2)["ecological_interactions"] + assert supply["downstream"][0]["target"] == elongation["name"] + assert "calculated from stoichiometry" in supply["description"] + assert elongation["source_taxon"]["term"]["id"] == "NCBITaxon:1534" + assert elongation["target_taxon"]["term"]["id"] == "NCBITaxon:1538" + assert "not ethanol transfer in that direction" in elongation["description"] + assert elongation["downstream"][0]["target"] == alcohol["name"] + assert elongation["downstream"][0]["description"].startswith("PARTIAL") + assert "does not exclude a C. kluyveri contribution" in alcohol["description"] + for node in (alcohol, ph): + assert node["scope"] == "COMMUNITY_LEVEL" + assert "interaction_type" not in node + assert "source_taxon" not in node and "target_taxon" not in node + assert {t["term"]["id"] for t in node["participating_taxa"]} == { + "NCBITaxon:1538", + "NCBITaxon:1534", + } + + +def test_syngas_anion_grounding_and_single_run_ph_scope(): + _, elongation, alcohol, ph = record(2)["ecological_interactions"] + for node in (elongation, alcohol): + ids = {m["term"]["id"] for m in node["metabolites"]} + assert {"CHEBI:17968", "CHEBI:17120"} <= ids + assert not {"CHEBI:30772", "CHEBI:30776"} & ids + assert "pH-dependent undissociated acids" in alcohol["description"] + assert "one continuously operated reactor" in ph["description"] + assert "not measured reciprocal ecological harm" in ph["description"] + + +def test_batch20_ledger_accounts_for_every_node_arrow_and_preserved_cache(): + ledger = yaml.safe_load(LEDGER.read_text()) + assert ledger["independent_approval"] is False + rows = ledger["records"] + assert len(rows) == 3 + assert sum(len(r["node_decisions"]) for r in rows) == 11 + assert sum(len(r["retained_edge_decisions"]) for r in rows) == 3 + assert sum(len(r["removed_edge_decisions"]) for r in rows) == 3 + assert sum(len(r["renamed_nodes"]) for r in rows) == 5 + for row in rows: + raw = (ROOT / row["path"]).read_bytes() + assert hashlib.sha256(raw).hexdigest() == row["record_sha256"] + doc = yaml.safe_load(raw) + nodes = doc["ecological_interactions"] + names = {n["name"] for n in nodes} + assert Counter(d["node"] for d in row["node_decisions"]) == Counter(names) + edges = [{"source": n["name"], **e} for n in nodes for e in n.get("downstream", [])] + assert row["edges_after"] == edges + renames = row["renamed_nodes"] + before = { + (renames.get(e["source"], e["source"]), renames.get(e["target"], e["target"])) + for e in row["edges_before"] + } + removed = { + (renames.get(e["source"], e["source"]), renames.get(e["target"], e["target"])) + for e in row["removed_edge_decisions"] + } + retained = {(e["source"], e["target"]) for e in row["retained_edge_decisions"]} + assert before == retained | removed and not retained & removed + assert all(e["target"] in names for e in edges) + assert any(d["kind"] == "KNOWLEDGE_GAP" for d in doc["discussions"]) + assert all( + a.split("#", 1)[1] in names + for d in doc["discussions"] + for a in d["attaches_to"] + if a.startswith("ecological_interactions#") + ) + for path, expected in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py index bbc2a354a..b32e6b31f 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -214,6 +214,7 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "Chromium_Sulfur_Reduction_Enrichment.yaml", "Clostridium_Acetobutylicum_Ljungdahlii_Fusion_Coculture.yaml", "Clostridium_Caldicellulosiruptor_Minimal_Medium_Coculture.yaml", + "Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml", "Clostridium_Phytofermentans_Ecoli_Cellobiose_Biofilm_Consortium.yaml", "Community_G_GenX_Biodegradation_Consortium.yaml", "Coniochaeta_Sphingobacterium_Citrobacter_Wheat_Straw_Consortium.yaml",