From 649f80fe6bf86da88a7a2acfc5e8114a27f610b8 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Mon, 5 Oct 2026 22:34:28 -0700 Subject: [PATCH] Bound SynCom35, Deepwater and enamel graph claims to primary evidence --- docs/communities/Dangl_SynComm_35.html | 449 ++------- ...Horizon_Deep_Sea_Oil_Plume_Succession.html | 250 ++--- ...ined_Multispecies_Enamel_Caries_Model.html | 171 ++-- .../2026-10-06T052450Z-codex-4c42b0.yaml | 31 + .../2026-10-06T052450Z-codex-df845f.yaml | 30 + .../2026-10-06T052450Z-codex-bf5211.yaml | 28 + kb/communities/Dangl_SynComm_35.yaml | 294 ++---- ...Horizon_Deep_Sea_Oil_Plume_Succession.yaml | 180 ++-- ...ined_Multispecies_Enamel_Caries_Model.yaml | 160 ++-- .../adversarial-review-20261006-batch29.yaml | 156 +++ .../20261006-three-records-batch29.yaml | 308 ++++++ reports/causal_graph_review/inventory.tsv | 6 +- reports/causal_graph_review/summary.json | 240 ++++- .../validation-20261006-batch29.json | 898 ++++++++++++++++++ tests/test_causal_review_batch29.py | 136 +++ tests/test_participating_taxa.py | 3 + 16 files changed, 2443 insertions(+), 897 deletions(-) create mode 100644 history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml create mode 100644 history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml create mode 100644 history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261006-batch29.yaml create mode 100644 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml create mode 100644 reports/causal_graph_review/validation-20261006-batch29.json create mode 100644 tests/test_causal_review_batch29.py diff --git a/docs/communities/Dangl_SynComm_35.html b/docs/communities/Dangl_SynComm_35.html index 80d62f881..b5a1342f4 100644 --- a/docs/communities/Dangl_SynComm_35.html +++ b/docs/communities/Dangl_SynComm_35.html @@ -773,7 +773,7 @@

Ecological Interactions

Ecological interaction network for Jeff Dangl's SynComm 35 - 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, mutualism, competition, commensalism). + 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 (colonization facilitation).
@@ -781,23 +781,13 @@

Ecological Interactions

Cross-feeding + aria-hidden="true" data-symbol="symbolPlus" + data-color="#edab12"> Colonization facilitation
Mutualism -
-
- Competition -
-
- Commensalism + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -805,18 +795,20 @@

Ecological Interactions

-

MAMP-Triggered Immunity Suppression

- COMMENSALISM +

Root flg22 Immune Suppression

-

Suppression of plant pattern-triggered immunity responses, particularly the flg22-induced transcriptional response. SynComm 35 reduces flg22-responsive genes from 492-523 genes to only 7 genes when the community is present. -

+

Live SynCom35 suppresses a sector of the Arabidopsis root flg22 response after establishment. Dyella MF79 is one tested suppressor, not the sole cause of whole-community transcriptional changes. Participants name the host and this canonical member, not the complete 35-strain roster.

-

Source Taxon: Dyella japonica MF79

+

Participating Taxa: -

Target Taxon: Arabidopsis thaliana

+ Arabidopsis thaliana, + + Dyella japonica MF79 + +

@@ -851,8 +843,8 @@

MAMP-Triggered Immunity Suppression

Downstream Effects:
- → Enhanced Colonization Through Community Cooperation -

Suppression of MAMP-triggered immunity gates microbial access to Arabidopsis roots, allowing robust suppressors to improve the root colonization capacity of otherwise nonsuppressive commensals.

+ → Suppression-Associated Root Colonization Facilitation +

Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization. This does not establish universal facilitation by every suppressor or reciprocal benefit.

@@ -865,13 +857,13 @@

