From e3b46971ce52d543c63a28a621da4760e6612d90 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Mon, 5 Oct 2026 19:38:36 -0700 Subject: [PATCH] Review coculture and crucian carp causal graphs --- ...la_oneidensis_Succinic_Acid_Coculture.html | 94 +-- ...an_Carp_Gut_Disease_Resistance_SynCom.html | 68 +- .../2026-10-06T022828Z-codex-9a496b.yaml | 28 + .../2026-10-06T022828Z-codex-90c7a0.yaml | 28 + ...la_oneidensis_Succinic_Acid_Coculture.yaml | 121 ++-- ...an_Carp_Gut_Disease_Resistance_SynCom.yaml | 102 ++- .../adversarial-review-20261005-batch24.yaml | 117 ++++ .../20261005-three-records-batch24.yaml | 228 +++++++ reports/causal_graph_review/inventory.tsv | 6 +- reports/causal_graph_review/summary.json | 4 +- .../validation-20261005-batch24.json | 631 ++++++++++++++++++ tests/test_causal_review_batch24.py | 144 ++++ 12 files changed, 1412 insertions(+), 159 deletions(-) create mode 100644 history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml create mode 100644 history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261005-batch24.yaml create mode 100644 reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml create mode 100644 reports/causal_graph_review/validation-20261005-batch24.json create mode 100644 tests/test_causal_review_batch24.py diff --git a/docs/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.html b/docs/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.html index 1eb461e48..0d567a7fe 100644 --- a/docs/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.html +++ b/docs/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.html @@ -560,7 +560,7 @@

Ecological Interactions

Ecological interaction network for Corynebacterium glutamicum + Shewanella oneidensis Succinic-acid Co-culture - 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). + 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.
@@ -568,8 +568,8 @@

Ecological Interactions

Syntrophy + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -577,17 +577,20 @@

Ecological Interactions

-

Riboflavin-Mediated Redox Coupling

- SYNTROPHY +

Riboflavin-Supplemented Coculture Response

-

S. oneidensis provides an electroactive coculture partner for C. glutamicum, and riboflavin is the most effective screened redox-active additive for further improving anaerobic succinic acid production.

+

The complete abstract reports that externally supplied riboflavin was the most effective of five screened redox-active additives, with 0.1 mM supplementation further improving coculture production. This supports an additive response, not demonstrated Shewanella secretion, directed interspecies electron transfer or thermodynamic syntrophy. Parent-strain and K1 experiments must be distinguished; the abstract does not resolve every additive/transcript assay to K1.

-

Source Taxon: Shewanella oneidensis

+

Participating Taxa: -

Target Taxon: Corynebacterium glutamicum (ldhA-deleted strain K1)

+ Corynebacterium glutamicum (ldhA-deleted strain K1), + + Shewanella oneidensis + +

@@ -618,8 +621,8 @@

Riboflavin-Mediated Redox Coupling

Downstream Effects:
- → Reprogrammed Corynebacterium Reductive TCA Flux -

Coculture redox coupling leads into the transcriptome-level reinforcement of the C. glutamicum electron transport system and reductive TCA flux.

+ → Corynebacterium Coculture Transcript Response +

HYPOTHESIZED - altered coculture redox conditions could contribute to the Corynebacterium transcript response. Additive screening and the transcriptomic interpretation support this candidate link, but the accessible abstract does not selectively establish riboflavin-dependent electron transfer as its cause.

@@ -648,17 +651,14 @@

Evidence

-

Reprogrammed Corynebacterium Reductive TCA Flux

- SYNTROPHY +

Corynebacterium Coculture Transcript Response

-

In coculture, C. glutamicum globally reprograms metabolism, reinforcing its electron transport system, redistributing carbon flux toward the reductive TCA pathway, and suppressing succinic-acid-consuming pathways.

- +

Coculture changed C. glutamicum transcript profiles, interpreted by the authors as enhanced electron transport, redistribution toward the reductive TCA pathway and suppression of succinic-acid-consuming pathways. This is transcript-based metabolic interpretation, not directly traced carbon or electron flux. The canonical entry includes K1; the abstract does not identify the strain used for every transcript comparison.

-

Source Taxon: Shewanella oneidensis

+

Source Taxon: Corynebacterium glutamicum (ldhA-deleted strain K1)

-

Target Taxon: Corynebacterium glutamicum (ldhA-deleted strain K1)

@@ -690,7 +690,7 @@

Reprogrammed Corynebacterium Reductive TCA Flux

→ Enhanced Succinic Acid Production -

Redistribution toward the reductive TCA pathway and suppression of succinic-acid-consuming pathways provide the immediate metabolic basis for higher succinic acid yield.

+

PARTIAL - the transcript-based interpretation is consistent with metabolic changes contributing to increased succinic acid yield. Positive coculture, riboflavin and ldhA-deletion outcomes support the production strategy, but do not selectively establish this transcript response or inferred flux redistribution as the mediator of each yield comparison.

@@ -706,7 +706,7 @@

Evidence

PMID:42203120 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"Transcriptomic analysis revealed that co-culture induced global metabolic reprogramming in C. glutamicum, including reinforcement of the electron transport system, redistribution of carbon flux toward the reductive TCA pathway"
@@ -720,9 +720,8 @@

Evidence

Enhanced Succinic Acid Production

- SYNTROPHY
-

The optimized coculture increases succinic acid yield over C. glutamicum monoculture without markedly altering glucose consumption, and the ldhA-deleted K1 strain maintains an enhanced succinic acid yield in the coculture system.

+

The abstract reports an optimized parent-strain coculture yield of 0.169 g/g, 45.65% above monoculture without markedly changing glucose consumption. Separately, ldhA deletion abolished lactate formation in K1; its coculture reached 0.686 g/g and showed up to 23.4% higher yield during extended fermentation than monoculture. These positive interventions do not establish thermodynamic syntrophy or assign the parent-strain result to K1.

@@ -776,6 +775,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which redox and metabolic changes mediate the strain-specific succinate yield improvements? +

+

Only the complete primary abstract was accessible; publisher full-body access returned 403. Direct electron/carbon flux, mediator-specific perturbations and exact strain/condition assignments are needed to resolve the two proposed arrows. Riboflavin is externally supplied, not proven to be secreted by Shewanella. Preserve the positive parent-strain and K1 treatment outcomes without conflating them. Top-level description and donor-role metadata require separate followup #1354.

+ +

Attaches to: ecological_interactions#Riboflavin-Supplemented Coculture Response, ecological_interactions#Corynebacterium Coculture Transcript Response, ecological_interactions#Enhanced Succinic Acid Production

+ + + + +
+ +
@@ -940,7 +958,7 @@

Evidence

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

Evidence

nodes.push({ id: intId, - label: "Riboflavin-Mediated Redox Coupling", + label: "Riboflavin-Supplemented Coculture Response", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -966,23 +984,26 @@

Evidence

}); - var srcKey = "Shewanella oneidensis"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Corynebacterium glutamicum (ldhA-deleted strain K1)"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Corynebacterium glutamicum (ldhA-deleted strain K1)", + + "Shewanella oneidensis" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:1"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -999,7 +1020,7 @@

Evidence

