diff --git a/docs/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.html b/docs/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.html
index cbdc1c0e1..629fb3998 100644
--- a/docs/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.html
+++ b/docs/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.html
@@ -563,7 +563,7 @@
"strong competitive metabolic advantage of T. thermosaccharolyticum GD17 over C. thermocellum JN4"
@@ -742,9 +738,8 @@ "T. thermosaccharolyticum GD17 significantly hampers the growth of C. thermocellum JN4"
@@ -805,7 +799,7 @@ "relieves the carbon catabolite repression of C. thermocellum JN4"
@@ -818,7 +812,7 @@ C. thermocellum hydrolyzes crystalline cellulose during a thermophilic preincubation, creating a substrate stream that supports subsequent butanol production by C. saccharoperbutylacetonicum N1-4.
+ C. thermocellum preincubation on crystalline cellulose before N1-4 addition supports later butanol production, consistent with soluble-carbon cross-feeding. Cellulose is the feedstock and butanol the output, not the transfer currencies. PARTIAL - timing and temperature are coupled, and the N1-4 inoculum medium contains glucose; the intervention does not selectively quantify cellulose-derived transfer or explain solvent selectivity.
"other ions present in seawater, not sulfate, drive ecological and biogeochemical responses"
@@ -756,13 +748,10 @@
-
Genes associated with carbon, nitrogen, and phosphorus cycling responded more strongly to artificial seawater than to sulfate alone, indicating a broader ionic control on microbial functional potential.
-
+
Shotgun DNA metagenomes showed relative abundances of carbon-, nitrogen- and phosphorus-cycling genes responding more strongly to artificial-seawater mixtures than sulfate alone. These are community functional-potential measurements, not transcript abundance, pathway activity or proof that the correlated genes mediate gas flux.
-
Source Taxon: coastal wetland carbon nitrogen phosphorus cycling guilds
@@ -891,10 +877,9 @@
Evidence
-
The microcosm measured carbon dioxide, methane, and nitrous oxide emissions in response to ion treatments, linking microbial community shifts to greenhouse gas feedbacks from coastal wetland salinization.
+
Week-12 whole-core net CO2, CH4 and N2O fluxes were measured. CO2 had a significant overall treatment and non-sulfate-factor effect but no significant individual pairwise contrasts. CH4 was higher without sulfate than in the water control or sulfate-only treatment; complete artificial seawater was intermediate. N2O was lower in every amended arm, including sulfate-only, than in the control. These outcomes do not directly partition microbial production and consumption pathways.
@@ -952,7 +937,7 @@
Evidence
PMID:38628812
- - SUPPORT (IN_VITRO)
+ - PARTIAL (IN_VITRO)
"may be drivers of increased methane emissions in soils that received artificial seawater addition"
@@ -968,6 +953,25 @@
Evidence
+
+ Knowledge gaps & discussions (1)
+
+
+
+ KNOWLEDGE_GAP
+ OPEN
+ Which ions and microbial processes mediate the treatment-specific net gas responses?
+
+
Controlled ion-mixture exposure supports causal treatment effects, but not isolated sodium chloride action. Relative DNA gene counts and guild correlations do not measure activity or establish mediation. Selective ion and pathway interventions with production/consumption measurements would resolve mechanisms. Week-12 gene features and day-14 water chemistry must remain separate; the sulfate-only N2O contrast prevents an unqualified no-gas-effect claim.
+
+
Attaches to: ecological_interactions#Experimental Seawater-Ion Exposure, ecological_interactions#Week-12 Sulfate-Reduction Feature Response, ecological_interactions#Relative Carbon Nitrogen And Phosphorus Gene Abundances, ecological_interactions#Week-12 Greenhouse-Gas Flux Response
+
+
+
+
+
+
+
@@ -1541,7 +1545,7 @@
Evidence
(function() {
var intId = "interaction:0";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1564,7 +1568,7 @@
Evidence
nodes.push({
id: intId,
- label: "Non-Sulfate Seawater Ions Drive Community And Emission Responses",
+ label: "Experimental Seawater-Ion Exposure",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1579,7 +1583,7 @@
Evidence
(function() {
var intId = "interaction:1";
- var intType = "COMPETITION";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1596,7 +1600,7 @@
Evidence
nodes.push({
id: intId,
- label: "Sulfate Alone Does Not Enrich Sulfate-Reduction Features",
+ label: "Week-12 Sulfate-Reduction Feature Response",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1605,18 +1609,13 @@
Evidence
});
- var srcKey = "coastal wetland sulfate-reducing bacteria";
- if (taxonNodeIds[srcKey]) {
- links.push({ source: taxonNodeIds[srcKey], target: intId });
- }
-
})();
(function() {
var intId = "interaction:2";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1635,7 +1634,7 @@
Evidence
nodes.push({
id: intId,
- label: "Artificial Seawater Alters Carbon Nitrogen And Phosphorus Gene Response",
+ label: "Relative Carbon Nitrogen And Phosphorus Gene Abundances",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
@@ -1644,18 +1643,13 @@
Evidence
});
- var srcKey = "coastal wetland carbon nitrogen phosphorus cycling guilds";
- if (taxonNodeIds[srcKey]) {
- links.push({ source: taxonNodeIds[srcKey], target: intId });
- }
-
})();
(function() {
var intId = "interaction:3";
- var intType = "NICHE_PARTITIONING";
+ var intType = "UNKNOWN";
var metabolites = [];
@@ -1674,7 +1668,7 @@
Evidence
nodes.push({
id: intId,
- label: "Seawater-Ion Perturbation Of Greenhouse Gas Outputs",
+ label: "Week-12 Greenhouse-Gas Flux Response",
type: "interaction",
interactionType: intType,
metabolites: metabolites,
diff --git a/history/records/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture/2026-10-06T012901Z-codex-8cf494.yaml b/history/records/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture/2026-10-06T012901Z-codex-8cf494.yaml
new file mode 100644
index 000000000..79f54c3f3
--- /dev/null
+++ b/history/records/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture/2026-10-06T012901Z-codex-8cf494.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
+ slug: Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture
+session:
+ id: 2026-10-06T012901Z-codex-8cf494
+ timestamp: '2026-10-06T01:29:01Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1340
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Represent enhanced fermentation products with both canonical participants; retain
+ the lack of improved overall cellulose utilization.; Preserve metabolic advantage and
+ resource competition without unsupported reciprocal-harm typing or directly traced flux.;
+ Retain the stimulant intervention and estimated JN4 suppression while bounding viability,
+ added-carbon and product-mediation claims.
+ details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
diff --git a/history/records/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture/2026-10-06T012901Z-codex-34de6d.yaml b/history/records/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture/2026-10-06T012901Z-codex-34de6d.yaml
new file mode 100644
index 000000000..a3db5b581
--- /dev/null
+++ b/history/records/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture/2026-10-06T012901Z-codex-34de6d.yaml
@@ -0,0 +1,28 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
+ slug: Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture
+session:
+ id: 2026-10-06T012901Z-codex-34de6d
+ timestamp: '2026-10-06T01:29:01Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1341
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain proposed soluble-carbon cross-feeding and the positive staging control,
+ with temperature and inoculum-carbon limits.; Represent selective solvent output with
+ both participants, retaining the acetone and enzyme controls without inferred donation
+ or pathway shutdown.; Retain lower hydrogen as a community association and an explicitly
+ hypothesized redox contribution, not hydrogen transfer.
+ details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
diff --git a/history/records/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community/2026-10-06T012901Z-codex-726bcf.yaml b/history/records/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community/2026-10-06T012901Z-codex-726bcf.yaml
new file mode 100644
index 000000000..33c4729d2
--- /dev/null
+++ b/history/records/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community/2026-10-06T012901Z-codex-726bcf.yaml
@@ -0,0 +1,29 @@
+history_version: 1
+target:
+ kind: record
+ path: kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
+ slug: Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community
+session:
+ id: 2026-10-06T012901Z-codex-726bcf
+ timestamp: '2026-10-06T01:29:01Z'
+ actors:
+ - type: ai_agent
+ name: codex
+ model: unspecified
+ agent_tool: codex
+links:
+ issues:
+ - https://github.com/CultureBotAI/CommunityMech/issues/1342
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - interactions
+ - discussions
+ summary: Retain the controlled four-arm perturbation without unsupported niche-partitioning
+ or single-ion attribution.; Bound the sulfate feature null to the measured relative abundances
+ and week; preserve sulfate exposure and hydrogen-sulfide observations.; Keep relative
+ DNA functional-potential measurements distinct from transcription, activity and causal
+ mediation.; Preserve gas-specific factorial and pairwise outcomes without converting net
+ emissions into individual pathway flux.
+ details: Source-based self-adversarial graph repairs; no new nodes/arrows. reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
diff --git a/kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml b/kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
index 0e19d7f2f..8c5566e23 100644
--- a/kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
+++ b/kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
@@ -234,26 +234,18 @@ related_ingredients:
snippet: "two potential stimulants for T. thermosaccharolyticum GD17 were selected: dextrin and sucrose"
explanation: Sucrose is a selective stimulant for GD17 used to tune the consortium.
ecological_interactions:
-- name: Cellulosic Biofuel Efficiency Enhancement
- description: Coculturing C. thermocellum JN4 with T. thermosaccharolyticum GD17 improves overall
- cellulosic biofuel production efficiency.
- interaction_type: CROSS_FEEDING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Clostridium thermocellum JN4
- term:
- id: NCBITaxon:1515
- label: Acetivibrio thermocellus
- target_taxon:
- preferred_term: Thermoanaerobacterium thermosaccharolyticum GD17
- term:
- id: NCBITaxon:1517
- label: Thermoanaerobacterium thermosaccharolyticum
+- name: Enhanced Community Fermentation Products
+ description: The JN4-GD17 coculture produced more lactate, acetate and ethanol than JN4 alone in the reported
+ cellulose experiments, without improved overall cellulose utilization. This is a community product outcome,
+ not cellulose donation. Cellulose is the feedstock; soluble glucose and cellobiose are the proposed exchanged
+ carbon.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: cellulose
term:
id: CHEBI:18246
label: (1->4)-beta-D-glucan
+ notes: Upstream feedstock, not the proposed soluble transfer currency or a measured product.
biological_processes:
- preferred_term: cellulose catabolic process
term:
@@ -268,11 +260,22 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: coculture significantly improves overall cellulosic biofuel production efficiency
- explanation: Supports improved cellulosic biofuel production in the two-member coculture.
+ explanation: Supports improved fermentation output; the primary Results separately show that overall cellulose
+ utilization did not improve.
+ participating_taxa:
+ - preferred_term: Clostridium thermocellum JN4
+ term:
+ id: NCBITaxon:1515
+ label: Acetivibrio thermocellus
+ - preferred_term: Thermoanaerobacterium thermosaccharolyticum GD17
+ term:
+ id: NCBITaxon:1517
+ label: Thermoanaerobacterium thermosaccharolyticum
- name: GD17 Competitive Conversion of Released Sugars
- description: T. thermosaccharolyticum GD17 has a competitive metabolic advantage over C. thermocellum
- JN4 in converting glucose or cellobiose into final fermentation products.
- interaction_type: COMPETITION
+ description: GD17 consumed glucose and cellobiose and produced fermentation products faster than JN4 in separate
+ monoculture assays. Low soluble sugars and altered cellulolytic-gene transcription in coculture support a resource-competition
+ model. PARTIAL - these measurements do not directly partition partner carbon flux or establish reciprocal harm
+ required by the COMPETITION enum.
scope: PAIRWISE
source_taxon:
preferred_term: Thermoanaerobacterium thermosaccharolyticum GD17
@@ -299,26 +302,28 @@ ecological_interactions:
id: GO:0006113
label: fermentation
downstream:
- - target: Cellulosic Biofuel Efficiency Enhancement
- description: >
- GD17 capture and conversion of cellobiose or glucose released from
- lignocellulose accounts for the increased formation of fermentation end
- products in the cellulosic biofuel coculture.
+ - target: Enhanced Community Fermentation Products
+ description: PARTIAL - faster GD17 conversion of JN4-released soluble sugars can contribute to higher community
+ fermentation output. Monoculture conversion assays and coculture product measurements support this model,
+ but do not directly measure the partner-specific contribution.
evidence:
- reference: PMID:31551972
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: strong competitive metabolic advantage of T. thermosaccharolyticum GD17 over C. thermocellum JN4
- explanation: Supports competitive interaction between GD17 and JN4.
+ explanation: Supports comparative metabolic advantage and the resource-competition interpretation, not a demonstrated
+ negative effect on both partners.
- reference: PMID:31551972
supports: SUPPORT
evidence_source: IN_VITRO
snippet: conversion of glucose or cellobiose into final products
- explanation: Supports glucose and cellobiose as metabolites involved in the competitive conversion.
+ explanation: Supports the glucose and cellobiose conversion context; direct coculture transfer flux was not
+ traced.
- name: GD17 Growth Inhibition of JN4
- description: Despite relieving carbon catabolite repression, T. thermosaccharolyticum GD17 hampers
- C. thermocellum JN4 growth in coculture.
- interaction_type: COMPETITION
+ description: JN4 biomass estimated from total protein and genomic community proportions was lower in coculture;
+ this is not a direct viable-cell count. Dextrin or sucrose addition favored GD17 and largely stopped cellulose
+ use. PARTIAL - the positive perturbation supports community rebalancing, but also adds carbon and changes sampling
+ time, so it does not selectively isolate growth suppression or prove reciprocal harm.
scope: PAIRWISE
source_taxon:
preferred_term: Thermoanaerobacterium thermosaccharolyticum GD17
@@ -336,27 +341,29 @@ ecological_interactions:
id: GO:0044419
label: biological process involved in interspecies interaction between organisms
downstream:
- - target: Cellulosic Biofuel Efficiency Enhancement
- description: >
- GD17-driven suppression of the cellulolytic JN4 population can rebalance
- the coculture away from cellulose degradation, making that competition a
- negative regulator of net cellulosic biofuel formation.
+ - target: Enhanced Community Fermentation Products
+ description: PARTIAL - reduced JN4 biomass and cellulose use can constrain the cellulose-derived contribution
+ to community products. Stimulant-driven rebalancing supports this possibility, not a measured reduction of
+ total fermentation products or a resolved carbon balance when extra substrate is supplied.
evidence:
- reference: PMID:31551972
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: T. thermosaccharolyticum GD17 significantly hampers the growth of C. thermocellum JN4
- explanation: Supports the inhibitory effect of GD17 on JN4 growth.
+ explanation: Supports the inferred JN4 growth effect; the primary assay estimates biomass from protein and genomic
+ proportions, not direct viable counts.
- reference: PMID:31551972
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: relieves the carbon catabolite repression of C. thermocellum JN4
- explanation: Supports the narrower mechanism that GD17 can also relieve carbon catabolite repression.
+ explanation: Supports proposed relief of carbon repression, complemented by sugar concentrations, transcription
+ and glucose-addition controls; it does not negate growth suppression.
- reference: PMID:31551972
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: re-balanced cocultures largely stopped degrading cellulose
- explanation: Supports the link between GD17-biased community structure and loss of cellulose degradation.
+ explanation: Preserves the positive stimulant intervention while distinguishing reduced cellulose use from total
+ product output with added carbon.
cultivation_setup:
- cultivation_mode: BATCH
system_type: SERUM_BOTTLE
@@ -486,3 +493,27 @@ rare_earth_elements_present: []
metal_relevance: NOT_APPLICABLE
metal_notes: >
No metal or rare earth element processing role is curated for this cellulosic biofuel coculture.
+discussions:
+- discussion_id: jn4_gd17_flux_and_growth_partition
+ prompt: How do GD17 sugar conversion and JN4 suppression separately determine cellulose-derived product flux?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Enhanced Community Fermentation Products
+ - ecological_interactions#GD17 Competitive Conversion of Released Sugars
+ - ecological_interactions#GD17 Growth Inhibition of JN4
+ rationale: Monoculture rates, coculture products, sugar concentrations and transcription support the proposed
+ model. Protein-based biomass estimates and added-substrate rebalancing are not selective viable-growth or flux
+ measurements. Partner-resolved carbon tracing and matched-carbon perturbations would distinguish conversion
+ benefit from suppression without assuming reciprocal harm.
+ posed_by: codex
+ posed_date: '2026-10-05'
+curation_history:
+- timestamp: '2026-10-06T01:29:00Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Represent enhanced fermentation products with both canonical participants; retain the lack of improved
+ overall cellulose utilization.; Preserve metabolic advantage and resource competition without unsupported reciprocal-harm
+ typing or directly traced flux.; Retain the stimulant intervention and estimated JN4 suppression while bounding
+ viability, added-carbon and product-mediation claims. Issue #1340; reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml b/kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
index bce8a7eab..6589be87e 100644
--- a/kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
+++ b/kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
@@ -108,8 +108,10 @@ taxonomy:
explanation: Supports N1-4 as the preferred butanol producer in this coculture system.
ecological_interactions:
- name: Staged Cellulose Hydrolysis Feeding Solventogenesis
- description: C. thermocellum hydrolyzes crystalline cellulose during a thermophilic preincubation, creating
- a substrate stream that supports subsequent butanol production by C. saccharoperbutylacetonicum N1-4.
+ description: C. thermocellum preincubation on crystalline cellulose before N1-4 addition supports later butanol
+ production, consistent with soluble-carbon cross-feeding. Cellulose is the feedstock and butanol the output,
+ not the transfer currencies. PARTIAL - timing and temperature are coupled, and the N1-4 inoculum medium contains
+ glucose; the intervention does not selectively quantify cellulose-derived transfer or explain solvent selectivity.
interaction_type: CROSS_FEEDING
scope: PAIRWISE
source_taxon:
@@ -127,10 +129,12 @@ ecological_interactions:
term:
id: CHEBI:18246
label: (1->4)-beta-D-glucan
+ notes: Upstream crystalline feedstock; soluble hydrolysis products are the proposed transfer currency.
- preferred_term: butanol
term:
id: CHEBI:28885
label: butan-1-ol
+ notes: Measured solvent output, not demonstrated donation between partners.
biological_processes:
- preferred_term: cellulose catabolic process
term:
@@ -142,36 +146,29 @@ ecological_interactions:
label: fermentation
downstream:
- target: Selective Butanol Production With Low Acetone
- description: >
- C. thermocellum prehydrolysis of crystalline cellulose creates the
- substrate stream that feeds subsequent N1-4 solventogenesis and selective
- butanol production.
+ description: PARTIAL - preincubation supplies hydrolysis products that can support N1-4 solventogenesis. The
+ staged-versus-simultaneous comparison supports this process contribution, while coupled temperature changes
+ and glucose carried in with the inoculum prevent selective flux attribution or a complete explanation of low
+ acetone.
evidence:
- reference: PMID:21764954
supports: SUPPORT
evidence_source: IN_VITRO
snippet: Butanol was produced from Avicel cellulose
- explanation: Supports cellulose-to-butanol conversion as the coculture output.
+ explanation: Supports the measured cellulose-fed coculture output, not exclusive cellulose-carbon attribution
+ or directly traced sugar transfer.
- reference: PMID:21764954
supports: SUPPORT
evidence_source: IN_VITRO
snippet: after it was incubated with C. thermocellum for at least 24 h
- explanation: Supports the staged hydrolysis-before-solventogenesis interaction design.
+ explanation: Supports the positive staging intervention; it is not a selective enzyme or transferred-metabolite
+ perturbation.
- name: Selective Butanol Production With Low Acetone
- description: The C. thermocellum and N1-4 coculture favored butanol as a solvent product, with acetone
- undetectable or very low in the reported coculture studies.
- interaction_type: CROSS_FEEDING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Clostridium saccharoperbutylacetonicum N1-4
- term:
- id: NCBITaxon:1335640
- label: Clostridium saccharoperbutylacetonicum N1-4
- target_taxon:
- preferred_term: Clostridium thermocellum ATCC 27405
- term:
- id: NCBITaxon:203119
- label: Acetivibrio thermocellus ATCC 27405
+ description: Butanol was the favored solvent in the reported coculture, with acetone undetectable in the 2011
+ experiment and very low in the 2013 abstract. The 2011 acetone-addition control argues against removal by C.
+ thermocellum, while crude-extract assays retain acetone-pathway enzyme activities. These are community product
+ and assay outcomes, not butanol donation or proof of pathway shutdown.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: butanol
term:
@@ -187,27 +184,27 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: acetone was undetectable in this coculture system
- explanation: Supports selective butanol production with undetectable acetone in the cellulose coculture.
+ explanation: Supports the low-acetone endpoint. Primary acetone-addition and crude-extract enzyme controls constrain,
+ but do not identify, the mechanism.
- reference: PMID:22999358
supports: SUPPORT
evidence_source: IN_VITRO
snippet: butanol was selectively produced with extremely low level of acetone
explanation: Supports the same species-pair coculture as a selective butanol-production system.
-- name: Reduced Hydrogen Associated With Butanol Selectivity
- description: A later exact-species coculture study reported decreased hydrogen production when C. thermocellum
- and N1-4 were grown together, linking low hydrogen output to a higher butanol ratio.
- interaction_type: CROSS_FEEDING
- scope: PAIRWISE
- source_taxon:
- preferred_term: Clostridium thermocellum ATCC 27405
+ participating_taxa:
+ - preferred_term: Clostridium thermocellum ATCC 27405
term:
id: NCBITaxon:203119
label: Acetivibrio thermocellus ATCC 27405
- target_taxon:
- preferred_term: Clostridium saccharoperbutylacetonicum N1-4
+ - preferred_term: Clostridium saccharoperbutylacetonicum N1-4
term:
id: NCBITaxon:1335640
label: Clostridium saccharoperbutylacetonicum N1-4
+- name: Reduced Hydrogen Output and Proposed Redox Allocation
+ description: The 2013 abstract associates lower hydrogen output with higher butanol production and proposes future
+ hydrogenase selection. The 2011 Discussion proposes redox allocation. PARTIAL - neither the available abstract
+ nor the 2011 coculture assays establish selective hydrogenase causality or interspecies hydrogen donation.
+ scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: hydrogen
term:
@@ -224,20 +221,31 @@ ecological_interactions:
label: fermentation
downstream:
- target: Selective Butanol Production With Low Acetone
- description: >
- The exact-species coculture couples lower hydrogen evolution to a higher
- butanol ratio and low-acetone solvent profile.
+ description: HYPOTHESIZED - reduced electron allocation to hydrogen could favor the butanol branch and contribute
+ to solvent selectivity. The observed inverse association supports this redox proposal, not a selectively demonstrated
+ causal effect or transfer of hydrogen between partners.
evidence:
- reference: PMID:22999358
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: hydrogen production decreased and butanol was selectively produced
- explanation: Supports reduced hydrogen production as a coculture-associated feature linked to butanol selectivity.
+ explanation: Supports the coculture association available in the complete abstract; full 2013 experimental details
+ were unavailable for this review.
- reference: PMID:22999358
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: high butanol production correlates with low hydrogen production
- explanation: Supports the proposed hydrogen-butanol relationship in the same species-pair coculture.
+ explanation: Supports correlation and a redox-allocation hypothesis, not selective perturbation or hydrogen
+ cross-feeding.
+ participating_taxa:
+ - preferred_term: Clostridium thermocellum ATCC 27405
+ term:
+ id: NCBITaxon:203119
+ label: Acetivibrio thermocellus ATCC 27405
+ - preferred_term: Clostridium saccharoperbutylacetonicum N1-4
+ term:
+ id: NCBITaxon:1335640
+ label: Clostridium saccharoperbutylacetonicum N1-4
cultivation_setup:
- cultivation_mode: BATCH
instrument_detail: >-
@@ -462,3 +470,27 @@ metals_present: []
rare_earth_elements_present: []
metal_relevance: NOT_APPLICABLE
metal_notes: No metal or rare earth element processing role is curated for this cellulosic butanol coculture.
+discussions:
+- discussion_id: staged_butanol_carbon_and_redox_partition
+ prompt: Which carbon-transfer and redox mechanisms determine the staged coculture solvent profile?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Staged Cellulose Hydrolysis Feeding Solventogenesis
+ - ecological_interactions#Selective Butanol Production With Low Acetone
+ - ecological_interactions#Reduced Hydrogen Output and Proposed Redox Allocation
+ rationale: Staging, temperature and partner comparisons support the process; acetone-addition and crude-enzyme
+ controls constrain alternative explanations. Carbon tracing with inoculum carryover controls and selective redox
+ perturbations would resolve causal contributions. The 2013 follow-up was available only as an abstract, so its
+ correlation must not be promoted to demonstrated hydrogen transfer or hydrogenase causality.
+ posed_by: codex
+ posed_date: '2026-10-05'
+curation_history:
+- timestamp: '2026-10-06T01:29:00Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain proposed soluble-carbon cross-feeding and the positive staging control, with temperature and
+ inoculum-carbon limits.; Represent selective solvent output with both participants, retaining the acetone and
+ enzyme controls without inferred donation or pathway shutdown.; Retain lower hydrogen as a community association
+ and an explicitly hypothesized redox contribution, not hydrogen transfer. Issue #1341; reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml'
+ llm_assisted: true
diff --git a/kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml b/kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
index bc614452e..735e33a59 100644
--- a/kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
+++ b/kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
@@ -102,12 +102,11 @@ taxonomy:
snippet: genes involved in carbon, nitrogen, and phosphorus cycling responded more strongly to artificial seawater than to sulfate
explanation: Supports carbon, nitrogen, and phosphorus cycling guild responses to artificial seawater.
ecological_interactions:
-- name: Non-Sulfate Seawater Ions Drive Community And Emission Responses
- description: Artificial seawater changed greenhouse gas emissions and microbial
- richness and composition regardless of sulfate presence, indicating that
- non-sulfate seawater ions can dominate the microbial response to seawater
- intrusion.
- interaction_type: NICHE_PARTITIONING
+- name: Experimental Seawater-Ion Exposure
+ description: Soil-core microcosms from one acidic, restored freshwater wetland received deionized water, 5 ppt
+ artificial seawater, artificial seawater without sulfate, or sulfate alone. The 12-week experiment separates
+ sulfate and non-sulfate mixture effects. It does not isolate sodium chloride from all other ions or establish
+ a universal coastal-field response.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: sulfate
@@ -132,38 +131,34 @@ ecological_interactions:
id: GO:0009056
label: catabolic process
downstream:
- - target: Artificial Seawater Alters Carbon Nitrogen And Phosphorus Gene Response
- description: >
- The non-sulfate seawater-ion treatment, rather than sulfate alone, drove
- the broader response of carbon, nitrogen, and phosphorus cycling genes.
- - target: Seawater-Ion Perturbation Of Greenhouse Gas Outputs
- description: >
- Artificial seawater changed carbon dioxide, methane, and nitrous oxide
- emissions even when sulfate was omitted, linking non-sulfate ions to the
- greenhouse-gas response.
+ - target: Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ description: The controlled ion mixtures altered relative DNA gene abundances at week 12, supporting a treatment
+ effect on measured functional potential. PARTIAL - the responsible ions and biological mediators remain unresolved;
+ this is not evidence of gene expression or activity changes.
+ - target: Week-12 Greenhouse-Gas Flux Response
+ description: Controlled seawater-ion exposure changed week-12 whole-core net gas fluxes in treatment-specific
+ comparisons. PARTIAL - factorial mixture effects and individual pairwise contrasts differ, and community composition
+ or gene correlations do not establish the mediators of each gas response.
evidence:
- reference: PMID:38628812
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: Greenhouse gas emissions and microbial richness and composition were altered by artificial seawater regardless of whether sulfate was present
- explanation: Supports non-sulfate seawater ion effects on community structure and emissions.
+ snippet: Greenhouse gas emissions and microbial richness and composition were altered by artificial seawater
+ regardless of whether sulfate was present
+ explanation: Supports the experimental community and gas response; primary Results qualify the individual gas
+ and diversity comparisons.
- reference: PMID:38628812
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: other ions present in seawater, not sulfate, drive ecological and biogeochemical responses
- explanation: Supports the inferred importance of non-sulfate seawater ions.
-- name: Sulfate Alone Does Not Enrich Sulfate-Reduction Features
- description: In contrast to the common hypothesis that sulfate controls
- saltwater-intrusion responses, sulfate-only addition did not alter emissions
- or communities and did not increase sulfate-reducing bacteria or sulfur
- cycling genes.
- interaction_type: COMPETITION
+ explanation: Supports a non-sulfate mixture effect, not isolation of sodium chloride or exclusion of every sulfate
+ response.
+- name: Week-12 Sulfate-Reduction Feature Response
+ description: Sulfate addition increased porewater sulfate but did not enrich the measured relative sulfate-reducer
+ abundance or sulfate-reduction gene features at week 12. Hydrogen sulfide was detected in sulfate-amended water
+ at day 14. The bounded abundance result therefore does not establish inactive sulfate reduction, reciprocal
+ competition, or absence of all sulfate-only gas effects.
scope: COMMUNITY_LEVEL
- source_taxon:
- preferred_term: coastal wetland sulfate-reducing bacteria
- term:
- id: NCBITaxon:2
- label: Bacteria
metabolites:
- preferred_term: sulfate
term:
@@ -176,26 +171,23 @@ ecological_interactions:
label: dissimilatory sulfate reduction
evidence:
- reference: PMID:38628812
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: sulfate alone did not alter emissions or communities
- explanation: Supports sulfate-only treatment as a weak driver in this microcosm.
+ explanation: 'The abstract generalization is bounded by the primary comparisons: sulfate-only N2O differed from
+ the control, while the factorial sulfate effect was not significant.'
- reference: PMID:38628812
supports: SUPPORT
evidence_source: IN_VITRO
- snippet: addition of sulfate alone did not lead to increases in the abundance of sulfate reducing bacteria or sulfur cycling genes
- explanation: Supports the lack of sulfate-reducer enrichment under sulfate-only addition.
-- name: Artificial Seawater Alters Carbon Nitrogen And Phosphorus Gene Response
- description: Genes associated with carbon, nitrogen, and phosphorus cycling
- responded more strongly to artificial seawater than to sulfate alone,
- indicating a broader ionic control on microbial functional potential.
- interaction_type: NICHE_PARTITIONING
+ snippet: addition of sulfate alone did not lead to increases in the abundance of sulfate reducing bacteria or
+ sulfur cycling genes
+ explanation: Supports the week-12 relative-abundance result, not absence of activity; primary day-14 hydrogen
+ sulfide measurements provide a distinct functional observation.
+- name: Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ description: Shotgun DNA metagenomes showed relative abundances of carbon-, nitrogen- and phosphorus-cycling genes
+ responding more strongly to artificial-seawater mixtures than sulfate alone. These are community functional-potential
+ measurements, not transcript abundance, pathway activity or proof that the correlated genes mediate gas flux.
scope: COMMUNITY_LEVEL
- source_taxon:
- preferred_term: coastal wetland carbon nitrogen phosphorus cycling guilds
- term:
- id: NCBITaxon:131567
- label: cellular organisms
metabolites:
- preferred_term: methane
term:
@@ -214,13 +206,16 @@ ecological_interactions:
- reference: PMID:38628812
supports: SUPPORT
evidence_source: COMPUTATIONAL
- snippet: genes involved in carbon, nitrogen, and phosphorus cycling responded more strongly to artificial seawater than to sulfate
- explanation: Supports artificial-seawater effects on functional cycling genes.
-- name: Seawater-Ion Perturbation Of Greenhouse Gas Outputs
- description: The microcosm measured carbon dioxide, methane, and nitrous oxide
- emissions in response to ion treatments, linking microbial community shifts
- to greenhouse gas feedbacks from coastal wetland salinization.
- interaction_type: NICHE_PARTITIONING
+ snippet: genes involved in carbon, nitrogen, and phosphorus cycling responded more strongly to artificial seawater
+ than to sulfate
+ explanation: Supports relative DNA gene-abundance differences and functional potential, not expression or selective
+ causal mediation.
+- name: Week-12 Greenhouse-Gas Flux Response
+ description: Week-12 whole-core net CO2, CH4 and N2O fluxes were measured. CO2 had a significant overall treatment
+ and non-sulfate-factor effect but no significant individual pairwise contrasts. CH4 was higher without sulfate
+ than in the water control or sulfate-only treatment; complete artificial seawater was intermediate. N2O was
+ lower in every amended arm, including sulfate-only, than in the control. These outcomes do not directly partition
+ microbial production and consumption pathways.
scope: COMMUNITY_LEVEL
metabolites:
- preferred_term: methane
@@ -241,12 +236,14 @@ ecological_interactions:
supports: SUPPORT
evidence_source: IN_VITRO
snippet: emissions of carbon dioxide, methane, and nitrous oxide
- explanation: Supports greenhouse gas emission endpoints for the perturbation.
+ explanation: Supports measured gas endpoints; primary Results and Table 1 distinguish factorial effects from
+ individual treatment contrasts.
- reference: PMID:38628812
- supports: SUPPORT
+ supports: PARTIAL
evidence_source: IN_VITRO
snippet: may be drivers of increased methane emissions in soils that received artificial seawater addition
- explanation: Supports artificial seawater as a potential methane-emission driver.
+ explanation: Supports proposed microbial contributors to net methane emission, not direct pathway flux or selectively
+ demonstrated gene mediation.
environmental_factors:
- name: Seawater intrusion simulation
value: artificial seawater, artificial seawater without sulfate, sulfate only,
@@ -475,3 +472,30 @@ rare_earth_elements_present: []
metal_relevance: NOT_APPLICABLE
metal_notes: No metal or rare earth element processing role is curated for this
coastal forested wetland seawater-ion microcosm community.
+discussions:
+- discussion_id: wetland_ion_and_gas_mediation
+ prompt: Which ions and microbial processes mediate the treatment-specific net gas responses?
+ kind: KNOWLEDGE_GAP
+ status: OPEN
+ attaches_to:
+ - ecological_interactions#Experimental Seawater-Ion Exposure
+ - ecological_interactions#Week-12 Sulfate-Reduction Feature Response
+ - ecological_interactions#Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ - ecological_interactions#Week-12 Greenhouse-Gas Flux Response
+ rationale: Controlled ion-mixture exposure supports causal treatment effects, but not isolated sodium chloride
+ action. Relative DNA gene counts and guild correlations do not measure activity or establish mediation. Selective
+ ion and pathway interventions with production/consumption measurements would resolve mechanisms. Week-12 gene
+ features and day-14 water chemistry must remain separate; the sulfate-only N2O contrast prevents an unqualified
+ no-gas-effect claim.
+ posed_by: codex
+ posed_date: '2026-10-05'
+curation_history:
+- timestamp: '2026-10-06T01:29:00Z'
+ curator: codex
+ action: REVIEW_CAUSAL_GRAPH
+ changes: 'Retain the controlled four-arm perturbation without unsupported niche-partitioning or single-ion attribution.;
+ Bound the sulfate feature null to the measured relative abundances and week; preserve sulfate exposure and hydrogen-sulfide
+ observations.; Keep relative DNA functional-potential measurements distinct from transcription, activity and
+ causal mediation.; Preserve gas-specific factorial and pairwise outcomes without converting net emissions into
+ individual pathway flux. Issue #1342; reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml'
+ llm_assisted: true
diff --git a/reports/causal_graph_review/adversarial-review-20261005-batch22.yaml b/reports/causal_graph_review/adversarial-review-20261005-batch22.yaml
new file mode 100644
index 000000000..d6a539924
--- /dev/null
+++ b/reports/causal_graph_review/adversarial-review-20261005-batch22.yaml
@@ -0,0 +1,130 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: b4fd7d01144bf9815c3c5b5ce8c1c7b628a0a018
+decision_ledger: reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
+validation_report: reports/causal_graph_review/validation-20261005-batch22.json
+scope:
+- kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
+- kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
+- kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
+findings:
+- issue: 1340
+ severity: P2
+ finding: Product phenotype encoded as transfer; resource competition overtyped as reciprocal harm; estimated biomass
+ and extra-carbon interventions overstated causal partition.
+ disposition: addressed_and_locally_verified
+- issue: 1341
+ severity: P2
+ finding: Butanol endpoint and hydrogen association encoded as donor-recipient cross-feeding; staged-process controls
+ did not selectively resolve carbon or redox mediation.
+ disposition: addressed_and_locally_verified
+- issue: 1342
+ severity: P2
+ finding: Controlled ion responses misclassified as niche partitioning or competition; DNA abundance, sulfate null
+ and gas comparisons exceeded their measurement scope.
+ disposition: addressed_and_locally_verified
+- issue: 1344
+ severity: P2
+ finding: Two justified mixed-scope records exceed the old census ceiling of 120.
+ disposition: addressed_and_locally_verified
+ resolution: 'Recompute both-root census before and after: mixed 120 -> 122, solely credited taxa remain 1218;
+ change only this bound and comment.'
+open_nongraph_followups:
+- issue: 1343
+ disposition: intentionally_not_closed_by_graph_only_patch
+- issue: 746
+ disposition: intentionally_not_closed_by_graph_only_patch
+- issue: 524
+ disposition: intentionally_not_closed_by_graph_only_patch
+adversarial_checks:
+- Account for all ten original nodes and six arrows, with six exact renames; no additions, deletions, new structure
+ or Edison spend.
+- Preserve increased JN4-GD17 fermentation products while retaining the negative overall cellulose-utilization result.
+ The feedstock is not the exchanged soluble sugar or output.
+- Challenge COMPETITION against its actual (-/-) enum. Faster GD17 monoculture rates and JN4 suppression support
+ resource competition but do not establish both partners are harmed.
+- Keep low coculture sugars, transcription and glucose-addition controls as positive mechanistic support without
+ directly traced partner flux.
+- JN4 biomass is estimated using protein and genomic proportions, not direct viable counts. Stimulants add carbon
+ and sample different times; reduced cellulose use does not prove reduced total fermentation output.
+- Preserve the positive staged-butanol comparison. Coupled temperature and glucose-containing inoculum prevent selective
+ carbon-flux or solvent-selectivity attribution.
+- Retain the acetone-addition control and crude-extract activities; these constrain removal and pathway-shutdown
+ explanations without directly identifying the redox mediator.
+- The 2013 abstract reports an inverse hydrogen/butanol association and proposes future hydrogenase selection. The
+ 2011 Discussion supplies the redox hypothesis; its cited separate mutant experiment is not an exact-coculture
+ perturbation.
+- Community products and hydrogen output name the existing two canonical participants, not inferred donation. The
+ wetland whole-community assays do not invent discrete membership among overlapping guild placeholders (#524).
+- Four wetland treatments support controlled mixture effects, not isolated sodium chloride causality, niche partitioning
+ or universal coastal-field behavior.
+- Week-12 relative sulfate-reducer and gene abundance nulls do not imply inactivity; verified sulfate exposure and
+ day-14 hydrogen sulfide are distinct positive observations.
+- DNA metagenomic relative abundance is functional potential, not expression, activity or selective mediation of
+ net gas flux.
+- Preserve the distinction between significant overall/factorial CO2 effects and nonsignificant individual contrasts;
+ distinguish intermediate complete-seawater CH4 and the sulfate-only N2O difference from the nonsignificant factorial
+ sulfate effect.
+- 'Three graph records, three append-only histories and focused regressions only; unrelated YAML blocks, seven tracked
+ cache artifacts and GTDB census bounds remain byte-identical. Nongraph #1343 and existing #746/#524 remain open.'
+- Before/after both-root census proves exactly two new mixed records and no increase in taxa credited solely by
+ community scope. Only the explained 120 -> 122 bound changes; no graph scope chosen to satisfy an old ceiling.
+- Source-based self-adversarial review is not independent approval. Three primary main bodies and three additional
+ abstracts reviewed; no images or supplementary files inspected, and no copyrighted full body added.
+verification:
+ status: local_validation_complete
+ checks: 30
+ records: 460
+ nodes: 1474
+ edges: 710
+ review_status_counts:
+ needs_research: 3
+ pending: 342
+ reviewed: 115
+ structural_defects: 0
+ network_errors: 0
+ network_warnings: 25
+ new_network_warnings: 0
+ unchanged_raw_blocks: 55
+ snippet_counts:
+ MATCH: 87
+ 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: 270 passed in 237.82s (0:03:57)
+ rights: 3 passed in 2.14s
+ rights_import_root_verified: true
+ caches_unchanged: true
+ primary_artifact_hashes_rechecked: true
+ participant_registry_change: Add only the intentional JN4-GD17 and staged-butanol users; preserve exact-set equality.
+ connectivity_test_change: Only mixed upper bound 120 -> 122 and its explanatory comment (#1344); all other bounds
+ unchanged.
+ connectivity_survey_before:
+ records: 460
+ with_community_level: 387
+ mixed: 120
+ community_level_only: 267
+ taxa: 1495
+ credited_solely_by_the_rule: 1218
+ connectivity_survey:
+ records: 460
+ with_community_level: 389
+ mixed: 122
+ community_level_only: 267
+ taxa: 1499
+ credited_solely_by_the_rule: 1218
+ connectivity_delta:
+ records: 0
+ with_community_level: 2
+ mixed: 2
+ community_level_only: 0
+ taxa: 4
+ credited_solely_by_the_rule: 0
diff --git a/reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml b/reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
new file mode 100644
index 000000000..128cc9c87
--- /dev/null
+++ b/reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
@@ -0,0 +1,304 @@
+reviewer: codex
+review_mode: source_based_self_adversarial_review
+independent_approval: false
+base_commit: b4fd7d01144bf9815c3c5b5ce8c1c7b628a0a018
+issues:
+- 1340
+- 1341
+- 1342
+- 1344
+open_nongraph_followups:
+- 1343
+- 746
+- 524
+issue_deduplication:
+ all_state_issue_titles_bodies: 678
+ ignored_hidden_local_files_included: true
+ comments_exhaustive: false
+ relevant_issues_read:
+ - 1203
+ - 1236
+ - 644
+ - 642
+ - 639
+ - 524
+ - 312
+ - 746
+ - 749
+ - 752
+ - 529
+ finding: No duplicate exact graph issue in searched scope; broader provenance and enum work remains separate.
+reference_cache_original_hashes:
+ references_cache/PMID_38628812.md: 1317da2a933b1b756a5bd1a460e74056e154c1139da1e275549a331b3b85835b
+ references_cache/PMID_25818258.md: b6ea35e1c7753c49b9a06752c1278b784f67bbbfc327e06ba77609fbc941654a
+ references_cache/PMID_27538932.md: 4708db048b9db30409e896e5a52dda9fbf35c31a41a6da6b09afcbb0dcc00bef
+ references_cache/PMID_22999358.md: 6d9cadfd6f577ef671983f7cf302ff22e77d442916ccabd5b0936a1749e3d0b3
+ references_cache/PMID_21764954.md: 3bf94ff7913d9ed7be62ec3ad656609cbd766f13184ad93d9296f18a6b0c400a
+ references_cache/PMID_31551972.txt: 706c98a05a78a0cba0660a603bdcea89b44248e91f1a94d38464c56d3dea6ec8
+ references_cache/PMID_31551972.md: b8dd7f4edd84b1d7b3af2d310bdb5150ad0af8e830a9e08ed526ca2e3101a268
+limitations:
+- All ten nodes and six arrows retained with six exact renames; no new structure or Edison spend.
+- Three primary main bodies and three contextual/follow-up abstracts reviewed; no visual images or supplementary
+ files inspected.
+- Seven existing tracked cache artifacts unchanged, including PMID_31551972.txt; no copyrighted full body added
+ to git.
+- Unrelated metadata and canonical taxonomy preserved, not scientifically certified; issue1343 and existing746/524
+ remain open.
+- Self-adversarial review is not independent approval or corpus completion.
+records:
+- path: kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml
+ id: CommunityMech:000180
+ original_sha256: b6f8ea43a3a9d190f0856b266b4a7ad1c387289e880e2b2f4910ccb8b35783e1
+ record_sha256: 5dfcac09163ce6ac2930e58230d3d82efda7d5f63cda1afeba33bc16c05d2ecd
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
+ scope: Whole record and every original node/arrow; primary access scope bounded below.
+ summary: Represent enhanced fermentation products with both canonical participants; retain the lack of improved
+ overall cellulose utilization.; Preserve metabolic advantage and resource competition without unsupported reciprocal-harm
+ typing or directly traced flux.; Retain the stimulant intervention and estimated JN4 suppression while bounding
+ viability, added-carbon and product-mediation claims.
+ renamed_nodes:
+ Cellulosic Biofuel Efficiency Enhancement: Enhanced Community Fermentation Products
+ node_decisions:
+ - node: Enhanced Community Fermentation Products
+ rationale: Represent enhanced fermentation products with both canonical participants; retain the lack of improved
+ overall cellulose utilization.
+ - node: GD17 Competitive Conversion of Released Sugars
+ rationale: Preserve metabolic advantage and resource competition without unsupported reciprocal-harm typing
+ or directly traced flux.
+ - node: GD17 Growth Inhibition of JN4
+ rationale: Retain the stimulant intervention and estimated JN4 suppression while bounding viability, added-carbon
+ and product-mediation claims.
+ edges_before:
+ - source: GD17 Competitive Conversion of Released Sugars
+ target: Cellulosic Biofuel Efficiency Enhancement
+ description: 'GD17 capture and conversion of cellobiose or glucose released from lignocellulose accounts for
+ the increased formation of fermentation end products in the cellulosic biofuel coculture.
+
+ '
+ - source: GD17 Growth Inhibition of JN4
+ target: Cellulosic Biofuel Efficiency Enhancement
+ description: 'GD17-driven suppression of the cellulolytic JN4 population can rebalance the coculture away from
+ cellulose degradation, making that competition a negative regulator of net cellulosic biofuel formation.
+
+ '
+ edges_after:
+ - source: GD17 Competitive Conversion of Released Sugars
+ target: Enhanced Community Fermentation Products
+ description: PARTIAL - faster GD17 conversion of JN4-released soluble sugars can contribute to higher community
+ fermentation output. Monoculture conversion assays and coculture product measurements support this model,
+ but do not directly measure the partner-specific contribution.
+ - source: GD17 Growth Inhibition of JN4
+ target: Enhanced Community Fermentation Products
+ description: PARTIAL - reduced JN4 biomass and cellulose use can constrain the cellulose-derived contribution
+ to community products. Stimulant-driven rebalancing supports this possibility, not a measured reduction of
+ total fermentation products or a resolved carbon balance when extra substrate is supplied.
+ retained_edge_decisions:
+ - source: GD17 Competitive Conversion of Released Sugars
+ target: Enhanced Community Fermentation Products
+ rationale: PARTIAL - faster GD17 conversion of JN4-released soluble sugars can contribute to higher community
+ fermentation output. Monoculture conversion assays and coculture product measurements support this model,
+ but do not directly measure the partner-specific contribution.
+ - source: GD17 Growth Inhibition of JN4
+ target: Enhanced Community Fermentation Products
+ rationale: PARTIAL - reduced JN4 biomass and cellulose use can constrain the cellulose-derived contribution
+ to community products. Stimulant-driven rebalancing supports this possibility, not a measured reduction of
+ total fermentation products or a resolved carbon balance when extra substrate is supplied.
+ removed_edge_decisions: []
+ references:
+ - PMID:31551972
+ - PMID:27538932
+ issues:
+ - 1340
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ source_review:
+ PMID:31551972:
+ url: https://doi.org/10.3389/fmicb.2019.02035
+ path: /private/tmp/communitymech-batch22/PMC6746925.xml
+ sha256: 8c035478025c2fad39825a1f810184b58eb435cf92e628ac1af912ce37404e10
+ license: CC BY 4.0
+ reviewed_scope: Whole primary main body, seven main captions and displayed supplementary captions; images
+ and supplementary files not inspected.
+ PMID:27538932:
+ url: https://pubmed.ncbi.nlm.nih.gov/27538932/
+ reviewed_scope: Complete abstract only; full body unavailable. Context, not new partner-resolved flux evidence.
+ history_files:
+ - history/records/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture/2026-10-06T012901Z-codex-8cf494.yaml
+- path: kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml
+ id: CommunityMech:000208
+ original_sha256: 368e5d952f21395ef6de9a0f39a8d95efb9926e67aa33ff832653e6c914e11b1
+ record_sha256: 750b838217019c6d341bdb5d6e797acead41d051c49ba068e48bb58e1cff9f87
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
+ scope: Whole record and every original node/arrow; primary access scope bounded below.
+ summary: Retain proposed soluble-carbon cross-feeding and the positive staging control, with temperature and inoculum-carbon
+ limits.; Represent selective solvent output with both participants, retaining the acetone and enzyme controls
+ without inferred donation or pathway shutdown.; Retain lower hydrogen as a community association and an explicitly
+ hypothesized redox contribution, not hydrogen transfer.
+ renamed_nodes:
+ Reduced Hydrogen Associated With Butanol Selectivity: Reduced Hydrogen Output and Proposed Redox Allocation
+ node_decisions:
+ - node: Staged Cellulose Hydrolysis Feeding Solventogenesis
+ rationale: Retain proposed soluble-carbon cross-feeding and the positive staging control, with temperature and
+ inoculum-carbon limits.
+ - node: Selective Butanol Production With Low Acetone
+ rationale: Represent selective solvent output with both participants, retaining the acetone and enzyme controls
+ without inferred donation or pathway shutdown.
+ - node: Reduced Hydrogen Output and Proposed Redox Allocation
+ rationale: Retain lower hydrogen as a community association and an explicitly hypothesized redox contribution,
+ not hydrogen transfer.
+ edges_before:
+ - source: Staged Cellulose Hydrolysis Feeding Solventogenesis
+ target: Selective Butanol Production With Low Acetone
+ description: 'C. thermocellum prehydrolysis of crystalline cellulose creates the substrate stream that feeds
+ subsequent N1-4 solventogenesis and selective butanol production.
+
+ '
+ - source: Reduced Hydrogen Associated With Butanol Selectivity
+ target: Selective Butanol Production With Low Acetone
+ description: 'The exact-species coculture couples lower hydrogen evolution to a higher butanol ratio and low-acetone
+ solvent profile.
+
+ '
+ edges_after:
+ - source: Staged Cellulose Hydrolysis Feeding Solventogenesis
+ target: Selective Butanol Production With Low Acetone
+ description: PARTIAL - preincubation supplies hydrolysis products that can support N1-4 solventogenesis. The
+ staged-versus-simultaneous comparison supports this process contribution, while coupled temperature changes
+ and glucose carried in with the inoculum prevent selective flux attribution or a complete explanation of low
+ acetone.
+ - source: Reduced Hydrogen Output and Proposed Redox Allocation
+ target: Selective Butanol Production With Low Acetone
+ description: HYPOTHESIZED - reduced electron allocation to hydrogen could favor the butanol branch and contribute
+ to solvent selectivity. The observed inverse association supports this redox proposal, not a selectively demonstrated
+ causal effect or transfer of hydrogen between partners.
+ retained_edge_decisions:
+ - source: Staged Cellulose Hydrolysis Feeding Solventogenesis
+ target: Selective Butanol Production With Low Acetone
+ rationale: PARTIAL - preincubation supplies hydrolysis products that can support N1-4 solventogenesis. The staged-versus-simultaneous
+ comparison supports this process contribution, while coupled temperature changes and glucose carried in with
+ the inoculum prevent selective flux attribution or a complete explanation of low acetone.
+ - source: Reduced Hydrogen Output and Proposed Redox Allocation
+ target: Selective Butanol Production With Low Acetone
+ rationale: HYPOTHESIZED - reduced electron allocation to hydrogen could favor the butanol branch and contribute
+ to solvent selectivity. The observed inverse association supports this redox proposal, not a selectively demonstrated
+ causal effect or transfer of hydrogen between partners.
+ removed_edge_decisions: []
+ references:
+ - PMID:21764954
+ - PMID:22999358
+ - PMID:25818258
+ issues:
+ - 1341
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ source_review:
+ PMID:21764954:
+ url: https://journals.asm.org/doi/10.1128/aem.00706-11
+ reviewed_scope: Whole publisher main body, Methods, Results, Discussion, five captions and Table 1; images
+ and supplementary files not inspected.
+ copyright: 2011 ASM; not OA-licensed; no full body added to git.
+ PMID:22999358:
+ url: https://pubmed.ncbi.nlm.nih.gov/22999358/
+ reviewed_scope: Complete abstract; publisher full body unavailable (403). No full-assay inference.
+ PMID:25818258:
+ url: https://pubmed.ncbi.nlm.nih.gov/25818258/
+ reviewed_scope: Complete abstract for extension context only; no new graph mechanism inferred.
+ history_files:
+ - history/records/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture/2026-10-06T012901Z-codex-34de6d.yaml
+- path: kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml
+ id: CommunityMech:000258
+ original_sha256: 1850870ed129fcf8920066077ec7fedb8e219deb291882404cafc637171fb418
+ record_sha256: cf9d8d36d20665d0732f08fd825c77c5eada6c5f7fd668c9092d7a29a8698728
+ status: reviewed
+ outcome: changed
+ review_file: reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml
+ scope: Whole record and every original node/arrow; primary access scope bounded below.
+ summary: Retain the controlled four-arm perturbation without unsupported niche-partitioning or single-ion attribution.;
+ Bound the sulfate feature null to the measured relative abundances and week; preserve sulfate exposure and hydrogen-sulfide
+ observations.; Keep relative DNA functional-potential measurements distinct from transcription, activity and
+ causal mediation.; Preserve gas-specific factorial and pairwise outcomes without converting net emissions into
+ individual pathway flux.
+ renamed_nodes:
+ Non-Sulfate Seawater Ions Drive Community And Emission Responses: Experimental Seawater-Ion Exposure
+ Sulfate Alone Does Not Enrich Sulfate-Reduction Features: Week-12 Sulfate-Reduction Feature Response
+ Artificial Seawater Alters Carbon Nitrogen And Phosphorus Gene Response: Relative Carbon Nitrogen And Phosphorus
+ Gene Abundances
+ Seawater-Ion Perturbation Of Greenhouse Gas Outputs: Week-12 Greenhouse-Gas Flux Response
+ node_decisions:
+ - node: Experimental Seawater-Ion Exposure
+ rationale: Retain the controlled four-arm perturbation without unsupported niche-partitioning or single-ion
+ attribution.
+ - node: Week-12 Sulfate-Reduction Feature Response
+ rationale: Bound the sulfate feature null to the measured relative abundances and week; preserve sulfate exposure
+ and hydrogen-sulfide observations.
+ - node: Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ rationale: Keep relative DNA functional-potential measurements distinct from transcription, activity and causal
+ mediation.
+ - node: Week-12 Greenhouse-Gas Flux Response
+ rationale: Preserve gas-specific factorial and pairwise outcomes without converting net emissions into individual
+ pathway flux.
+ edges_before:
+ - source: Non-Sulfate Seawater Ions Drive Community And Emission Responses
+ target: Artificial Seawater Alters Carbon Nitrogen And Phosphorus Gene Response
+ description: 'The non-sulfate seawater-ion treatment, rather than sulfate alone, drove the broader response
+ of carbon, nitrogen, and phosphorus cycling genes.
+
+ '
+ - source: Non-Sulfate Seawater Ions Drive Community And Emission Responses
+ target: Seawater-Ion Perturbation Of Greenhouse Gas Outputs
+ description: 'Artificial seawater changed carbon dioxide, methane, and nitrous oxide emissions even when sulfate
+ was omitted, linking non-sulfate ions to the greenhouse-gas response.
+
+ '
+ edges_after:
+ - source: Experimental Seawater-Ion Exposure
+ target: Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ description: The controlled ion mixtures altered relative DNA gene abundances at week 12, supporting a treatment
+ effect on measured functional potential. PARTIAL - the responsible ions and biological mediators remain unresolved;
+ this is not evidence of gene expression or activity changes.
+ - source: Experimental Seawater-Ion Exposure
+ target: Week-12 Greenhouse-Gas Flux Response
+ description: Controlled seawater-ion exposure changed week-12 whole-core net gas fluxes in treatment-specific
+ comparisons. PARTIAL - factorial mixture effects and individual pairwise contrasts differ, and community composition
+ or gene correlations do not establish the mediators of each gas response.
+ retained_edge_decisions:
+ - source: Experimental Seawater-Ion Exposure
+ target: Relative Carbon Nitrogen And Phosphorus Gene Abundances
+ rationale: The controlled ion mixtures altered relative DNA gene abundances at week 12, supporting a treatment
+ effect on measured functional potential. PARTIAL - the responsible ions and biological mediators remain unresolved;
+ this is not evidence of gene expression or activity changes.
+ - source: Experimental Seawater-Ion Exposure
+ target: Week-12 Greenhouse-Gas Flux Response
+ rationale: Controlled seawater-ion exposure changed week-12 whole-core net gas fluxes in treatment-specific
+ comparisons. PARTIAL - factorial mixture effects and individual pairwise contrasts differ, and community composition
+ or gene correlations do not establish the mediators of each gas response.
+ removed_edge_decisions: []
+ references:
+ - PMID:38628812
+ issues:
+ - 1342
+ allowed_changed_fields:
+ - curation_history
+ - discussions
+ - ecological_interactions
+ curation_events_added: 1
+ source_review:
+ PMID:38628812:
+ url: https://doi.org/10.1093/ismeco/ycae040
+ path: /private/tmp/communitymech-batch22/PMC11020224.xml
+ sha256: f4360d617e52a4141d855580fdf025c34a87b1ca5564f12a4d35f724a6578bbb
+ license: CC BY 4.0
+ reviewed_scope: Whole primary main body, seven main captions, Table 1 and data availability; images and supplementary
+ files not inspected.
+ history_files:
+ - history/records/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community/2026-10-06T012901Z-codex-726bcf.yaml
diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv
index 68e0a8ad0..eb1abf075 100644
--- a/reports/causal_graph_review/inventory.tsv
+++ b/reports/causal_graph_review/inventory.tsv
@@ -114,9 +114,9 @@ kb/communities/Clostridium_Ljungdahlii_Kluyveri_Syngas_Alcohol_Coculture.yaml Co
kb/communities/Clostridium_Phytofermentans_Ecoli_Cellobiose_Biofilm_Consortium.yaml CommunityMech:000196 9a4fdb8dc3bbda96d454f371df026770f3baa65a1cff23b8c43d883ff3105836 4 3 95.0 reports/causal_graph_review/decisions/20261005-three-records-batch21.yaml reviewed
kb/communities/Clostridium_Saccharomyces_Cellulose_Ethanol_Coculture.yaml CommunityMech:000206 fa05e29f87dd939c2d7a694b88083fb080077be68faa3d53007d0762609c7915 3 2 96.7 reports/causal_graph_review/decisions/20261005-three-records-batch21.yaml reviewed
kb/communities/Clostridium_Thermoanaerobacter_Cellulosic_Bioethanol_Coculture.yaml CommunityMech:000168 0b2e76d94c5f2eb1d40c8505f71e811b3b4784ed0322a278f4b27628a37e7e63 3 2 93.3 reports/causal_graph_review/decisions/20261005-three-records-batch21.yaml reviewed
-kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml CommunityMech:000180 b6f8ea43a3a9d190f0856b266b4a7ad1c387289e880e2b2f4910ccb8b35783e1 3 2 100.0 pending
-kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml CommunityMech:000208 368e5d952f21395ef6de9a0f39a8d95efb9926e67aa33ff832653e6c914e11b1 3 2 100.0 pending
-kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml CommunityMech:000258 1850870ed129fcf8920066077ec7fedb8e219deb291882404cafc637171fb418 4 2 100.0 pending
+kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml CommunityMech:000180 5dfcac09163ce6ac2930e58230d3d82efda7d5f63cda1afeba33bc16c05d2ecd 3 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml reviewed
+kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml CommunityMech:000208 750b838217019c6d341bdb5d6e797acead41d051c49ba068e48bb58e1cff9f87 3 2 93.3 reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml reviewed
+kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml CommunityMech:000258 cf9d8d36d20665d0732f08fd825c77c5eada6c5f7fd668c9092d7a29a8698728 4 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch22.yaml reviewed
kb/communities/Community_G_GenX_Biodegradation_Consortium.yaml CommunityMech:000387 db1550951ed40632bcbb2fd2c106b566402e96c10c5ffa32fb7dbc4a77de8986 1 0 65.0 pending
kb/communities/Composting_SynCom_Lignocellulose_Degradation_Humus.yaml CommunityMech:000277 93603f50bf2b08fcddd9202e560ad7a1b703f9274132946dbd9447b718f75dc9 3 2 100.0 pending
kb/communities/Coniochaeta_Sphingobacterium_Citrobacter_Wheat_Straw_Consortium.yaml CommunityMech:000195 008d639e3e8fcff7fd48e7aee126798987fc4dabbf475c90bdc8bab5e83b0b92 4 2 100.0 pending
diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json
index 028e6fb47..4bb400ca5 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": 345,
- "reviewed": 112
+ "pending": 342,
+ "reviewed": 115
},
"structural_defects": [],
"network_audit": [
diff --git a/reports/causal_graph_review/validation-20261005-batch22.json b/reports/causal_graph_review/validation-20261005-batch22.json
new file mode 100644
index 000000000..7655a7dba
--- /dev/null
+++ b/reports/causal_graph_review/validation-20261005-batch22.json
@@ -0,0 +1,568 @@
+{
+ "base_commit": "b4fd7d01144bf9815c3c5b5ce8c1c7b628a0a018",
+ "scope": [
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml"
+ ],
+ "reference_validator_version": "0.1.7",
+ "results": [
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-schema",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "No issues found\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-strict",
+ "command": [
+ "python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "
/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-strict.tsv",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-terms",
+ "command": [
+ "linkml-term-validator",
+ "validate-data",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-references-explained",
+ "command": [
+ "linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "Validating kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-snippets",
+ "command": [
+ "python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "# 29 evidence snippets scanned across 1 files\n MATCH 29\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-rank",
+ "command": [
+ "python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000180\",\n \"name\": \"Clostridium-Thermoanaerobacterium JN4-GD17 Cellulosic Biofuel Coculture\",\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\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture-history-0",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture/2026-10-06T012901Z-codex-8cf494.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "No issues found\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-schema",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "No issues found\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-strict",
+ "command": [
+ "python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-strict.tsv",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "Validating 1 files with 1 workers; schema=src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-strict.tsv\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-terms",
+ "command": [
+ "linkml-term-validator",
+ "validate-data",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-references-explained",
+ "command": [
+ "linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "Validating kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-snippets",
+ "command": [
+ "python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "# 30 evidence snippets scanned across 1 files\n MATCH 30\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-rank",
+ "command": [
+ "python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000208\",\n \"name\": \"Clostridium Thermocellum-Saccharoperbutylacetonicum Cellulosic Butanol Coculture\",\n \"score\": 93.3,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture-history-0",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture/2026-10-06T012901Z-codex-34de6d.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "No issues found\n"
+ },
+ {
+ "check": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-schema",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "No issues found\n"
+ },
+ {
+ "check": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-strict",
+ "command": [
+ "python3",
+ "scripts/validate_strict.py",
+ "--workers",
+ "1",
+ "--out",
+ "/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-strict.tsv",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.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: /Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-strict.tsv\n"
+ },
+ {
+ "check": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-terms",
+ "command": [
+ "linkml-term-validator",
+ "validate-data",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--labels"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "\u2705 Validation passed\n"
+ },
+ {
+ "check": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-references-explained",
+ "command": [
+ "linkml-reference-validator",
+ "validate",
+ "data",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml",
+ "-s",
+ "src/communitymech/schema/communitymech.yaml",
+ "--config",
+ "conf/reference_validator.yaml"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "Validating kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.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": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-snippets",
+ "command": [
+ "python3",
+ "scripts/evidence_snippet_audit.py",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml",
+ "--list-mismatch",
+ "--list-nocontent",
+ "--list-rendering",
+ "--list-assembled"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "# 28 evidence snippets scanned across 1 files\n MATCH 28\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": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-rank",
+ "command": [
+ "python3",
+ "scripts/rank_causal_graph_readiness.py",
+ "kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml",
+ "--format",
+ "json"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000258\",\n \"name\": \"Coastal Forested Wetland Seawater-Ion Microcosm Community\",\n \"score\": 90.0,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 4,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 7,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community.yaml\"\n }\n]\n"
+ },
+ {
+ "check": "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community-history-0",
+ "command": [
+ "linkml-validate",
+ "-s",
+ "src/communitymech/schema/history.yaml",
+ "--target-class",
+ "HistoryRecord",
+ "history/records/Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community/2026-10-06T012901Z-codex-726bcf.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\": 342,\n \"reviewed\": 115\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_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": "........................................................................ [ 26%]\n........................................................................ [ 53%]\n........................................................................ [ 80%]\n...................................................... [100%]\n270 passed in 237.82s (0:03:57)\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 2.14s\n"
+ },
+ {
+ "check": "black",
+ "command": [
+ "black",
+ "--check",
+ "tests/test_causal_review_batch22.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_batch22.py"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": "All checks passed!\n"
+ },
+ {
+ "check": "diff-check",
+ "command": [
+ "git",
+ "diff",
+ "--check"
+ ],
+ "exit_code": 0,
+ "expected_exit_codes": [
+ 0
+ ],
+ "output": ""
+ }
+ ],
+ "limitations": [
+ "Source-based self-adversarial review, not independent approval or corpus completion.",
+ "Actual baseline just audit-network-json lacked its console entry point; exact repository CLI implementation used. No dependency changes.",
+ "All 678 prior issue titles/bodies and ignored-inclusive local reports/history/research/tests searched; comments not exhaustive.",
+ "JN4, staged-butanol and wetland primary main bodies, Methods, tables/captions read. Three additional abstracts reviewed for context or follow-up; no images/supplementary files inspected.",
+ "Ten nodes retained, six exact renames, all six arrows retained and qualified. No new causal structure or Edison spend.",
+ "Non-graph followup #1343 and existing #746/#524 remain open; unrelated YAML blocks and seven cache artifacts byte-preserved.",
+ "Generated pages checked by deterministic rendering and exact parsed description coverage, not browser screenshots."
+ ],
+ "unchanged_raw_blocks": 55,
+ "reference_caches_unchanged": true,
+ "participant_registry_only_adds_intentional_users": true,
+ "connectivity_test_change": "Only mixed upper bound 120 -> 122 and its explanatory comment (#1344); all other bounds unchanged.",
+ "connectivity_survey_before": {
+ "records": 460,
+ "with_community_level": 387,
+ "mixed": 120,
+ "community_level_only": 267,
+ "taxa": 1495,
+ "credited_solely_by_the_rule": 1218
+ },
+ "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": 1218
+ },
+ "connectivity_delta": {
+ "records": 0,
+ "with_community_level": 2,
+ "mixed": 2,
+ "community_level_only": 0,
+ "taxa": 4,
+ "credited_solely_by_the_rule": 0
+ },
+ "snippet_counts": {
+ "MATCH": 87,
+ "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": 342,
+ "reviewed": 115
+ },
+ "structural_defects": []
+ },
+ "network_warning_count": 25,
+ "status": "passed"
+}
diff --git a/tests/test_causal_review_batch22.py b/tests/test_causal_review_batch22.py
new file mode 100644
index 000000000..b8082e051
--- /dev/null
+++ b/tests/test_causal_review_batch22.py
@@ -0,0 +1,165 @@
+"""Bound treatment effects and product associations without erasing controls."""
+
+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-batch22.yaml"
+STEMS = [
+ "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture",
+ "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture",
+ "Coastal_Forested_Wetland_Seawater_Ion_Microcosm_Community",
+]
+
+
+def record(index):
+ return yaml.safe_load((ROOT / "kb/communities" / f"{STEMS[index]}.yaml").read_text())
+
+
+def assert_participants(node, doc):
+ assert node["scope"] == "COMMUNITY_LEVEL"
+ assert "source_taxon" not in node and "target_taxon" not in node
+ assert "interaction_type" not in node
+ assert node["participating_taxa"] == [
+ {"preferred_term": t["taxon_term"]["preferred_term"], "term": t["taxon_term"]["term"]}
+ for t in doc["taxonomy"]
+ ]
+
+
+def test_jn4_output_and_conversion_keep_positive_evidence_without_harm_enum():
+ doc = record(0)
+ output, conversion, inhibition = doc["ecological_interactions"]
+ assert_participants(output, doc)
+ assert "more lactate, acetate and ethanol" in output["description"]
+ assert "without improved overall cellulose utilization" in output["description"]
+ assert "separate monoculture assays" in conversion["description"]
+ assert "do not directly partition partner carbon flux" in conversion["description"]
+ for node in (conversion, inhibition):
+ assert node["scope"] == "PAIRWISE"
+ assert node["source_taxon"]["term"]["id"] == "NCBITaxon:1517"
+ assert node["target_taxon"]["term"]["id"] == "NCBITaxon:1515"
+ assert "interaction_type" not in node
+ assert node["downstream"][0]["target"] == output["name"]
+ assert node["downstream"][0]["description"].startswith("PARTIAL")
+
+
+def test_jn4_growth_and_stimulants_are_not_viable_counts_or_carbon_partition():
+ node = record(0)["ecological_interactions"][2]
+ assert "estimated from total protein and genomic community proportions" in node["description"]
+ assert "not a direct viable-cell count" in node["description"]
+ assert "largely stopped cellulose use" in node["description"]
+ assert "adds carbon and changes sampling time" in node["description"]
+ assert (
+ "not a measured reduction of total fermentation products"
+ in node["downstream"][0]["description"]
+ )
+
+
+def test_butanol_staging_and_output_do_not_become_donation_or_exclusive_flux():
+ doc = record(1)
+ supply, output, _ = doc["ecological_interactions"]
+ assert supply["interaction_type"] == "CROSS_FEEDING"
+ assert supply["scope"] == "PAIRWISE"
+ assert "timing and temperature are coupled" in supply["description"]
+ assert "inoculum medium contains glucose" in supply["description"]
+ assert "staged-versus-simultaneous comparison" in supply["downstream"][0]["description"]
+ assert supply["downstream"][0]["target"] == output["name"]
+ assert_participants(output, doc)
+ assert "acetone-addition control" in output["description"]
+ assert "retain acetone-pathway enzyme activities" in output["description"]
+ assert "not butanol donation or proof of pathway shutdown" in output["description"]
+
+
+def test_butanol_hydrogen_retains_only_a_hypothesized_redox_contribution():
+ doc = record(1)
+ _, output, hydrogen = doc["ecological_interactions"]
+ assert_participants(hydrogen, doc)
+ assert "2013 abstract" in hydrogen["description"]
+ assert "future hydrogenase selection" in hydrogen["description"]
+ assert "2011 Discussion proposes redox allocation" in hydrogen["description"]
+ assert "interspecies hydrogen donation" in hydrogen["description"]
+ assert hydrogen["downstream"][0]["target"] == output["name"]
+ assert hydrogen["downstream"][0]["description"].startswith("HYPOTHESIZED")
+ assert all(e["supports"] == "PARTIAL" for e in hydrogen["evidence"])
+
+
+def test_wetland_treatment_and_dna_response_are_not_niche_or_activity_claims():
+ nodes = record(2)["ecological_interactions"]
+ exposure, _, genes, flux = nodes
+ for node in nodes:
+ assert node["scope"] == "COMMUNITY_LEVEL"
+ assert (
+ not {"interaction_type", "source_taxon", "target_taxon", "participating_taxa"}
+ & node.keys()
+ )
+ assert "does not isolate sodium chloride" in exposure["description"]
+ assert "relative abundances" in genes["description"]
+ assert "not transcript abundance, pathway activity" in genes["description"]
+ assert [e["target"] for e in exposure["downstream"]] == [genes["name"], flux["name"]]
+ assert all("PARTIAL" in e["description"] for e in exposure["downstream"])
+
+
+def test_wetland_null_and_gases_preserve_temporal_and_statistical_distinctions():
+ _, sulfate, _, flux = record(2)["ecological_interactions"]
+ assert "increased porewater sulfate" in sulfate["description"]
+ assert "at week 12" in sulfate["description"]
+ assert "Hydrogen sulfide was detected" in sulfate["description"]
+ assert "at day 14" in sulfate["description"]
+ assert "does not establish inactive sulfate reduction" in sulfate["description"]
+ assert "no significant individual pairwise contrasts" in flux["description"]
+ assert "complete artificial seawater was intermediate" in flux["description"]
+ assert "including sulfate-only" in flux["description"]
+ assert "do not directly partition microbial production and consumption" in flux["description"]
+
+
+def test_batch22_adds_exactly_two_mixed_scope_records_with_named_pairs():
+ for index in (0, 1):
+ doc = record(index)
+ nodes = doc["ecological_interactions"]
+ assert len(doc["taxonomy"]) == 2
+ assert {n["scope"] for n in nodes} == {"PAIRWISE", "COMMUNITY_LEVEL"}
+ pairs = [n for n in nodes if n["scope"] == "PAIRWISE"]
+ assert {
+ n[role]["term"]["id"] for n in pairs for role in ("source_taxon", "target_taxon")
+ } == {t["taxon_term"]["term"]["id"] for t in doc["taxonomy"]}
+ assert all(n["scope"] == "COMMUNITY_LEVEL" for n in record(2)["ecological_interactions"])
+
+
+def test_batch22_ledger_accounts_for_every_node_arrow_and_cache():
+ ledger = yaml.safe_load(LEDGER.read_text())
+ assert ledger["independent_approval"] is False
+ assert len(ledger["reference_cache_original_hashes"]) == 7
+ rows = ledger["records"]
+ assert len(rows) == 3
+ assert sum(len(r["node_decisions"]) for r in rows) == 10
+ assert sum(len(r["retained_edge_decisions"]) for r in rows) == 6
+ assert sum(len(r["removed_edge_decisions"]) for r in rows) == 0
+ assert sum(len(r["renamed_nodes"]) for r in rows) == 6
+ for row in rows:
+ raw = (ROOT / row["path"]).read_bytes()
+ assert hashlib.sha256(raw).hexdigest() == row["record_sha256"]
+ doc = yaml.safe_load(raw)
+ nodes = doc["ecological_interactions"]
+ names = {n["name"] for n in nodes}
+ assert Counter(d["node"] for d in row["node_decisions"]) == Counter(names)
+ edges = [{"source": n["name"], **e} for n in nodes for e in n.get("downstream", [])]
+ assert row["edges_after"] == edges
+ renames = row["renamed_nodes"]
+ before = {
+ (renames.get(e["source"], e["source"]), renames.get(e["target"], e["target"]))
+ for e in row["edges_before"]
+ }
+ assert before == {(e["source"], e["target"]) for e in row["retained_edge_decisions"]}
+ assert all(e["target"] in names for e in edges)
+ assert any(d["kind"] == "KNOWLEDGE_GAP" for d in doc["discussions"])
+ assert all(
+ a.split("#", 1)[1] in names
+ for d in doc["discussions"]
+ for a in d["attaches_to"]
+ if a.startswith("ecological_interactions#")
+ )
+ for path, expected in ledger["reference_cache_original_hashes"].items():
+ assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected
diff --git a/tests/test_community_level_connectivity_credit.py b/tests/test_community_level_connectivity_credit.py
index c7fcf50ff..08d3d7c27 100644
--- a/tests/test_community_level_connectivity_credit.py
+++ b/tests/test_community_level_connectivity_credit.py
@@ -112,11 +112,12 @@ def test_most_records_carry_a_community_level_interaction(survey):
def test_the_mixed_records_are_where_the_coarseness_bites(survey):
"""A record with both kinds is where an unrelated edge credits a lone taxon.
- #312 measured 46; ongoing curation has moved this near 90. In the
+ #1344 adds two source-backed mixed-scope records (120 -> 122).
+ #312 measured 46. In the
community-level-only records the credit is not
coarse — there is no pairwise edge it could be masking.
"""
- assert 35 <= survey["mixed"] <= 120, survey
+ assert 35 <= survey["mixed"] <= 122, survey
assert survey["mixed"] + survey["community_level_only"] == survey["with_community_level"]
diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py
index 6523eb9e7..e44d0b71d 100644
--- a/tests/test_participating_taxa.py
+++ b/tests/test_participating_taxa.py
@@ -218,6 +218,8 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example):
"Clostridium_Phytofermentans_Ecoli_Cellobiose_Biofilm_Consortium.yaml",
"Clostridium_Saccharomyces_Cellulose_Ethanol_Coculture.yaml",
"Clostridium_Thermoanaerobacter_Cellulosic_Bioethanol_Coculture.yaml",
+ "Clostridium_Thermoanaerobacterium_JN4_GD17_Cellulosic_Biofuel_Coculture.yaml",
+ "Clostridium_Thermocellum_Saccharoperbutylacetonicum_Cellulosic_Butanol_Coculture.yaml",
"Community_G_GenX_Biodegradation_Consortium.yaml",
"Coniochaeta_Sphingobacterium_Citrobacter_Wheat_Straw_Consortium.yaml",
"Cordyceps_Malbranchea_Antimicrobial_Coculture.yaml",