Evidence

  • - doi:10.1073/pnas.2100678118 + PMID:33879573 - SUPPORT (IN_VITRO)
    -
    "Significance In natural environments, plants establish intimate interactions with a wide diversity of microbes"
    +
    "a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of the Arabidopsis immune system"
  • @@ -881,18 +873,20 @@

    Evidence

    -

    WRKY Transcription Factor Suppression

    - COMMENSALISM +

    Community-Associated WRKY Transcript Suppression

    -

    Suppression of WRKY transcription factors, which are master regulators of plant immunity, allowing commensals to establish colonization while maintaining plant-microbe homeostasis. -

    +

    SynCom35 suppressed flg22-responsive WRKY transcripts. The host and MF79 participants represent a known subset of the inoculated system, not a demonstrated MF79-specific WRKY mechanism. A regulatory role in colonization homeostasis remains proposed.

    -

    Source Taxon: Dyella japonica MF79

    +

    Participating Taxa: -

    Target Taxon: Arabidopsis thaliana

    + Arabidopsis thaliana, + + Dyella japonica MF79 + +

    @@ -925,13 +919,13 @@

    Evidence

  • - doi:10.1073/pnas.2100678118 + PMID:33879573 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
    -
    "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns"
    +
    "a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of the Arabidopsis immune system"
  • @@ -941,11 +935,9 @@

    Evidence

    -

    Type II Secretion-Mediated Immune Modulation

    - COMMENSALISM +

    MF79 Type II Secretion-Dependent Immune Modulation

    -

    Extracellular protein secretion via Type II secretion system that modulates plant immune responses and enhances bacterial colonization capacity. -

    +

    MF79 secretion-system mutants and cell-free supernatants support T2SS-dependent suppression of the root flg22 response; T3SS was dispensable. The active secreted molecule remains unresolved. This strain-specific requirement is not assigned to every SynCom35 member.

    Source Taxon: Dyella japonica MF79

    @@ -981,8 +973,8 @@

    Type II Secretion-Mediated Immune Modulation

    Downstream Effects:
    - → MAMP-Triggered Immunity Suppression -

    Type II secretion provides an extracellular suppressor mechanism that prevents full activation of Arabidopsis MAMP-triggered immunity.

    + → Root flg22 Immune Suppression +

    MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35 phenotype.

    @@ -1011,136 +1003,25 @@

    Evidence

    -

    Enhanced Colonization Through Community Cooperation

    - MUTUALISM -
    -

    Suppressor strains enhance colonization capacity of non-suppressor bacteria through cooperative immunomodulation, demonstrating community-level benefits. -

    - - -

    Source Taxon: Dyella japonica MF79

    - - - -

    Target Taxon: Pseudomonas species

    - - - - - -

    Biological Processes:

    - - - - - - -

    Evidence

    - - -
    - -
    -
    -

    Taxonomic Diversity Enabling Functional Complementarity

    - MUTUALISM -
    -

    The SynComm 35 community comprises taxonomically diverse bacteria spanning multiple phyla and orders (Xanthomonadales, Flavobacteriales, Microbacteriales, Pseudomonadales, Burkholderiales), providing functional redundancy and metabolic complementarity in the rhizosphere. Xanthomonadales members contribute to plant-microbe signaling and nutrient acquisition. Flavobacterium species provide polysaccharide degradation and vitamin production. Microbacterium species contribute to organic matter turnover and stress tolerance. Stenotrophomonas species enhance nutrient mobilization and plant growth promotion. This phylogenetic diversity ensures community resilience against environmental perturbations and enables colonization across heterogeneous root microenvironments. The taxonomic breadth of SynComm 35 reflects natural root microbiome composition where diverse bacteria cooperate to establish stable plant-microbe associations despite host immune surveillance. -

    - - -

    Source Taxon: Xanthomonadales members

    - - - -

    Target Taxon: Flavobacterium species

    - - - - - -

    Biological Processes:

    - - - - - - -

    Evidence

    - - -
    - -
    -
    -

    Community Member Metabolic Cooperation

    - CROSS_FEEDING +

    Suppression-Associated Root Colonization Facilitation

    + COLONIZATION_FACILITATION
    -

    Microbacterium and Stenotrophomonas species cooperate metabolically within the SynComm 35 community, sharing nutrients and metabolites in the rhizosphere environment. Microbacterium species degrade complex organic polymers and produce amino acids and vitamins that benefit other community members. Stenotrophomonas species mobilize phosphate and produce siderophores for iron acquisition, creating public goods accessible to the community. This cross-feeding network reduces competition for resources and stabilizes community structure during root colonization. The metabolic cooperation complements the immune suppression mediated by Dyella japonica, creating a multi-layered strategy for successful root colonization. -

    +

    Suppressor-community precolonization enhanced subsequent colonization by tested nonsuppressors; MF79 retentate separately supported Ochrobactrum MF370 under flg22 challenge. Canonical participants are only a subset: Pseudomonas denotes the tested P. viridiflava challenge lineage, not a proven MF79/Pseudomonas mutualism.

    -

    Source Taxon: Microbacterium species

    +

    Participating Taxa: -

    Target Taxon: Stenotrophomonas species

    + Arabidopsis thaliana, + Dyella japonica MF79, + Pseudomonas species -

    Metabolites: +

    - amino-acid - (CHEBI:33709) -

    @@ -1179,66 +1060,31 @@

    Evidence

    -
    -
    -

    Negative Control Strain Baseline Response

    - COMPETITION -
    -

    Escherichia coli DH5α serves as a negative control strain representing a bacterium that lacks evolved adaptations for plant root colonization and immune suppression. Unlike the SynComm 35 members that suppress MAMP-triggered immunity, E. coli DH5α induces normal plant defense responses and colonizes poorly. The strain provides a baseline for measuring the specific immune-modulating capabilities of adapted root commensals. Comparison between E. coli and SynComm 35 demonstrates that immune suppression is not a general bacterial property but requires specific adaptations (Type II secretion systems, effector proteins, specialized metabolites) that evolved in plant-associated bacteria. This control validates that the observed immune suppression is due to specific bacterial strategies rather than non-specific bacterial presence. -

    - - -

    Source Taxon: Escherichia coli DH5α

    - - - -

    Target Taxon: Dyella japonica MF79

    - - - - - -

    Biological Processes:

    - - - - + -

    Evidence

    -
    - - - - @@ -1784,7 +1630,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "COMMENSALISM"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1801,7 +1647,7 @@

    Evidence

    nodes.push({ id: intId, - label: "MAMP-Triggered Immunity Suppression", + label: "Root flg22 Immune Suppression", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1810,23 +1656,26 @@

    Evidence

    }); - var srcKey = "Dyella japonica MF79"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Arabidopsis thaliana"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Arabidopsis thaliana", + + "Dyella japonica MF79" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:1"; - var intType = "COMMENSALISM"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1841,7 +1690,7 @@

    Evidence

    nodes.push({ id: intId, - label: "WRKY Transcription Factor Suppression", + label: "Community-Associated WRKY Transcript Suppression", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1850,23 +1699,26 @@

    Evidence

    }); - var srcKey = "Dyella japonica MF79"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Arabidopsis thaliana"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Arabidopsis thaliana", + + "Dyella japonica MF79" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:2"; - var intType = "COMMENSALISM"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1881,7 +1733,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Type II Secretion-Mediated Immune Modulation", + label: "MF79 Type II Secretion-Dependent Immune Modulation", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1906,89 +1758,9 @@

    Evidence

    (function() { var intId = "interaction:3"; - var intType = "MUTUALISM"; - var metabolites = []; - - var processes = []; - - - processes.push("interspecies interaction between organisms"); - - - var evidenceCount = 1; - - nodes.push({ - id: intId, - label: "Enhanced Colonization Through Community Cooperation", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount - }); - - - var srcKey = "Dyella japonica MF79"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } - - - - var tgtKey = "Pseudomonas species"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } - - })(); - - (function() { - var intId = "interaction:4"; - var intType = "MUTUALISM"; - var metabolites = []; - - var processes = []; - - - processes.push("interspecies interaction between organisms"); - - - var evidenceCount = 1; - - nodes.push({ - id: intId, - label: "Taxonomic Diversity Enabling Functional Complementarity", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount - }); - - - var srcKey = "Xanthomonadales members"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } - - - - var tgtKey = "Flavobacterium species"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } - - })(); - - (function() { - var intId = "interaction:5"; - var intType = "CROSS_FEEDING"; + var intType = "COLONIZATION_FACILITATION"; var metabolites = []; - - metabolites.push("amino-acid"); - - var processes = []; @@ -1999,7 +1771,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Community Member Metabolic Cooperation", + label: "Suppression-Associated Root Colonization Facilitation", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -2008,56 +1780,23 @@

    Evidence

    }); - var srcKey = "Microbacterium species"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Stenotrophomonas species"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Arabidopsis thaliana", - })(); + "Dyella japonica MF79", - (function() { - var intId = "interaction:6"; - var intType = "COMPETITION"; - var metabolites = []; - - var processes = []; - - - processes.push("defense response to bacterium"); - - - var evidenceCount = 1; + "Pseudomonas species" - nodes.push({ - id: intId, - label: "Negative Control Strain Baseline Response", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - var srcKey = "Escherichia coli DH5\u03b1"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } - - - - var tgtKey = "Dyella japonica MF79"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } - })(); @@ -2079,7 +1818,7 @@

    Evidence

    var svg = d3.select("#network-svg"); var width = container.clientWidth - 32; // Dynamic height based on node count: minimum 500px, add 40px per node - var nodeCount = 15; + var nodeCount = 12; var height = Math.max(500, 400 + nodeCount * 20); svg.attr("width", width).attr("height", height); diff --git a/docs/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.html b/docs/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.html index e0ed11545..a88bcb276 100644 --- a/docs/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.html +++ b/docs/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.html @@ -707,7 +707,7 @@

    Ecological Interactions

    Ecological interaction network for Deepwater Horizon Deep-Sea Oil Plume Succession - 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 (syntrophy, niche partitioning, 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.
    @@ -715,18 +715,8 @@

    Ecological Interactions

    Syntrophy -
    -
    - Niche partitioning -
    -
    - Colonization facilitation + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
    @@ -734,15 +724,18 @@

    Ecological Interactions

    -

    Intrinsic Hydrocarbon Bioremediation

    - SYNTROPHY +

    Cold Hydrocarbon Biodegradation and Bioremediation Potential

    -

    Indigenous deep-sea bacteria degraded plume hydrocarbons under cold deep-water conditions, creating potential for intrinsic bioremediation without substantial oxygen drawdown.

    +

    Field hydrocarbon patterns and environmental-isolate incubations at 5 C support cold-water biodegradation and the potential for intrinsic plume bioremediation without substantial oxygen drawdown. This is not a distinct oxygen-conservation mechanism or established syntrophy. The named Oceanospirillales group represents a canonical subset, not every degrader or all spill phases.

    + -

    Source Taxon: DWH Oceanospirillales-like bacteria

    +

    Participating Taxa: + DWH Oceanospirillales-like bacteria + +

    @@ -773,16 +766,6 @@

    Intrinsic Hydrocarbon Bioremediation

    -
    - Downstream Effects: - -
    - → Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation -

    Fast cold-water hydrocarbon biodegradation by indigenous Gammaproteobacteria supports natural plume attenuation without a substantial loss of dissolved oxygen.

    -
    - -
    -

    Evidence

    @@ -794,7 +777,7 @@

    Evidence

    PMID:20736401 - - SUPPORT (IN_VIVO) + - SUPPORT (OTHER)
    "faster-than-expected hydrocarbon biodegradation rates at 5°C"
    @@ -807,7 +790,7 @@

    Evidence

    PMID:20736401 - - SUPPORT (IN_VIVO) + - PARTIAL (OTHER)
    "intrinsic bioremediation of the oil plume in the deep-water column without substantial oxygen drawdown"
    @@ -820,15 +803,18 @@

    Evidence

    -

    Colwellia Oil Droplet Floc Formation

    - COLONIZATION_FACILITATION +

    Colwellia-Dominated Oil-Associated Flocs

    -

    Colwellia-dominated flocs formed with oil and biomass in cold incubations, linking cell aggregation to hydrocarbon degradation in deep marine habitats.

    +

    In cold oil/COREXIT enrichments from uncontaminated deep Gulf water without added FeCl2, oil-, carbohydrate- and biomass-containing flocs were dominated by Colwellia. Oil degradation by an isolated Colwellia strain is a separate positive result. Aggregation does not by itself demonstrate facilitation of another taxon or quantify a floc-specific contribution to field attenuation.

    -

    Source Taxon: Colwellia

    +

    Participating Taxa: + + Colwellia + +

    @@ -848,8 +834,8 @@

    Colwellia Oil Droplet Floc Formation

    Downstream Effects:
    - → Intrinsic Hydrocarbon Bioremediation -

    Oil-associated Colwellia biomass flocs contribute a particle-associated route into cold deep-water oil degradation.

    + → Cold Hydrocarbon Biodegradation and Bioremediation Potential +

    HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access and degradation. The enrichment observations and separate isolate assay do not selectively test this route or establish its contribution to in situ plume attenuation.

    @@ -891,13 +877,24 @@

    Evidence

    -

    Complex Hydrocarbon Substrate Partitioning

    - NICHE_PARTITIONING +

    Proposed Community Hydrocarbon Pathway Complementarity

    -

    Different plume-associated taxa contributed distinct, non-redundant capacities for degrading alkane and polycyclic aromatic hydrocarbons, so community-level degradation exceeded single-member capabilities.

    +

    HYPOTHESIZED - SIP enrichment and genome reconstruction suggest complementary hydrocarbon pathways. The study separates deep-water hexadecane from surface-water PAH enrichments, incubated at room temperature without added dispersant. Named taxa are a subset across those enrichments, not a proven five-member deep-plume consortium. Coordinated metabolism is an alternative to unknown enzymes or incomplete assemblies, not resolved metabolite exchange.

    + + + +

    Participating Taxa: + DWH Oceanospirillales-like bacteria, + Colwellia, + + Cycloclasticus, + + Marinobacter + +

    @@ -932,8 +929,8 @@

    Complex Hydrocarbon Substrate Partitioning

    Downstream Effects:
    - → Intrinsic Hydrocarbon Bioremediation -

    Partitioning alkane and PAH metabolism among non-redundant plume guilds lets the community degrade complex petroleum mixtures.

    + → Cold Hydrocarbon Biodegradation and Bioremediation Potential +

    HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux, necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume.

    @@ -949,7 +946,7 @@

    Evidence

    PMID:27572965 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
    "combined capabilities of the microbial community exceeded those of its individual components"
    @@ -962,84 +959,23 @@

    Evidence

    PMID:27572965 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
    "degradation of complex hydrocarbon mixtures requires the non-redundant capabilities of a complex oil-degrading community"
    - - - - -
    -
    -

    Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation

    - NICHE_PARTITIONING -
    -

    Indigenous, cold-adapted Deepwater Horizon plume bacteria carried out faster-than-expected hydrocarbon biodegradation in the deep water column, supporting intrinsic oil-plume bioremediation without substantial oxygen drawdown.

    - - - - - - -

    Metabolites: - - hydrocarbon - (CHEBI:24632), - - dioxygen - (CHEBI:15379) - -

    - - - -

    Biological Processes:

    - - - - - - -

    Evidence

    -
    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + How much do floc formation and proposed pathway complementarity contribute to field hydrocarbon attenuation? +

    +

    Selective aggregation and member/pathway perturbations, direct intermediate tracing and field-resolved measurements would test the two retained hypotheses. Surface and plume enrichments cannot be collapsed into one co-occurring consortium. The duplicate oxygen-conservation node was consolidated without discarding the bounded bioremediation potential. Hazen and Baelum claims remain abstract-bounded; the Dombrowski author proof and Figure 3 were inspected. The partial Colwellia SAG supports predictions, not demonstrated missing enzymes or siderophore exchange. Non-graph follow-up: #1379.

    + +

    Attaches to: ecological_interactions#Cold Hydrocarbon Biodegradation and Bioremediation Potential, ecological_interactions#Colwellia-Dominated Oil-Associated Flocs, ecological_interactions#Proposed Community Hydrocarbon Pathway Complementarity

    + + + + +
    + +
    @@ -1537,7 +1492,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1556,7 +1511,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Intrinsic Hydrocarbon Bioremediation", + label: "Cold Hydrocarbon Biodegradation and Bioremediation Potential", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1565,18 +1520,24 @@

    Evidence

    }); - var srcKey = "DWH Oceanospirillales-like bacteria"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ + + "DWH Oceanospirillales-like bacteria" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:1"; - var intType = "COLONIZATION_FACILITATION"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1589,7 +1550,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Colwellia Oil Droplet Floc Formation", + label: "Colwellia-Dominated Oil-Associated Flocs", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1598,18 +1559,24 @@

    Evidence

    }); - var srcKey = "Colwellia"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ + + "Colwellia" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:2"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1624,11 +1591,11 @@

    Evidence

    processes.push("alkane catabolic process"); - var evidenceCount = 2; + var evidenceCount = 3; nodes.push({ id: intId, - label: "Complex Hydrocarbon Substrate Partitioning", + label: "Proposed Community Hydrocarbon Pathway Complementarity", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1639,40 +1606,23 @@

    Evidence

    - })(); - - (function() { - var intId = "interaction:3"; - var intType = "NICHE_PARTITIONING"; - var metabolites = []; - - - metabolites.push("hydrocarbon"); - - metabolites.push("dioxygen"); - + var participantKeys = [ - var processes = []; + "DWH Oceanospirillales-like bacteria", + "Colwellia", - processes.push("alkane catabolic process"); + "Cycloclasticus", + "Marinobacter" - var evidenceCount = 2; - - nodes.push({ - id: intId, - label: "Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); @@ -1694,7 +1644,7 @@

    Evidence

    var svg = d3.select("#network-svg"); var width = container.clientWidth - 32; // Dynamic height based on node count: minimum 500px, add 40px per node - var nodeCount = 9; + var nodeCount = 8; var height = Math.max(500, 400 + nodeCount * 20); svg.attr("width", width).attr("height", height); diff --git a/docs/communities/Defined_Multispecies_Enamel_Caries_Model.html b/docs/communities/Defined_Multispecies_Enamel_Caries_Model.html index 2933303c5..3dccea358 100644 --- a/docs/communities/Defined_Multispecies_Enamel_Caries_Model.html +++ b/docs/communities/Defined_Multispecies_Enamel_Caries_Model.html @@ -618,7 +618,7 @@

    Ecological Interactions

    Ecological interaction network for Defined Multispecies Enamel Caries Model - 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.
    @@ -626,18 +626,8 @@

    Ecological Interactions

    Cross-feeding -
    -
    - Competition -
    -
    - Colonization facilitation + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
    @@ -646,13 +636,24 @@

    Ecological Interactions

    Four-Species Enamel Biofilm Formation

    - COLONIZATION_FACILITATION
    -

    Lactobacillus casei, Streptococcus mutans, Streptococcus salivarius, and Streptococcus sanguinis formed a defined biofilm on salivary-pellicle-coated enamel slabs during the four-day in vitro caries assay.

    +

    The four canonical taxa were inoculated onto salivary-pellicle-coated enamel for the four-day assay with daily medium changes. This records the defined starting community and biofilm platform, not demonstrated interspecies colonization facilitation or persistence of all four members in every treatment; S. sanguinis was below detection in the calcium arms.

    +

    Participating Taxa: + + Lactobacillus casei, + + Streptococcus mutans, + + Streptococcus salivarius, + + Streptococcus sanguinis + +

    + @@ -670,21 +671,6 @@

    Four-Species Enamel Biofilm Formation

    -
    - Downstream Effects: - -
    - → Sucrose-Responsive Viable Biofilm Shift -

    The established four-species enamel biofilm provided the viable biomass whose cell counts shifted across the sucrose, fluoride, and calcium arms.

    -
    - -
    - → Mineral-Dependent Demineralization Restraint -

    Four days of multispecies biofilm growth on enamel slabs created the demineralization readout modulated by fluoride and calcium.

    -
    - -
    -

    Evidence

    @@ -709,13 +695,24 @@

    Evidence

    -

    Sucrose-Responsive Viable Biofilm Shift

    - CROSS_FEEDING +

    Treatment-Dependent Viable Biofilm Counts

    -

    Changing sucrose in the replacement medium was part of a treatment matrix that significantly altered viable-cell counts in the four-species enamel biofilms.

    +

    Sucrose, fluoride and calcium treatments altered selected viable-count outcomes in the inoculated model. Higher sucrose increased total counts and L. casei; calcium did not significantly change total counts or S. mutans. Species-specific responses are not a uniform community increase or demonstrated cross-feeding. Acid selection remains a proposed explanation, not a selectively perturbed mechanism.

    + +

    Participating Taxa: + + Lactobacillus casei, + + Streptococcus mutans, + + Streptococcus salivarius, + + Streptococcus sanguinis + +

    @@ -767,13 +764,24 @@

    Evidence

    Mineral-Dependent Demineralization Restraint

    - COMPETITION
    -

    Higher fluoride and calcium concentrations reduced surface-microhardness change, and 0.8-1.0 ppm fluoride also lowered integrated mineral loss and lesion depth in the enamel slabs.

    +

    Higher-fluoride arms had lower enamel surface-microhardness change, lesion depth and integrated mineral loss. Calcium at 2 mM reduced surface-microhardness change relative to lower calcium arms, not every mineral-loss endpoint. These are treatment-dependent material outcomes, not microbial competition or proof that altered cell counts mediate protection; proposed calcium/EPS mechanisms were not tested.

    +

    Participating Taxa: + + Lactobacillus casei, + + Streptococcus mutans, + + Streptococcus salivarius, + + Streptococcus sanguinis + +

    +

    Metabolites: @@ -790,17 +798,6 @@

    Mineral-Dependent Demineralization Restraint

    -

    Biological Processes:

    - - @@ -843,6 +840,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which microbial processes mediate the observed treatment-dependent counts and enamel outcomes? +

    +

    The primary paper and Tables 1-2 support positive experimental outcomes but not cross-feeding, reciprocal competition, calcium/EPS mediation or selective pH causality. Distinguish starting roster from recoverable members. The Results prose and Table 2 superscripts differ on one L. casei calcium comparison; no disputed 1-versus-2 mM claim is used here. The two removed arrows described assay context, not mechanistic mediation. Non-graph follow-up: #1380.

    + +

    Attaches to: ecological_interactions#Four-Species Enamel Biofilm Formation, ecological_interactions#Treatment-Dependent Viable Biofilm Counts, ecological_interactions#Mineral-Dependent Demineralization Restraint

    + + + + +
    + +
    @@ -1112,7 +1128,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "COLONIZATION_FACILITATION"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1136,11 +1152,28 @@

    Evidence

    + var participantKeys = [ + + "Lactobacillus casei", + + "Streptococcus mutans", + + "Streptococcus salivarius", + + "Streptococcus sanguinis" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:1"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1157,7 +1190,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Sucrose-Responsive Viable Biofilm Shift", + label: "Treatment-Dependent Viable Biofilm Counts", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1168,11 +1201,28 @@

    Evidence

    + var participantKeys = [ + + "Lactobacillus casei", + + "Streptococcus mutans", + + "Streptococcus salivarius", + + "Streptococcus sanguinis" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:2"; - var intType = "COMPETITION"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1183,10 +1233,6 @@

    Evidence

    var processes = []; - - processes.push("biofilm formation"); - - var evidenceCount = 2; nodes.push({ @@ -1202,6 +1248,23 @@

    Evidence

    + var participantKeys = [ + + "Lactobacillus casei", + + "Streptococcus mutans", + + "Streptococcus salivarius", + + "Streptococcus sanguinis" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); diff --git a/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml b/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml new file mode 100644 index 000000000..8936c3ae1 --- /dev/null +++ b/history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml @@ -0,0 +1,31 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Dangl_SynComm_35.yaml + slug: Dangl_SynComm_35 +session: + id: 2026-10-06T052450Z-codex-4c42b0 + timestamp: '2026-10-06T05:24:50Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1375 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain positive root immune suppression at community scope; do not assign community + readouts exclusively to MF79.; Retain the primary-body WRKY observation without converting + proposed regulatory/homeostasis roles into proven causality; abstract snippet support + is explicitly partial.; Retain the tested MF79 secretion-system mechanism and existing + arrow with strain-specific scope and unresolved effector identity.; Retain experimentally + supported colonization facilitation, distinguish assay contexts and incomplete canonical + participants, and remove reciprocal-fitness attribution. + details: Primary-source self-adversarial repair, qualification and removal; no new nodes + or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml diff --git a/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml b/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml new file mode 100644 index 000000000..2275cbca2 --- /dev/null +++ b/history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml @@ -0,0 +1,30 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml + slug: Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession +session: + id: 2026-10-06T052450Z-codex-df845f + timestamp: '2026-10-06T05:24:50Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1376 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain measured cold biodegradation and qualified bioremediation potential; consolidate + duplicate oxygen context without asserting syntrophy or oxygen conservation.; Retain positive + Colwellia-dominated flocs while qualifying their proposed contribution to degradation + and removing unsupported facilitation.; Retain positive SIP/genome evidence and the complementary-pathway + hypothesis, distinguish surface/deep and laboratory/field contexts, and retain alternative + explanations. + details: Primary-source self-adversarial repair, qualification and removal; no new nodes + or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml diff --git a/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml b/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml new file mode 100644 index 000000000..575c10363 --- /dev/null +++ b/history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml + slug: Defined_Multispecies_Enamel_Caries_Model +session: + id: 2026-10-06T052450Z-codex-bf5211 + timestamp: '2026-10-06T05:24:50Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1377 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the inoculated biofilm platform without interspecies facilitation or universal + persistence claims.; Retain treatment- and species-specific viable-count outcomes without + cross-feeding or a uniform calcium effect.; Retain endpoint-specific enamel mineral outcomes + without microbial competition or an untested mediation mechanism. + details: Primary-source self-adversarial repair, qualification and removal; no new nodes + or arrows. reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml diff --git a/kb/communities/Dangl_SynComm_35.yaml b/kb/communities/Dangl_SynComm_35.yaml index 590cef423..c697fe2f2 100644 --- a/kb/communities/Dangl_SynComm_35.yaml +++ b/kb/communities/Dangl_SynComm_35.yaml @@ -223,24 +223,11 @@ taxonomy: snippet: We report that root-associated commensal bacteria actively suppress the host immune response in the context of a community ecological_interactions: -- name: MAMP-Triggered Immunity Suppression - description: 'Suppression of plant pattern-triggered immunity responses, particularly - the flg22-induced transcriptional response. SynComm 35 reduces flg22-responsive - genes from 492-523 genes to only 7 genes when the community is present. - - ' - interaction_type: COMMENSALISM - scope: PAIRWISE - source_taxon: - preferred_term: Dyella japonica MF79 - term: - id: NCBITaxon:231455 - label: Dyella japonica - target_taxon: - preferred_term: Arabidopsis thaliana - term: - id: NCBITaxon:3702 - label: Arabidopsis thaliana +- name: Root flg22 Immune Suppression + description: Live SynCom35 suppresses a sector of the Arabidopsis root flg22 response after establishment. Dyella + MF79 is one tested suppressor, not the sole cause of whole-community transcriptional changes. Participants name + the host and this canonical member, not the complete 35-strain roster. + scope: COMMUNITY_LEVEL biological_processes: - preferred_term: pattern recognition receptor signaling pathway term: @@ -255,39 +242,32 @@ ecological_interactions: id: GO:0045088 label: regulation of innate immune response downstream: - - target: Enhanced Colonization Through Community Cooperation - description: Suppression of MAMP-triggered immunity gates microbial access - to Arabidopsis roots, allowing robust suppressors to improve the root - colonization capacity of otherwise nonsuppressive commensals. + - target: Suppression-Associated Root Colonization Facilitation + description: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type + retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization. + This does not establish universal facilitation by every suppressor or reciprocal benefit. evidence: - - reference: doi:10.1073/pnas.2100678118 + - reference: PMID:33879573 supports: SUPPORT evidence_source: IN_VITRO - snippet: Significance In natural environments, plants establish intimate interactions - with a wide diversity of microbes - explanation: 'The community specifically suppresses a transcriptional sector of - plant immunity, demonstrating that commensal bacteria actively modulate host - immune responses - - ' -- name: WRKY Transcription Factor Suppression - description: 'Suppression of WRKY transcription factors, which are master regulators - of plant immunity, allowing commensals to establish colonization while maintaining - plant-microbe homeostasis. - - ' - interaction_type: COMMENSALISM - scope: PAIRWISE - source_taxon: - preferred_term: Dyella japonica MF79 - term: - id: NCBITaxon:231455 - label: Dyella japonica - target_taxon: - preferred_term: Arabidopsis thaliana + snippet: a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of + the Arabidopsis immune system + explanation: Supports community immune modulation. Primary Results and Figures 1-3 distinguish whole-community, + monoassociation and acute reporter assays. + participating_taxa: + - preferred_term: Arabidopsis thaliana term: id: NCBITaxon:3702 label: Arabidopsis thaliana + - preferred_term: Dyella japonica MF79 + term: + id: NCBITaxon:231455 + label: Dyella japonica +- name: Community-Associated WRKY Transcript Suppression + description: SynCom35 suppressed flg22-responsive WRKY transcripts. The host and MF79 participants represent a + known subset of the inoculated system, not a demonstrated MF79-specific WRKY mechanism. A regulatory role in + colonization homeostasis remains proposed. + scope: COMMUNITY_LEVEL biological_processes: - preferred_term: regulation of defense response term: @@ -298,18 +278,27 @@ ecological_interactions: id: GO:0006355 label: regulation of DNA-templated transcription evidence: - - reference: doi:10.1073/pnas.2100678118 - supports: SUPPORT + - reference: PMID:33879573 + supports: PARTIAL evidence_source: IN_VITRO - snippet: It is unknown, however, how microbiota composed of commensal bacteria - colonize roots in the face of a sophisticated plant immune system that evolved - to recognize microbial-associated molecular patterns -- name: Type II Secretion-Mediated Immune Modulation - description: 'Extracellular protein secretion via Type II secretion system that - modulates plant immune responses and enhances bacterial colonization capacity. - - ' - interaction_type: COMMENSALISM + snippet: a community of root commensal bacteria modulates a specific and evolutionarily conserved sector of + the Arabidopsis immune system + explanation: The cached abstract supports broad immune modulation, not the WRKY-specific readout. That readout + was checked in primary Results, cluster SC1, and the proposed regulatory role in Discussion at https://pmc.ncbi.nlm.nih.gov/articles/PMC8072228/. + No claim that snippet matching validates the WRKY detail. + participating_taxa: + - preferred_term: Arabidopsis thaliana + term: + id: NCBITaxon:3702 + label: Arabidopsis thaliana + - preferred_term: Dyella japonica MF79 + term: + id: NCBITaxon:231455 + label: Dyella japonica +- name: MF79 Type II Secretion-Dependent Immune Modulation + description: MF79 secretion-system mutants and cell-free supernatants support T2SS-dependent suppression of the + root flg22 response; T3SS was dispensable. The active secreted molecule remains unresolved. This strain-specific + requirement is not assigned to every SynCom35 member. scope: PAIRWISE source_taxon: preferred_term: Dyella japonica MF79 @@ -331,72 +320,23 @@ ecological_interactions: id: GO:0052031 label: symbiont-mediated perturbation of host defense response downstream: - - target: MAMP-Triggered Immunity Suppression - description: Type II secretion provides an extracellular suppressor - mechanism that prevents full activation of Arabidopsis MAMP-triggered - immunity. + - target: Root flg22 Immune Suppression + description: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This + arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35 + phenotype. evidence: - reference: PMID:33879573 supports: SUPPORT evidence_source: IN_VITRO - snippet: We highlight the importance of extracellular strategies for MTI suppression by - showing that the type 2, not the type 3, secretion system is required for - the immunomodulatory activity of one robust MTI suppressor -- name: Enhanced Colonization Through Community Cooperation - description: 'Suppressor strains enhance colonization capacity of non-suppressor - bacteria through cooperative immunomodulation, demonstrating community-level benefits. - - ' - interaction_type: MUTUALISM - scope: PAIRWISE - source_taxon: - preferred_term: Dyella japonica MF79 - term: - id: NCBITaxon:231455 - label: Dyella japonica - target_taxon: - preferred_term: Pseudomonas species - term: - id: NCBITaxon:286 - label: Pseudomonas - biological_processes: - - preferred_term: interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: - - reference: doi:10.1073/pnas.2100678118 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the - presence of the former can enhance the colonization ability of the latter -- name: Taxonomic Diversity Enabling Functional Complementarity - description: 'The SynComm 35 community comprises taxonomically diverse bacteria - spanning multiple phyla and orders (Xanthomonadales, Flavobacteriales, Microbacteriales, - Pseudomonadales, Burkholderiales), providing functional redundancy and metabolic - complementarity in the rhizosphere. Xanthomonadales members contribute to plant-microbe - signaling and nutrient acquisition. Flavobacterium species provide polysaccharide - degradation and vitamin production. Microbacterium species contribute to organic - matter turnover and stress tolerance. Stenotrophomonas species enhance nutrient - mobilization and plant growth promotion. This phylogenetic diversity ensures community - resilience against environmental perturbations and enables colonization across - heterogeneous root microenvironments. The taxonomic breadth of SynComm 35 reflects - natural root microbiome composition where diverse bacteria cooperate to establish - stable plant-microbe associations despite host immune surveillance. - - ' - interaction_type: MUTUALISM + snippet: We highlight the importance of extracellular strategies for MTI suppression by showing that the type + 2, not the type 3, secretion system is required for the immunomodulatory activity of one robust MTI suppressor + explanation: Supports the experimentally tested secretion-system requirement in one suppressor, not a resolved + effector identity or whole-community T2SS requirement. +- name: Suppression-Associated Root Colonization Facilitation + description: 'Suppressor-community precolonization enhanced subsequent colonization by tested nonsuppressors; + MF79 retentate separately supported Ochrobactrum MF370 under flg22 challenge. Canonical participants are only + a subset: Pseudomonas denotes the tested P. viridiflava challenge lineage, not a proven MF79/Pseudomonas mutualism.' scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: Xanthomonadales members - term: - id: NCBITaxon:135614 - label: Lysobacterales - target_taxon: - preferred_term: Flavobacterium species - term: - id: NCBITaxon:237 - label: Flavobacterium biological_processes: - preferred_term: interspecies interaction between organisms term: @@ -406,90 +346,24 @@ ecological_interactions: - reference: doi:10.1073/pnas.2100678118 supports: SUPPORT evidence_source: IN_VITRO - snippet: Significance In natural environments, plants establish intimate interactions - with a wide diversity of microbes - explanation: Documents taxonomic diversity enabling community function -- name: Community Member Metabolic Cooperation - description: 'Microbacterium and Stenotrophomonas species cooperate metabolically - within the SynComm 35 community, sharing nutrients and metabolites in the rhizosphere - environment. Microbacterium species degrade complex organic polymers and produce - amino acids and vitamins that benefit other community members. Stenotrophomonas - species mobilize phosphate and produce siderophores for iron acquisition, creating - public goods accessible to the community. This cross-feeding network reduces competition - for resources and stabilizes community structure during root colonization. The - metabolic cooperation complements the immune suppression mediated by Dyella japonica, - creating a multi-layered strategy for successful root colonization. - - ' - interaction_type: CROSS_FEEDING - scope: PAIRWISE - source_taxon: - preferred_term: Microbacterium species - term: - id: NCBITaxon:33882 - label: Microbacterium - target_taxon: - preferred_term: Stenotrophomonas species - term: - id: NCBITaxon:40323 - label: Stenotrophomonas - metabolites: - - preferred_term: amino-acid + snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the presence of the former can enhance + the colonization ability of the latter + explanation: Supports facilitation of tested nonsuppressors. The main body separates the smaller-community precolonization + comparison from the MF79 retentate experiment; neither demonstrates reciprocal fitness. + participating_taxa: + - preferred_term: Arabidopsis thaliana term: - id: CHEBI:33709 - label: amino acid - notes: Produced by Microbacterium for community consumption - biological_processes: - - preferred_term: interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: - - reference: doi:10.1073/pnas.2100678118 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: Suppressors and nonsuppressors co-occur in the root microbiome and the - presence of the former can enhance the colonization ability of the latter - explanation: Demonstrates cooperative interactions among community members -- name: Negative Control Strain Baseline Response - description: 'Escherichia coli DH5α serves as a negative control strain representing - a bacterium that lacks evolved adaptations for plant root colonization and immune - suppression. Unlike the SynComm 35 members that suppress MAMP-triggered immunity, - E. coli DH5α induces normal plant defense responses and colonizes poorly. The - strain provides a baseline for measuring the specific immune-modulating capabilities - of adapted root commensals. Comparison between E. coli and SynComm 35 demonstrates - that immune suppression is not a general bacterial property but requires specific - adaptations (Type II secretion systems, effector proteins, specialized metabolites) - that evolved in plant-associated bacteria. This control validates that the observed - immune suppression is due to specific bacterial strategies rather than non-specific - bacterial presence. - - ' - interaction_type: COMPETITION - scope: PAIRWISE - source_taxon: - preferred_term: Escherichia coli DH5α - term: - id: NCBITaxon:668369 - label: Escherichia coli DH5[alpha] - target_taxon: - preferred_term: Dyella japonica MF79 + id: NCBITaxon:3702 + label: Arabidopsis thaliana + - preferred_term: Dyella japonica MF79 term: id: NCBITaxon:231455 label: Dyella japonica - biological_processes: - - preferred_term: defense response to bacterium + - preferred_term: Pseudomonas species term: - id: GO:0042742 - label: defense response to bacterium - evidence: - - reference: doi:10.1073/pnas.2100678118 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: It is unknown, however, how microbiota composed of commensal bacteria - colonize roots in the face of a sophisticated plant immune system that evolved - to recognize microbial-associated molecular patterns - explanation: E. coli serves as non-adapted control demonstrating plant immunity + id: NCBITaxon:286 + label: Pseudomonas + interaction_type: COLONIZATION_FACILITATION growth_media: - name: Tryptic Soy Broth (TSB) for bacterial culture ph: '7.3' @@ -674,3 +548,31 @@ related_ingredients: metals_present: [] metal_relevance: INCIDENTAL metal_notes: Metal/REE detected via environmental factor measurements +discussions: +- discussion_id: syncom35_effector_and_roster_limits + prompt: Which secreted factors and host regulators mediate strain-specific colonization effects? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Root flg22 Immune Suppression + - ecological_interactions#Community-Associated WRKY Transcript Suppression + - ecological_interactions#MF79 Type II Secretion-Dependent Immune Modulation + - ecological_interactions#Suppression-Associated Root Colonization Facilitation + rationale: 'Effector identity, causal WRKY mediation and complete canonical strain coverage remain unresolved. + The three removed nodes lacked evidence for their asserted relationships; absence of support is not evidence + that all such mechanisms are biologically impossible. Supplementary methods/rosters were not retrieved. Neither + the removed E. coli control phenotype nor metabolic exchange is certified by this review. Non-graph follow-up: + #1378.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T05:24:49Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain positive root immune suppression at community scope; do not assign community readouts exclusively + to MF79.; Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles + into proven causality; abstract snippet support is explicitly partial.; Retain the tested MF79 secretion-system + mechanism and existing arrow with strain-specific scope and unresolved effector identity.; Retain experimentally + supported colonization facilitation, distinguish assay contexts and incomplete canonical participants, and remove + reciprocal-fitness attribution. Issue #1375; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml' + llm_assisted: true diff --git a/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml b/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml index bf9dffa05..90a32c08e 100644 --- a/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml +++ b/kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml @@ -145,16 +145,12 @@ taxonomy: snippet: Marinobacter was enriched with n-hexadecane explanation: Supports Marinobacter as an alkane-associated hydrocarbon degrader in DWH-derived experiments. ecological_interactions: -- name: Intrinsic Hydrocarbon Bioremediation - description: Indigenous deep-sea bacteria degraded plume hydrocarbons under cold deep-water conditions, - creating potential for intrinsic bioremediation without substantial oxygen drawdown. - interaction_type: SYNTROPHY +- name: Cold Hydrocarbon Biodegradation and Bioremediation Potential + description: Field hydrocarbon patterns and environmental-isolate incubations at 5 C support cold-water biodegradation + and the potential for intrinsic plume bioremediation without substantial oxygen drawdown. This is not a distinct + oxygen-conservation mechanism or established syntrophy. The named Oceanospirillales group represents a canonical + subset, not every degrader or all spill phases. scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: DWH Oceanospirillales-like bacteria - term: - id: NCBITaxon:135619 - label: Oceanospirillales metabolites: - preferred_term: hydrocarbon term: @@ -169,57 +165,64 @@ ecological_interactions: term: id: GO:0043448 label: alkane catabolic process - downstream: - - target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation - description: Fast cold-water hydrocarbon biodegradation by indigenous - Gammaproteobacteria supports natural plume attenuation without a - substantial loss of dissolved oxygen. evidence: - reference: PMID:20736401 supports: SUPPORT - evidence_source: IN_VIVO + evidence_source: OTHER snippet: faster-than-expected hydrocarbon biodegradation rates at 5°C - explanation: Supports cold deep-water hydrocarbon biodegradation. + explanation: The abstract combines field observations and in vitro isolate experiments. It supports biodegradation, + not a purely in vivo rate measurement or syntrophic dependence. - reference: PMID:20736401 - supports: SUPPORT - evidence_source: IN_VIVO + supports: PARTIAL + evidence_source: OTHER snippet: intrinsic bioremediation of the oil plume in the deep-water column without substantial oxygen drawdown - explanation: Supports intrinsic bioremediation as a community-level function. -- name: Colwellia Oil Droplet Floc Formation - description: Colwellia-dominated flocs formed with oil and biomass in cold incubations, linking cell - aggregation to hydrocarbon degradation in deep marine habitats. - interaction_type: COLONIZATION_FACILITATION - scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: Colwellia + explanation: The quoted phrase is governed by the abstract's potential-exists qualifier, not a demonstrated + oxygen-conserving mechanism or a plume-wide oxygen budget. + participating_taxa: + - preferred_term: DWH Oceanospirillales-like bacteria term: - id: NCBITaxon:28228 - label: Colwellia + id: NCBITaxon:135619 + label: Oceanospirillales +- name: Colwellia-Dominated Oil-Associated Flocs + description: In cold oil/COREXIT enrichments from uncontaminated deep Gulf water without added FeCl2, oil-, carbohydrate- + and biomass-containing flocs were dominated by Colwellia. Oil degradation by an isolated Colwellia strain is + a separate positive result. Aggregation does not by itself demonstrate facilitation of another taxon or quantify + a floc-specific contribution to field attenuation. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: hydrocarbon term: id: CHEBI:24632 label: hydrocarbon downstream: - - target: Intrinsic Hydrocarbon Bioremediation - description: Oil-associated Colwellia biomass flocs contribute a - particle-associated route into cold deep-water oil degradation. + - target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + description: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access + and degradation. The enrichment observations and separate isolate assay do not selectively test this route + or establish its contribution to in situ plume attenuation. evidence: - reference: PMID:22616650 supports: SUPPORT evidence_source: IN_VITRO snippet: flocs were comprised of oil, carbohydrates and biomass - explanation: Supports oil-associated floc formation as a Colwellia-linked mechanism. + explanation: Supports the observed Colwellia-dominated oil-associated aggregates in laboratory enrichments, + not an isolated causal effect of flocs on degradation or recipient colonization. - reference: PMID:22616650 supports: SUPPORT evidence_source: IN_VITRO snippet: Colwellia were the dominant bacteria in the flocs - explanation: Supports Colwellia dominance in the oil-associated flocs. -- name: Complex Hydrocarbon Substrate Partitioning - description: Different plume-associated taxa contributed distinct, non-redundant capacities for degrading - alkane and polycyclic aromatic hydrocarbons, so community-level degradation exceeded single-member - capabilities. - interaction_type: NICHE_PARTITIONING + explanation: Supports the observed Colwellia-dominated oil-associated aggregates in laboratory enrichments, + not an isolated causal effect of flocs on degradation or recipient colonization. + participating_taxa: + - preferred_term: Colwellia + term: + id: NCBITaxon:28228 + label: Colwellia +- name: Proposed Community Hydrocarbon Pathway Complementarity + description: HYPOTHESIZED - SIP enrichment and genome reconstruction suggest complementary hydrocarbon pathways. + The study separates deep-water hexadecane from surface-water PAH enrichments, incubated at room temperature + without added dispersant. Named taxa are a subset across those enrichments, not a proven five-member deep-plume + consortium. Coordinated metabolism is an alternative to unknown enzymes or incomplete assemblies, not resolved + metabolite exchange. scope: COMMUNITY_LEVEL metabolites: - preferred_term: hydrocarbon @@ -236,55 +239,49 @@ ecological_interactions: id: GO:0043448 label: alkane catabolic process downstream: - - target: Intrinsic Hydrocarbon Bioremediation - description: Partitioning alkane and PAH metabolism among non-redundant - plume guilds lets the community degrade complex petroleum mixtures. + - target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + description: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute + to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux, + necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume. evidence: - reference: PMID:27572965 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL snippet: combined capabilities of the microbial community exceeded those of its individual components - explanation: Supports non-redundant substrate specialization across the oil-degrading community. + explanation: The abstract supports the proposed community-capability model. The full author proof explicitly + retains alternative enzymes and incomplete-genome explanations and distinguishes sample origins and enrichment + conditions. - reference: PMID:27572965 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: degradation of complex hydrocarbon mixtures requires the non-redundant capabilities of a complex oil-degrading community - explanation: Supports niche partitioning among hydrocarbon-degrading taxa. -- name: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation - description: Indigenous, cold-adapted Deepwater Horizon plume bacteria - carried out faster-than-expected hydrocarbon biodegradation in the deep - water column, supporting intrinsic oil-plume bioremediation without - substantial oxygen drawdown. - interaction_type: NICHE_PARTITIONING - scope: COMMUNITY_LEVEL - metabolites: - - preferred_term: hydrocarbon + snippet: degradation of complex hydrocarbon mixtures requires the non-redundant capabilities of a complex oil-degrading + community + explanation: The abstract supports the proposed community-capability model. The full author proof explicitly + retains alternative enzymes and incomplete-genome explanations and distinguishes sample origins and enrichment + conditions. + - reference: PMID:27572965 + supports: SUPPORT + evidence_source: IN_VITRO + snippet: assimilate alkane and polycyclic aromatic hydrocarbons during stable-isotope probing experiments + explanation: Preserves positive experimental assimilation evidence without equating the SIP label with resolved + cross-feeding or every annotated pathway being active. + participating_taxa: + - preferred_term: DWH Oceanospirillales-like bacteria term: - id: CHEBI:24632 - label: hydrocarbon - - preferred_term: dioxygen + id: NCBITaxon:135619 + label: Oceanospirillales + - preferred_term: Colwellia term: - id: CHEBI:15379 - label: dioxygen - biological_processes: - - preferred_term: alkane catabolic process + id: NCBITaxon:28228 + label: Colwellia + - preferred_term: Cycloclasticus term: - id: GO:0043448 - label: alkane catabolic process - evidence: - - reference: PMID:20736401 - supports: SUPPORT - evidence_source: IN_VIVO - snippet: faster-than-expected hydrocarbon biodegradation rates at 5°C - explanation: Supports rapid hydrocarbon biodegradation under cold - deep-water plume conditions. - - reference: PMID:20736401 - supports: SUPPORT - evidence_source: IN_VIVO - snippet: intrinsic bioremediation of the oil plume in the deep-water column - without substantial oxygen drawdown - explanation: Supports oxygen-conserving intrinsic attenuation as the - community-level plume outcome. + id: NCBITaxon:34067 + label: Cycloclasticus + - preferred_term: Marinobacter + term: + id: NCBITaxon:2742 + label: Marinobacter environmental_factors: - name: Deepwater Horizon hydrocarbon plume value: Deepwater Horizon blowout, Gulf of Mexico @@ -455,3 +452,30 @@ growth_media: evidence_source: IN_VITRO snippet: "enriched and isolated indigenous hydrocarbon-degrading bacteria from deep, uncontaminated waters from the Gulf with oil (Macondo MC252) and dispersant used during the spill (COREXIT 9500)" explanation: "Documents inoculum source and oil/dispersant enrichment substrate." +discussions: +- discussion_id: deepwater_enrichment_to_field_causality + prompt: How much do floc formation and proposed pathway complementarity contribute to field hydrocarbon attenuation? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Cold Hydrocarbon Biodegradation and Bioremediation Potential + - ecological_interactions#Colwellia-Dominated Oil-Associated Flocs + - ecological_interactions#Proposed Community Hydrocarbon Pathway Complementarity + rationale: 'Selective aggregation and member/pathway perturbations, direct intermediate tracing and field-resolved + measurements would test the two retained hypotheses. Surface and plume enrichments cannot be collapsed into + one co-occurring consortium. The duplicate oxygen-conservation node was consolidated without discarding the + bounded bioremediation potential. Hazen and Baelum claims remain abstract-bounded; the Dombrowski author proof + and Figure 3 were inspected. The partial Colwellia SAG supports predictions, not demonstrated missing enzymes + or siderophore exchange. Non-graph follow-up: #1379.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T05:24:50Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate oxygen + context without asserting syntrophy or oxygen conservation.; Retain positive Colwellia-dominated flocs while + qualifying their proposed contribution to degradation and removing unsupported facilitation.; Retain positive + SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep and laboratory/field + contexts, and retain alternative explanations. Issue #1376; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml' + llm_assisted: true diff --git a/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml b/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml index c9a92b1b9..62de4268c 100644 --- a/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml +++ b/kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml @@ -218,44 +218,47 @@ environmental_factors: explanation: Supports calcium as a controlled environmental factor in the model. ecological_interactions: - name: Four-Species Enamel Biofilm Formation - description: >- - Lactobacillus casei, Streptococcus mutans, Streptococcus salivarius, and - Streptococcus sanguinis formed a defined biofilm on salivary-pellicle-coated - enamel slabs during the four-day in vitro caries assay. - interaction_type: COLONIZATION_FACILITATION + description: The four canonical taxa were inoculated onto salivary-pellicle-coated enamel for the four-day assay + with daily medium changes. This records the defined starting community and biofilm platform, not demonstrated + interspecies colonization facilitation or persistence of all four members in every treatment; S. sanguinis was + below detection in the calcium arms. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: biofilm formation term: id: GO:0042710 label: biofilm formation - downstream: - - target: Sucrose-Responsive Viable Biofilm Shift - description: >- - The established four-species enamel biofilm provided the viable biomass - whose cell counts shifted across the sucrose, fluoride, and calcium arms. - - target: Mineral-Dependent Demineralization Restraint - description: >- - Four days of multispecies biofilm growth on enamel slabs created the - demineralization readout modulated by fluoride and calcium. evidence: - reference: PMID:23446436 supports: SUPPORT evidence_source: IN_VITRO - snippet: >- - Defined-multispecies biofilms, formed by Lactobacillus casei, - Streptococcus mutans, S. salivarius and S. sanguinis, were grown on the - surface of salivary-pellicle-coated enamel slabs, with known baseline - surface hardness; growth medium was changed daily. - explanation: >- - Establishes the four-member salivary-pellicle-coated enamel biofilm model - and the retained-biofilm daily medium changes. -- name: Sucrose-Responsive Viable Biofilm Shift - description: >- - Changing sucrose in the replacement medium was part of a treatment matrix - that significantly altered viable-cell counts in the four-species enamel - biofilms. - interaction_type: CROSS_FEEDING + snippet: Defined-multispecies biofilms, formed by Lactobacillus casei, Streptococcus mutans, S. salivarius and + S. sanguinis, were grown on the surface of salivary-pellicle-coated enamel slabs, with known baseline surface + hardness; growth medium was changed daily. + explanation: Supports the inoculated model and biofilm platform. Primary viable-count results limit claims about + persistence; the abstract does not establish member-to-member facilitation. + participating_taxa: + - preferred_term: Lactobacillus casei + term: + id: NCBITaxon:1582 + label: Lacticaseibacillus casei + - preferred_term: Streptococcus mutans + term: + id: NCBITaxon:1309 + label: Streptococcus mutans + - preferred_term: Streptococcus salivarius + term: + id: NCBITaxon:1304 + label: Streptococcus salivarius + - preferred_term: Streptococcus sanguinis + term: + id: NCBITaxon:1305 + label: Streptococcus sanguinis +- name: Treatment-Dependent Viable Biofilm Counts + description: Sucrose, fluoride and calcium treatments altered selected viable-count outcomes in the inoculated + model. Higher sucrose increased total counts and L. casei; calcium did not significantly change total counts + or S. mutans. Species-specific responses are not a uniform community increase or demonstrated cross-feeding. + Acid selection remains a proposed explanation, not a selectively perturbed mechanism. scope: COMMUNITY_LEVEL metabolites: - preferred_term: sucrose @@ -271,18 +274,32 @@ ecological_interactions: - reference: PMID:23446436 supports: SUPPORT evidence_source: IN_VITRO - snippet: >- - Counts of viable cells on biofilms were significantly affected by sucrose, - fluoride and calcium concentrations (p < 0.05). - explanation: >- - Supports a treatment-dependent shift in viable biofilm counts, including - the sucrose arm of the assay matrix. + snippet: Counts of viable cells on biofilms were significantly affected by sucrose, fluoride and calcium concentrations + (p < 0.05). + explanation: The abstract summarizes treatment-dependent counts; primary Tables 1 and 2 distinguish total and + species-specific outcomes. The broad statement does not mean every count changed with every amendment. + participating_taxa: + - preferred_term: Lactobacillus casei + term: + id: NCBITaxon:1582 + label: Lacticaseibacillus casei + - preferred_term: Streptococcus mutans + term: + id: NCBITaxon:1309 + label: Streptococcus mutans + - preferred_term: Streptococcus salivarius + term: + id: NCBITaxon:1304 + label: Streptococcus salivarius + - preferred_term: Streptococcus sanguinis + term: + id: NCBITaxon:1305 + label: Streptococcus sanguinis - name: Mineral-Dependent Demineralization Restraint - description: >- - Higher fluoride and calcium concentrations reduced surface-microhardness - change, and 0.8-1.0 ppm fluoride also lowered integrated mineral loss and - lesion depth in the enamel slabs. - interaction_type: COMPETITION + description: Higher-fluoride arms had lower enamel surface-microhardness change, lesion depth and integrated mineral + loss. Calcium at 2 mM reduced surface-microhardness change relative to lower calcium arms, not every mineral-loss + endpoint. These are treatment-dependent material outcomes, not microbial competition or proof that altered cell + counts mediate protection; proposed calcium/EPS mechanisms were not tested. scope: COMMUNITY_LEVEL metabolites: - preferred_term: fluoride @@ -293,30 +310,36 @@ ecological_interactions: term: id: CHEBI:29108 label: calcium(2+) - biological_processes: - - preferred_term: biofilm formation - term: - id: GO:0042710 - label: biofilm formation evidence: - reference: PMID:23446436 supports: SUPPORT evidence_source: IN_VITRO - snippet: >- - There was a decrease in %SMC in response to increased fluoride and - calcium concentrations (p < 0.001). - explanation: >- - Supports fluoride- and calcium-dependent reduction in enamel - surface-microhardness change. + snippet: There was a decrease in %SMC in response to increased fluoride and calcium concentrations (p < 0.001). + explanation: Supports treatment-dependent surface-microhardness outcomes; it does not establish a monotonic + effect for every calcium concentration or all mineral endpoints. - reference: PMID:23446436 supports: SUPPORT evidence_source: IN_VITRO - snippet: >- - Lower IML (p < 0.001) and LD (p < 0.05) were found in the presence of 0.8 - and 1.0 ppm F. - explanation: >- - Supports reduced integrated mineral loss and lesion depth in the higher - fluoride treatments. + snippet: Lower IML (p < 0.001) and LD (p < 0.05) were found in the presence of 0.8 and 1.0 ppm F. + explanation: Supports lower lesion depth and integrated mineral loss in the specified higher-fluoride arms, + not a resolved interspecies competitive mechanism. + participating_taxa: + - preferred_term: Lactobacillus casei + term: + id: NCBITaxon:1582 + label: Lacticaseibacillus casei + - preferred_term: Streptococcus mutans + term: + id: NCBITaxon:1309 + label: Streptococcus mutans + - preferred_term: Streptococcus salivarius + term: + id: NCBITaxon:1304 + label: Streptococcus salivarius + - preferred_term: Streptococcus sanguinis + term: + id: NCBITaxon:1305 + label: Streptococcus sanguinis growth_media: - name: "defined-multispecies biofilm growth medium (unspecified)" incubation_time: '4' @@ -334,3 +357,28 @@ growth_media: evidence_source: IN_VITRO snippet: "after 4 days of biofilm formation under the tested conditions" explanation: "Documents the 4-day biofilm growth period." +discussions: +- discussion_id: enamel_counts_minerals_and_community_mechanisms + prompt: Which microbial processes mediate the observed treatment-dependent counts and enamel outcomes? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Four-Species Enamel Biofilm Formation + - ecological_interactions#Treatment-Dependent Viable Biofilm Counts + - ecological_interactions#Mineral-Dependent Demineralization Restraint + rationale: 'The primary paper and Tables 1-2 support positive experimental outcomes but not cross-feeding, reciprocal + competition, calcium/EPS mediation or selective pH causality. Distinguish starting roster from recoverable members. + The Results prose and Table 2 superscripts differ on one L. casei calcium comparison; no disputed 1-versus-2 + mM claim is used here. The two removed arrows described assay context, not mechanistic mediation. Non-graph + follow-up: #1380.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T05:24:50Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the inoculated biofilm platform without interspecies facilitation or universal persistence claims.; + Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium effect.; + Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation mechanism. + Issue #1377; reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml new file mode 100644 index 000000000..bed4e0de4 --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch29.yaml @@ -0,0 +1,156 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: 17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2 +scope: +- kb/communities/Dangl_SynComm_35.yaml +- kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml +- kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch29.json +findings: +- issue: 1375 + severity: P2 + status: addressed_in_this_change + finding: SynCom35 whole-community observations were assigned to a single pair; mutual benefit, nutrient + exchange and control competition were unsupported. + disposition: Keep four positive immune/colonization nodes, scope MF79 secretion and both existing arrows + to the actual experiments, retain WRKY observation with partial snippet support, and remove three + unsupported relationship nodes. +- issue: 1376 + severity: P2 + status: addressed_in_this_change + finding: Deepwater oxygen-conservation duplicated the upstream outcome; laboratory pathway/floc hypotheses + were represented as established field mechanisms. + disposition: Consolidate the duplicate and restatement arrow, retain cold biodegradation and flocs, + preserve experimental SIP evidence alongside genome predictions, and qualify two existing arrows with + sample and laboratory/field limits. +- issue: 1377 + severity: P2 + status: addressed_in_this_change + finding: Enamel assay-context arrows and relationship signs implied facilitation, cross-feeding and + competition without corresponding measurements. + disposition: Remove two workflow arrows and unsupported signs, keep all three positive observations, + distinguish inoculated roster from persistence, and constrain viable-count and mineral endpoints. +- issue: 1378 + severity: P2 + status: open_nongraph_followup + finding: SynCom35 non-graph strain/control identities, roles and assay-specific cultivation conditions + require further source curation. + disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation. +- issue: 1379 + severity: P2 + status: open_nongraph_followup + finding: Deepwater non-graph Methylophaga/methane, oxygen and enrichment-context wording exceeds source + support. + disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation. +- issue: 1380 + severity: P2 + status: open_nongraph_followup + finding: Enamel non-graph basal treatment arms and cultivation/strain details are incomplete; one source + count comparison is internally inconsistent. + disposition: Separate scoped follow-up. These blocks are byte-preserved, not certified by graph curation. +adversarial_checks: +- Every original node and arrow has a retain, repair or removal decision. Four unsupported/duplicate nodes + and three duplicate/workflow arrows are removed; four arrows remain, two explicitly hypothetical. Exact + renames and discussion anchors resolve. +- SynCom35 whole-community suppression is not attributed exclusively to MF79. The MF79 T2SS result is + strain-specific; suppressor-community precolonization and MF79 retentate experiments are distinguished. + No reciprocal fitness, resolved effector or universal colonization requirement is asserted. +- The WRKY observation was verified in the primary main body. Its cached abstract snippet is explicitly + partial and does not independently validate that detail. Proposed regulatory roles are not converted + into downstream causal edges. +- Removing unsupported E. coli competition and nutrient-exchange claims does not establish biological + impossibility. The full strain/control roster remains a follow-up; canonical taxon blocks are untouched. +- Deepwater cold biodegradation remains a positive result. The potential oxygen outcome is retained without + a separate conservation mechanism or syntrophy. Floc observations and the isolated-strain degradation + assay are not treated as a selective aggregation perturbation. +- Deep-water HEX and surface-water PAH enrichments are not one five-member consortium. Room-temperature, + dispersant-free SIP conditions and incomplete-genome/unknown-enzyme alternatives remain explicit. Positive + assimilation evidence is not discarded or conflated with intertaxon flux. +- Enamel inoculation is not universal persistence, calcium does not alter every count, and material outcomes + are not microbial competition. The disputed L. casei 1-versus-2 mM result is not silently resolved; + proposed pH and EPS mechanisms are not asserted as demonstrated. +- Exactly three guarded edits, three llm-assisted events and three append-only histories. All non-graph + raw blocks, 457 other records and all 920 reference caches remain byte-identical. +- Participant registry changes only 170 to 173 users. Connectivity surveys are measured and numeric bounds/algorithms + unchanged. Six newly exposed DISCONNECTED warnings are explicitly retained, not hidden with invented + relationships. +- 'Deduplication covered 706 all-state issue titles/bodies and ignored/hidden-inclusive scoped local searches, + with #401 and #754 read; not every issue comment or the entire filesystem.' +- All 456 pages have exact node/arrow descriptions verified by parser and deterministic repeat rendering. + No browser screenshot QA is claimed. Primary enamel Tables 1-2 and Dombrowski Figure 3 were inspected + visually; other figures and supplements were not. +verification: + combined_regressions: 342 passed in 165.07s (0:02:45) + new_regression_tests: 6 + schema_strict_terms_history: passed; full commands and raw results retained + snippet_counts_by_record: + kb/communities/Dangl_SynComm_35.yaml: + MATCH: 21 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml: + MATCH: 29 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml: + MATCH: 16 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + network: Zero structural errors. All 25 prior warnings preserved and six explicit participant-related + DISCONNECTED warnings exposed; 31 total, warning exits preserved. + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml: 6627d37b0aad90ee137572b39e5b4039380bfd01f7e0c16912d7cb10a3c78439 + tests/test_causal_review_batch29.py: 2e8f41544c35091698f5c4a7459750cf97418edc5b27a64abe41e7de9dcf9bbe + tests/test_participating_taxa.py: f3b3bf65f4d442fa95c55b9aaf624696bdb51683dc35a46dc93d6706f70584d3 + kb/communities/Dangl_SynComm_35.yaml: 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277 + kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml: 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7 + kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml: 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6 + post_commit_docs_current: Separate publication gate, not yet claimed by this pre-commit artifact. + protected_ci_and_merge: Require live exact-head checks and protected main queue; not asserted here. +participant_census: + connectivity_before: + community_level_only: 264 + credited_solely_by_the_rule: 1216 + mixed: 124 + records: 460 + taxa: 1496 + with_community_level: 388 + connectivity_after: + community_level_only: 264 + credited_solely_by_the_rule: 1220 + mixed: 124 + records: 460 + taxa: 1496 + with_community_level: 388 + exact_change: 170 -> 173 users; only Dangl, Deepwater and enamel added + numeric_bounds_changed: false +corpus: + records: 460 + nodes: 1470 + edges: 705 + review_status_counts: + needs_research: 4 + pending: 324 + reviewed: 132 +limitations: +- Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure + or Edison job/spend. +- Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification, + not scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract + snippet. +- No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are + preserved. +- Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent + approval, protected CI success or full-corpus completion. diff --git a/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml b/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml new file mode 100644 index 000000000..e75566e3e --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml @@ -0,0 +1,308 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: 17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2 +issues: +- 1375 +- 1376 +- 1377 +open_nongraph_followups: +- 1378 +- 1379 +- 1380 +issue_deduplication: + all_state_issue_titles_bodies: 706 + ignored_hidden_local_files_included: true + comments_exhaustive: false + relevant_issues_read: + - 401 + - 754 + finding: No duplicate exact graph defect in searched titles/bodies and local scoped review/history records. Legacy + snippet scripts, whole-corpus output listings, enamel cultivation source coverage and Colwellia withholding + are distinct and preserved. +reference_cache_original_hashes: + references_cache/PMID_20736401.md: b3d90a098b1146e0c93bf8dcbeae8351d71a84381cd680361533fd8d7cc49cf0 + references_cache/PMID_22616650.md: 919a63869ad5e55fa8327cb0336c5ec836e2c749fd419bfc4677d3b318990fbf + references_cache/PMID_23446436.txt: c3bd06dfad668238c55075e60ba96e9baecfc5c7cbfc4615506224326f5dda2a + references_cache/PMID_24865772.md: 7c80bb2977b19583a7bfcc904d707d97e0648120ef9439bb54eb91898af22230 + references_cache/PMID_25071745.md: f32f82c3ce15db7598be5d9081aaa7e0871f7a017131a003fe79da5b43285317 + references_cache/PMID_27572965.md: 225e74d8a007994ef20698c15a5ef8f961b962924818159751ebdfc834f2064c + references_cache/PMID_33879573.txt: 8e9a737c19f0295881f838aa908d7db935e86b4bca610554a720556d938ec26a + references_cache/doi_10.1073_pnas.2100678118.json: 5d541c1d565a0cfb8f30d7a07ef3462864d7f6dd7b83db8159c0c0d4ad3540d8 + references_cache/doi_10.1073_pnas.2100678118.md: c7509632de060d3081807e1649cae4edec25e8adc2255a73ced6bea14cbbaa0c +limitations: +- Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure or + Edison job/spend. +- Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification, not + scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract snippet. +- No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are preserved. +- Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent approval, + protected CI success or full-corpus completion. +records: +- path: kb/communities/Dangl_SynComm_35.yaml + id: CommunityMech:000022 + original_sha256: 1308bd7106e991df960bd18afdc8bad9df6da33c9dd124cfb0f1e1a1e60e398b + record_sha256: 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml + scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access + scope. Non-graph fields are preserved, not certified. + summary: Retain positive root immune suppression at community scope; do not assign community readouts exclusively + to MF79.; Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles + into proven causality; abstract snippet support is explicitly partial.; Retain the tested MF79 secretion-system + mechanism and existing arrow with strain-specific scope and unresolved effector identity.; Retain experimentally + supported colonization facilitation, distinguish assay contexts and incomplete canonical participants, and remove + reciprocal-fitness attribution. + renamed_nodes: + MAMP-Triggered Immunity Suppression: Root flg22 Immune Suppression + WRKY Transcription Factor Suppression: Community-Associated WRKY Transcript Suppression + Type II Secretion-Mediated Immune Modulation: MF79 Type II Secretion-Dependent Immune Modulation + Enhanced Colonization Through Community Cooperation: Suppression-Associated Root Colonization Facilitation + node_decisions: + - node: Root flg22 Immune Suppression + rationale: Retain positive root immune suppression at community scope; do not assign community readouts exclusively + to MF79. + - node: Community-Associated WRKY Transcript Suppression + rationale: Retain the primary-body WRKY observation without converting proposed regulatory/homeostasis roles + into proven causality; abstract snippet support is explicitly partial. + - node: MF79 Type II Secretion-Dependent Immune Modulation + rationale: Retain the tested MF79 secretion-system mechanism and existing arrow with strain-specific scope and + unresolved effector identity. + - node: Suppression-Associated Root Colonization Facilitation + rationale: Retain experimentally supported colonization facilitation, distinguish assay contexts and incomplete + canonical participants, and remove reciprocal-fitness attribution. + removed_node_decisions: + - node: Taxonomic Diversity Enabling Functional Complementarity + rationale: Taxonomic breadth does not establish the asserted genus-specific metabolic functions, mutualism or + resilience mechanism; positive community immune modulation remains retained. + - node: Community Member Metabolic Cooperation + rationale: The cited colonization snippet does not measure Microbacterium/Stenotrophomonas nutrient exchange, + amino-acid supply or siderophore public goods. + - node: Negative Control Strain Baseline Response + rationale: The cited background snippet and reviewed primary main body do not establish the asserted E. coli + control phenotype or E. coli/Dyella competition; supplements were not inspected. + edges_before: + - source: MAMP-Triggered Immunity Suppression + target: Enhanced Colonization Through Community Cooperation + description: Suppression of MAMP-triggered immunity gates microbial access to Arabidopsis roots, allowing robust + suppressors to improve the root colonization capacity of otherwise nonsuppressive commensals. + - source: Type II Secretion-Mediated Immune Modulation + target: MAMP-Triggered Immunity Suppression + description: Type II secretion provides an extracellular suppressor mechanism that prevents full activation + of Arabidopsis MAMP-triggered immunity. + edges_after: + - source: Root flg22 Immune Suppression + target: Suppression-Associated Root Colonization Facilitation + description: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type + retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization. + This does not establish universal facilitation by every suppressor or reciprocal benefit. + - source: MF79 Type II Secretion-Dependent Immune Modulation + target: Root flg22 Immune Suppression + description: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This + arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35 + phenotype. + retained_edge_decisions: + - source: Root flg22 Immune Suppression + target: Suppression-Associated Root Colonization Facilitation + rationale: Suppression can facilitate nonsuppressor root colonization under the tested conditions. MF79 wild-type + retentate, unlike T2SS-mutant material, countered the flg22-associated reduction in Ochrobactrum MF370 colonization. + This does not establish universal facilitation by every suppressor or reciprocal benefit. + - source: MF79 Type II Secretion-Dependent Immune Modulation + target: Root flg22 Immune Suppression + rationale: MF79 T2SS function enables its extracellular suppressive activity in the root reporter assay. This + arrow applies to the MF79 component of the suppression node, not necessity of T2SS for the entire SynCom35 + phenotype. + removed_edge_decisions: [] + references: + - PMID:33879573 + issues: + - 1375 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml + source_review: + PMID:33879573: + url: https://pmc.ncbi.nlm.nih.gov/articles/PMC8072228/ + scope: Complete primary main body and five main figure captions via PMC; independent cached abstract and DOI + significance text. No figure images or supplements inspected. PMC supplement access returned a browser challenge + and PNAS alternate failed. GEO GSE156425 protocol read separately. WRKY-specific detail is primary-body + verified, not validated by the abstract snippet. +- path: kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml + id: CommunityMech:000166 + original_sha256: de4e7abef8320819a7fb648bef5b6b77bf9c7e9addc1d47eb8b7221fd9f97e94 + record_sha256: 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml + scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access + scope. Non-graph fields are preserved, not certified. + summary: Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate oxygen + context without asserting syntrophy or oxygen conservation.; Retain positive Colwellia-dominated flocs while + qualifying their proposed contribution to degradation and removing unsupported facilitation.; Retain positive + SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep and laboratory/field + contexts, and retain alternative explanations. + renamed_nodes: + Intrinsic Hydrocarbon Bioremediation: Cold Hydrocarbon Biodegradation and Bioremediation Potential + Colwellia Oil Droplet Floc Formation: Colwellia-Dominated Oil-Associated Flocs + Complex Hydrocarbon Substrate Partitioning: Proposed Community Hydrocarbon Pathway Complementarity + node_decisions: + - node: Cold Hydrocarbon Biodegradation and Bioremediation Potential + rationale: Retain measured cold biodegradation and qualified bioremediation potential; consolidate duplicate + oxygen context without asserting syntrophy or oxygen conservation. + - node: Colwellia-Dominated Oil-Associated Flocs + rationale: Retain positive Colwellia-dominated flocs while qualifying their proposed contribution to degradation + and removing unsupported facilitation. + - node: Proposed Community Hydrocarbon Pathway Complementarity + rationale: Retain positive SIP/genome evidence and the complementary-pathway hypothesis, distinguish surface/deep + and laboratory/field contexts, and retain alternative explanations. + removed_node_decisions: + - node: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation + rationale: The target repeats the same biodegradation/oxygen conclusion and snippets, not a separate downstream + mechanism; bounded oxygen context is retained in the source node. + edges_before: + - source: Intrinsic Hydrocarbon Bioremediation + target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation + description: Fast cold-water hydrocarbon biodegradation by indigenous Gammaproteobacteria supports natural plume + attenuation without a substantial loss of dissolved oxygen. + - source: Colwellia Oil Droplet Floc Formation + target: Intrinsic Hydrocarbon Bioremediation + description: Oil-associated Colwellia biomass flocs contribute a particle-associated route into cold deep-water + oil degradation. + - source: Complex Hydrocarbon Substrate Partitioning + target: Intrinsic Hydrocarbon Bioremediation + description: Partitioning alkane and PAH metabolism among non-redundant plume guilds lets the community degrade + complex petroleum mixtures. + edges_after: + - source: Colwellia-Dominated Oil-Associated Flocs + target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + description: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access + and degradation. The enrichment observations and separate isolate assay do not selectively test this route + or establish its contribution to in situ plume attenuation. + - source: Proposed Community Hydrocarbon Pathway Complementarity + target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + description: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute + to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux, + necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume. + retained_edge_decisions: + - source: Colwellia-Dominated Oil-Associated Flocs + target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + rationale: HYPOTHESIZED - aggregation with oil droplets could support Colwellia-associated hydrocarbon access + and degradation. The enrichment observations and separate isolate assay do not selectively test this route + or establish its contribution to in situ plume attenuation. + - source: Proposed Community Hydrocarbon Pathway Complementarity + target: Cold Hydrocarbon Biodegradation and Bioremediation Potential + rationale: HYPOTHESIZED - complementary pathways could expand community hydrocarbon transformation and contribute + to bioremediation. SIP and annotated repertoires support this model but do not establish intertaxon flux, + necessity or the contribution of this room-temperature enrichment mechanism in the cold field plume. + removed_edge_decisions: + - source: Intrinsic Hydrocarbon Bioremediation + target: Oxygen-Conserving Deep-Plume Hydrocarbon Attenuation + rationale: The target repeats the same biodegradation/oxygen conclusion and snippets, not a separate downstream + mechanism; bounded oxygen context is retained in the source node. + references: + - PMID:20736401 + - PMID:22616650 + - PMID:27572965 + - PMID:24865772 + - PMID:25071745 + issues: + - 1376 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml + source_review: + PMID:20736401: + url: https://pubmed.ncbi.nlm.nih.gov/20736401/ + scope: Complete cached primary abstract and fresh official PubMed search; primary full body unavailable in + this review. Science open failed; no figures or supplements inspected. + PMID:22616650: + url: https://pubmed.ncbi.nlm.nih.gov/22616650/ + scope: Complete cached primary abstract. Author-repository source identified but access returned a browser + challenge. No full body, figures or supplements inspected. + PMID:27572965: + url: https://pure.hw.ac.uk/ws/portalfiles/portal/10579894/NMICROBIOL.2016.57_auproof.pdf + scope: Complete primary author-proof main body, Methods and three captions read; Figure 3 inspected visually + from a local rendering. Publisher abstract independently confirmed. Author proof is not asserted to be the + final typeset version. No supplements inspected; no full text added to git. + local_pdf_sha256: 48907413a0d13634a6ae28f7d2be7b36b1d9f27a5ac4f773310bbd6112fa391e + PMID:24865772: + url: https://www.nature.com/articles/ismej201488 + scope: Complete cached abstract and fresh publisher search. This is a short communication discussing primary + findings, used for a non-graph qualification follow-up; no full body or figure images inspected. + PMID:25071745: + url: https://pmc.ncbi.nlm.nih.gov/articles/PMC4085564/ + scope: Complete primary main body and two main figure captions read in the existing independent full-text + cache; no figure images or supplements inspected. Genomic predictions used to constrain interpretation, + not extend the graph. +- path: kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml + id: CommunityMech:000082 + original_sha256: 44c660bcd4b7ee0cc6b7dc9f6512a6215ebdf6e96251826169a5124441166009 + record_sha256: 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml + scope: Whole record and every original node/arrow inspected against cited primary evidence at the documented access + scope. Non-graph fields are preserved, not certified. + summary: Retain the inoculated biofilm platform without interspecies facilitation or universal persistence claims.; + Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium effect.; + Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation mechanism. + renamed_nodes: + Sucrose-Responsive Viable Biofilm Shift: Treatment-Dependent Viable Biofilm Counts + node_decisions: + - node: Four-Species Enamel Biofilm Formation + rationale: Retain the inoculated biofilm platform without interspecies facilitation or universal persistence + claims. + - node: Treatment-Dependent Viable Biofilm Counts + rationale: Retain treatment- and species-specific viable-count outcomes without cross-feeding or a uniform calcium + effect. + - node: Mineral-Dependent Demineralization Restraint + rationale: Retain endpoint-specific enamel mineral outcomes without microbial competition or an untested mediation + mechanism. + removed_node_decisions: [] + edges_before: + - source: Four-Species Enamel Biofilm Formation + target: Sucrose-Responsive Viable Biofilm Shift + description: The established four-species enamel biofilm provided the viable biomass whose cell counts shifted + across the sucrose, fluoride, and calcium arms. + - source: Four-Species Enamel Biofilm Formation + target: Mineral-Dependent Demineralization Restraint + description: Four days of multispecies biofilm growth on enamel slabs created the demineralization readout modulated + by fluoride and calcium. + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: + - source: Four-Species Enamel Biofilm Formation + target: Sucrose-Responsive Viable Biofilm Shift + rationale: The assay provides the biomass whose counts are measured; assay context alone does not establish + a causal transition between interactions. + - source: Four-Species Enamel Biofilm Formation + target: Mineral-Dependent Demineralization Restraint + rationale: The biofilm/enamel platform provides the mineral-loss readout, not a demonstrated causal effect of + community assembly on mineral-dependent restraint. + references: + - PMID:23446436 + issues: + - 1377 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml + source_review: + PMID:23446436: + url: https://www.adm.org.mx/backup/biblioteca/caries-research/2013/A%20DEFINED%20MULTISPECIES7.pdf + scope: Complete primary body, independent cached abstract and Tables 1-2 read; both tables visually inspected + in the local page-4 rendering. Karger publisher body was subscription-restricted; a publicly available copy + was read without bypassing access controls. No full text added to git. + local_pdf_sha256: 5eb573e0d081a382fb35a21ef7c90c6e245d6de22f711ee5cd81fd8d80af2d76 diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 63644c05a..541bc8594 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -133,9 +133,9 @@ kb/communities/DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml CommunityMech:00041 kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml CommunityMech:000297 41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be 3 2 96.7 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed kb/communities/DVM_Triculture.yaml CommunityMech:000021 f266bb55b26a98251d9302e6a411526e3908eb775203bd87b4fa8b47fcb07743 4 2 100.0 pending kb/communities/Dairy_Wastewater_Algal_Cyanobacterial_Cultivation_Panel.yaml CommunityMech:000384 1eee347250881287de8d9d9be43dd5bba641e69001b46ea19e8048aeb1214bf6 0 0 0.0 pending -kb/communities/Dangl_SynComm_35.yaml CommunityMech:000022 1308bd7106e991df960bd18afdc8bad9df6da33c9dd124cfb0f1e1a1e60e398b 7 2 100.0 pending -kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml CommunityMech:000166 de4e7abef8320819a7fb648bef5b6b77bf9c7e9addc1d47eb8b7221fd9f97e94 4 3 100.0 pending -kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml CommunityMech:000082 44c660bcd4b7ee0cc6b7dc9f6512a6215ebdf6e96251826169a5124441166009 3 2 100.0 pending +kb/communities/Dangl_SynComm_35.yaml CommunityMech:000022 9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277 4 2 89.4 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed +kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml CommunityMech:000166 7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7 3 2 89.0 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed +kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml CommunityMech:000082 320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6 3 0 65.0 reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml reviewed kb/communities/Defined_ThreeStrain_Organic_Nitrogen_Nitrifying_Community.yaml CommunityMech:000397 b3843b5e2f64d179b4bc11a1558b7f977c025252fa6fe16d8ab82e0dfb292ec1 1 0 65.0 reports/causal_graph_review/decisions/20261006-three-records-batch27.yaml reviewed kb/communities/Dehalococcoides_Desulfovibrio_Lactate_TCE_Syntrophy.yaml CommunityMech:000199 e177715e13530b307c714b59268dc295e35935d12b5d73a0ee7137ba68a927d0 3 2 100.0 pending kb/communities/Dehalococcoides_Desulfovibrio_Pelosinus_Corrinoid_Triculture.yaml CommunityMech:000200 9e9caf7e8dfeeca85868d3bc7509eacd27686582f0090bfbd88af2675248d8bf 4 3 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 00c52ce87..7a4941320 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -2,14 +2,14 @@ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", "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": 708, + "nodes": 1470, + "edges": 705, "records_without_nodes": 8, - "records_without_edges": 142, + "records_without_edges": 143, "review_status_counts": { "needs_research": 4, - "pending": 327, - "reviewed": 129 + "pending": 324, + "reviewed": 132 }, "structural_defects": [], "network_audit": [ @@ -373,6 +373,236 @@ "message": "Taxon 'Ca. Kuenenia early-acclimation lineage' has no interactions", "severity": "warning" }, + { + "record": "Dangl_SynComm_35", + "type": "DISCONNECTED", + "taxon": "Escherichia coli DH5\u03b1", + "taxon_id": "NCBITaxon:668369", + "taxon_data": { + "taxon_term": { + "preferred_term": "Escherichia coli DH5\u03b1", + "term": { + "id": "NCBITaxon:668369", + "label": "Escherichia coli DH5[alpha]" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:s__Escherichia_coli", + "gtdb_taxon": "Escherichia coli", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Escherichia;s__Escherichia coli", + "ncbi_source_id": "NCBITaxon:668369", + "majority_fraction": 1.0, + "total_genomes": 4, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25)" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "CROSS_FEEDER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "We report that root-associated commensal bacteria actively suppress the host immune response in the context of a community" + } + ] + }, + "message": "Taxon 'Escherichia coli DH5\u03b1' has no interactions", + "severity": "warning" + }, + { + "record": "Dangl_SynComm_35", + "type": "DISCONNECTED", + "taxon": "Flavobacterium species", + "taxon_id": "NCBITaxon:237", + "taxon_data": { + "taxon_term": { + "preferred_term": "Flavobacterium species", + "term": { + "id": "NCBITaxon:237", + "label": "Flavobacterium" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Flavobacterium", + "gtdb_taxon": "Flavobacterium", + "gtdb_lineage": "d__Bacteria;p__Bacteroidota;c__Bacteroidia;o__Flavobacteriales;f__Flavobacteriaceae;g__Flavobacterium", + "ncbi_source_id": "NCBITaxon:237", + "majority_fraction": 0.999, + "support_genomes": 859, + "total_genomes": 860, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns" + } + ] + }, + "message": "Taxon 'Flavobacterium species' has no interactions", + "severity": "warning" + }, + { + "record": "Dangl_SynComm_35", + "type": "DISCONNECTED", + "taxon": "Microbacterium species", + "taxon_id": "NCBITaxon:33882", + "taxon_data": { + "taxon_term": { + "preferred_term": "Microbacterium species", + "term": { + "id": "NCBITaxon:33882", + "label": "Microbacterium" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Microbacterium", + "gtdb_taxon": "Microbacterium", + "gtdb_lineage": "d__Bacteria;p__Actinomycetota;c__Actinomycetes;o__Actinomycetales;f__Microbacteriaceae;g__Microbacterium", + "ncbi_source_id": "NCBITaxon:33882", + "majority_fraction": 1.0, + "support_genomes": 591, + "total_genomes": 591, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ] + }, + "message": "Taxon 'Microbacterium species' has no interactions", + "severity": "warning" + }, + { + "record": "Dangl_SynComm_35", + "type": "DISCONNECTED", + "taxon": "Stenotrophomonas species", + "taxon_id": "NCBITaxon:40323", + "taxon_data": { + "taxon_term": { + "preferred_term": "Stenotrophomonas species", + "term": { + "id": "NCBITaxon:40323", + "label": "Stenotrophomonas" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Stenotrophomonas", + "gtdb_taxon": "Stenotrophomonas", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales;f__Xanthomonadaceae;g__Stenotrophomonas", + "ncbi_source_id": "NCBITaxon:40323", + "majority_fraction": 0.985, + "support_genomes": 398, + "total_genomes": 404, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ] + }, + "message": "Taxon 'Stenotrophomonas species' has no interactions", + "severity": "warning" + }, + { + "record": "Dangl_SynComm_35", + "type": "DISCONNECTED", + "taxon": "Xanthomonadales members", + "taxon_id": "NCBITaxon:135614", + "taxon_data": { + "taxon_term": { + "preferred_term": "Xanthomonadales members", + "term": { + "id": "NCBITaxon:135614", + "label": "Lysobacterales" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:o__Xanthomonadales", + "gtdb_taxon": "Xanthomonadales", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales", + "ncbi_source_id": "NCBITaxon:135614", + "majority_fraction": 1.0, + "support_genomes": 7047, + "total_genomes": 7047, + "is_reclassified": true, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at o__ rank; 1 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns" + } + ] + }, + "message": "Taxon 'Xanthomonadales members' has no interactions", + "severity": "warning" + }, + { + "record": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession", + "type": "DISCONNECTED", + "taxon": "Methylophaga", + "taxon_id": "NCBITaxon:40222", + "taxon_data": { + "taxon_term": { + "preferred_term": "Methylophaga", + "term": { + "id": "NCBITaxon:40222", + "label": "Methylophaga" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Methylophaga", + "gtdb_taxon": "Methylophaga", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Nitrosococcales;f__Methylophagaceae;g__Methylophaga", + "ncbi_source_id": "NCBITaxon:40222", + "majority_fraction": 1.0, + "support_genomes": 45, + "total_genomes": 45, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]" + }, + "notes": "Methylotrophic bacteria implicated in later plume-water hydrocarbon processing." + }, + "functional_role": [ + "PRIMARY_DEGRADER" + ], + "evidence": [ + { + "reference": "PMID:24865772", + "supports": "SUPPORT", + "evidence_source": "IN_VIVO", + "snippet": "methylotrophs, including Methylophaga, were in a heightened state of metabolic activity within oil plume waters", + "explanation": "Supports active Methylophaga-like methylotrophs in oil plume waters." + } + ] + }, + "message": "Taxon 'Methylophaga' has no interactions", + "severity": "warning" + }, { "record": "Mangrove_Benzene_MFC_Bioanode_Consortium", "type": "DISCONNECTED", diff --git a/reports/causal_graph_review/validation-20261006-batch29.json b/reports/causal_graph_review/validation-20261006-batch29.json new file mode 100644 index 000000000..e3d8165fb --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch29.json @@ -0,0 +1,898 @@ +{ + "base_commit": "17b5c3da1722987a42a9d0c26d2f6ec4b3a834f2", + "scope": [ + "kb/communities/Dangl_SynComm_35.yaml", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Dangl_SynComm_35-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Dangl_SynComm_35.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Dangl_SynComm_35-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch29/Dangl_SynComm_35-strict.tsv", + "kb/communities/Dangl_SynComm_35.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-strict.log", + "log_sha256": "76640bccec61caa815b9f777d3701e1a7abfd2ef5818828c1b8ced4796f9dc66", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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: /private/tmp/communitymech-batch29/Dangl_SynComm_35-strict.tsv\n" + }, + { + "check": "Dangl_SynComm_35-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Dangl_SynComm_35.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Dangl_SynComm_35-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Dangl_SynComm_35.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-references.log", + "log_sha256": "4a77152b9c55d909d7179c61c2dfd067ee6cc19749a3ebbd636c84197bbcf721", + "output_tail": "Validating kb/communities/Dangl_SynComm_35.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Dangl_SynComm_35.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": "Dangl_SynComm_35-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Dangl_SynComm_35.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-snippets.log", + "log_sha256": "cbb2cdedf7d2ed5756aac506b60071c409906c876d5eb3586f860c596629a58e", + "output_tail": "# 21 evidence snippets scanned across 1 files\n MATCH 21\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": "Dangl_SynComm_35-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Dangl_SynComm_35.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-rank.log", + "log_sha256": "8eabf9e32ba558235c1cfe67048d9304e52d95e029d613e46afc9e41d68c1571", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000022\",\n \"name\": \"Jeff Dangl's SynComm 35\",\n \"score\": 89.4,\n \"taxonomy\": 8,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 5,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Dangl_SynComm_35.yaml\"\n }\n]\n" + }, + { + "check": "Dangl_SynComm_35-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Dangl_SynComm_35/2026-10-06T052450Z-codex-4c42b0.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Dangl_SynComm_35-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.tsv", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.log", + "log_sha256": "e80205f948e57c38f648d84fbc9c8609246fbb7a21c0c676c69e786b2adb7215", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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: /private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-strict.tsv\n" + }, + { + "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-references.log", + "log_sha256": "d9ad811f70d674060458e56819ce3aa16d98ab68e8f55900569afe1810a46362", + "output_tail": "Validating kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.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": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-snippets.log", + "log_sha256": "4840e2de4e260572822d66750868f711a6cff9ac07dd8055c04fa45aaf319445", + "output_tail": "# 29 evidence snippets scanned across 1 files\n MATCH 29\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": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-rank.log", + "log_sha256": "48e32bf4d89edf38442f0ac1ad0681c3f19dfc5f01de3b1a07154b80e63c4235", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000166\",\n \"name\": \"Deepwater Horizon Deep-Sea Oil Plume Succession\",\n \"score\": 89.0,\n \"taxonomy\": 5,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 1,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 7,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\",\n \"disconnected_taxa\"\n ],\n \"path\": \"kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml\"\n }\n]\n" + }, + { + "check": "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession/2026-10-06T052450Z-codex-df845f.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Defined_Multispecies_Enamel_Caries_Model-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Defined_Multispecies_Enamel_Caries_Model-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.tsv", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.log", + "log_sha256": "44d4be8abb7ec38b1f7e5b709a0e709131643df0a5e922029748e9d3e3d08795", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch29/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: /private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-strict.tsv\n" + }, + { + "check": "Defined_Multispecies_Enamel_Caries_Model-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Defined_Multispecies_Enamel_Caries_Model-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-references.log", + "log_sha256": "40cdb020922e0a4311dac94c3bde18797e21ca9f29b4733b9aaf8897efac7223", + "output_tail": "Validating kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Defined_Multispecies_Enamel_Caries_Model.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": "Defined_Multispecies_Enamel_Caries_Model-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-snippets.log", + "log_sha256": "f77044cea09a90a006f3fc48666f62a208521829981c6819a3a36631506c4ec1", + "output_tail": "# 16 evidence snippets scanned across 1 files\n MATCH 16\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": "Defined_Multispecies_Enamel_Caries_Model-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-rank.log", + "log_sha256": "febe36330608c1699710332539343affb4b911b20ac23e35dade271bf942b853", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000082\",\n \"name\": \"Defined Multispecies Enamel Caries Model\",\n \"score\": 65.0,\n \"taxonomy\": 4,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml\"\n }\n]\n" + }, + { + "check": "Defined_Multispecies_Enamel_Caries_Model-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Defined_Multispecies_Enamel_Caries_Model/2026-10-06T052450Z-codex-bf5211.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/Defined_Multispecies_Enamel_Caries_Model-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/inventory.log", + "log_sha256": "61484860dfce9891dcd6761a1bb54e38f466e730fc0e4f9a47a38065ada56f26", + "output_tail": "{\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\": 1470,\n \"edges\": 705,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 143,\n \"review_status_counts\": {\n \"needs_research\": 4,\n \"pending\": 324,\n \"reviewed\": 132\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "log": "/private/tmp/communitymech-batch29/network.log", + "log_sha256": "2cd39b61dfce615081637c0e72d245194c41d4a2a374d65bccad7c69fcff4e63", + "output_tail": "{\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": "rank-all", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/rank-all.log", + "log_sha256": "2153214be3c2d11ea1c6146beb8a901660016c99d694b19f91ae2b23439a0801", + "output_tail": "ities/Soybean_N_Fixation_sfSynCom.yaml\tCommunityMech:000064\tSoybean N-Fixation Simplified SynCom\t4\t4\t0\t3\t2\t3\t\t0\t0\n402\t100.0\tkb/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml\tCommunityMech:000267\tSphingobium-Rhodococcus Lignin-Dimer Valorization Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n403\t100.0\tkb/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml\tCommunityMech:000326\tStaphylococcus-Candida Context-Dependent Biofilm Coculture\t2\t2\t0\t6\t2\t13\t\t0\t0\n404\t100.0\tkb/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml\tCommunityMech:000254\tStordalen Mire Methylotrophic Methanogenesis Community\t3\t3\t0\t4\t4\t9\t\t0\t0\n405\t100.0\tkb/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml\tCommunityMech:000335\tStreptomyces A2-A5-A11-M7 Pesticide-Bioremediation Consortium\t4\t4\t0\t4\t2\t5\t\t0\t0\n406\t100.0\tkb/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.yaml\tCommunityMech:000251\tSubsurface Carboxydocella CO-Oxidation Aquifer Community\t1\t1\t0\t5\t2\t5\t\t0\t0\n407\t100.0\tkb/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml\tCommunityMech:000312\tSuillus clintonianus-Bacillus altitudinis Thiamine Cross-Feeding SynCom\t3\t3\t0\t4\t3\t4\t\t0\t0\n408\t100.0\tkb/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml\tCommunityMech:000222\tSulfide Spring Autotrophic CPR-Hosting Biofilm\t3\t3\t0\t3\t2\t4\t\t0\t0\n409\t100.0\tkb/communities/SynComBac10_Chicken_Intestinal_SynCom.yaml\tCommunityMech:000127\tSynComBac10 Chicken Intestinal SynCom\t3\t3\t0\t3\t2\t3\t\t0\t0\n410\t100.0\tkb/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml\tCommunityMech:000314\tSynCom ARC Peanut Aflatoxin-Control and Nodulation-Coupling Community\t5\t5\t0\t3\t2\t3\t\t0\t0\n411\t100.0\tkb/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml\tCommunityMech:000278\tSynCom BsBv Cigar Tobacco Leaf Fermentation\t2\t2\t0\t3\t2\t3\t\t0\t0\n412\t100.0\tkb/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml\tCommunityMech:000285\tSynCom + Chlorella sorokiniana Biogas-slurry Coupling System\t2\t2\t0\t5\t3\t5\t\t0\t0\n413\t100.0\tkb/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml\tCommunityMech:000302\tSynCom MetG2 Rhizobacteria Sugarcane Stress Resilience\t2\t2\t0\t3\t2\t4\t\t0\t0\n414\t100.0\tkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml\tCommunityMech:000283\tSesame-flavor Baijiu Fuqu SynCom (13-genus)\t13\t13\t0\t3\t2\t3\t\t0\t0\n415\t100.0\tkb/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml\tCommunityMech:000272\tSynCom Y Agrobacterium-Bacillus Biofilm Biocontrol Co-culture\t2\t2\t0\t4\t2\t6\t\t0\t0\n416\t100.0\tkb/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml\tCommunityMech:000207\tSynechococcus-Azotobacter Photoproduction Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n417\t100.0\tkb/communities/Synechococcus_Bacillus_SPC.yaml\tCommunityMech:000065\tSynechococcus-Bacillus Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n418\t100.0\tkb/communities/Synechococcus_Ecoli_SPC.yaml\tCommunityMech:000066\tSynechococcus-E.coli Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n419\t100.0\tkb/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml\tCommunityMech:000198\tSynechococcus-Halomonas Light-Driven PHB Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n420\t100.0\tkb/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml\tCommunityMech:000167\tSynechococcus-Pseudomonas Phototrophic PHA and DNT Coculture\t2\t2\t0\t4\t2\t8\t\t0\t0\n421\t100.0\tkb/communities/Synechococcus_Saccharomyces_SPC.yaml\tCommunityMech:000067\tSynechococcus-Saccharomyces Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n422\t100.0\tkb/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml\tCommunityMech:000211\tSynechococcus-Shewanella D-Lactate Biophotovoltaic Consortium\t2\t2\t0\t3\t2\t6\t\t0\t0\n423\t100.0\tkb/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml\tCommunityMech:000149\tSynthetic Lichen Synechococcus-Rhodotorula Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n424\t100.0\tkb/communities/Syntrophobacter_Methanobacterium_Syntrophy.yaml\tCommunityMech:000068\tSyntrophobacter-Methanobacterium Syntrophic Consortium\t2\t2\t0\t3\t3\t8\t\t0\t0\n425\t100.0\tkb/communities/Syntrophobacter_Methanospirillum_Syntrophy.yaml\tCommunityMech:000069\tSyntrophobacter-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t5\t\t0\t0\n426\t100.0\tkb/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml\tCommunityMech:000189\tSyntrophomonas-Methanococcus Butyrate Growth Coordination Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n427\t100.0\tkb/communities/Syntrophomonas_Methanospirillum_Syntrophy.yaml\tCommunityMech:000070\tSyntrophomonas-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t7\t\t0\t0\n428\t100.0\tkb/communities/Syntrophus_Benzoate_Degrader.yaml\tCommunityMech:000071\tSyntrophus Benzoate Degrader\t2\t2\t0\t3\t2\t6\t\t0\t0\n429\t100.0\tkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml\tCommunityMech:000187\tSyntrophus-Methanospirillum Gentianae Benzoate Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n430\t100.0\tkb/communities/THOR_Rhizosphere_Model_Community.yaml\tCommunityMech:000079\tTHOR Rhizosphere Model Community\t3\t3\t0\t4\t2\t5\t\t0\t0\n431\t100.0\tkb/communities/TYQ1_Nematode_Biocontrol_SynCom.yaml\tCommunityMech:000072\tTYQ1 Nematode Biocontrol SynCom\t8\t8\t0\t4\t4\t4\t\t0\t0\n432\t100.0\tkb/communities/Teosinte_Maize_Biofertilizer_SynCom7.yaml\tCommunityMech:000100\tTeosinte-Derived Maize Biofertilizer SynCom7\t4\t4\t0\t6\t2\t12\t\t0\t0\n433\t100.0\tkb/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml\tCommunityMech:000259\tThalassiosira-Marinobacter Marine Snow Coculture\t2\t2\t0\t4\t2\t10\t\t0\t0\n434\t100.0\tkb/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml\tCommunityMech:000162\tThalassiosira-Ruegeria Phycosphere Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n435\t100.0\tkb/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml\tCommunityMech:000182\tThermacetogenium-Methanothermobacter Acetate Oxidation Coculture\t2\t2\t0\t3\t2\t8\t\t0\t0\n436\t100.0\tkb/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml\tCommunityMech:000282\tThermophilic Lignocellulose-degrading Composting SynCom\t5\t5\t0\t3\t2\t3\t\t0\t0\n437\t100.0\tkb/communities/Thermophilic_Pyrite_QS_Consortium.yaml\tCommunityMech:000073\tThermophilic Pyrite Quorum Sensing Consortium\t3\t3\t0\t6\t2\t14\t\t0\t0\n438\t100.0\tkb/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml\tCommunityMech:000186\tThermotoga-Methanocaldococcus Hyperthermophilic Syntrophy\t2\t2\t0\t3\t2\t8\t\t0\t0\n439\t100.0\tkb/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml\tCommunityMech:000239\tThiocyanate-Degrading Afipia and Thiobacillus Bioreactor Community\t3\t3\t0\t3\t2\t3\t\t0\t0\n440\t100.0\tkb/communities/Tinto_River_Iron_Cycling_Community.yaml\tCommunityMech:000074\tTinto River Iron Cycling Community\t6\t6\t0\t5\t3\t6\t\t0\t0\n441\t100.0\tkb/communities/Tobacco_Chemotactic_Biocontrol_SynCom.yaml\tCommunityMech:000106\tTobacco Chemotactic Biocontrol SynCom\t2\t2\t0\t3\t2\t4\t\t0\t0\n442\t100.0\tkb/communities/Tomato_Oxylipin_SynCom3.yaml\tCommunityMech:000107\tTomato Oxylipin-Protective SynCom3\t3\t3\t0\t3\t2\t4\t\t0\t0\n443\t100.0\tkb/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml\tCommunityMech:000112\tTribromophenol Anaerobic Bioremediation SynCom\t3\t3\t0\t4\t3\t5\t\t0\t0\n444\t100.0\tkb/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml\tCommunityMech:000188\tTrichococcus-Syntrophomonas-Methanospirillum Butyrate Coculture\t3\t3\t0\t3\t2\t6\t\t0\t0\n445\t100.0\tkb/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml\tCommunityMech:000205\tTrichoderma-E. coli Cellulosic Isobutanol Coculture\t2\t2\t0\t3\t2\t5\t\t0\t0\n446\t100.0\tkb/communities/Trichoderma_Lactate_Platform.yaml\tCommunityMech:000075\tTrichoderma Lactate Platform for SCFA Production\t3\t3\t0\t3\t2\t3\t\t0\t0\n447\t100.0\tkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml\tCommunityMech:000270\tTrichoderma-Streptomyces Filamentous Cellulose Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n448\t100.0\tkb/communities/Trichodesmium_Alteromonas_Marine_Consortium.yaml\tCommunityMech:000147\tTrichodesmium-Alteromonas Marine Consortium\t3\t3\t0\t3\t2\t5\t\t0\t0\n449\t100.0\tkb/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n" + }, + { + "check": "render", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/render.log", + "log_sha256": "ea062cb89370a6b8ee72611e81e5b8073c99976dd977f4e0ab2dfd46ed262887", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch29/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch29/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch29/docs/index.html\n" + }, + { + "check": "render-repeat", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/render-repeat.log", + "log_sha256": "ea062cb89370a6b8ee72611e81e5b8073c99976dd977f4e0ab2dfd46ed262887", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch29/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch29/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch29/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch29/docs/index.html\n" + }, + { + "check": "connectivity-survey", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-c", + "import json,runpy; print(json.dumps(runpy.run_path(\"tests/test_community_level_connectivity_credit.py\")[\"_survey\"](),sort_keys=True))" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/connectivity-survey.log", + "log_sha256": "75f81e775562eccff7b05d37325e53d49d8dd9a033afb56a3af328cded2c0361", + "output_tail": "{\"community_level_only\": 264, \"credited_solely_by_the_rule\": 1220, \"mixed\": 124, \"records\": 460, \"taxa\": 1496, \"with_community_level\": 388}\n" + }, + { + "check": "regressions", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/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_batch21.py", + "tests/test_causal_review_batch22.py", + "tests/test_causal_review_batch23.py", + "tests/test_causal_review_batch24.py", + "tests/test_causal_review_batch25.py", + "tests/test_causal_review_batch27.py", + "tests/test_causal_review_batch28.py", + "tests/test_causal_review_batch29.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_site_audit_fixes.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", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/regressions.log", + "log_sha256": "54f43125e00a332c6a46795163adcfeab7367c3e720fc943a87de2807aaf8cdf", + "output_tail": "........................................................................ [ 21%]\n........................................................................ [ 42%]\n........................................................................ [ 63%]\n........................................................................ [ 84%]\n...................................................... [100%]\n342 passed in 165.07s (0:02:45)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch29.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/black.log", + "log_sha256": "b9cf511501d306d2bd8355ccb165c8ddc0a6fdd62d7c72c4a7b1795cf8934c8c", + "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n2 files would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff", + "check", + "tests/test_causal_review_batch29.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/ruff.log", + "log_sha256": "82b3e6a6c090a57601d22943bd23fca9218d1031dbe5a7b754092f9a156b4f18", + "output_tail": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch29/diff-check.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + } + ], + "limitations": [ + "Three graph reviews; fourteen original nodes become ten and seven arrows become four. No new graph structure or Edison job/spend.", + "Primary-source access differs by study and is recorded per reference. Snippet MATCH is textual verification, not scientific endorsement; WRKY detail was checked in the full body rather than its broad abstract snippet.", + "No new full article/PDF is committed. Existing reference caches and all non-graph record blocks are preserved.", + "Three separate non-graph metadata follow-ups remain open. This is a self-adversarial review, not independent approval, protected CI success or full-corpus completion.", + "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate." + ], + "snippet_counts_by_record": { + "kb/communities/Dangl_SynComm_35.yaml": { + "MATCH": 21, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml": { + "MATCH": 29, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml": { + "MATCH": 16, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 40, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "network_delta": { + "existing_findings_preserved": 25, + "new_disconnected": 6, + "rationale": "Explicit participant subsets and removal of unsupported relationships reveal unresolved assignments instead of silently crediting every taxon. Follow-ups #1378 and #1379 retain these gaps.", + "findings": { + "Dangl_SynComm_35": [ + { + "type": "DISCONNECTED", + "taxon": "Escherichia coli DH5\u03b1", + "taxon_id": "NCBITaxon:668369", + "taxon_data": { + "taxon_term": { + "preferred_term": "Escherichia coli DH5\u03b1", + "term": { + "id": "NCBITaxon:668369", + "label": "Escherichia coli DH5[alpha]" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:s__Escherichia_coli", + "gtdb_taxon": "Escherichia coli", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Escherichia;s__Escherichia coli", + "ncbi_source_id": "NCBITaxon:668369", + "majority_fraction": 1.0, + "total_genomes": 4, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25)" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "CROSS_FEEDER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "We report that root-associated commensal bacteria actively suppress the host immune response in the context of a community" + } + ] + }, + "message": "Taxon 'Escherichia coli DH5\u03b1' has no interactions" + }, + { + "type": "DISCONNECTED", + "taxon": "Flavobacterium species", + "taxon_id": "NCBITaxon:237", + "taxon_data": { + "taxon_term": { + "preferred_term": "Flavobacterium species", + "term": { + "id": "NCBITaxon:237", + "label": "Flavobacterium" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Flavobacterium", + "gtdb_taxon": "Flavobacterium", + "gtdb_lineage": "d__Bacteria;p__Bacteroidota;c__Bacteroidia;o__Flavobacteriales;f__Flavobacteriaceae;g__Flavobacterium", + "ncbi_source_id": "NCBITaxon:237", + "majority_fraction": 0.999, + "support_genomes": 859, + "total_genomes": 860, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns" + } + ] + }, + "message": "Taxon 'Flavobacterium species' has no interactions" + }, + { + "type": "DISCONNECTED", + "taxon": "Microbacterium species", + "taxon_id": "NCBITaxon:33882", + "taxon_data": { + "taxon_term": { + "preferred_term": "Microbacterium species", + "term": { + "id": "NCBITaxon:33882", + "label": "Microbacterium" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Microbacterium", + "gtdb_taxon": "Microbacterium", + "gtdb_lineage": "d__Bacteria;p__Actinomycetota;c__Actinomycetes;o__Actinomycetales;f__Microbacteriaceae;g__Microbacterium", + "ncbi_source_id": "NCBITaxon:33882", + "majority_fraction": 1.0, + "support_genomes": 591, + "total_genomes": 591, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ] + }, + "message": "Taxon 'Microbacterium species' has no interactions" + }, + { + "type": "DISCONNECTED", + "taxon": "Stenotrophomonas species", + "taxon_id": "NCBITaxon:40323", + "taxon_data": { + "taxon_term": { + "preferred_term": "Stenotrophomonas species", + "term": { + "id": "NCBITaxon:40323", + "label": "Stenotrophomonas" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Stenotrophomonas", + "gtdb_taxon": "Stenotrophomonas", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales;f__Xanthomonadaceae;g__Stenotrophomonas", + "ncbi_source_id": "NCBITaxon:40323", + "majority_fraction": 0.985, + "support_genomes": 398, + "total_genomes": 404, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 2 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ] + }, + "message": "Taxon 'Stenotrophomonas species' has no interactions" + }, + { + "type": "DISCONNECTED", + "taxon": "Xanthomonadales members", + "taxon_id": "NCBITaxon:135614", + "taxon_data": { + "taxon_term": { + "preferred_term": "Xanthomonadales members", + "term": { + "id": "NCBITaxon:135614", + "label": "Lysobacterales" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:o__Xanthomonadales", + "gtdb_taxon": "Xanthomonadales", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Xanthomonadales", + "ncbi_source_id": "NCBITaxon:135614", + "majority_fraction": 1.0, + "support_genomes": 7047, + "total_genomes": 7047, + "is_reclassified": true, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at o__ rank; 1 GTDB taxa under the NCBI taxon]" + } + }, + "abundance_level": "COMMON", + "functional_role": [ + "SYNTROPHIC_PARTNER" + ], + "evidence": [ + { + "reference": "doi:10.1073/pnas.2100678118", + "supports": "SUPPORT", + "evidence_source": "IN_VITRO", + "snippet": "It is unknown, however, how microbiota composed of commensal bacteria colonize roots in the face of a sophisticated plant immune system that evolved to recognize microbial-associated molecular patterns" + } + ] + }, + "message": "Taxon 'Xanthomonadales members' has no interactions" + } + ], + "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession": [ + { + "type": "DISCONNECTED", + "taxon": "Methylophaga", + "taxon_id": "NCBITaxon:40222", + "taxon_data": { + "taxon_term": { + "preferred_term": "Methylophaga", + "term": { + "id": "NCBITaxon:40222", + "label": "Methylophaga" + }, + "gtdb_grounding_status": "GROUNDED", + "gtdb_classification": { + "gtdb_id": "GTDB:g__Methylophaga", + "gtdb_taxon": "Methylophaga", + "gtdb_lineage": "d__Bacteria;p__Pseudomonadota;c__Gammaproteobacteria;o__Nitrosococcales;f__Methylophagaceae;g__Methylophaga", + "ncbi_source_id": "NCBITaxon:40222", + "majority_fraction": 1.0, + "support_genomes": 45, + "total_genomes": 45, + "is_reclassified": false, + "mapping_source": "kg-microbe NCBI2GTDB.tsv.gz; GTDB release latest (built 2026-07-25) [grounded at g__ rank; 1 GTDB taxa under the NCBI taxon]" + }, + "notes": "Methylotrophic bacteria implicated in later plume-water hydrocarbon processing." + }, + "functional_role": [ + "PRIMARY_DEGRADER" + ], + "evidence": [ + { + "reference": "PMID:24865772", + "supports": "SUPPORT", + "evidence_source": "IN_VIVO", + "snippet": "methylotrophs, including Methylophaga, were in a heightened state of metabolic activity within oil plume waters", + "explanation": "Supports active Methylophaga-like methylotrophs in oil plume waters." + } + ] + }, + "message": "Taxon 'Methylophaga' has no interactions" + } + ] + } + }, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1456, + "arrows": 697 + }, + "participant_census": { + "connectivity_before": { + "community_level_only": 264, + "credited_solely_by_the_rule": 1216, + "mixed": 124, + "records": 460, + "taxa": 1496, + "with_community_level": 388 + }, + "connectivity_after": { + "community_level_only": 264, + "credited_solely_by_the_rule": 1220, + "mixed": 124, + "records": 460, + "taxa": 1496, + "with_community_level": 388 + }, + "exact_change": "170 -> 173 users; only Dangl, Deepwater and enamel added", + "numeric_bounds_changed": false + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1470, + "edges": 705, + "records_without_nodes": 8, + "records_without_edges": 143, + "review_status_counts": { + "needs_research": 4, + "pending": 324, + "reviewed": 132 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-three-records-batch29.yaml": "6627d37b0aad90ee137572b39e5b4039380bfd01f7e0c16912d7cb10a3c78439", + "tests/test_causal_review_batch29.py": "2e8f41544c35091698f5c4a7459750cf97418edc5b27a64abe41e7de9dcf9bbe", + "tests/test_participating_taxa.py": "f3b3bf65f4d442fa95c55b9aaf624696bdb51683dc35a46dc93d6706f70584d3", + "kb/communities/Dangl_SynComm_35.yaml": "9a828b5a59f88ca41699338a0187ebbe4d59da5b05fcc4ef40cf788b2ee9a277", + "kb/communities/Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml": "7cc349b1d2309b6d071aeaea72234305922c0c76458baab1469ce258142083f7", + "kb/communities/Defined_Multispecies_Enamel_Caries_Model.yaml": "320691301cf3e2d94ca9bf69873471e12309ce32271eecc02c3b222a08e6b9d6" + }, + "status": "verified_three_completed_reviews_three_changed_records" +} diff --git a/tests/test_causal_review_batch29.py b/tests/test_causal_review_batch29.py new file mode 100644 index 000000000..1d47a1c79 --- /dev/null +++ b/tests/test_causal_review_batch29.py @@ -0,0 +1,136 @@ +"""Keep assay observations, strain mechanisms and field hypotheses distinct.""" + +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/20261006-three-records-batch29.yaml" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + return ledger, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in ledger["records"]] + + +def test_syncom35_preserves_immune_observations_without_invented_exchanges(): + _, docs = records() + immune, wrky, secretion, colonization = docs[0]["ecological_interactions"] + assert immune["scope"] == wrky["scope"] == "COMMUNITY_LEVEL" + assert len(immune["participating_taxa"]) == len(wrky["participating_taxa"]) == 2 + assert "not the complete 35-strain roster" in immune["description"] + assert "not a demonstrated MF79-specific WRKY mechanism" in wrky["description"] + assert wrky["evidence"][0]["supports"] == "PARTIAL" + assert "not validated by the abstract snippet" in ( + yaml.safe_load(LEDGER.read_text())["records"][0]["source_review"]["PMID:33879573"]["scope"] + ) + assert secretion["scope"] == "PAIRWISE" + assert secretion["source_taxon"]["term"]["id"] == "NCBITaxon:231455" + assert secretion["target_taxon"]["term"]["id"] == "NCBITaxon:3702" + assert "not assigned to every SynCom35 member" in secretion["description"] + assert all("interaction_type" not in n for n in [immune, wrky, secretion]) + assert colonization["scope"] == "COMMUNITY_LEVEL" + assert colonization["interaction_type"] == "COLONIZATION_FACILITATION" + assert len(colonization["participating_taxa"]) == 3 + assert "not a proven MF79/Pseudomonas mutualism" in colonization["description"] + + +def test_syncom35_two_arrows_keep_experiment_specific_scope(): + _, docs = records() + immune, wrky, secretion, colonization = docs[0]["ecological_interactions"] + (upstream,) = secretion["downstream"] + (downstream,) = immune["downstream"] + assert upstream["target"] == immune["name"] + assert "not necessity of T2SS for the entire SynCom35 phenotype" in upstream["description"] + assert downstream["target"] == colonization["name"] + assert "Ochrobactrum MF370" in downstream["description"] + assert "unlike T2SS-mutant material" in downstream["description"] + assert "downstream" not in wrky and "downstream" not in colonization + + +def test_deepwater_retains_positive_results_with_two_qualified_arrows(): + _, docs = records() + degradation, floc, partition = docs[1]["ecological_interactions"] + assert all(n["scope"] == "COMMUNITY_LEVEL" for n in [degradation, floc, partition]) + assert all("interaction_type" not in n for n in [degradation, floc, partition]) + assert "potential" in degradation["description"] + assert "not a distinct oxygen-conservation mechanism" in degradation["description"] + assert "downstream" not in degradation + assert degradation["evidence"][1]["supports"] == "PARTIAL" + assert "separate positive result" in floc["description"] + assert "room temperature without added dispersant" in partition["description"] + assert "alternative to unknown enzymes or incomplete assemblies" in partition["description"] + assert partition["evidence"][-1]["evidence_source"] == "IN_VITRO" + assert partition["evidence"][-1]["supports"] == "SUPPORT" + for node in [floc, partition]: + (arrow,) = node["downstream"] + assert arrow["target"] == degradation["name"] + assert arrow["description"].startswith("HYPOTHESIZED -") + assert len(partition["participating_taxa"]) == 4 + assert "NCBITaxon:40222" not in {t["term"]["id"] for t in partition["participating_taxa"]} + + +def test_enamel_preserves_treatment_endpoints_not_crossfeeding_or_competition(): + _, docs = records() + formation, counts, minerals = docs[2]["ecological_interactions"] + for node in [formation, counts, minerals]: + assert node["scope"] == "COMMUNITY_LEVEL" + assert len(node["participating_taxa"]) == 4 + assert not {"interaction_type", "source_taxon", "target_taxon", "downstream"} & node.keys() + assert "S. sanguinis was below detection in the calcium arms" in formation["description"] + assert "calcium did not significantly change total counts or S. mutans" in counts["description"] + assert "not a selectively perturbed mechanism" in counts["description"] + assert "not every mineral-loss endpoint" in minerals["description"] + assert "biological_processes" not in minerals + assert "Results prose and Table 2 superscripts differ" in docs[2]["discussions"][0]["rationale"] + + +def test_batch29_uses_only_canonical_participants_and_valid_discussion_anchors(): + _, docs = records() + for doc in docs: + canonical = {t["taxon_term"]["term"]["id"]: t["taxon_term"] for t in doc["taxonomy"]} + names = {n["name"] for n in doc["ecological_interactions"]} + for node in doc["ecological_interactions"]: + for term in node.get("participating_taxa", []): + original = canonical[term["term"]["id"]] + assert term == {k: original[k] for k in ["preferred_term", "term"]} + assert len(doc["discussions"]) == 1 + (gap,) = doc["discussions"] + assert gap["kind"] == "KNOWLEDGE_GAP" and gap["status"] == "OPEN" + assert set(gap["attaches_to"]) == {"ecological_interactions#" + name for name in names} + + +def test_batch29_accounts_for_removed_nodes_edges_histories_and_cache_preservation(): + ledger, docs = records() + rows = ledger["records"] + assert ledger["independent_approval"] is False + assert ledger["issues"] == [1375, 1376, 1377] + assert ledger["open_nongraph_followups"] == [1378, 1379, 1380] + assert sum(len(r["node_decisions"]) for r in rows) == 10 + assert sum(len(r["removed_node_decisions"]) for r in rows) == 4 + assert sum(len(r["removed_edge_decisions"]) for r in rows) == 3 + assert sum(len(r["retained_edge_decisions"]) for r in rows) == 4 + for row, doc in zip(rows, docs, strict=True): + assert row["status"] == "reviewed" and row["outcome"] == "changed" + assert row["curation_events_added"] == 1 and len(row["history_files"]) == 1 + assert doc["curation_history"][-1]["llm_assisted"] is True + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + names = [n["name"] for n in doc["ecological_interactions"]] + assert Counter(n["node"] for n in row["node_decisions"]) == Counter(names) + arrows = [ + {"source": n["name"], **e} + for n in doc["ecological_interactions"] + for e in n.get("downstream", []) + ] + assert arrows == row["edges_after"] + removed = {(e["source"], e["target"]) for e in row["removed_edge_decisions"]} + rename = row["renamed_nodes"] + assert {(e["source"], e["target"]) for e in arrows} == { + (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"])) + for e in row["edges_before"] + if (e["source"], e["target"]) not in removed + } + 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 531adfc82..02b155e08 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -232,6 +232,9 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", "DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml", "DVM_Triculture.yaml", + "Dangl_SynComm_35.yaml", + "Deepwater_Horizon_Deep_Sea_Oil_Plume_Succession.yaml", + "Defined_Multispecies_Enamel_Caries_Model.yaml", "Defined_ThreeStrain_Organic_Nitrogen_Nitrifying_Community.yaml", "Dolichospermum_FBCC_A233_Xenic_Phycosphere_Community.yaml", "Drought_Rhizosphere_Iron_Actinobacteria_Community.yaml",