nodes.push({ id: intId, - label: "Reprogrammed Corynebacterium Reductive TCA Flux", + label: "Corynebacterium Coculture Transcript Response", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1008,23 +1029,18 @@

Evidence

}); - var srcKey = "Shewanella oneidensis"; + var srcKey = "Corynebacterium glutamicum (ldhA-deleted strain K1)"; if (taxonNodeIds[srcKey]) { links.push({ source: taxonNodeIds[srcKey], target: intId }); } - var tgtKey = "Corynebacterium glutamicum (ldhA-deleted strain K1)"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } - })(); (function() { var intId = "interaction:2"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; diff --git a/docs/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.html b/docs/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.html index bcdf177d5..e919a2a2b 100644 --- a/docs/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.html +++ b/docs/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.html @@ -582,7 +582,7 @@

Ecological Interactions

Ecological interaction network for Crucian Carp Gut Disease-resistance SynCom - 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 (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.
@@ -590,18 +590,8 @@

Ecological Interactions

Mutualism -
-
- Competition -
-
- Commensalism + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -609,10 +599,9 @@

Ecological Interactions

-

SynCom activation of intestinal immune responses

- COMMENSALISM +

SynCom-associated intestinal immune responses

-

Dietary administration of the Cetobacterium-Paraclostridium-Pseudomonas SynCom activated intestinal immune responses in crucian carp, including transcriptomic upregulation of the intestinal immune network for IgA production, before the observed enhancement of resistance to Aeromonas hydrophila.

+

After 28 days of SynCom feeding, crucian carp showed increased intestinal SOD, CAT, ACP and lysozyme activities versus controls, alongside immune-associated transcript changes and qPCR validation of selected genes. The intestinal immune network for IgA production is a KEGG pathway annotation, not a direct IgA production assay. These treatment-associated host responses do not establish commensal microbial fitness or selective immune mediation of challenge protection.

@@ -649,7 +638,7 @@

SynCom activation of intestinal immune responses

→ SynCom-mediated suppression of Aeromonas hydrophila -

Immune activation by the simplified gut SynCom is a reported mechanism for the subsequent increase in resistance to A. hydrophila challenge.

+

PARTIAL - prechallenge immune-associated responses could contribute to the improved survival and reduced pathogen DNA loads after SynCom feeding. The treatment comparison supports protection, but no selective immune blockade or rescue establishes these responses as necessary or sufficient mediators.

@@ -665,7 +654,7 @@

Evidence

PMID:41280275 - - SUPPORT (IN_VIVO) + - PARTIAL (IN_VIVO)
"the results revealed significant upregulation of immune-related pathways, particularly the intestinal immune network for IgA production"
@@ -678,10 +667,9 @@

Evidence

-

SynCom reinforcement of epithelial barrier defenses

- MUTUALISM +

SynCom-associated intestinal barrier markers

-

Dietary administration of the Cetobacterium-Paraclostridium-Pseudomonas SynCom activated tight-junction signaling and elevated proteins associated with intestinal barrier function, strengthening epithelial defenses that restrict opportunistic Aeromonas hydrophila infection.

+

SynCom feeding increased zo-1, occludin and claudin12 transcript levels, and transcriptomics enriched tight-junction-associated pathways. DAO activity also increased; the paper interprets this injury-associated marker as possible mucosal turnover or repair, not an unambiguous improvement in permeability. These results support a barrier-response hypothesis, not direct barrier-protein abundance, selective functional barrier rescue or reciprocal microbial benefit.

@@ -718,7 +706,7 @@

SynCom reinforcement of epithelial barrier defenses

→ SynCom-mediated suppression of Aeromonas hydrophila -

Gut-barrier reinforcement cooperates with immune activation to improve host resistance and reduce A. hydrophila abundance after challenge.

+

PARTIAL - altered barrier-associated transcripts could contribute to lower intestinal and kidney pathogen DNA loads and improved survival after challenge. The SynCom treatment effect is measured, but marker changes and ambiguous DAO activity do not isolate epithelial barrier function as the necessary mediator.

@@ -734,7 +722,7 @@

Evidence

PMID:41280275 - - SUPPORT (IN_VIVO) + - PARTIAL (IN_VIVO)
"activation of tight junction signaling pathways was observed"
@@ -750,7 +738,7 @@

Evidence

- SUPPORT (IN_VIVO) -
"elevated expression of proteins associated with barrier function"
+
"the expression levels of genes related to the intestinal barrier"
@@ -761,9 +749,8 @@

Evidence

SynCom-mediated suppression of Aeromonas hydrophila

- COMPETITION
-

The three-genus SynCom (Cetobacterium, Paraclostridium, Pseudomonas) significantly reduced the abundance of the pathogen Aeromonas hydrophila by activating intestinal immune responses and reinforcing the gut barrier, an emergent host-mediated antagonism rather than a direct pairwise microbe-microbe interaction.

+

After 28 days of three-strain SynCom feeding, challenged crucian carp had 60% survival versus 32.5% in controls and lower calibrated qPCR Aeromonas DNA loads in intestine and kidney. These are positive host treatment outcomes, not merely relative 16S profiles or viable-pathogen counts. Immune and barrier mediation remains proposed, and reciprocal microbial competition is not established. The separate FMT survival comparison (66.7% versus 36.7%) is not the SynCom result.

@@ -822,6 +809,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which host responses and microbial functions causally mediate SynCom protection? +

+

Complete main-body Methods and Results support 28-day feeding, enzyme/transcript responses, challenge survival and calibrated qPCR pathogen loads. They do not report selective immune/barrier blockade or rescue, direct barrier permeability or barrier-protein validation. Elevated DAO is ambiguous, and the IgA phrase is a pathway annotation. Main text reports non-antagonistic in vitro co-culture and preliminary single/pair/triple feeding comparisons; supplementary images/data were not inspected. In-host cross-feeding and signaling remain hypotheses. Species/strain metadata and conflicting source units/schedules are tracked separately in #1353; canonical genus participants are preserved here.

+ +

Attaches to: ecological_interactions#SynCom-associated intestinal immune responses, ecological_interactions#SynCom-associated intestinal barrier markers, ecological_interactions#SynCom-mediated suppression of Aeromonas hydrophila

+ + + + +
+ +
@@ -993,7 +999,7 @@

Evidence

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

Evidence

nodes.push({ id: intId, - label: "SynCom activation of intestinal immune responses", + label: "SynCom-associated intestinal immune responses", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1036,7 +1042,7 @@

Evidence

(function() { var intId = "interaction:1"; - var intType = "MUTUALISM"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1049,7 +1055,7 @@

Evidence

nodes.push({ id: intId, - label: "SynCom reinforcement of epithelial barrier defenses", + label: "SynCom-associated intestinal barrier markers", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1079,7 +1085,7 @@

Evidence

(function() { var intId = "interaction:2"; - var intType = "COMPETITION"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; diff --git a/history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml b/history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml new file mode 100644 index 000000000..eec0d0851 --- /dev/null +++ b/history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml + slug: Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture +session: + id: 2026-10-06T022828Z-codex-9a496b + timestamp: '2026-10-06T02:28:28Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1351 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the measured external-additive response at coculture scope without asserting + directed exchange or syntrophy.; Represent Corynebacterium transcript response with its + canonical source only and qualify inferred flux and causal mediation.; Preserve distinct + parent-strain and K1 intervention outcomes without assigning parent results to the engineered + derivative. + details: Source-based self-adversarial review; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml diff --git a/history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml b/history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml new file mode 100644 index 000000000..456de9da9 --- /dev/null +++ b/history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml + slug: Crucian_Carp_Gut_Disease_Resistance_SynCom +session: + id: 2026-10-06T022828Z-codex-90c7a0 + timestamp: '2026-10-06T02:28:28Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1352 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain measured enzyme/transcript responses while distinguishing pathway annotation + from direct IgA measurement or microbial fitness.; Retain transcript/pathway and DAO observations + without promoting them to protein, permeability or selective mediation evidence.; Preserve + SynCom survival and calibrated qPCR endpoints, separate from FMT and from reciprocal microbial + competition. + details: Source-based self-adversarial review; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml diff --git a/kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml b/kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml index f8a50782a..4f06c5750 100644 --- a/kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml +++ b/kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml @@ -78,22 +78,13 @@ taxonomy: explanation: Identifies the electroactive bacterium S. oneidensis as the second member of the co-culture. ecological_interactions: -- name: Riboflavin-Mediated Redox Coupling - description: S. oneidensis provides an electroactive coculture partner for - C. glutamicum, and riboflavin is the most effective screened redox-active additive - for further improving anaerobic succinic acid production. - interaction_type: SYNTROPHY - scope: PAIRWISE - source_taxon: - preferred_term: Shewanella oneidensis - term: - id: NCBITaxon:70863 - label: Shewanella oneidensis - target_taxon: - preferred_term: Corynebacterium glutamicum (ldhA-deleted strain K1) - term: - id: NCBITaxon:1718 - label: Corynebacterium glutamicum +- name: Riboflavin-Supplemented Coculture Response + description: The complete abstract reports that externally supplied riboflavin was the most effective of five + screened redox-active additives, with 0.1 mM supplementation further improving coculture production. This supports + an additive response, not demonstrated Shewanella secretion, directed interspecies electron transfer or thermodynamic + syntrophy. Parent-strain and K1 experiments must be distinguished; the abstract does not resolve every additive/transcript + assay to K1. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: riboflavin term: @@ -105,29 +96,34 @@ ecological_interactions: id: GO:0022900 label: electron transport chain downstream: - - target: Reprogrammed Corynebacterium Reductive TCA Flux - description: Coculture redox coupling leads into the transcriptome-level - reinforcement of the C. glutamicum electron transport system and reductive TCA flux. + - target: Corynebacterium Coculture Transcript Response + description: HYPOTHESIZED - altered coculture redox conditions could contribute to the Corynebacterium transcript + response. Additive screening and the transcriptomic interpretation support this candidate link, but the accessible + abstract does not selectively establish riboflavin-dependent electron transfer as its cause. evidence: - reference: PMID:42203120 supports: SUPPORT evidence_source: IN_VITRO - snippet: Screening of five redox-active compounds identified riboflavin as the most effective - additive, and supplementation with 0.1 mM riboflavin further improved production performance. - explanation: Riboflavin acts as a redox mediator supporting interspecies electron transfer that - boosts succinic acid production. -- name: Reprogrammed Corynebacterium Reductive TCA Flux - description: In coculture, C. glutamicum globally reprograms metabolism, reinforcing - its electron transport system, redistributing carbon flux toward the reductive TCA - pathway, and suppressing succinic-acid-consuming pathways. - interaction_type: SYNTROPHY - scope: PAIRWISE - source_taxon: - preferred_term: Shewanella oneidensis + snippet: Screening of five redox-active compounds identified riboflavin as the most effective additive, and + supplementation with 0.1 mM riboflavin further improved production performance. + explanation: Supports the externally supplied riboflavin intervention and improved production, not a demonstrated + donor-to-recipient electron flux or endogenous riboflavin exchange. + participating_taxa: + - preferred_term: Corynebacterium glutamicum (ldhA-deleted strain K1) + term: + id: NCBITaxon:1718 + label: Corynebacterium glutamicum + - preferred_term: Shewanella oneidensis term: id: NCBITaxon:70863 label: Shewanella oneidensis - target_taxon: +- name: Corynebacterium Coculture Transcript Response + description: Coculture changed C. glutamicum transcript profiles, interpreted by the authors as enhanced electron + transport, redistribution toward the reductive TCA pathway and suppression of succinic-acid-consuming pathways. + This is transcript-based metabolic interpretation, not directly traced carbon or electron flux. The canonical + entry includes K1; the abstract does not identify the strain used for every transcript comparison. + scope: PAIRWISE + source_taxon: preferred_term: Corynebacterium glutamicum (ldhA-deleted strain K1) term: id: NCBITaxon:1718 @@ -144,23 +140,25 @@ ecological_interactions: label: tricarboxylic acid cycle downstream: - target: Enhanced Succinic Acid Production - description: Redistribution toward the reductive TCA pathway and suppression of - succinic-acid-consuming pathways provide the immediate metabolic basis for higher - succinic acid yield. + description: PARTIAL - the transcript-based interpretation is consistent with metabolic changes contributing + to increased succinic acid yield. Positive coculture, riboflavin and ldhA-deletion outcomes support the production + strategy, but do not selectively establish this transcript response or inferred flux redistribution as the + mediator of each yield comparison. evidence: - reference: PMID:42203120 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO - snippet: Transcriptomic analysis revealed that co-culture induced global metabolic reprogramming - in C. glutamicum, including reinforcement of the electron transport system, redistribution of - carbon flux toward the reductive TCA pathway - explanation: Co-culture reprograms C. glutamicum metabolism, reinforcing electron transport and - the reductive TCA pathway consistent with interspecies redox coupling. + snippet: Transcriptomic analysis revealed that co-culture induced global metabolic reprogramming in C. glutamicum, + including reinforcement of the electron transport system, redistribution of carbon flux toward the reductive + TCA pathway + explanation: Supports the authors' transcriptomic interpretation of metabolic reprogramming, not direct flux + measurement or a resolved Shewanella-to-Corynebacterium transfer mechanism. - name: Enhanced Succinic Acid Production - description: The optimized coculture increases succinic acid yield over C. glutamicum - monoculture without markedly altering glucose consumption, and the ldhA-deleted K1 - strain maintains an enhanced succinic acid yield in the coculture system. - interaction_type: SYNTROPHY + description: The abstract reports an optimized parent-strain coculture yield of 0.169 g/g, 45.65% above monoculture + without markedly changing glucose consumption. Separately, ldhA deletion abolished lactate formation in K1; + its coculture reached 0.686 g/g and showed up to 23.4% higher yield during extended fermentation than monoculture. + These positive interventions do not establish thermodynamic syntrophy or assign the parent-strain result to + K1. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Corynebacterium glutamicum (ldhA-deleted strain K1) @@ -180,10 +178,10 @@ ecological_interactions: - reference: PMID:42203120 supports: SUPPORT evidence_source: IN_VITRO - snippet: The engineered strain maintained enhanced succinic acid production in the co-culture system, - reaching a yield of 0.686 g/g - explanation: Supports enhanced succinic acid production as the downstream output of - the Shewanella-Corynebacterium coculture. + snippet: The engineered strain maintained enhanced succinic acid production in the co-culture system, reaching + a yield of 0.686 g/g + explanation: Supports the K1 coculture production outcome. The complete abstract separately reports parent-strain, + riboflavin and ldhA-deletion comparisons; it does not establish the direction of interspecies electron flux. growth_media: - name: unspecified (glucose-based anaerobic succinic acid fermentation medium) atmosphere: ANAEROBIC @@ -205,3 +203,28 @@ growth_media: snippet: supplementation with 0.1 mM riboflavin further improved production performance explanation: The optimized co-culture medium was supplemented with 0.1 mM riboflavin as a redox-active additive. +discussions: +- discussion_id: succinate_coculture_transfer_and_flux + prompt: Which redox and metabolic changes mediate the strain-specific succinate yield improvements? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Riboflavin-Supplemented Coculture Response + - ecological_interactions#Corynebacterium Coculture Transcript Response + - ecological_interactions#Enhanced Succinic Acid Production + rationale: 'Only the complete primary abstract was accessible; publisher full-body access returned 403. Direct + electron/carbon flux, mediator-specific perturbations and exact strain/condition assignments are needed to resolve + the two proposed arrows. Riboflavin is externally supplied, not proven to be secreted by Shewanella. Preserve + the positive parent-strain and K1 treatment outcomes without conflating them. Top-level description and donor-role + metadata require separate followup #1354.' + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-06T02:28:28Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the measured external-additive response at coculture scope without asserting directed exchange + or syntrophy.; Represent Corynebacterium transcript response with its canonical source only and qualify inferred + flux and causal mediation.; Preserve distinct parent-strain and K1 intervention outcomes without assigning parent + results to the engineered derivative. Issue #1351; reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml' + llm_assisted: true diff --git a/kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml b/kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml index 4ebd15929..f23dab3a5 100644 --- a/kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml +++ b/kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml @@ -94,12 +94,12 @@ taxonomy: snippet: 'Further microbial analysis identified Cetobacterium (p = 0.013), Paraclostridium (p < 0.01), and Pseudomonas (p < 0.01) as key differential taxa. A simplified microbial community comprising these three strains was subsequently constructed' explanation: Identifies Pseudomonas as a member genus of the disease-resistance SynCom. ecological_interactions: -- name: SynCom activation of intestinal immune responses - description: Dietary administration of the Cetobacterium-Paraclostridium-Pseudomonas - SynCom activated intestinal immune responses in crucian carp, including transcriptomic - upregulation of the intestinal immune network for IgA production, before the observed - enhancement of resistance to Aeromonas hydrophila. - interaction_type: COMMENSALISM +- name: SynCom-associated intestinal immune responses + description: After 28 days of SynCom feeding, crucian carp showed increased intestinal SOD, CAT, ACP and lysozyme + activities versus controls, alongside immune-associated transcript changes and qPCR validation of selected genes. + The intestinal immune network for IgA production is a KEGG pathway annotation, not a direct IgA production assay. + These treatment-associated host responses do not establish commensal microbial fitness or selective immune mediation + of challenge protection. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Cetobacterium @@ -121,22 +121,24 @@ ecological_interactions: label: defense response to bacterium downstream: - target: SynCom-mediated suppression of Aeromonas hydrophila - description: Immune activation by the simplified gut SynCom is a reported mechanism - for the subsequent increase in resistance to A. hydrophila challenge. + description: PARTIAL - prechallenge immune-associated responses could contribute to the improved survival and + reduced pathogen DNA loads after SynCom feeding. The treatment comparison supports protection, but no selective + immune blockade or rescue establishes these responses as necessary or sufficient mediators. evidence: - reference: PMID:41280275 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VIVO - snippet: the results revealed significant upregulation of immune-related pathways, particularly - the intestinal immune network for IgA production - explanation: Transcriptomics resolved immune activation as one mechanism induced by the - simplified gut SynCom. -- name: SynCom reinforcement of epithelial barrier defenses - description: Dietary administration of the Cetobacterium-Paraclostridium-Pseudomonas - SynCom activated tight-junction signaling and elevated proteins associated with - intestinal barrier function, strengthening epithelial defenses that restrict opportunistic - Aeromonas hydrophila infection. - interaction_type: MUTUALISM + snippet: the results revealed significant upregulation of immune-related pathways, particularly the intestinal + immune network for IgA production + explanation: Supports a pathway-level interpretation; primary sections 3.5-3.6 separately report enzyme activities, + transcript enrichment and selected-gene qPCR. The annotation label is not a direct IgA assay or selective + mediation experiment. +- name: SynCom-associated intestinal barrier markers + description: SynCom feeding increased zo-1, occludin and claudin12 transcript levels, and transcriptomics enriched + tight-junction-associated pathways. DAO activity also increased; the paper interprets this injury-associated + marker as possible mucosal turnover or repair, not an unambiguous improvement in permeability. These results + support a barrier-response hypothesis, not direct barrier-protein abundance, selective functional barrier rescue + or reciprocal microbial benefit. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Cetobacterium @@ -158,27 +160,29 @@ ecological_interactions: label: defense response to bacterium downstream: - target: SynCom-mediated suppression of Aeromonas hydrophila - description: Gut-barrier reinforcement cooperates with immune activation to - improve host resistance and reduce A. hydrophila abundance after challenge. + description: PARTIAL - altered barrier-associated transcripts could contribute to lower intestinal and kidney + pathogen DNA loads and improved survival after challenge. The SynCom treatment effect is measured, but marker + changes and ambiguous DAO activity do not isolate epithelial barrier function as the necessary mediator. evidence: - reference: PMID:41280275 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VIVO snippet: activation of tight junction signaling pathways was observed - explanation: Supports tight-junction activation as a barrier-preservation - response induced by the simplified gut SynCom. + explanation: Supports the authors' pathway-level barrier interpretation; enrichment and transcript markers are + not a direct functional permeability or protein-abundance assay. - reference: PMID:41280275 supports: SUPPORT evidence_source: IN_VIVO - snippet: elevated expression of proteins associated with barrier function - explanation: Immunological assays validated elevated expression of barrier-function - proteins in fish treated with the protective SynCom. + snippet: the expression levels of genes related to the intestinal barrier + explanation: Primary Results section 3.5 describes gene-expression measurements, not the unqualified barrier-protein + validation suggested by Discussion wording. The same section reports increased DAO activity and a possible + turnover/repair interpretation. - name: SynCom-mediated suppression of Aeromonas hydrophila - description: The three-genus SynCom (Cetobacterium, Paraclostridium, Pseudomonas) significantly - reduced the abundance of the pathogen Aeromonas hydrophila by activating intestinal immune - responses and reinforcing the gut barrier, an emergent host-mediated antagonism rather than a - direct pairwise microbe-microbe interaction. - interaction_type: COMPETITION + description: After 28 days of three-strain SynCom feeding, challenged crucian carp had 60% survival versus 32.5% + in controls and lower calibrated qPCR Aeromonas DNA loads in intestine and kidney. These are positive host treatment + outcomes, not merely relative 16S profiles or viable-pathogen counts. Immune and barrier mediation remains proposed, + and reciprocal microbial competition is not established. The separate FMT survival comparison (66.7% versus + 36.7%) is not the SynCom result. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Cetobacterium @@ -202,9 +206,10 @@ ecological_interactions: - reference: PMID:41280275 supports: SUPPORT evidence_source: IN_VIVO - snippet: 'administration of this community significantly improved host resistance to A. hydrophila (p < 0.05) by activating intestinal immune responses and reinforcing the gut barrier' - explanation: Community-level reduction of A. hydrophila via host immune activation and gut-barrier - reinforcement. + snippet: administration of this community significantly improved host resistance to A. hydrophila (p < 0.05) + by activating intestinal immune responses and reinforcing the gut barrier + explanation: Supports the protective feeding intervention. Primary Results section 3.5 supplies survival and + qPCR-load endpoints; its immune/barrier interpretation is not a selectively tested mediation pathway. growth_media: - name: "BHI and LB (brain heart infusion and Luria-Bertani)" temperature: '28' @@ -243,3 +248,30 @@ cultivation_setup: snippet: Pairwise and triple-strain co-cultures were incubated for 78 h at inoculation ratios of 1:1 or 1:1:1, respectively, and no antagonistic or inhibitory effects were observed +discussions: +- discussion_id: crucian_syncom_host_mediation + prompt: Which host responses and microbial functions causally mediate SynCom protection? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#SynCom-associated intestinal immune responses + - ecological_interactions#SynCom-associated intestinal barrier markers + - ecological_interactions#SynCom-mediated suppression of Aeromonas hydrophila + rationale: 'Complete main-body Methods and Results support 28-day feeding, enzyme/transcript responses, challenge + survival and calibrated qPCR pathogen loads. They do not report selective immune/barrier blockade or rescue, + direct barrier permeability or barrier-protein validation. Elevated DAO is ambiguous, and the IgA phrase is + a pathway annotation. Main text reports non-antagonistic in vitro co-culture and preliminary single/pair/triple + feeding comparisons; supplementary images/data were not inspected. In-host cross-feeding and signaling remain + hypotheses. Species/strain metadata and conflicting source units/schedules are tracked separately in #1353; + canonical genus participants are preserved here.' + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-06T02:28:28Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain measured enzyme/transcript responses while distinguishing pathway annotation from direct IgA + measurement or microbial fitness.; Retain transcript/pathway and DAO observations without promoting them to + protein, permeability or selective mediation evidence.; Preserve SynCom survival and calibrated qPCR endpoints, + separate from FMT and from reciprocal microbial competition. Issue #1352; reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261005-batch24.yaml b/reports/causal_graph_review/adversarial-review-20261005-batch24.yaml new file mode 100644 index 000000000..18f1f9e6c --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261005-batch24.yaml @@ -0,0 +1,117 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: ee38b8f0a6166f3d56dbf9ec07ac3afbabe2d1eb +decision_ledger: reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml +validation_report: reports/causal_graph_review/validation-20261005-batch24.json +scope: +- kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml +- kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml +- kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml +findings: +- issue: 1351 + severity: P2 + finding: External additive response and transcript interpretation encoded as directed transfer, thermodynamic + syntrophy and unqualified flux mediation. + disposition: addressed_and_locally_verified +- issue: 1352 + severity: P2 + finding: Host enzyme/transcript responses promoted into selective immune/barrier mediation and microbial fitness + signs; transcript markers described as protein validation. + disposition: addressed_and_locally_verified +open_nongraph_followups: +- issue: 1353 + disposition: not_closed_by_graph_only_patch +- issue: 1354 + disposition: not_closed_by_graph_only_patch +adversarial_checks: +- Review all eight original nodes and four arrows. Retain every node/arrow with four exact renames; no new structure + or Edison spend. +- 'Cordyceps graph remains byte-unchanged: isolation and selective antibacterial assays are abstract-supported endpoints. + Neither partner-dependent induction nor reciprocal benefit is asserted. Do not add an artificial connecting arrow + or duplicate closed #1158/#1159.' +- 'Remove SYNTROPHY from the succinate graph: no demonstrated thermodynamically favorable metabolism enabled by + partner product removal. External riboflavin is not proof of Shewanella secretion or directed electron flux.' +- Keep the additive response at coculture scope and the Corynebacterium transcript response source-only. Canonical + strain metadata is retained but the unresolved assignment of every assay to K1 is explicit. +- Preserve parent-strain yield 0.169 g/g (+45.65%) separately from K1 yield 0.686 g/g and extended-fermentation + improvement up to 23.4%. Preserve lactate abolition after ldhA deletion. +- Qualify redox-to-transcript causation as HYPOTHESIZED and transcript-to-output mediation as PARTIAL. Positive + interventions do not directly trace carbon/electron flux or selectively identify each mediator. +- 'Remove COMMENSALISM/MUTUALISM/COMPETITION from fish host-response nodes: microbial partner fitness signs are + not measured by the host protection trial.' +- Retain 28-day SynCom feeding, enzyme activities and selected transcript qPCR validation. The IgA phrase is a KEGG + annotation, not direct IgA synthesis measurement. +- Prefer Methods/Results gene-expression measurements over the Discussion protein wording. Keep elevated DAO as + ambiguous injury-associated turnover/repair, not proof of improved permeability. +- 'Keep both immune/barrier output arrows PARTIAL: no mediator-specific blockade/rescue or direct functional barrier + validation is reported in the reviewed primary body.' +- Preserve challenge survival 60% versus 32.5% and calibrated qPCR pathogen DNA-load reductions. Do not replace + them with relative 16S change, viable CFU, or the separate FMT survival comparison of 66.7% versus 36.7%. +- Fish main text reports preliminary single/pair/triple feeding and non-antagonistic in vitro tests. Supplementary + images/data were not independently inspected. Proposed gut cross-feeding/signaling does not become an additional + node or arrow. +- One complete primary main body/captions and two complete abstracts read. Publisher bodies for the two cocultures + were inaccessible; no full Methods/Results claim. No visual figures or supplementary files reviewed or full copyrighted + body added. +- 'Three tracked caches and unrelated YAML blocks are byte-preserved. Remaining fish strain/units/schedule/top-level + prose and succinate donor-role/prose issues are explicitly open as #1353/#1354, not silently certified.' +- Both-root census remains 460 records, 389 with community scope, 122 mixed records and 1499 community-credited + taxa. One Shewanella participant changes from pairwise to solely community credit (1220 -> 1221); no registry + or sentinel changes. +- Copper and Coscinodiscus source preparation does not count as completed review. Coverage is 121/460, and self-adversarial + review is not independent approval or protected CI success. +verification: + status: local_validation_complete + checks: 29 + records: 460 + nodes: 1474 + edges: 710 + review_status_counts: + needs_research: 3 + pending: 336 + reviewed: 121 + structural_defects: 0 + network_errors: 0 + network_warnings: 25 + new_network_warnings: 0 + unchanged_raw_blocks: 36 + snippet_counts: + MATCH: 24 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + published_description_coverage: + pages: 456 + node_descriptions: 1460 + edge_descriptions: 702 + render_determinism: passed + regressions: 285 passed in 190.25s (0:03:10) + rights: 3 passed in 1.56s + rights_import_root_verified: true + caches_unchanged: true + primary_artifact_hashes_rechecked: true + corpus_sentinels_unchanged: true + connectivity_survey_before: + records: 460 + with_community_level: 389 + mixed: 122 + community_level_only: 267 + taxa: 1499 + credited_solely_by_the_rule: 1220 + connectivity_survey: + records: 460 + with_community_level: 389 + mixed: 122 + community_level_only: 267 + taxa: 1499 + credited_solely_by_the_rule: 1221 + connectivity_delta: + records: 0 + with_community_level: 0 + mixed: 0 + community_level_only: 0 + taxa: 0 + credited_solely_by_the_rule: 1 diff --git a/reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml b/reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml new file mode 100644 index 000000000..08b7d1820 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml @@ -0,0 +1,228 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: ee38b8f0a6166f3d56dbf9ec07ac3afbabe2d1eb +issues: +- 1351 +- 1352 +open_nongraph_followups: +- 1353 +- 1354 +issue_deduplication: + all_state_issue_titles_bodies: 687 + ignored_hidden_local_files_included: true + comments_exhaustive: false + relevant_issues_read: + - 1158 + - 1159 + - 529 + - 746 + - 524 + finding: No exact new graph duplicate in searched scope. Closed Cordyceps findings remain fixed; no new issue + or record edit needed there. +reference_cache_original_hashes: + references_cache/PMID_41280275.md: e9b2350c84a165a5448055f5ce32481e50e75b9bbfa899d461b4c1bbfe53b22e + references_cache/PMID_42203120.md: 7b567b431f735bc1384c900944b5828baf891f73e51c02e45443529afd4da156 + references_cache/PMID_42543088.txt: 4d04c53d9685fe8b117a1fafe832b85d7ee8d492fda574d89fd693782abbbe8b +limitations: +- Three records reviewed; two changed with two histories and two gaps. Cordyceps is byte-unchanged and needs no + artificial arrow. +- Eight nodes and four arrows retained with four exact renames. No new structure or Edison spend. +- One complete primary main body and two complete abstracts reviewed. No figure images or supplementary files inspected. + No full copyrighted body added. +- 'Unrelated metadata and canonical taxa preserved, not certified; #1353/#1354 explicitly track remaining metadata + findings.' +- Copper and Coscinodiscus had baseline/source preparation only and remain pending; no review-completion claim for + them. +- Self-adversarial review is not independent approval or full-corpus completion. +records: +- path: kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml + id: CommunityMech:000453 + original_sha256: 2b61b970b93b4db345670df9f86f00ba299b29ba76cb56b99333fd8bf68e7c6d + record_sha256: 2b61b970b93b4db345670df9f86f00ba299b29ba76cb56b99333fd8bf68e7c6d + status: reviewed + outcome: unchanged + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml + scope: Whole record and every original node/arrow; source access bounded below. + summary: Retain the abstract-supported isolation of eight new and eleven known natural products. Coculture origin + is not proof of partner-dependent induction or reciprocal benefit; no such claim is present.; Retain selective + antibacterial activity of the assayed product subset against the four named test bacteria. The existing node + makes no universal compound-by-strain claim or fungal antagonism claim. No causal arrow is needed between two + descriptive isolation/assay endpoints without an induction or ecological-effect claim. + renamed_nodes: {} + node_decisions: + - node: Coculture-Derived Aromatic Natural Products + rationale: Retain the abstract-supported isolation of eight new and eleven known natural products. Coculture + origin is not proof of partner-dependent induction or reciprocal benefit; no such claim is present. + - node: Coculture-Derived Antibacterial Products + rationale: Retain selective antibacterial activity of the assayed product subset against the four named test + bacteria. The existing node makes no universal compound-by-strain claim or fungal antagonism claim. No causal + arrow is needed between two descriptive isolation/assay endpoints without an induction or ecological-effect + claim. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:42543088 + issues: [] + allowed_changed_fields: [] + curation_events_added: 0 + history_files: [] + source_review: + PMID:42543088: + url: https://pubmed.ncbi.nlm.nih.gov/42543088/ + reviewed_scope: Complete primary abstract only; publisher body inaccessible (403). No full Methods/Results + or supplementary-material claim. +- path: kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml + id: CommunityMech:000294 + original_sha256: 4226ad9fea30e5f9235f7cf8f39e2f5ec754fd6823df63f8b44c152962501c9d + record_sha256: 1522534e0e993cff111c4fcde85182868aeae81389cb47120d97a3882b88250d + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml + scope: Whole record and every original node/arrow; source access bounded below. + summary: Retain the measured external-additive response at coculture scope without asserting directed exchange + or syntrophy.; Represent Corynebacterium transcript response with its canonical source only and qualify inferred + flux and causal mediation.; Preserve distinct parent-strain and K1 intervention outcomes without assigning parent + results to the engineered derivative. + renamed_nodes: + Riboflavin-Mediated Redox Coupling: Riboflavin-Supplemented Coculture Response + Reprogrammed Corynebacterium Reductive TCA Flux: Corynebacterium Coculture Transcript Response + node_decisions: + - node: Riboflavin-Supplemented Coculture Response + rationale: Retain the measured external-additive response at coculture scope without asserting directed exchange + or syntrophy. + - node: Corynebacterium Coculture Transcript Response + rationale: Represent Corynebacterium transcript response with its canonical source only and qualify inferred + flux and causal mediation. + - node: Enhanced Succinic Acid Production + rationale: Preserve distinct parent-strain and K1 intervention outcomes without assigning parent results to + the engineered derivative. + edges_before: + - source: Riboflavin-Mediated Redox Coupling + target: Reprogrammed Corynebacterium Reductive TCA Flux + description: Coculture redox coupling leads into the transcriptome-level reinforcement of the C. glutamicum + electron transport system and reductive TCA flux. + - source: Reprogrammed Corynebacterium Reductive TCA Flux + target: Enhanced Succinic Acid Production + description: Redistribution toward the reductive TCA pathway and suppression of succinic-acid-consuming pathways + provide the immediate metabolic basis for higher succinic acid yield. + edges_after: + - source: Riboflavin-Supplemented Coculture Response + target: Corynebacterium Coculture Transcript Response + description: HYPOTHESIZED - altered coculture redox conditions could contribute to the Corynebacterium transcript + response. Additive screening and the transcriptomic interpretation support this candidate link, but the accessible + abstract does not selectively establish riboflavin-dependent electron transfer as its cause. + - source: Corynebacterium Coculture Transcript Response + target: Enhanced Succinic Acid Production + description: PARTIAL - the transcript-based interpretation is consistent with metabolic changes contributing + to increased succinic acid yield. Positive coculture, riboflavin and ldhA-deletion outcomes support the production + strategy, but do not selectively establish this transcript response or inferred flux redistribution as the + mediator of each yield comparison. + retained_edge_decisions: + - source: Riboflavin-Supplemented Coculture Response + target: Corynebacterium Coculture Transcript Response + rationale: HYPOTHESIZED - altered coculture redox conditions could contribute to the Corynebacterium transcript + response. Additive screening and the transcriptomic interpretation support this candidate link, but the accessible + abstract does not selectively establish riboflavin-dependent electron transfer as its cause. + - source: Corynebacterium Coculture Transcript Response + target: Enhanced Succinic Acid Production + rationale: PARTIAL - the transcript-based interpretation is consistent with metabolic changes contributing to + increased succinic acid yield. Positive coculture, riboflavin and ldhA-deletion outcomes support the production + strategy, but do not selectively establish this transcript response or inferred flux redistribution as the + mediator of each yield comparison. + removed_edge_decisions: [] + references: + - PMID:42203120 + issues: + - 1351 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml + source_review: + PMID:42203120: + url: https://pubmed.ncbi.nlm.nih.gov/42203120/ + reviewed_scope: Complete primary abstract only; publisher body inaccessible (403). No full Methods/Results + or supplementary-material claim. +- path: kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml + id: CommunityMech:000293 + original_sha256: a9cd17e6ecb847a4c0db764be949ecdf75a9af88ed2828a83f1822f88fb2c8ec + record_sha256: 5dc07af806fbaa10b2eb522c2e5221c404aabc6ff58ea1f9cec7062ba079f09e + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml + scope: Whole record and every original node/arrow; source access bounded below. + summary: Retain measured enzyme/transcript responses while distinguishing pathway annotation from direct IgA measurement + or microbial fitness.; Retain transcript/pathway and DAO observations without promoting them to protein, permeability + or selective mediation evidence.; Preserve SynCom survival and calibrated qPCR endpoints, separate from FMT + and from reciprocal microbial competition. + renamed_nodes: + SynCom activation of intestinal immune responses: SynCom-associated intestinal immune responses + SynCom reinforcement of epithelial barrier defenses: SynCom-associated intestinal barrier markers + node_decisions: + - node: SynCom-associated intestinal immune responses + rationale: Retain measured enzyme/transcript responses while distinguishing pathway annotation from direct IgA + measurement or microbial fitness. + - node: SynCom-associated intestinal barrier markers + rationale: Retain transcript/pathway and DAO observations without promoting them to protein, permeability or + selective mediation evidence. + - node: SynCom-mediated suppression of Aeromonas hydrophila + rationale: Preserve SynCom survival and calibrated qPCR endpoints, separate from FMT and from reciprocal microbial + competition. + edges_before: + - source: SynCom activation of intestinal immune responses + target: SynCom-mediated suppression of Aeromonas hydrophila + description: Immune activation by the simplified gut SynCom is a reported mechanism for the subsequent increase + in resistance to A. hydrophila challenge. + - source: SynCom reinforcement of epithelial barrier defenses + target: SynCom-mediated suppression of Aeromonas hydrophila + description: Gut-barrier reinforcement cooperates with immune activation to improve host resistance and reduce + A. hydrophila abundance after challenge. + edges_after: + - source: SynCom-associated intestinal immune responses + target: SynCom-mediated suppression of Aeromonas hydrophila + description: PARTIAL - prechallenge immune-associated responses could contribute to the improved survival and + reduced pathogen DNA loads after SynCom feeding. The treatment comparison supports protection, but no selective + immune blockade or rescue establishes these responses as necessary or sufficient mediators. + - source: SynCom-associated intestinal barrier markers + target: SynCom-mediated suppression of Aeromonas hydrophila + description: PARTIAL - altered barrier-associated transcripts could contribute to lower intestinal and kidney + pathogen DNA loads and improved survival after challenge. The SynCom treatment effect is measured, but marker + changes and ambiguous DAO activity do not isolate epithelial barrier function as the necessary mediator. + retained_edge_decisions: + - source: SynCom-associated intestinal immune responses + target: SynCom-mediated suppression of Aeromonas hydrophila + rationale: PARTIAL - prechallenge immune-associated responses could contribute to the improved survival and + reduced pathogen DNA loads after SynCom feeding. The treatment comparison supports protection, but no selective + immune blockade or rescue establishes these responses as necessary or sufficient mediators. + - source: SynCom-associated intestinal barrier markers + target: SynCom-mediated suppression of Aeromonas hydrophila + rationale: PARTIAL - altered barrier-associated transcripts could contribute to lower intestinal and kidney + pathogen DNA loads and improved survival after challenge. The SynCom treatment effect is measured, but marker + changes and ambiguous DAO activity do not isolate epithelial barrier function as the necessary mediator. + removed_edge_decisions: [] + references: + - PMID:41280275 + issues: + - 1352 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml + source_review: + PMID:41280275: + url: https://pmc.ncbi.nlm.nih.gov/articles/PMC12637255/ + path: /private/tmp/communitymech-batch24/PMC12637255.xml + sha256: daa2f38568db1c917f630d0abf5326625779758259a612d2c9a5e3a80a368fda + license: CC BY-NC-ND 4.0 + reviewed_scope: 'Complete primary main body: Introduction, Methods, Results, Discussion, Conclusion and displayed + captions. No figure images or supplementary files inspected; main-text reports of supplementary experiments + are not independent supplementary review.' diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 4dfccf681..816daee6e 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -121,10 +121,10 @@ kb/communities/Community_G_GenX_Biodegradation_Consortium.yaml CommunityMech:000 kb/communities/Composting_SynCom_Lignocellulose_Degradation_Humus.yaml CommunityMech:000277 16e496ddf18a513d3b3ca26c61999146cdf18b0675044ad7ae0d1425482ed270 3 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch23.yaml reviewed kb/communities/Coniochaeta_Sphingobacterium_Citrobacter_Wheat_Straw_Consortium.yaml CommunityMech:000195 eb6927ba0ac59c0884bc3f479f20606ca4ae1f80b0855c415759db879a03fd2f 4 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch23.yaml reviewed kb/communities/Copper_Biomining_Heap_Leach.yaml CommunityMech:000019 49e5dcc2b5ca5164ebb9437f56bddbb7806d97d8f04ee8b89d68d170ffd3c1e3 5 8 100.0 pending -kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml CommunityMech:000453 2b61b970b93b4db345670df9f86f00ba299b29ba76cb56b99333fd8bf68e7c6d 2 0 55.0 pending -kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml CommunityMech:000294 4226ad9fea30e5f9235f7cf8f39e2f5ec754fd6823df63f8b44c152962501c9d 3 2 100.0 pending +kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml CommunityMech:000453 2b61b970b93b4db345670df9f86f00ba299b29ba76cb56b99333fd8bf68e7c6d 2 0 55.0 reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml reviewed +kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml CommunityMech:000294 1522534e0e993cff111c4fcde85182868aeae81389cb47120d97a3882b88250d 3 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml reviewed kb/communities/Coscinodiscus_Synthetic_Community.yaml CommunityMech:000020 f92a79a6011428899eba0cc8e8de5bbd1410bb2e2e7e13b10593869ad1fd3b32 5 2 100.0 pending -kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml CommunityMech:000293 a9cd17e6ecb847a4c0db764be949ecdf75a9af88ed2828a83f1822f88fb2c8ec 3 2 100.0 pending +kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml CommunityMech:000293 5dc07af806fbaa10b2eb522c2e5221c404aabc6ff58ea1f9cec7062ba079f09e 3 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml reviewed kb/communities/Crystal_Geyser_CO2_Aquifer_CPR_Lipid_Community.yaml CommunityMech:000252 57f51f8d2b027fa5a47e9cb28eac879906288e696892879c71a63c2db1091662 3 2 100.0 pending kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml CommunityMech:000366 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e 2 0 70.0 pending kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml CommunityMech:000369 90f6ac24afc01d7d5b3d732f4c6d54a9cef8ed1df11e6fe63b8e9ebc8018e003 2 0 70.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 8bfeff986..7578237d0 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -8,8 +8,8 @@ "records_without_edges": 141, "review_status_counts": { "needs_research": 3, - "pending": 339, - "reviewed": 118 + "pending": 336, + "reviewed": 121 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261005-batch24.json b/reports/causal_graph_review/validation-20261005-batch24.json new file mode 100644 index 000000000..caf1f9240 --- /dev/null +++ b/reports/causal_graph_review/validation-20261005-batch24.json @@ -0,0 +1,631 @@ +{ + "base_commit": "ee38b8f0a6166f3d56dbf9ec07ac3afbabe2d1eb", + "scope": [ + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Cordyceps_Malbranchea_Antimicrobial_Coculture-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Cordyceps_Malbranchea_Antimicrobial_Coculture-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Cordyceps_Malbranchea_Antimicrobial_Coculture-strict.tsv", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Cordyceps_Malbranchea_Antimicrobial_Coculture-strict.tsv\n" + }, + { + "check": "Cordyceps_Malbranchea_Antimicrobial_Coculture-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Cordyceps_Malbranchea_Antimicrobial_Coculture-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Cordyceps_Malbranchea_Antimicrobial_Coculture-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 7 evidence snippets scanned across 1 files\n MATCH 7\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": "Cordyceps_Malbranchea_Antimicrobial_Coculture-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000453\",\n \"name\": \"Cordyceps-Malbranchea Antimicrobial Coculture\",\n \"score\": 55.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 2,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 2,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml\"\n }\n]\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-strict.tsv", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-strict.tsv\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 7 evidence snippets scanned across 1 files\n MATCH 7\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": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000294\",\n \"name\": \"Corynebacterium glutamicum + Shewanella oneidensis Succinic-acid Co-culture\",\n \"score\": 90.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture.yaml\"\n }\n]\n" + }, + { + "check": "Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture-history-0", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Coculture/2026-10-06T022828Z-codex-9a496b.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Crucian_Carp_Gut_Disease_Resistance_SynCom-schema", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "Crucian_Carp_Gut_Disease_Resistance_SynCom-strict", + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Crucian_Carp_Gut_Disease_Resistance_SynCom-strict.tsv", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Crucian_Carp_Gut_Disease_Resistance_SynCom-strict.tsv\n" + }, + { + "check": "Crucian_Carp_Gut_Disease_Resistance_SynCom-terms", + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Crucian_Carp_Gut_Disease_Resistance_SynCom-references-explained", + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "Validating kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.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": "Crucian_Carp_Gut_Disease_Resistance_SynCom-snippets", + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "# 10 evidence snippets scanned across 1 files\n MATCH 10\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": "Crucian_Carp_Gut_Disease_Resistance_SynCom-rank", + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000293\",\n \"name\": \"Crucian Carp Gut Disease-resistance SynCom\",\n \"score\": 90.0,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml\"\n }\n]\n" + }, + { + "check": "Crucian_Carp_Gut_Disease_Resistance_SynCom-history-0", + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Crucian_Carp_Gut_Disease_Resistance_SynCom/2026-10-06T022828Z-codex-90c7a0.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1474,\n \"edges\": 710,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 141,\n \"review_status_counts\": {\n \"needs_research\": 3,\n \"pending\": 336,\n \"reviewed\": 121\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "command": [ + "python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "output": "Pinus massoniana' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Protective Enzyme and Resistance-Gene Activation\",\n \"interaction_index\": 2,\n \"taxon\": \"Pinus massoniana\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Pinus massoniana' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Brocadia_Low_Nitrogen_Anammox_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Ca. Kuenenia early-acclimation lineage\",\n \"taxon_id\": \"NCBITaxon:380738\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Ca. Kuenenia early-acclimation lineage\",\n \"term\": {\n \"id\": \"NCBITaxon:380738\",\n \"label\": \"Candidatus Kuenenia\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Ca. Kuenenia was resolved at genus level as an early-acclimation anammox lineage that was ultimately replaced by Ca. Brocadia.\"\n },\n \"functional_role\": [\n \"PRIMARY_PRODUCER\"\n ],\n \"evidence\": [\n {\n \"reference\": \"PMID:42323145\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"During early acclimation, Ca. Kuenenia reduced the expression of costly biosynthetic pathways\",\n \"explanation\": \"Supports Ca. Kuenenia as the early-acclimation lineage tracked in the biofilter succession study.\"\n }\n ]\n },\n \"message\": \"Taxon 'Ca. Kuenenia early-acclimation lineage' has no interactions\"\n }\n ],\n \"Mangrove_Benzene_MFC_Bioanode_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pelobacter\",\n \"taxon_id\": \"NCBITaxon:18\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pelobacter\",\n \"term\": {\n \"id\": \"NCBITaxon:18\",\n \"label\": \"Pelobacter\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pelobacter was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 2.22,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pelobacter as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pelobacter' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas\",\n \"taxon_id\": \"NCBITaxon:286\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas\",\n \"term\": {\n \"id\": \"NCBITaxon:286\",\n \"label\": \"Pseudomonas\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pseudomonas was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 0.87,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pseudomonas as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas' has no interactions\"\n }\n ],\n \"Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Legionella MAGs\",\n \"taxon_id\": \"NCBITaxon:445\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n" + }, + { + "check": "render", + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "render-repeat", + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "regressions", + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch10.py", + "tests/test_causal_review_batch11.py", + "tests/test_causal_review_batch12.py", + "tests/test_causal_review_batch13.py", + "tests/test_causal_review_batch14.py", + "tests/test_causal_review_batch15.py", + "tests/test_causal_review_batch16.py", + "tests/test_causal_review_batch17.py", + "tests/test_causal_review_batch18.py", + "tests/test_causal_review_batch19.py", + "tests/test_causal_review_batch20.py", + "tests/test_causal_review_batch21.py", + "tests/test_causal_review_batch22.py", + "tests/test_causal_review_batch23.py", + "tests/test_causal_review_batch24.py", + "tests/test_causal_review_batch5.py", + "tests/test_causal_review_batch6.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_causal_review_inventory.py", + "tests/test_rank_causal_graph_readiness.py", + "tests/test_network_auditor.py", + "tests/test_participating_taxa.py", + "tests/test_causal_descriptions_are_published.py", + "tests/test_published_pages_name_real_records.py", + "tests/test_reference_validator_actually_validates.py", + "tests/test_snippet_audit_artefact_classes.py", + "tests/test_reference_error_annotation.py", + "tests/test_community_level_connectivity_credit.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "........................................................................ [ 25%]\n........................................................................ [ 50%]\n........................................................................ [ 75%]\n..................................................................... [100%]\n285 passed in 190.25s (0:03:10)\n" + }, + { + "check": "workspace-rights", + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "... [100%]\n3 passed in 1.56s\n" + }, + { + "check": "black", + "command": [ + "black", + "--check", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "ruff", + "check", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "" + } + ], + "limitations": [ + "Three records reviewed; two changed with two histories and two gaps. Cordyceps is byte-unchanged and needs no artificial arrow.", + "Eight nodes and four arrows retained with four exact renames. No new structure or Edison spend.", + "One complete primary main body and two complete abstracts reviewed. No figure images or supplementary files inspected. No full copyrighted body added.", + "Unrelated metadata and canonical taxa preserved, not certified; #1353/#1354 explicitly track remaining metadata findings.", + "Copper and Coscinodiscus had baseline/source preparation only and remain pending; no review-completion claim for them.", + "Self-adversarial review is not independent approval or full-corpus completion.", + "Baseline just audit-network-json lacked its console entry point; exact repository CLI used without dependency edits.", + "Generated pages verified by deterministic rendering and exact parsed descriptions, not browser screenshots.", + "Issue dedup covered 687 all-state titles/bodies and ignored/hidden local files; comments not exhaustive." + ], + "unchanged_raw_blocks": 36, + "reference_caches_unchanged": true, + "corpus_sentinels_unchanged": true, + "connectivity_survey_before": { + "records": 460, + "with_community_level": 389, + "mixed": 122, + "community_level_only": 267, + "taxa": 1499, + "credited_solely_by_the_rule": 1220 + }, + "new_network_warnings": [], + "render_determinism": "passed", + "published_description_coverage": { + "pages": 456, + "node_descriptions": 1460, + "edge_descriptions": 702 + }, + "rights_import_root_verified": true, + "connectivity_survey": { + "records": 460, + "with_community_level": 389, + "mixed": 122, + "community_level_only": 267, + "taxa": 1499, + "credited_solely_by_the_rule": 1221 + }, + "connectivity_delta": { + "records": 0, + "with_community_level": 0, + "mixed": 0, + "community_level_only": 0, + "taxa": 0, + "credited_solely_by_the_rule": 1 + }, + "snippet_counts": { + "MATCH": 24, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1474, + "edges": 710, + "records_without_nodes": 8, + "records_without_edges": 141, + "review_status_counts": { + "needs_research": 3, + "pending": 336, + "reviewed": 121 + }, + "structural_defects": [] + }, + "network_warning_count": 25, + "status": "passed", + "remediation": { + "finding": "Ruff B905: zip without explicit strict parameter in new test.", + "change": "Add strict=True to the single zip(rows, docs) loop; no record, cache, history or rendering change.", + "original_failed_checks": [ + { + "check": "ruff", + "command": [ + "ruff", + "check", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 1, + "expected_exit_codes": [ + 0 + ], + "output": "B905 `zip()` without an explicit `strict=` parameter\n --> tests/test_causal_review_batch24.py:124:21\n |\n122 | assert not any(r[\"removed_edge_decisions\"] for r in rows)\n123 | assert sum(len(r[\"history_files\"]) for r in rows) == 2\n124 | for row, doc in zip(rows, docs):\n | ^^^^^^^^^^^^^^^\n125 | assert hashlib.sha256((ROOT / row[\"path\"]).read_bytes()).hexdigest() == row[\"record_sha256\"]\n126 | nodes = doc[\"ecological_interactions\"]\n |\nhelp: Add explicit value for parameter `strict=`\n\nFound 1 error.\nNo fixes available (1 hidden fix can be enabled with the `--unsafe-fixes` option).\n" + } + ], + "verification": [ + { + "check": "focused-after-lint-fix", + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "....... [100%]\n7 passed in 0.58s\n" + }, + { + "check": "black", + "command": [ + "black", + "--check", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "ruff", + "check", + "tests/test_causal_review_batch24.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "output": "" + } + ], + "full_regression_scope": "285 tests passed before the one-line test-only lint correction; all seven affected tests passed again afterward." + } +} diff --git a/tests/test_causal_review_batch24.py b/tests/test_causal_review_batch24.py new file mode 100644 index 000000000..196a6ff39 --- /dev/null +++ b/tests/test_causal_review_batch24.py @@ -0,0 +1,144 @@ +"""Preserve measured treatments, bounded mediation and a genuine no-change review.""" + +import hashlib +from collections import Counter +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261005-three-records-batch24.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_cordyceps_is_an_unchanged_bounded_endpoint_graph(): + ledger, docs = records() + row, doc = ledger["records"][0], docs[0] + assert row["outcome"] == "unchanged" + assert row["original_sha256"] == row["record_sha256"] + assert row["history_files"] == row["allowed_changed_fields"] == row["issues"] == [] + assert row["curation_events_added"] == 0 + assert len(doc["ecological_interactions"]) == 2 + assert not any(n.get("downstream") for n in doc["ecological_interactions"]) + assert all("interaction_type" not in n for n in doc["ecological_interactions"]) + assert "weak to moderate selective" in doc["ecological_interactions"][1]["description"] + + +def test_succinate_additive_is_external_and_transcript_response_is_source_only(): + _, docs = records() + doc = docs[1] + redox, transcript, output = doc["ecological_interactions"] + assert redox["scope"] == output["scope"] == "COMMUNITY_LEVEL" + assert redox["participating_taxa"] == output["participating_taxa"] + assert not {"source_taxon", "target_taxon", "interaction_type"} & redox.keys() + assert "externally supplied riboflavin" in redox["description"] + assert "not resolve every additive/transcript assay to K1" in redox["description"] + assert transcript["scope"] == "PAIRWISE" + assert transcript["source_taxon"]["term"]["id"] == "NCBITaxon:1718" + assert not {"target_taxon", "participating_taxa", "interaction_type"} & transcript.keys() + assert "not directly traced carbon or electron flux" in transcript["description"] + assert transcript["evidence"][0]["supports"] == "PARTIAL" + assert redox["downstream"][0]["target"] == transcript["name"] + assert redox["downstream"][0]["description"].startswith("HYPOTHESIZED") + assert transcript["downstream"][0]["target"] == output["name"] + assert transcript["downstream"][0]["description"].startswith("PARTIAL") + + +def test_succinate_parent_and_k1_outcomes_are_separate_and_positive(): + _, docs = records() + output = docs[1]["ecological_interactions"][2] + for phrase in [ + "parent-strain coculture yield of 0.169 g/g, 45.65%", + "ldhA deletion abolished lactate formation in K1", + "0.686 g/g", + "up to 23.4% higher yield during extended fermentation", + "do not establish thermodynamic syntrophy", + ]: + assert phrase in output["description"] + assert output["evidence"][0]["supports"] == "SUPPORT" + assert all("interaction_type" not in n for n in docs[1]["ecological_interactions"]) + + +def test_fish_immune_and_barrier_measurements_do_not_prove_mediation(): + _, docs = records() + immune, barrier, output = docs[2]["ecological_interactions"] + for node in [immune, barrier, output]: + assert node["scope"] == "COMMUNITY_LEVEL" + assert not {"source_taxon", "target_taxon", "interaction_type"} & node.keys() + assert {p["term"]["id"] for p in node["participating_taxa"]} == { + "NCBITaxon:180162", + "NCBITaxon:1849822", + "NCBITaxon:286", + } + assert "increased intestinal SOD, CAT, ACP and lysozyme" in immune["description"] + assert "KEGG pathway annotation, not a direct IgA production assay" in immune["description"] + assert "zo-1, occludin and claudin12 transcript levels" in barrier["description"] + assert "DAO activity also increased" in barrier["description"] + assert "not an unambiguous improvement in permeability" in barrier["description"] + assert "not direct barrier-protein abundance" in barrier["description"] + for node in [immune, barrier]: + assert node["downstream"][0]["target"] == output["name"] + assert node["downstream"][0]["description"].startswith("PARTIAL") + + +def test_fish_protection_keeps_qpcr_and_syncom_versus_fmt_boundaries(): + _, docs = records() + output = docs[2]["ecological_interactions"][2] + for phrase in [ + "60% survival versus 32.5%", + "calibrated qPCR Aeromonas DNA loads", + "not merely relative 16S profiles or viable-pathogen counts", + "FMT survival comparison (66.7% versus 36.7%) is not the SynCom result", + ]: + assert phrase in output["description"] + assert output["evidence"][0]["supports"] == "SUPPORT" + + +def test_batch24_source_access_and_metadata_followups_are_explicit(): + ledger, docs = records() + assert ledger["independent_approval"] is False + assert ledger["open_nongraph_followups"] == [1353, 1354] + for row in ledger["records"][:2]: + source = next(iter(row["source_review"].values())) + assert "Complete primary abstract only" in source["reviewed_scope"] + source = ledger["records"][2]["source_review"]["PMID:41280275"] + assert "Complete primary main body" in source["reviewed_scope"] + assert "No figure images or supplementary files inspected" in source["reviewed_scope"] + assert "#1354" in docs[1]["discussions"][0]["rationale"] + assert "#1353" in docs[2]["discussions"][0]["rationale"] + + +def test_batch24_accounts_for_every_node_arrow_history_and_cache(): + ledger, docs = records() + rows = ledger["records"] + assert len(rows) == 3 + assert sum(len(r["node_decisions"]) for r in rows) == 8 + assert sum(len(r["retained_edge_decisions"]) for r in rows) == 4 + assert sum(len(r["renamed_nodes"]) for r in rows) == 4 + assert not any(r["removed_edge_decisions"] for r in rows) + assert sum(len(r["history_files"]) for r in rows) == 2 + for row, doc in zip(rows, docs, strict=True): + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + nodes = doc["ecological_interactions"] + names = {n["name"] for n in nodes} + assert Counter(d["node"] for d in row["node_decisions"]) == Counter(names) + edges = [{"source": n["name"], **e} for n in nodes for e in n.get("downstream", [])] + assert edges == row["edges_after"] + rename = row["renamed_nodes"] + assert {(e["source"], e["target"]) for e in edges} == { + (rename.get(e["source"], e["source"]), rename.get(e["target"], e["target"])) + for e in row["edges_before"] + } + assert all( + a.split("#", 1)[1] in names + for d in doc.get("discussions", []) + for a in d.get("attaches_to", []) + if a.startswith("ecological_interactions#") + ) + assert len(ledger["reference_cache_original_hashes"]) == 3 + for path, expected in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected