diff --git a/docs/communities/LBNL_Brachypodium_Drought_SynCom15.html b/docs/communities/LBNL_Brachypodium_Drought_SynCom15.html index 400021c50..219afc3a7 100644 --- a/docs/communities/LBNL_Brachypodium_Drought_SynCom15.html +++ b/docs/communities/LBNL_Brachypodium_Drought_SynCom15.html @@ -533,111 +533,18 @@

Ecological Interactions

-

Network-Cultivation Fifteen-Member Design

-
-

The Brachypodium SynCom workflow combined rhizobiome network analysis with cultivation-guided methods to choose a reproducible 15-member community that retained ecological connections from the root microbiome. -

- - - - - - - - -

Biological Processes:

- - - - - - -

Evidence

- - -
- -
-
-

Five-Phylum Rhizobiome SynCom Assembly

+

Genomic Osmoprotectant and Ion-Transport Prediction

-

The final 15-member SynCom incorporated diverse Brachypodium rhizobiome strains from five bacterial phyla, creating a tractable synthetic community for drought and stability assays. -

- - - - - - - - -

Biological Processes:

- - - - - - -

Evidence

- -
-
-
-

Genomic Osmoprotectant and Ion-Transport Prediction

-
-

Whole-genome analysis of individual SynCom strains predicted multiple plant-growth-promoting traits, including biosynthesis of the osmoprotectants trehalose and betaine and sodium/potassium transporter genes relevant to drought and salinity stress. -

+

Participating Taxa: + Brachypodium rhizobiome bacteria +

@@ -679,7 +586,7 @@

Evidence

PMID:40862137 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
"Genomic analysis of the individual strains was performed to reveal encoded plant growth-promoting traits"
@@ -692,7 +599,7 @@

Evidence

PMID:40862137 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
"genes for the synthesis of osmoprotectants (trehalose and betaine) and Na+/K+ transporters"
@@ -705,14 +612,19 @@

Evidence

-

Laboratory PGP Trait Validation

+

Member-Level PGP Phenotypes

-

Laboratory phenotypic assays validated a subset of the predicted plant-growth-promoting traits, connecting the SynCom genome annotations to experimentally observed member functions before plant stress testing. -

+

Individual SynCom isolates showed positive results in selected plant-growth-promoting trait assays, including colorimetric and substrate-depletion readouts. These are member-level phenotypes, not direct community flux measurements. PARTIAL - their contribution to plant recovery, and the roles of specific metabolites or enzymes in planta, were not selectively established.

+

Participating Taxa: + + Brachypodium rhizobiome bacteria + +

+ @@ -754,14 +666,19 @@

Evidence

-

In Vitro and In Planta SynCom Stability

+

Host-Associated Persistence Compared With Liquid Culture

-

The 15-member bacterial SynCom persisted as a stable consortium in both the in vitro serial culture and in planta Brachypodium experiments, supporting downstream interpretation of the defined community under plant stress. -

+

The 15-member inoculum showed more balanced 16S relative profiles with Brachypodium than in liquid culture. In the three-week weekly-transfer 0.2X MS experiment, six strains were undetectable or below 0.1% relative abundance; three taxa dominated. Plant experiments reported persistence of members, with unequal abundances. These sequencing observations do not establish equal stability of all 15 strains in vitro, absolute viable counts or reciprocal mutualism.

+

Participating Taxa: + + Brachypodium rhizobiome bacteria + +

+ @@ -784,6 +701,19 @@

In Vitro and In Planta SynCom Stability

Evidence

"plants amended with the SynCom recovered better than those without"
@@ -852,13 +787,18 @@

Evidence

-

Stress Root-Tip Preferential Colonization

+

Strain-Dependent Root Spatial Distribution

-

Under stress, SynCom strains preferentially colonized Brachypodium root tips, a spatial pattern interpreted as localized plant-microbe signaling mediated by interactions between bacterial strains and root metabolites. -

+

After 21 days, 16S profiles differed between root tips and bases in a strain- and condition-dependent manner. MA-N2 sp. RCC-150 showed root-tip enrichment under drought and salt stress; some other strains were instead enriched at the base. HYPOTHESIZED - exudate-guided recruitment and metabolite return could contribute, but isolate carbon-use assays and spatial relative abundance do not trace migration, exchange or selective mediation of recovery.

+ +

Participating Taxa: + + Brachypodium rhizobiome bacteria + +

@@ -888,7 +828,7 @@

Evidence

PMID:40862137 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VIVO)
"preferential colonization of SynCom strains around root tips under stress"
@@ -901,7 +841,7 @@

Evidence

PMID:40862137 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VIVO)
"likely due to active interactions between plant root metabolites and bacteria"
@@ -917,6 +857,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which members and functions mediate the post-drought recovery benefit? +

+

Remove two assembly/design-only graph nodes; those methodological facts remain in the unchanged design metadata. Preserve positive genomic potential, member assays, host-associated persistence, rewatering benefit and spatial observations. The broad abstract stability statement is qualified by the main Results: six strains were undetectable or below 0.1% after three weeks in vitro. Drought recovery and sustained drought are distinct. Root-exudate recruitment, osmoprotectant transfer and gene mediation remain hypotheses, without invented arrows. The canonical Bacteria entry is an aggregate placeholder, not a resolved 15-strain roster; #1548 tracks non-graph taxonomy/ingredient/protocol gaps. Original figure pixels, separate supplements and raw data were not audited.

+ +

Attaches to: ecological_interactions#Genomic Osmoprotectant and Ion-Transport Prediction, ecological_interactions#Member-Level PGP Phenotypes, ecological_interactions#Host-Associated Persistence Compared With Liquid Culture, ecological_interactions#Brachypodium Drought Recovery Promotion, ecological_interactions#Strain-Dependent Root Spatial Distribution

+ + + + +
+ +
@@ -1121,17 +1080,23 @@

Evidence

var intType = "UNKNOWN"; var metabolites = []; + + metabolites.push("trehalose"); + + metabolites.push("glycine betaine"); + + var processes = []; processes.push("interspecies interaction between organisms"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, - label: "Network-Cultivation Fifteen-Member Design", + label: "Genomic Osmoprotectant and Ion-Transport Prediction", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1142,6 +1107,17 @@

Evidence

+ var participantKeys = [ + + "Brachypodium rhizobiome bacteria" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { @@ -1159,7 +1135,7 @@

Evidence

nodes.push({ id: intId, - label: "Five-Phylum Rhizobiome SynCom Assembly", + label: "Member-Level PGP Phenotypes", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1170,44 +1146,21 @@

Evidence

- })(); - - (function() { - var intId = "interaction:2"; - var intType = "UNKNOWN"; - var metabolites = []; - - - metabolites.push("trehalose"); - - metabolites.push("glycine betaine"); - - - var processes = []; - - - processes.push("interspecies interaction between organisms"); - + var participantKeys = [ - var evidenceCount = 2; + "Brachypodium rhizobiome bacteria" - nodes.push({ - id: intId, - label: "Genomic Osmoprotectant and Ion-Transport Prediction", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); (function() { - var intId = "interaction:3"; + var intId = "interaction:2"; var intType = "UNKNOWN"; var metabolites = []; @@ -1217,11 +1170,11 @@

Evidence

processes.push("interspecies interaction between organisms"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, - label: "Laboratory PGP Trait Validation", + label: "Host-Associated Persistence Compared With Liquid Culture", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1232,38 +1185,21 @@

Evidence

- })(); - - (function() { - var intId = "interaction:4"; - var intType = "UNKNOWN"; - var metabolites = []; - - var processes = []; - - - processes.push("interspecies interaction between organisms"); - + var participantKeys = [ - var evidenceCount = 1; + "Brachypodium rhizobiome bacteria" - nodes.push({ - id: intId, - label: "In Vitro and In Planta SynCom Stability", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); (function() { - var intId = "interaction:5"; + var intId = "interaction:3"; var intType = "UNKNOWN"; var metabolites = []; @@ -1288,10 +1224,21 @@

Evidence

+ var participantKeys = [ + + "Brachypodium rhizobiome bacteria" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { - var intId = "interaction:6"; + var intId = "interaction:4"; var intType = "UNKNOWN"; var metabolites = []; @@ -1305,7 +1252,7 @@

Evidence

nodes.push({ id: intId, - label: "Stress Root-Tip Preferential Colonization", + label: "Strain-Dependent Root Spatial Distribution", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1316,6 +1263,17 @@

Evidence

+ var participantKeys = [ + + "Brachypodium rhizobiome bacteria" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); @@ -1337,7 +1295,7 @@

Evidence

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

Ecological Interactions

Ecological interaction network for LBNL Human Gut Interaction SynCom - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (cross-feeding, niche partitioning). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction.
@@ -524,13 +524,8 @@

Ecological Interactions

Cross-feeding -
-
- Niche partitioning + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -538,23 +533,20 @@

Ecological Interactions

-

Pairwise Interaction-Dominated Community Dynamics

- CROSS_FEEDING +

Pairwise Model Prediction Of Community Dynamics

-

Time-resolved measurements of lower-order assemblages showed that pairwise interactions, rather than higher-order interactions, are major drivers of the synthetic gut community dynamics.

+

A generalized Lotka-Volterra model trained on monospecies and pairwise time series predicted much of the tested 11- and 12-member community dynamics; additional full-community training improved predictions. PARTIAL - model success supports important pairwise effects in these conditions, not absence of higher-order effects, perfect prediction or universal acetate cross-feeding. Abundance inputs combined 16S proportions with OD600, not direct viable-cell counts.

+

Participating Taxa: + human gut bacterial SynCom members -

Metabolites: +

- acetate - (CHEBI:30089) -

@@ -571,16 +563,6 @@

Pairwise Interaction-Dominated Community Dynamics

-
- Downstream Effects: - -
- → Positive-Negative Ecological Network Topology -

Pairwise inference resolved both negative and positive interactions that together define the ecological network topology of the synthetic gut community.

-
- -
-

Evidence

@@ -605,23 +587,10 @@

Evidence

PMID:29930200 - - SUPPORT (IN_VITRO) + - SUPPORT (COMPUTATIONAL)
-
"pairwise interactions are major drivers of multi-species community dynamics"
- - - -
  • -
    - - PMID:29930200 - - - SUPPORT (IN_VITRO) -
    - -
    "cross‐feeding of metabolic by‐products such as acetate in the gut microbiota is a prevalent mechanism that could alter environmental pH"
    +
    "pairwise interactions are major drivers of multi‐species community dynamics"
  • @@ -631,13 +600,18 @@

    Evidence

    -

    Positive-Negative Ecological Network Topology

    - NICHE_PARTITIONING +

    Inferred Positive-Negative Ecological Network Topology

    -

    The inferred human-gut SynCom network contains many negative interactions and frequent positive interactions that form the interaction topology of the community.

    +

    The fitted 12-species gut network contains frequent negative and positive interaction coefficients, including coupled positive/negative pairwise motifs. These are effective ecological effects inferred from abundance dynamics. Their signs do not uniquely identify nutrient competition, cross-feeding, niche partitioning or molecular mechanisms; conditioned-medium and metabolomics results provide complementary but imperfect support.

    + + + +

    Participating Taxa: + human gut bacterial SynCom members +

    @@ -660,8 +634,8 @@

    Positive-Negative Ecological Network Topology

    Downstream Effects:
    - → Robust Coexistence Feedback -

    The mixed positive and negative topology enables feedback that balances differences in monospecies fitness and supports robust coexistence.

    + → Modeled Pairwise Coexistence Feedback +

    PARTIAL - in the fitted pairwise gLV models, coupled positive and negative effects create negative feedback that limits the higher-fitness partner and permits coexistence with the lower-fitness partner across a broader tested growth-rate range than mutual inhibition. This preserves the source-supported model mechanism, not proof of a universal or molecularly resolved feedback in the entire gut community.

    @@ -677,7 +651,7 @@

    Evidence

    PMID:29930200 - - SUPPORT (IN_VITRO) + - SUPPORT (COMPUTATIONAL)
    "The inferred ecological network exhibits a high proportion of negative and frequent positive interactions."
    @@ -690,14 +664,19 @@

    Evidence

    -

    Robust Coexistence Feedback

    - NICHE_PARTITIONING +

    Modeled Pairwise Coexistence Feedback

    -

    Positive and negative interactions implement a stabilizing negative feedback loop that balances monospecies fitness differences and enables robust coexistence.

    +

    Within the inferred pairwise gLV models, a positive/negative motif implements negative feedback that balances monospecies fitness differences and supports coexistence over a broader tested parameter range than mutual inhibition. The CH-ER pair provides an experimentally coexisting example. PARTIAL - the mathematical mechanism is model-bounded; neither its molecular mediator nor universal stability of the full 12-member system follows from this analysis.

    +

    Participating Taxa: + + human gut bacterial SynCom members + +

    + @@ -726,7 +705,7 @@

    Evidence

    PMID:29930200 - - SUPPORT (IN_VITRO) + - SUPPORT (COMPUTATIONAL)
    "positive and negative interaction topology enables robust coexistence by implementing a negative feedback loop"
    @@ -742,6 +721,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which molecular mechanisms realize the inferred signed interactions and feedback? +

    +

    Remove the analytical inference-to-topology arrow, but retain topology-to-coexistence as a model-bounded causal mechanism. Acetate in the cited passage is a prior-literature example; separate metabolomics cultures supplemented ER and FP with acetate, which does not prove cross-feeding throughout this graph. Co-consumption/secretion only yields an ecological effect when relevant substrates limit growth, and conditioned-medium signs do not always match inferred coefficients. Higher-order effects, parameter uncertainty and OD-scaled abundance remain limitations. Canonical NCBITaxon:2 is only an aggregate placeholder for the 12-species experimental roster; #1548 tracks its grounding and non-graph metadata. No original figure pixels, separate supplements, raw data or executable model reproduction was performed.

    + +

    Attaches to: ecological_interactions#Pairwise Model Prediction Of Community Dynamics, ecological_interactions#Inferred Positive-Negative Ecological Network Topology, ecological_interactions#Modeled Pairwise Coexistence Feedback

    + + + + +
    + +
    @@ -948,24 +946,20 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; - - metabolites.push("acetate"); - - var processes = []; processes.push("biological process involved in interspecies interaction between organisms"); - var evidenceCount = 3; + var evidenceCount = 2; nodes.push({ id: intId, - label: "Pairwise Interaction-Dominated Community Dynamics", + label: "Pairwise Model Prediction Of Community Dynamics", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -976,11 +970,22 @@

    Evidence

    + var participantKeys = [ + + "human gut bacterial SynCom members" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:1"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -993,7 +998,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Positive-Negative Ecological Network Topology", + label: "Inferred Positive-Negative Ecological Network Topology", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1004,11 +1009,22 @@

    Evidence

    + var participantKeys = [ + + "human gut bacterial SynCom members" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:2"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1021,7 +1037,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Robust Coexistence Feedback", + label: "Modeled Pairwise Coexistence Feedback", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1032,6 +1048,17 @@

    Evidence

    + var participantKeys = [ + + "human gut bacterial SynCom members" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); diff --git a/docs/communities/LBNL_Switchgrass_Soil_SynCom16.html b/docs/communities/LBNL_Switchgrass_Soil_SynCom16.html index c508c7447..c26bf59e3 100644 --- a/docs/communities/LBNL_Switchgrass_Soil_SynCom16.html +++ b/docs/communities/LBNL_Switchgrass_Soil_SynCom16.html @@ -527,13 +527,18 @@

    Ecological Interactions

    -

    Automated Soil SynCom Assembly

    +

    Low-Nutrient Alpha-Diversity Enrichment

    -

    A CellenONE liquid-handling printer dispensed normalized switchgrass soil isolates into SynComs with less between-assembler variation than the manually pipetted communities. -

    +

    In the initial equally mixed 18-strain community, dilution from 1X to 0.2X or 0.1X R2A lowered total OD600 while increasing Shannon diversity and evenness after three days. Pseudomonas remained relatively dominant. This assay preceded the final 16-member model and does not demonstrate increased absolute viable abundance, partner-specific facilitation or the same response in every community variant.

    + + +

    Participating Taxa: + soil bacterial SynCom members + +

    @@ -566,46 +571,10 @@

    Evidence

    - SUPPORT (IN_VITRO)
    -
    "SynCom assembly with the automated printer will, on average, result in less variability than will SynCom assembly by different people"
    - - - - - - - -
    -
    -

    Low-Nutrient Alpha-Diversity Enrichment

    -
    -

    Diluting R2A to low nutrient strength lowered total biomass but retained a broader and more even mixture of soil isolates during three days of SynCom growth. -

    - - - - - - - - -

    Biological Processes:

    - - - - - - -

    Evidence

    - - -
    - -
    -
    -

    EcoFAB Brachypodium Rhizosphere Colonization

    -
    -

    An equally mixed switchgrass soil-isolate SynCom colonized sterile Brachypodium distachyon in EcoFAB devices and shifted into a root-associated composition over seven days on the plant. -

    - - - - - +
  • +
    + PMID:36472419 + - SUPPORT (IN_VIVO) +
    -

    Biological Processes:

    - +
  • + + -

    Evidence

    - - - - - @@ -990,11 +952,11 @@

    Evidence

    processes.push("growth"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, - label: "Automated Soil SynCom Assembly", + label: "Low-Nutrient Alpha-Diversity Enrichment", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1005,38 +967,21 @@

    Evidence

    - })(); - - (function() { - var intId = "interaction:1"; - var intType = "UNKNOWN"; - var metabolites = []; - - var processes = []; + var participantKeys = [ + "soil bacterial SynCom members" - processes.push("growth"); - - - var evidenceCount = 1; - - nodes.push({ - id: intId, - label: "Low-Nutrient Alpha-Diversity Enrichment", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); (function() { - var intId = "interaction:2"; + var intId = "interaction:1"; var intType = "UNKNOWN"; var metabolites = []; @@ -1050,7 +995,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Starting-Ratio Diversity Maximization", + label: "Starting-Ratio Dependent Community Diversity", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1061,48 +1006,31 @@

    Evidence

    - })(); - - (function() { - var intId = "interaction:3"; - var intType = "UNKNOWN"; - var metabolites = []; - - var processes = []; - + var participantKeys = [ - processes.push("growth"); + "soil bacterial SynCom members" - - var evidenceCount = 1; - - nodes.push({ - id: intId, - label: "Glycerol-Preserved SynCom Regrowth", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); (function() { - var intId = "interaction:4"; + var intId = "interaction:2"; var intType = "UNKNOWN"; var metabolites = []; var processes = []; - processes.push("symbiotic process"); + processes.push("biological process involved in interspecies interaction between organisms"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, @@ -1117,6 +1045,17 @@

    Evidence

    + var participantKeys = [ + + "soil bacterial SynCom members" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); @@ -1138,7 +1077,7 @@

    Evidence

    var svg = d3.select("#network-svg"); var width = container.clientWidth - 32; // Dynamic height based on node count: minimum 500px, add 40px per node - var nodeCount = 6; + var nodeCount = 4; var height = Math.max(500, 400 + nodeCount * 20); svg.attr("width", width).attr("height", height); diff --git a/history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml b/history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml new file mode 100644 index 000000000..ec123968a --- /dev/null +++ b/history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml + slug: LBNL_Brachypodium_Drought_SynCom15 +session: + id: 2026-10-06T204405Z-codex-1f9ff6 + timestamp: '2026-10-06T20:44:05Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1545 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Bound Brachypodium persistence, recovery and member-function claims to primary + assays. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml diff --git a/history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml b/history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml new file mode 100644 index 000000000..b3fb082c5 --- /dev/null +++ b/history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml + slug: LBNL_Human_Gut_Interaction_SynCom +session: + id: 2026-10-06T204405Z-codex-60df62 + timestamp: '2026-10-06T20:44:05Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1546 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Preserve modeled gut coexistence feedback and remove unsupported acetate and inference-workflow + claims. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml diff --git a/history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml b/history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml new file mode 100644 index 000000000..ca69eef3d --- /dev/null +++ b/history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml @@ -0,0 +1,24 @@ +history_version: 1 +target: + kind: record + path: kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml + slug: LBNL_Switchgrass_Soil_SynCom16 +session: + id: 2026-10-06T204405Z-codex-ae8721 + timestamp: '2026-10-06T20:44:05Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1547 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Separate soil SynCom assay variants and remove assembly/storage graph procedures. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml diff --git a/kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml b/kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml index 2e1f46ee5..51e815cf1 100644 --- a/kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml +++ b/kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml @@ -52,54 +52,23 @@ taxonomy: evidence: - *id001 ecological_interactions: -- name: Network-Cultivation Fifteen-Member Design - description: > - The Brachypodium SynCom workflow combined rhizobiome network analysis with - cultivation-guided methods to choose a reproducible 15-member community that - retained ecological connections from the root microbiome. - scope: COMMUNITY_LEVEL - biological_processes: - - preferred_term: interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: - - *id001 -- name: Five-Phylum Rhizobiome SynCom Assembly - description: > - The final 15-member SynCom incorporated diverse Brachypodium rhizobiome - strains from five bacterial phyla, creating a tractable synthetic community - for drought and stability assays. - scope: COMMUNITY_LEVEL - biological_processes: - - preferred_term: interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: - - reference: PMID:40862137 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: This SynCom incorporates diverse strains from five bacterial phyla - explanation: > - Supports the five-phyla breadth of the assembled 15-member Brachypodium - rhizobiome SynCom. - name: Genomic Osmoprotectant and Ion-Transport Prediction - description: > - Whole-genome analysis of individual SynCom strains predicted multiple - plant-growth-promoting traits, including biosynthesis of the osmoprotectants - trehalose and betaine and sodium/potassium transporter genes relevant to - drought and salinity stress. + description: Genome annotations of individual members predict osmoprotectant and ion-transport potential, including + trehalose/betaine-related genes. PARTIAL - gene presence does not establish expression, synthesis, secretion, + transfer to Brachypodium or necessary mediation of drought recovery. This is member functional potential, not + demonstrated interstrain cross-feeding. scope: COMMUNITY_LEVEL metabolites: - preferred_term: trehalose term: id: CHEBI:27082 label: trehalose + notes: Contextual genome-predicted osmoprotectant potential, not measured transfer or host delivery. - preferred_term: glycine betaine term: id: CHEBI:17750 label: glycine betaine + notes: Contextual genome-predicted osmoprotectant potential, not measured transfer or host delivery. biological_processes: - preferred_term: interspecies interaction between organisms term: @@ -107,25 +76,27 @@ ecological_interactions: label: biological process involved in interspecies interaction between organisms evidence: - reference: PMID:40862137 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: Genomic analysis of the individual strains was performed to reveal encoded plant - growth-promoting traits - explanation: > - Supports genome-resolved prediction of plant-growth-promoting functions in - the SynCom members. + snippet: Genomic analysis of the individual strains was performed to reveal encoded plant growth-promoting traits + explanation: Supports encoded functional potential; no expression, flux or necessary host-protection mechanism + is established. - reference: PMID:40862137 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: genes for the synthesis of osmoprotectants (trehalose and betaine) and Na+/K+ - transporters - explanation: Identifies trehalose and glycine betaine as encoded osmoprotectant - traits of the drought-resilience SynCom members. -- name: Laboratory PGP Trait Validation - description: > - Laboratory phenotypic assays validated a subset of the predicted - plant-growth-promoting traits, connecting the SynCom genome annotations to - experimentally observed member functions before plant stress testing. + snippet: genes for the synthesis of osmoprotectants (trehalose and betaine) and Na+/K+ transporters + explanation: Supports encoded functional potential; no expression, flux or necessary host-protection mechanism + is established. + participating_taxa: + - preferred_term: Brachypodium rhizobiome bacteria + term: + id: NCBITaxon:2 + label: Bacteria +- name: Member-Level PGP Phenotypes + description: Individual SynCom isolates showed positive results in selected plant-growth-promoting trait assays, + including colorimetric and substrate-depletion readouts. These are member-level phenotypes, not direct community + flux measurements. PARTIAL - their contribution to plant recovery, and the roles of specific metabolites or + enzymes in planta, were not selectively established. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: interspecies interaction between organisms @@ -137,14 +108,19 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: some predicted traits were validated by laboratory phenotypic assays - explanation: > - Supports phenotypic validation of selected genome-predicted - plant-growth-promoting traits. -- name: In Vitro and In Planta SynCom Stability - description: > - The 15-member bacterial SynCom persisted as a stable consortium in both the - in vitro serial culture and in planta Brachypodium experiments, supporting - downstream interpretation of the defined community under plant stress. + explanation: Supports positive isolate-level phenotypic assays, not validation of every genomic prediction or + a necessary plant-benefit mediator. + participating_taxa: + - preferred_term: Brachypodium rhizobiome bacteria + term: + id: NCBITaxon:2 + label: Bacteria +- name: Host-Associated Persistence Compared With Liquid Culture + description: The 15-member inoculum showed more balanced 16S relative profiles with Brachypodium than in liquid + culture. In the three-week weekly-transfer 0.2X MS experiment, six strains were undetectable or below 0.1% relative + abundance; three taxa dominated. Plant experiments reported persistence of members, with unequal abundances. + These sequencing observations do not establish equal stability of all 15 strains in vitro, absolute viable counts + or reciprocal mutualism. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: interspecies interaction between organisms @@ -152,18 +128,28 @@ ecological_interactions: id: GO:0044419 label: biological process involved in interspecies interaction between organisms evidence: + - reference: PMID:40862137 + supports: SUPPORT + evidence_source: IN_VIVO + snippet: After 3 weeks of growth in planta, the relative abundance of strains was more evenly distributed + explanation: Direct in-planta Results supporting host-associated relative persistence; paired with a separate + in-vitro excerpt showing loss or low detection of six strains. - reference: PMID:40862137 supports: SUPPORT evidence_source: IN_VITRO - snippet: The SynCom demonstrates strong stability both in vitro and in planta - explanation: > - Supports the in vitro and plant-associated stability of the assembled - 15-member SynCom. + snippet: six of the 15 strains were undetectable or had a relative abundance below 0.1% after 3 weeks + explanation: 'Direct Results qualification of the broad stability abstract: six strains were undetectable or + below 0.1% after three weeks in vitro.' + participating_taxa: + - preferred_term: Brachypodium rhizobiome bacteria + term: + id: NCBITaxon:2 + label: Bacteria - name: Brachypodium Drought Recovery Promotion - description: > - Brachypodium plants amended with the 15-member SynCom recovered better from - drought stress than unamended plants, with osmoprotectant and ion-transporter - genes identified as likely contributors to the observed resilience. + description: SynCom-amended Brachypodium showed better shoot weight, shoot height, root length and leaf-number + outcomes after drought followed by rewatering than unamended plants. The Results report no significant differences + in these endpoints during sustained drought. PARTIAL - osmoprotectant and ion-transporter genes are proposed + contributors, not selectively demonstrated causes of recovery. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: growth @@ -173,16 +159,21 @@ ecological_interactions: evidence: - reference: PMID:40862137 supports: SUPPORT - evidence_source: IN_VITRO + evidence_source: IN_VIVO snippet: plants amended with the SynCom recovered better than those without - explanation: > - Supports improved drought recovery in Brachypodium receiving the - 15-member SynCom. -- name: Stress Root-Tip Preferential Colonization - description: > - Under stress, SynCom strains preferentially colonized Brachypodium root tips, - a spatial pattern interpreted as localized plant-microbe signaling mediated - by interactions between bacterial strains and root metabolites. + explanation: Supports positive whole-plant recovery after rewatering, not significant improvement during sustained + drought or demonstrated gene/metabolite mediation. + participating_taxa: + - preferred_term: Brachypodium rhizobiome bacteria + term: + id: NCBITaxon:2 + label: Bacteria +- name: Strain-Dependent Root Spatial Distribution + description: After 21 days, 16S profiles differed between root tips and bases in a strain- and condition-dependent + manner. MA-N2 sp. RCC-150 showed root-tip enrichment under drought and salt stress; some other strains were + instead enriched at the base. HYPOTHESIZED - exudate-guided recruitment and metabolite return could contribute, + but isolate carbon-use assays and spatial relative abundance do not trace migration, exchange or selective mediation + of recovery. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: interspecies interaction between organisms @@ -191,19 +182,22 @@ ecological_interactions: label: biological process involved in interspecies interaction between organisms evidence: - reference: PMID:40862137 - supports: SUPPORT - evidence_source: IN_VITRO + supports: PARTIAL + evidence_source: IN_VIVO snippet: preferential colonization of SynCom strains around root tips under stress - explanation: > - Supports stress-associated enrichment of SynCom strains around the root - tip. + explanation: Supports the observed spatial pattern and the source-proposed root-metabolite explanation; does + not establish uniform tip preference, traced migration or metabolic exchange. - reference: PMID:40862137 - supports: SUPPORT - evidence_source: IN_VITRO + supports: PARTIAL + evidence_source: IN_VIVO snippet: likely due to active interactions between plant root metabolites and bacteria - explanation: > - Supports plant root metabolites as the proposed basis for the localized - bacterial colonization response. + explanation: Supports the observed spatial pattern and the source-proposed root-metabolite explanation; does + not establish uniform tip preference, traced migration or metabolic exchange. + participating_taxa: + - preferred_term: Brachypodium rhizobiome bacteria + term: + id: NCBITaxon:2 + label: Bacteria environmental_factors: - name: defined synthetic community design value: Network analysis and cultivation-guided selection of 15 rhizobiome strains spanning five bacterial @@ -297,10 +291,35 @@ curation_history: - timestamp: '2026-10-02T05:57:41Z' curator: codex action: PRUNE_CAUSAL_GRAPH_WORKFLOW_EDGES - changes: > - Removed seven downstream edges that followed the Brachypodium SynCom - workflow from network-guided design to assembly, genome prediction, - laboratory trait validation, stability tests, and in planta stress - observations rather than source-backed causal transitions between - interaction phenotypes. + changes: 'Removed seven downstream edges that followed the Brachypodium SynCom workflow from network-guided design + to assembly, genome prediction, laboratory trait validation, stability tests, and in planta stress observations + rather than source-backed causal transitions between interaction phenotypes. + + ' + llm_assisted: true +- timestamp: '2026-10-06T20:44:03Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Bound Brachypodium persistence, recovery and member-function claims to primary assays. Issue #1545; + reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml' llm_assisted: true +discussions: +- discussion_id: lbnl_brachypodium_persistence_and_mediation + prompt: Which members and functions mediate the post-drought recovery benefit? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Genomic Osmoprotectant and Ion-Transport Prediction + - ecological_interactions#Member-Level PGP Phenotypes + - ecological_interactions#Host-Associated Persistence Compared With Liquid Culture + - ecological_interactions#Brachypodium Drought Recovery Promotion + - ecological_interactions#Strain-Dependent Root Spatial Distribution + rationale: 'Remove two assembly/design-only graph nodes; those methodological facts remain in the unchanged design + metadata. Preserve positive genomic potential, member assays, host-associated persistence, rewatering benefit + and spatial observations. The broad abstract stability statement is qualified by the main Results: six strains + were undetectable or below 0.1% after three weeks in vitro. Drought recovery and sustained drought are distinct. + Root-exudate recruitment, osmoprotectant transfer and gene mediation remain hypotheses, without invented arrows. + The canonical Bacteria entry is an aggregate placeholder, not a resolved 15-strain roster; #1548 tracks non-graph + taxonomy/ingredient/protocol gaps. Original figure pixels, separate supplements and raw data were not audited.' + posed_by: codex + posed_date: '2026-10-06' diff --git a/kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml b/kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml index c342e9105..fbcf6132f 100644 --- a/kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml +++ b/kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml @@ -53,44 +53,42 @@ taxonomy: evidence: - *id001 ecological_interactions: -- name: Pairwise Interaction-Dominated Community Dynamics - description: Time-resolved measurements of lower-order assemblages showed that pairwise interactions, - rather than higher-order interactions, are major drivers of the synthetic gut community dynamics. - interaction_type: CROSS_FEEDING +- name: Pairwise Model Prediction Of Community Dynamics + description: A generalized Lotka-Volterra model trained on monospecies and pairwise time series predicted much + of the tested 11- and 12-member community dynamics; additional full-community training improved predictions. + PARTIAL - model success supports important pairwise effects in these conditions, not absence of higher-order + effects, perfect prediction or universal acetate cross-feeding. Abundance inputs combined 16S proportions with + OD600, not direct viable-cell counts. scope: COMMUNITY_LEVEL - metabolites: - - preferred_term: acetate - term: - id: CHEBI:30089 - label: acetate biological_processes: - preferred_term: biological process involved in interspecies interaction between organisms term: id: GO:0044419 label: biological process involved in interspecies interaction between organisms - downstream: - - target: Positive-Negative Ecological Network Topology - description: Pairwise inference resolved both negative and positive interactions that together - define the ecological network topology of the synthetic gut community. evidence: - - *id001 - reference: PMID:29930200 supports: SUPPORT evidence_source: IN_VITRO - snippet: pairwise interactions are major drivers of multi-species community dynamics - explanation: Supports pairwise interactions, rather than only higher-order terms, as the principal - drivers of the modeled synthetic gut community. + snippet: This method was employed to decipher microbial interactions in a diverse human gut microbiome synthetic + community. + explanation: Defines the tested synthetic gut community; this context statement does not itself identify a metabolite + mediator. - reference: PMID:29930200 supports: SUPPORT - evidence_source: IN_VITRO - snippet: cross‐feeding of metabolic by‐products such as acetate in the gut microbiota is a prevalent - mechanism that could alter environmental pH - explanation: Names acetate as a representative cross-fed byproduct in the - gut interactions modeled for the SynCom. -- name: Positive-Negative Ecological Network Topology - description: The inferred human-gut SynCom network contains many negative interactions and frequent - positive interactions that form the interaction topology of the community. - interaction_type: NICHE_PARTITIONING + evidence_source: COMPUTATIONAL + snippet: pairwise interactions are major drivers of multi‐species community dynamics + explanation: Supports the fitted model and experimental predictive comparison within the tested assemblages; + higher-order effects are not categorically excluded. + participating_taxa: + - preferred_term: human gut bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria +- name: Inferred Positive-Negative Ecological Network Topology + description: The fitted 12-species gut network contains frequent negative and positive interaction coefficients, + including coupled positive/negative pairwise motifs. These are effective ecological effects inferred from abundance + dynamics. Their signs do not uniquely identify nutrient competition, cross-feeding, niche partitioning or molecular + mechanisms; conditioned-medium and metabolomics results provide complementary but imperfect support. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: biological process involved in interspecies interaction between organisms @@ -98,20 +96,28 @@ ecological_interactions: id: GO:0044419 label: biological process involved in interspecies interaction between organisms downstream: - - target: Robust Coexistence Feedback - description: The mixed positive and negative topology enables feedback that balances differences - in monospecies fitness and supports robust coexistence. + - target: Modeled Pairwise Coexistence Feedback + description: PARTIAL - in the fitted pairwise gLV models, coupled positive and negative effects create negative + feedback that limits the higher-fitness partner and permits coexistence with the lower-fitness partner across + a broader tested growth-rate range than mutual inhibition. This preserves the source-supported model mechanism, + not proof of a universal or molecularly resolved feedback in the entire gut community. evidence: - reference: PMID:29930200 supports: SUPPORT - evidence_source: IN_VITRO - snippet: The inferred ecological network exhibits a high proportion of negative and frequent - positive interactions. - explanation: Supports the topology inferred from lower-order synthetic gut assemblages. -- name: Robust Coexistence Feedback - description: Positive and negative interactions implement a stabilizing negative feedback loop that - balances monospecies fitness differences and enables robust coexistence. - interaction_type: NICHE_PARTITIONING + evidence_source: COMPUTATIONAL + snippet: The inferred ecological network exhibits a high proportion of negative and frequent positive interactions. + explanation: Supports signs of inferred gLV interaction coefficients, not uniquely identified molecular mechanisms. + participating_taxa: + - preferred_term: human gut bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria +- name: Modeled Pairwise Coexistence Feedback + description: Within the inferred pairwise gLV models, a positive/negative motif implements negative feedback that + balances monospecies fitness differences and supports coexistence over a broader tested parameter range than + mutual inhibition. The CH-ER pair provides an experimentally coexisting example. PARTIAL - the mathematical + mechanism is model-bounded; neither its molecular mediator nor universal stability of the full 12-member system + follows from this analysis. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: biological process involved in interspecies interaction between organisms @@ -121,10 +127,16 @@ ecological_interactions: evidence: - reference: PMID:29930200 supports: SUPPORT - evidence_source: IN_VITRO - snippet: positive and negative interaction topology enables robust coexistence by implementing - a negative feedback loop - explanation: Supports coexistence as an emergent property of the inferred interaction topology. + evidence_source: COMPUTATIONAL + snippet: positive and negative interaction topology enables robust coexistence by implementing a negative feedback + loop + explanation: Supports a negative-feedback coexistence mechanism in analyzed pairwise gLV motifs, not demonstrated + niche partitioning or a traced metabolite loop. + participating_taxa: + - preferred_term: human gut bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria environmental_factors: - name: model-guided synthetic community design value: Lower-order assemblages were used to predict higher-dimensional human gut SynCom dynamics. @@ -202,3 +214,29 @@ cultivation_setup: evidence_source: IN_VITRO snippet: In multi‐species assemblages, the total initial OD600 was 0.01 OD600 × n, where n represents the number of strains in the community +discussions: +- discussion_id: lbnl_gut_effective_interactions_and_molecular_mechanisms + prompt: Which molecular mechanisms realize the inferred signed interactions and feedback? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Pairwise Model Prediction Of Community Dynamics + - ecological_interactions#Inferred Positive-Negative Ecological Network Topology + - ecological_interactions#Modeled Pairwise Coexistence Feedback + rationale: 'Remove the analytical inference-to-topology arrow, but retain topology-to-coexistence as a model-bounded + causal mechanism. Acetate in the cited passage is a prior-literature example; separate metabolomics cultures + supplemented ER and FP with acetate, which does not prove cross-feeding throughout this graph. Co-consumption/secretion + only yields an ecological effect when relevant substrates limit growth, and conditioned-medium signs do not + always match inferred coefficients. Higher-order effects, parameter uncertainty and OD-scaled abundance remain + limitations. Canonical NCBITaxon:2 is only an aggregate placeholder for the 12-species experimental roster; + #1548 tracks its grounding and non-graph metadata. No original figure pixels, separate supplements, raw data + or executable model reproduction was performed.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T20:44:04Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Preserve modeled gut coexistence feedback and remove unsupported acetate and inference-workflow claims. + Issue #1546; reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml' + llm_assisted: true diff --git a/kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml b/kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml index a1eb493cd..61ba09df5 100644 --- a/kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml +++ b/kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml @@ -52,29 +52,11 @@ taxonomy: evidence: - *id001 ecological_interactions: -- name: Automated Soil SynCom Assembly - description: > - A CellenONE liquid-handling printer dispensed normalized switchgrass soil isolates into - SynComs with less between-assembler variation than the manually pipetted communities. - scope: COMMUNITY_LEVEL - biological_processes: - - preferred_term: growth - term: - id: GO:0040007 - label: growth - evidence: - - reference: PMID:36472419 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: SynCom assembly with the automated printer will, on average, result in less variability - than will SynCom assembly by different people - explanation: > - The direct hand-versus-machine comparison showed that the automated assembly workflow made - replicate synthetic communities more compositionally reproducible. - name: Low-Nutrient Alpha-Diversity Enrichment - description: > - Diluting R2A to low nutrient strength lowered total biomass but retained a broader and more even - mixture of soil isolates during three days of SynCom growth. + description: In the initial equally mixed 18-strain community, dilution from 1X to 0.2X or 0.1X R2A lowered total + OD600 while increasing Shannon diversity and evenness after three days. Pseudomonas remained relatively dominant. + This assay preceded the final 16-member model and does not demonstrate increased absolute viable abundance, + partner-specific facilitation or the same response in every community variant. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: growth @@ -85,35 +67,26 @@ ecological_interactions: - reference: PMID:36472419 supports: SUPPORT evidence_source: IN_VITRO - snippet: the Shannon diversity index and Pielou’s evenness, two α-diversity metrics, were - lowest in the 1× medium and increased as the medium dilution increased - explanation: > - Shows that low-nutrient R2A reduced dominance in the synthetic soil community and increased - alpha diversity during growth. -- name: Starting-Ratio Diversity Maximization - description: > - The 3× cutoff composition used orders-of-magnitude more slow-grower inoculum than fast-grower - inoculum, yielding a high-diversity final SynCom that persisted after two and six days of growth. - scope: COMMUNITY_LEVEL - biological_processes: - - preferred_term: growth - term: - id: GO:0040007 - label: growth - evidence: + snippet: the Shannon diversity index and Pielou’s evenness, two α-diversity metrics, were lowest in the 1× medium + and increased as the medium dilution increased + explanation: Supports the measured nutrient-dilution diversity response in the initial 18-strain assay, not + a result specific to the final 16-member model. - reference: PMID:36472419 supports: SUPPORT evidence_source: IN_VITRO - snippet: Starting ratios containing orders of magnitude more of slower-growing organisms - (2× cutoff and 3× cutoff) resulted in higher Shannon diversity and evenness - values than did the 4 equally mixed conditions - explanation: > - Establishes that the starting-ratio perturbation produced a more even, higher-diversity - synthetic soil community than equal-ratio assembly. -- name: Glycerol-Preserved SynCom Regrowth - description: > - Glycerol stocks frozen at -80°C and revived into 0.1× R2A recapitulated both OD600 growth and - 16S community composition of an unfrozen synthetic soil community. + snippet: an equally mixed community of all 18 strains + explanation: Identifies the 18-strain starting membership of the nutrient-dilution experiment. + participating_taxa: + - preferred_term: soil bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria +- name: Starting-Ratio Dependent Community Diversity + description: Adjusting inoculum ratios to favor organisms that became relatively rare in equal mixtures increased + Shannon diversity and evenness at two and six days in the tested panels, particularly 2X/3X cutoff communities + without Pseudomonas. These are defined starting-composition effects, not a universal optimum or proof of a unique + competition mechanism. The 17/18-strain starting-ratio panels and later 16-member dropout experiments are distinct; + relative sequencing is not a direct viable-cell count. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: growth @@ -124,31 +97,45 @@ ecological_interactions: - reference: PMID:36472419 supports: SUPPORT evidence_source: IN_VITRO - snippet: glycerol preservation and regrowth in 0.1× an R2A medium resulted in SynCom regrowth - that closely recapitulated the unfrozen community in terms of both OD600 and - community composition - explanation: > - Identifies the glycerol-freezing and 0.1× R2A regrowth condition as the storage workflow that - best recovered the mixed SynCom. + snippet: Starting ratios containing orders of magnitude more of slower-growing organisms (2× cutoff and 3× cutoff) + resulted in higher Shannon diversity and evenness values than did the 4 equally mixed conditions + explanation: Supports experimentally altered starting ratios and diversity outcomes, not permanent stability + or universal optimality of one inoculum. + participating_taxa: + - preferred_term: soil bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria - name: EcoFAB Brachypodium Rhizosphere Colonization - description: > - An equally mixed switchgrass soil-isolate SynCom colonized sterile Brachypodium distachyon in - EcoFAB devices and shifted into a root-associated composition over seven days on the plant. + description: Equal mixtures of 17 or 18 isolates, without or with Pseudomonas, were inoculated onto 12-day-old + Brachypodium in EcoFABs and profiled seven days later. Root-associated community composition differed from the + inoculum. These are plant-colonization observations, not demonstrated reciprocal benefit; the single inoculum + batch limits taxon-level before/after significance tests. Pseudomonas presence did not significantly change + overall EcoFAB composition, unlike the in-vitro diversity response. scope: COMMUNITY_LEVEL biological_processes: - - preferred_term: symbiotic process + - preferred_term: biological process involved in interspecies interaction between organisms term: - id: GO:0044403 - label: biological process involved in symbiotic interaction + id: GO:0044419 + label: biological process involved in interspecies interaction between organisms evidence: - reference: PMID:36472419 supports: SUPPORT - evidence_source: IN_VITRO - snippet: The SynComs grown on plants were significantly different from the original inoculant, - as determined by the Bray-Curtis distance - explanation: > - Demonstrates that the inoculated soil-isolate community colonized Brachypodium roots in EcoFAB - devices and changed composition after growth on the host. + evidence_source: IN_VIVO + snippet: The SynComs grown on plants were significantly different from the original inoculant, as determined + by the Bray-Curtis distance + explanation: Supports root-associated composition after live-plant inoculation, not a demonstrated plant growth + benefit or the identical final 16-member inoculum. + - reference: PMID:36472419 + supports: SUPPORT + evidence_source: IN_VIVO + snippet: an equally mixed community of 17 or 18 bacterial isolates + explanation: Methods resolves the EcoFAB inoculum as 17 or 18 isolates rather than the final 16-member model. + participating_taxa: + - preferred_term: soil bacterial SynCom members + term: + id: NCBITaxon:2 + label: Bacteria environmental_factors: - name: defined synthetic community design value: Bottom-up assembly of 16 culturable soil microorganisms commonly found in plant rhizospheres, @@ -190,9 +177,34 @@ curation_history: - timestamp: '2026-10-02T05:57:41Z' curator: codex action: PRUNE_CAUSAL_GRAPH_WORKFLOW_EDGES - changes: > - Removed four downstream edges that linked automated assembly to nutrient - screening, nutrient screening to starting-ratio design, and starting-ratio - tuning to glycerol-preservation and EcoFAB colonization tests as workflow - transitions rather than ecological causal mechanisms. + changes: 'Removed four downstream edges that linked automated assembly to nutrient screening, nutrient screening + to starting-ratio design, and starting-ratio tuning to glycerol-preservation and EcoFAB colonization tests as + workflow transitions rather than ecological causal mechanisms. + + ' + llm_assisted: true +- timestamp: '2026-10-06T20:44:04Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Separate soil SynCom assay variants and remove assembly/storage graph procedures. Issue #1547; reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml' llm_assisted: true +discussions: +- discussion_id: lbnl_soil_variant_scope_and_ecological_mediators + prompt: Which interactions explain diversity responses within each defined SynCom variant? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Low-Nutrient Alpha-Diversity Enrichment + - ecological_interactions#Starting-Ratio Dependent Community Diversity + - ecological_interactions#EcoFAB Brachypodium Rhizosphere Colonization + rationale: 'Remove automated assembly and cryopreservation as ecological graph nodes, without rejecting their + positive methodological results: automated assembly generally reduced between-assembler variation, and glycerol/R2A + regrowth resembled unfrozen controls. Nutrient tests used 18 strains, ratio panels included/excluded Pseudomonas, + and EcoFAB Methods specifies 17 or 18 isolates; these are not interchangeable with the final 16-member model + excluding Pseudomonas and Sphingomonas. Taxon-dropout experiments support additional diversity effects, while + proposed Lysobacter facilitation and three-fast-grower competition remain mechanistic interpretations, not new + curated arrows. Relic-DNA controls and DNA spike-ins do not make all abundance values viable-cell counts. Canonical + Bacteria remains an aggregate placeholder; #1548 tracks roster and non-graph metadata. Full main text/captions + were read, not original images, separate supplements or raw data.' + posed_by: codex + posed_date: '2026-10-06' diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md index 921e80a4e..d8672024d 100644 --- a/reports/causal_graph_review/README.md +++ b/reports/causal_graph_review/README.md @@ -5,6 +5,28 @@ source-based self-adversarial review. These records are not independent approval or proof that every graph is complete. The current inventory and summary distinguish `reviewed`, `pending` and `needs_research`. +## Batch61: LBNL Plant, Gut And Soil Models + +[Decisions](decisions/20261006-lbnl-batch61.yaml), +[validation](validation-20261006-batch61.json) and +[self-adversarial review](adversarial-review-20261006-batch61.yaml) cover all +15 original nodes and two arrows across three LBNL records. Four procedure nodes +and one inference-workflow arrow are removed; the gut model's negative-feedback +coexistence mechanism is retained with explicit model and parameter limits. + +Brachypodium liquid-culture persistence differs from host-associated persistence; +the positive plant outcome follows rewatering, not sustained drought. Genomic and +isolate-level traits do not establish host metabolite delivery. Soil experiments +using 18 or 17/18 strains are distinguished from the final 16-member model. + +All three fresh open-access primary bodies, Methods, Results, Discussion and +embedded captions/table text were read. Original figure pixels, separate +supplements, raw data and executable models were not audited. All retained graph +snippets match fresh primary text; all 920 caches remain unchanged. The canonical +Bacteria entries remain explicit aggregate placeholders, not resolved strain +rosters. Non-graph metadata #1548 stays open. Repairs #1545-#1547 await protected +main merge. No new graph structure or paid Edison submission is claimed. + ## Batch60: KZ, KMC And Co-inducible Biosynthesis [Decisions](decisions/20261006-kz-kmc-komagataella-batch60.yaml), diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch61.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch61.yaml new file mode 100644 index 000000000..c4c8495d6 --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch61.yaml @@ -0,0 +1,177 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: e1b40d0123d5fe47d5ce14bab5fda21f4469997a +scope: +- kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml +- kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml +- kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch61.json +findings: +- issue: 1545 + severity: P2 + status: addressed_in_this_change + finding: Brachypodium procedure nodes, persistence/recovery overclaims and mixed evidence context. + disposition: Close only after protected-main merge. +- issue: 1546 + severity: P2 + status: addressed_in_this_change + finding: Gut inference workflow and unsupported acetate/niche labels with a valid model-feedback arrow. + disposition: Close only after protected-main merge. +- issue: 1547 + severity: P2 + status: addressed_in_this_change + finding: Soil procedures and17/18-versus16 experimental membership scope. + disposition: Close only after protected-main merge. +- issue: 1548 + severity: P2 + status: unresolved_non_graph + finding: Aggregate taxonomy, ingredient-mechanism and protocol metadata. + disposition: Keep OPEN after graph repair merge. +adversarial_checks: +- Read all three whole records and fresh open-access primary main bodies, Methods, Results, Discussion + and embedded captions/table text. Account for all15 original nodes and2 arrows. Original figure pixels, + separate supplements, raw data and executable models not audited; flattened matrices not used to recurate + exact gene-by-strain assignments. +- Brachypodium design and five-phylum assembly are procedures, not ecological causal nodes. Remove both + while retaining design metadata and positive biological results. Retain genomic potential and member + assay phenotypes as bounded context, not traced expression, transfer or host mediation. +- 'Brachypodium abstract stability is qualified by Results: six strains undetectable or below0.1% after + three weeks in vitro, with more balanced host-associated profiles. Do not equate relative detection + with viable counts or uniform15-member stability.' +- Adversarial diff review caught mixed host/liquid evidence classification after the initial candidate. + Replace the broad stability excerpt with direct host Results labeled IN_VIVO and preserve separate IN_VITRO + low-detection evidence. Retain the initial31 actual outputs/digests as superseded; rerun all31 final-state + gates. +- Brachypodium significant plant outcomes occur after rewatering; sustained-drought endpoints were not + significantly improved. Root-tip responses are strain/condition dependent; root exudate recruitment + and metabolite return remain hypotheses. Correct live-host evidence classification without claiming + universal tip preference or migration tracking. +- Gut model predictions and effective signed interactions are not universal acetate cross-feeding or demonstrated + niche partitioning. The acetate passage is prior-literature context. Keep model/experimental evidence + distinct, acknowledge imperfect prediction and higher-order/parameter uncertainty, and do not turn OD-scaled + abundance into viable-cell counts. +- 'Drop the gut inference-to-topology workflow arrow only. Retain topology-to-coexistence: coupled positive + and negative effects implement negative feedback in fitted pairwise gLV models over tested parameter + ranges, with CH-ER as an experimentally coexisting example. Do not erase this positive model mechanism + or generalize to every full-community condition.' +- Soil nutrient tests used18 starting strains; ratio panels and EcoFAB17/18 differ from the final16. Keep + nutrient/ratio diversity and plant colonization as positive observations with correct variants/time + bounds. Pseudomonas in-vitro effects do not transfer automatically to EcoFAB. Single inoculum batch + and relic-DNA/relative-abundance limits remain explicit. +- Remove soil automated assembly and storage nodes while preserving their valid methodological outcomes + in discussion. Taxon-dropout results remain described as context; proposed facilitation/competition + is not silently minted into new causal structure. No new nodes/arrows; no paid Edison calls. +- Canonical taxa remain unchanged domain-level aggregate placeholders, explicitly named on all11 retained + nodes. This is not resolved experimental membership. Non-graph taxonomy, ingredient and protocol defects + remain separately OPEN under1548; raw non-graph blocks preserved, not recertified. +- Full biological diffs, participant registry and focused tests reviewed.457 other records and920 caches + unchanged. Both-root participant census unchanged; no audit-rule changes.36 baseline network warnings + preserved, no structural defects, deterministic rerenders and456-page exact description parser, not + browser screenshots. +- 844 all-state issue titles/bodies plus41 scoped ignored/hidden local matches searched; all10 matching + issue bodies read, not every comment/PR/local match.1545-1547 addressed but OPEN until protected-main + merge. Exact-head self-review is COMMENT, not independent approval. Post-commit docs-current remains + a separate publication gate. +verification: + combined_regressions: 561 passed in 356.77s (0:05:56) + new_regression_tests: 9 + schema_strict_terms_history: Passed on final revision with actual outputs/digests + references: CLI Total checks counts reported issues, not executed checks. MATCH does not prove scientific + entailment or historical provenance. All920 caches unchanged; all retained graph excerpts independently + matched to fresh primary bodies. Non-graph1548 and existing476/1091/1095 remain unresolved. + snippet_counts_by_record: + kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml: + MATCH: 17 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml: + MATCH: 12 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml: + MATCH: 10 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + primary_graph_snippet_proof: + primary_matched_graph_snippets: 17 + host_liquid_evidence_distinguished: true + paid_submissions: 0 + new_nodes_or_arrows: 0 + network: + existing_findings_preserved: 36 + added_findings: {} + removed_findings: {} + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml: b9b1755235b23128b647fc2272b8ca0c2205286db36006b8f154cb6ba5679f21 + tests/test_causal_review_batch61.py: 36c67aaf4c2b76ccbf7e2164827b47904e09f9d3c10f211dd858e211d157a13a + tests/test_participating_taxa.py: 3ba923dba13310cac9e8e141ed1a84a67b0c4535f3d648b5af645df39dda7789 + kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml: a7e41d95bc05106486f450153065da247369b854b757d68d451bea5e64e0b8e4 + kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml: aa02533254dbc2a5f78544e1d3155b49f65ba8cffaa2f88b99d625ebf91cd816 + kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml: 9e12c5c9efe9440e6ae98386a71eaba63198a4eb71fca5a7bd25dcb1cc188562 + reports/causal_graph_review/README.md: 5be3a344b20516479bfae527120da539f43b53e3f01ff2a78514ec88c93782ac + unchanged_caches: 920 + superseded_initial_checks: 31 + edison: + required_for_this_repair: false + provider_submissions: 0 + credits_spent: 0 + reason: Existing-node/arrow repair only; no new causal structure. + post_commit_docs_current: Separate publication gate, not asserted before commit. +participant_census: + measurements: + baseline: + records: 460 + with_community_level: 391 + mixed: 124 + community_level_only: 267 + taxa: 1507 + credited_solely_by_the_rule: 1238 + current: + records: 460 + with_community_level: 391 + mixed: 124 + community_level_only: 267 + taxa: 1507 + credited_solely_by_the_rule: 1238 + interpretation: All three records retain community-level scope with one explicitly listed canonical + Bacteria aggregate each. This does not resolve their experimental strain rosters. Both-root participant + census is unchanged; no auditor-rule or canonical taxonomy change. +corpus: + records: 460 + nodes: 1454 + edges: 650 + review_status_counts: + needs_research: 21 + pending: 242 + reviewed: 197 +limitations: +- 'All15 original nodes and2 arrows reviewed: four procedure nodes and one workflow arrow removed;11 biological/model + nodes and one bounded model-feedback arrow retained. No new nodes/arrows or Edison submission.' +- All three fresh open-access primary main bodies, Methods, Results, Discussion and embedded captions/table + text read. Original figure pixels, separate supplementary files, raw data and executable models were + not audited; flattened tables were not used to recurate exact strain-by-gene matrices. +- Brachypodium liquid persistence, sustained drought, rewatering and strain-specific spatial responses + remain distinct. Gene annotations and isolate assays do not establish host delivery or necessary mediation. +- Gut gLV coexistence feedback retained as a positive model result. Pairwise prediction is not a categorical + exclusion of higher-order effects; effective signs do not identify unique molecular mechanisms. +- Soil nutrient18, ratio17/18, EcoFAB17/18 and final16 contexts are distinguished. Additional taxon-dropout + evidence is described as context, not converted into unreviewed new causal structure. +- 'Canonical aggregate taxonomy and raw non-graph blocks preserved, not recertified. #1548 remains unresolved + after graph repair merge.' +- All920 reference caches unchanged. Every retained graph snippet independently matches fresh primary + text, but this does not certify all historical cache/non-graph provenance or resolve476/1091/1095. +- 844 all-state issue titles/bodies and41 ignored/hidden local matches searched; all10 matching issue + bodies read, not every comment/PR/local match. Self-adversarial review is not independent approval.1545-1547 + stay OPEN until protected-main merge. diff --git a/reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml b/reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml new file mode 100644 index 000000000..42f69c515 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml @@ -0,0 +1,251 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: e1b40d0123d5fe47d5ce14bab5fda21f4469997a +baseline_commit: e1b40d0123d5fe47d5ce14bab5fda21f4469997a +base_tree: 22e8e241499518b9b9619e09e97ebf393bb9576e +pre_source_baseline_sha256: 416066caeddba89e89d71bb5d1afe325a626a2fc49c6951b0c99c95de5d52698 +issues: +- 1545 +- 1546 +- 1547 +unresolved_non_graph_issues: +- 1548 +unresolved_research_issues: [] +issue_deduplication: + all_state_issue_titles_and_bodies: 844 + ignored_hidden_local_search: true + matching_local_files: 41 + matching_issues: + - 1493 + - 1272 + - 1244 + - 1167 + - 1166 + - 1060 + - 1059 + - 867 + - 866 + - 865 +reference_cache_original_hashes: + references_cache/PMID_40862137.txt: b3f60241ecaec23c8a74920d118996a0ab1412a9b410c57332f72bff67eafe71 + references_cache/PMID_29930200.txt: ad36dc6548250549ea74fdcc42e61e8f89172a8fc9e9fb0424cf1541e8c0816a + references_cache/pmc_full_pmid_29930200.txt: 4062d56927cf72a7d23aedeec8c47ccc03f6c8d65e36373c26aa235645bde17a + references_cache/PMID_36472419.txt: af090796fe581c590b97b09d340412fef5bc735f0b4c94e8cef3f92a31f4c1a6 + references_cache/pmc_full_pmid_36472419.txt: da4d9680169efe9af031454a40a72612e1ee47f5d357e936a0a4056939e54b99 +primary_artifacts: + /private/tmp/communitymech-batch61/brachypodium-primary.xml: d7bd1b471c935f12857602b94534b6d4963d479e099decb6b8719740c6d6882e + /private/tmp/communitymech-batch61/brachypodium-primary.txt: a47cfa9cf0636a574e70c348ea566ef5c1d1254f44b3d3af4b21b910fc69de48 + /private/tmp/communitymech-batch61/gut-primary.xml: 9148ad1c34d3e0527d86bbd7d70c83792306c502deadde5c353c525ece318e08 + /private/tmp/communitymech-batch61/gut-primary.txt: 0d8dc614f5a8e925c5862589c3ba90988ce55fd875368c3a29f272adc835addf + /private/tmp/communitymech-batch61/soil-primary.xml: ad9774e85b789eaa1718f1f06984f59845f20e3108993418c0444f715e869922 + /private/tmp/communitymech-batch61/soil-primary.txt: 32ef705a0af7ecb4bc4576abaa964257e74095a92d811302fe6d1cb731e98d49 +primary_urls: +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12375656/fullTextXML +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6011841/fullTextXML +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC9765266/fullTextXML +primary_matched_fragments: +- six of the 15 strains were undetectable or had a relative abundance below 0.1% after 3 weeks +- an equally mixed community of all 18 strains +- an equally mixed community of 17 or 18 bacterial isolates +- After 3 weeks of growth in planta, the relative abundance of strains was more evenly distributed +edison: + required_for_this_repair: false + provider_submissions: 0 + credits_spent: 0 + reason: Existing-node/arrow repair only; no new causal structure. +limitations: +- 'All15 original nodes and2 arrows reviewed: four procedure nodes and one workflow arrow removed;11 biological/model + nodes and one bounded model-feedback arrow retained. No new nodes/arrows or Edison submission.' +- All three fresh open-access primary main bodies, Methods, Results, Discussion and embedded captions/table text + read. Original figure pixels, separate supplementary files, raw data and executable models were not audited; flattened + tables were not used to recurate exact strain-by-gene matrices. +- Brachypodium liquid persistence, sustained drought, rewatering and strain-specific spatial responses remain distinct. + Gene annotations and isolate assays do not establish host delivery or necessary mediation. +- Gut gLV coexistence feedback retained as a positive model result. Pairwise prediction is not a categorical exclusion + of higher-order effects; effective signs do not identify unique molecular mechanisms. +- Soil nutrient18, ratio17/18, EcoFAB17/18 and final16 contexts are distinguished. Additional taxon-dropout evidence + is described as context, not converted into unreviewed new causal structure. +- 'Canonical aggregate taxonomy and raw non-graph blocks preserved, not recertified. #1548 remains unresolved after + graph repair merge.' +- All920 reference caches unchanged. Every retained graph snippet independently matches fresh primary text, but + this does not certify all historical cache/non-graph provenance or resolve476/1091/1095. +- 844 all-state issue titles/bodies and41 ignored/hidden local matches searched; all10 matching issue bodies read, + not every comment/PR/local match. Self-adversarial review is not independent approval.1545-1547 stay OPEN until + protected-main merge. +records: +- path: kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml + id: CommunityMech:000088 + original_sha256: 0b4d516a93f86c8a477d6054c37966acda52632cb36846bce9be93bc235851fb + record_sha256: a7e41d95bc05106486f450153065da247369b854b757d68d451bea5e64e0b8e4 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml + scope: Whole record and every original node/arrow. + summary: Bound Brachypodium persistence, recovery and member-function claims to primary assays. + renamed_nodes: + Laboratory PGP Trait Validation: Member-Level PGP Phenotypes + In Vitro and In Planta SynCom Stability: Host-Associated Persistence Compared With Liquid Culture + Stress Root-Tip Preferential Colonization: Strain-Dependent Root Spatial Distribution + node_decisions: + - node: Genomic Osmoprotectant and Ion-Transport Prediction + rationale: Retain genome-derived potential with no expression/transfer inference. + - node: Member-Level PGP Phenotypes + rationale: Retain positive isolate phenotypes without promoting them to demonstrated plant mechanisms. + - node: Host-Associated Persistence Compared With Liquid Culture + rationale: Replace unqualified stability with the explicit liquid-versus-host Results distinction. Separate + fresh-primary IN_VIVO host and IN_VITRO liquid evidence. + - node: Brachypodium Drought Recovery Promotion + rationale: Preserve significant rewatering outcomes and the sustained-drought negative result. + - node: Strain-Dependent Root Spatial Distribution + rationale: Preserve strain-specific spatial profiles and qualify the root-metabolite explanation. + removed_node_decisions: + - node: Network-Cultivation Fifteen-Member Design + rationale: Community selection/assembly procedure rather than an ecological causal interaction; design metadata + remains unchanged. + - node: Five-Phylum Rhizobiome SynCom Assembly + rationale: Community selection/assembly procedure rather than an ecological causal interaction; design metadata + remains unchanged. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:40862137 + issues: + - 1545 + - 1548 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml + source_review: + scope: Complete XML primary body, abstracts, embedded table text and captions; not original figure pixels, separate + supplements, raw data or executable models. + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC12375656/fullTextXML + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false +- path: kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml + id: CommunityMech:000122 + original_sha256: 3372341a0b7ba1efb0a2d84070e70716f5940225c9f5fbee44f5427e777f7744 + record_sha256: aa02533254dbc2a5f78544e1d3155b49f65ba8cffaa2f88b99d625ebf91cd816 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml + scope: Whole record and every original node/arrow. + summary: Preserve modeled gut coexistence feedback and remove unsupported acetate and inference-workflow claims. + renamed_nodes: + Pairwise Interaction-Dominated Community Dynamics: Pairwise Model Prediction Of Community Dynamics + Positive-Negative Ecological Network Topology: Inferred Positive-Negative Ecological Network Topology + Robust Coexistence Feedback: Modeled Pairwise Coexistence Feedback + node_decisions: + - node: Pairwise Model Prediction Of Community Dynamics + rationale: Retain predictive pairwise-model result with measured-context and higher-order limits. + - node: Inferred Positive-Negative Ecological Network Topology + rationale: Retain effective signed topology without mechanistically unsupported ecological types. + - node: Modeled Pairwise Coexistence Feedback + rationale: Retain model-supported negative feedback and experimental coexistence context without universal stability + claims. + removed_node_decisions: [] + edges_before: + - source: Pairwise Interaction-Dominated Community Dynamics + target: Positive-Negative Ecological Network Topology + description: Pairwise inference resolved both negative and positive interactions that together define the ecological + network topology of the synthetic gut community. + - source: Positive-Negative Ecological Network Topology + target: Robust Coexistence Feedback + description: The mixed positive and negative topology enables feedback that balances differences in monospecies + fitness and supports robust coexistence. + edges_after: + - source: Inferred Positive-Negative Ecological Network Topology + target: Modeled Pairwise Coexistence Feedback + description: PARTIAL - in the fitted pairwise gLV models, coupled positive and negative effects create negative + feedback that limits the higher-fitness partner and permits coexistence with the lower-fitness partner across + a broader tested growth-rate range than mutual inhibition. This preserves the source-supported model mechanism, + not proof of a universal or molecularly resolved feedback in the entire gut community. + retained_edge_decisions: + - source: Inferred Positive-Negative Ecological Network Topology + target: Modeled Pairwise Coexistence Feedback + rationale: Preserve negative-feedback coexistence as a source-supported mechanism within fitted pairwise gLV + models. + removed_edge_decisions: + - source: Pairwise Interaction-Dominated Community Dynamics + target: Positive-Negative Ecological Network Topology + rationale: Inference produces an analytical network representation; this is a workflow transition, not biological + causal mediation. + references: + - PMID:29930200 + issues: + - 1546 + - 1548 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml + source_review: + scope: Complete XML primary body, abstracts, embedded table text and captions; not original figure pixels, separate + supplements, raw data or executable models. + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6011841/fullTextXML + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false +- path: kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml + id: CommunityMech:000087 + original_sha256: 2c5d49aaf802b1455416362350dfe4e62dff6e3c461e31166a8b85d3e0b3eaa0 + record_sha256: 9e12c5c9efe9440e6ae98386a71eaba63198a4eb71fca5a7bd25dcb1cc188562 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml + scope: Whole record and every original node/arrow. + summary: Separate soil SynCom assay variants and remove assembly/storage graph procedures. + renamed_nodes: + Starting-Ratio Diversity Maximization: Starting-Ratio Dependent Community Diversity + node_decisions: + - node: Low-Nutrient Alpha-Diversity Enrichment + rationale: Retain nutrient-dependent diversity with the correct 18-strain and three-day scope. + - node: Starting-Ratio Dependent Community Diversity + rationale: Retain starting-ratio effects while separating variants and relative-abundance interpretation. + - node: EcoFAB Brachypodium Rhizosphere Colonization + rationale: Retain 17/18-strain host colonization, not universal symbiosis or final-16 attribution. + removed_node_decisions: + - node: Automated Soil SynCom Assembly + rationale: Assembly/storage procedure rather than ecological causal interaction; positive methodological result + preserved in the review discussion. + - node: Glycerol-Preserved SynCom Regrowth + rationale: Assembly/storage procedure rather than ecological causal interaction; positive methodological result + preserved in the review discussion. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:36472419 + issues: + - 1547 + - 1548 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml + source_review: + scope: Complete XML primary body, abstracts, embedded table text and captions; not original figure pixels, separate + supplements, raw data or executable models. + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC9765266/fullTextXML + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false +adversarial_followup: + issue: 1545 + change: Replaced the mixed-context stability abstract excerpt with direct host Results labeled IN_VIVO; retained + separate IN_VITRO low-detection evidence. + initial_validation_sha256: fa74249e66e93d1c83407e0bfbb0b3641f4c6e8702e8ce76b170487f32b6de7f + initial_validation: /private/tmp/communitymech-batch61/initial-validation.json + requirement: Rerun all final-state checks; initial-candidate results are superseded, not reused as final-state + proof. diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 824d8ceaa..df00b04ab 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -214,9 +214,9 @@ kb/communities/Kefir_Flavor_Lentilactobacillus_Kluyveromyces_Coculture.yaml Comm kb/communities/Klebsiella_Arthrobacter_KZ_Phenanthrene_Cadmium_SynCom.yaml CommunityMech:000344 65275177a514ceb42276f4f416da7b727e5200b3a8f79fb1510cf6c49bbd083c 1 0 55.0 reports/causal_graph_review/decisions/20261006-kz-kmc-komagataella-batch60.yaml needs_research kb/communities/Komagataella_Ecoli_Coinducible_Biosynthesis_Coculture.yaml CommunityMech:000343 f4024c9731b98eac233911893d44568c3a9097460fb1aa3fb93fced0647cb746 0 0 0.0 reports/causal_graph_review/decisions/20261006-kz-kmc-komagataella-batch60.yaml needs_research kb/communities/Kombucha_KMC_IMBG1_Fermentation_Community.yaml CommunityMech:000154 9df19ae1add5269721799ee3a8328edf0531e314c15e3a3abc71a2e4e659fa40 3 1 80.0 reports/causal_graph_review/decisions/20261006-kz-kmc-komagataella-batch60.yaml reviewed -kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml CommunityMech:000088 0b4d516a93f86c8a477d6054c37966acda52632cb36846bce9be93bc235851fb 7 0 75.0 pending -kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml CommunityMech:000122 3372341a0b7ba1efb0a2d84070e70716f5940225c9f5fbee44f5427e777f7744 3 2 100.0 pending -kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml CommunityMech:000087 2c5d49aaf802b1455416362350dfe4e62dff6e3c461e31166a8b85d3e0b3eaa0 5 0 75.0 pending +kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml CommunityMech:000088 a7e41d95bc05106486f450153065da247369b854b757d68d451bea5e64e0b8e4 5 0 75.0 reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml reviewed +kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml CommunityMech:000122 aa02533254dbc2a5f78544e1d3155b49f65ba8cffaa2f88b99d625ebf91cd816 3 1 90.0 reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml reviewed +kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml CommunityMech:000087 9e12c5c9efe9440e6ae98386a71eaba63198a4eb71fca5a7bd25dcb1cc188562 3 0 75.0 reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml reviewed kb/communities/Lac_Pavin_Stratified_Lake_Community.yaml CommunityMech:000226 16a06577e166398170588e9c08f71ea1f753c65b31036c72158403255fb7afc2 3 2 100.0 pending kb/communities/Lake_Washington_Methane_Oxygen_Methylotroph_Community.yaml CommunityMech:000261 0ea08711fd6f9e156eb62b779d29cd853338f2f15eb02acb63f19a051a2b1b8d 3 2 100.0 pending kb/communities/Legume_Rhizobia_Mars_Simulant_Symbiosis.yaml CommunityMech:000311 278040a0740189cf4333706d146eb92674d1176e8eb891f3247a9debd63b0470 3 2 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 5caca5b7b..87209fe4b 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -2,14 +2,14 @@ "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", "semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.", "records": 460, - "nodes": 1458, - "edges": 651, + "nodes": 1454, + "edges": 650, "records_without_nodes": 8, "records_without_edges": 156, "review_status_counts": { "needs_research": 21, - "pending": 245, - "reviewed": 194 + "pending": 242, + "reviewed": 197 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261006-batch61.json b/reports/causal_graph_review/validation-20261006-batch61.json new file mode 100644 index 000000000..c2276c029 --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch61.json @@ -0,0 +1,1425 @@ +{ + "base_commit": "e1b40d0123d5fe47d5ce14bab5fda21f4469997a", + "scope": [ + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "LBNL_Brachypodium_Drought_SynCom15-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-schema-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-strict.tsv", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-strict-retry-1.log", + "log_sha256": "8cf0af9ed2e2a50123bb82eb280fad87b8f5b2705208f9be34a974ce76fccb19", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-strict.tsv\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-terms-retry-1.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-references-retry-1.log", + "log_sha256": "027695e77fa6f9185fc9d4b58b8cc350ffe7d2df838a11632540ae8ae191432a", + "output_tail": "Validating kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Brachypodium_Drought_SynCom15.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": "LBNL_Brachypodium_Drought_SynCom15-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-snippets-retry-1.log", + "log_sha256": "5f0e8a5be45b94195ee5599498c60e06ff8db089c85d0bf23969aa37351ca96e", + "output_tail": "# 17 evidence snippets scanned across 1 files\n MATCH 17\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": "LBNL_Brachypodium_Drought_SynCom15-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-rank-retry-1.log", + "log_sha256": "95790e8a42a55271b8bcd074bd0d7589edc33e548494039cd0d18127a6c35e1a", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000088\",\n \"name\": \"LBNL Brachypodium Drought SynCom15\",\n \"score\": 75.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 5,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Brachypodium_Drought_SynCom15-history-0-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-schema-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-strict.tsv", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-strict-retry-1.log", + "log_sha256": "9a2e4051bb82f869052c2d9436c77de7e38992ae592b62639fd9cba749bb5f0c", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-strict.tsv\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-terms-retry-1.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-references-retry-1.log", + "log_sha256": "78306de0070f1a42a09a0ec87d71df80ae79d25d66acb504f3e06af4cd4a134a", + "output_tail": "Validating kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-snippets-retry-1.log", + "log_sha256": "389f1d2b093a1648cf407d53853e429a283f80eed2628a1a14cf1f38649ca780", + "output_tail": "# 12 evidence snippets scanned across 1 files\n MATCH 12\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": "LBNL_Human_Gut_Interaction_SynCom-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-rank-retry-1.log", + "log_sha256": "052b5a195a59b1901326175540df4ae4094fae3188b1484936a560045822990c", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000122\",\n \"name\": \"LBNL Human Gut Interaction SynCom\",\n \"score\": 90.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 1,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Human_Gut_Interaction_SynCom-history-0-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-schema-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-strict.tsv", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-strict-retry-1.log", + "log_sha256": "5c7cad87f09796e411b87e32353fa9a29db6cd8cf375e79aed26e5bf5b32cbd8", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-strict.tsv\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-terms-retry-1.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-references-retry-1.log", + "log_sha256": "dcfb90ae0cea910445f385c00e1c89c8075cb11c11cc8d9f243adb365b2c5634", + "output_tail": "Validating kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Switchgrass_Soil_SynCom16.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": "LBNL_Switchgrass_Soil_SynCom16-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-snippets-retry-1.log", + "log_sha256": "1835af07ebf0373785ca2d25de18c6984a3cbcfdec0d2610f1d8437504408710", + "output_tail": "# 10 evidence snippets scanned across 1 files\n MATCH 10\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-rank-retry-1.log", + "log_sha256": "8ae761eeeefb3ba22fbb1db68abdd4845e77f846b8b1c445e720733835140681", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000087\",\n \"name\": \"LBNL Switchgrass Soil SynCom16\",\n \"score\": 75.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 5,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/LBNL_Switchgrass_Soil_SynCom16-history-0-retry-1.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/inventory-retry-1.log", + "log_sha256": "d25cc5e87743a9e6f53699f4e269e0361657943b6506502a3896a051ae60e5e2", + "output_tail": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1454,\n \"edges\": 650,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 156,\n \"review_status_counts\": {\n \"needs_research\": 21,\n \"pending\": 242,\n \"reviewed\": 197\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/network-retry-1.log", + "log_sha256": "0955d3471f474fec8dcceb846ff932573d11c9833de73b2b2822241553762186", + "output_tail": "{\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n" + }, + { + "check": "rank-all", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/rank-all-retry-1.log", + "log_sha256": "2a06dea519ee81b927da13d07efdf87eedda73a453f63be6228db440e79f3e8d", + "output_tail": "ities/Soybean_N_Fixation_sfSynCom.yaml\tCommunityMech:000064\tSoybean N-Fixation Simplified SynCom\t4\t4\t0\t3\t2\t3\t\t0\t0\n402\t100.0\tkb/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml\tCommunityMech:000267\tSphingobium-Rhodococcus Lignin-Dimer Valorization Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n403\t100.0\tkb/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml\tCommunityMech:000326\tStaphylococcus-Candida Context-Dependent Biofilm Coculture\t2\t2\t0\t6\t2\t13\t\t0\t0\n404\t100.0\tkb/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml\tCommunityMech:000254\tStordalen Mire Methylotrophic Methanogenesis Community\t3\t3\t0\t4\t4\t9\t\t0\t0\n405\t100.0\tkb/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml\tCommunityMech:000335\tStreptomyces A2-A5-A11-M7 Pesticide-Bioremediation Consortium\t4\t4\t0\t4\t2\t5\t\t0\t0\n406\t100.0\tkb/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.yaml\tCommunityMech:000251\tSubsurface Carboxydocella CO-Oxidation Aquifer Community\t1\t1\t0\t5\t2\t5\t\t0\t0\n407\t100.0\tkb/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml\tCommunityMech:000312\tSuillus clintonianus-Bacillus altitudinis Thiamine Cross-Feeding SynCom\t3\t3\t0\t4\t3\t4\t\t0\t0\n408\t100.0\tkb/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml\tCommunityMech:000222\tSulfide Spring Autotrophic CPR-Hosting Biofilm\t3\t3\t0\t3\t2\t4\t\t0\t0\n409\t100.0\tkb/communities/SynComBac10_Chicken_Intestinal_SynCom.yaml\tCommunityMech:000127\tSynComBac10 Chicken Intestinal SynCom\t3\t3\t0\t3\t2\t3\t\t0\t0\n410\t100.0\tkb/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml\tCommunityMech:000314\tSynCom ARC Peanut Aflatoxin-Control and Nodulation-Coupling Community\t5\t5\t0\t3\t2\t3\t\t0\t0\n411\t100.0\tkb/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml\tCommunityMech:000278\tSynCom BsBv Cigar Tobacco Leaf Fermentation\t2\t2\t0\t3\t2\t3\t\t0\t0\n412\t100.0\tkb/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml\tCommunityMech:000285\tSynCom + Chlorella sorokiniana Biogas-slurry Coupling System\t2\t2\t0\t5\t3\t5\t\t0\t0\n413\t100.0\tkb/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml\tCommunityMech:000302\tSynCom MetG2 Rhizobacteria Sugarcane Stress Resilience\t2\t2\t0\t3\t2\t4\t\t0\t0\n414\t100.0\tkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml\tCommunityMech:000283\tSesame-flavor Baijiu Fuqu SynCom (13-genus)\t13\t13\t0\t3\t2\t3\t\t0\t0\n415\t100.0\tkb/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml\tCommunityMech:000272\tSynCom Y Agrobacterium-Bacillus Biofilm Biocontrol Co-culture\t2\t2\t0\t4\t2\t6\t\t0\t0\n416\t100.0\tkb/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml\tCommunityMech:000207\tSynechococcus-Azotobacter Photoproduction Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n417\t100.0\tkb/communities/Synechococcus_Bacillus_SPC.yaml\tCommunityMech:000065\tSynechococcus-Bacillus Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n418\t100.0\tkb/communities/Synechococcus_Ecoli_SPC.yaml\tCommunityMech:000066\tSynechococcus-E.coli Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n419\t100.0\tkb/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml\tCommunityMech:000198\tSynechococcus-Halomonas Light-Driven PHB Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n420\t100.0\tkb/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml\tCommunityMech:000167\tSynechococcus-Pseudomonas Phototrophic PHA and DNT Coculture\t2\t2\t0\t4\t2\t8\t\t0\t0\n421\t100.0\tkb/communities/Synechococcus_Saccharomyces_SPC.yaml\tCommunityMech:000067\tSynechococcus-Saccharomyces Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n422\t100.0\tkb/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml\tCommunityMech:000211\tSynechococcus-Shewanella D-Lactate Biophotovoltaic Consortium\t2\t2\t0\t3\t2\t6\t\t0\t0\n423\t100.0\tkb/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml\tCommunityMech:000149\tSynthetic Lichen Synechococcus-Rhodotorula Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n424\t100.0\tkb/communities/Syntrophobacter_Methanobacterium_Syntrophy.yaml\tCommunityMech:000068\tSyntrophobacter-Methanobacterium Syntrophic Consortium\t2\t2\t0\t3\t3\t8\t\t0\t0\n425\t100.0\tkb/communities/Syntrophobacter_Methanospirillum_Syntrophy.yaml\tCommunityMech:000069\tSyntrophobacter-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t5\t\t0\t0\n426\t100.0\tkb/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml\tCommunityMech:000189\tSyntrophomonas-Methanococcus Butyrate Growth Coordination Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n427\t100.0\tkb/communities/Syntrophomonas_Methanospirillum_Syntrophy.yaml\tCommunityMech:000070\tSyntrophomonas-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t7\t\t0\t0\n428\t100.0\tkb/communities/Syntrophus_Benzoate_Degrader.yaml\tCommunityMech:000071\tSyntrophus Benzoate Degrader\t2\t2\t0\t3\t2\t6\t\t0\t0\n429\t100.0\tkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml\tCommunityMech:000187\tSyntrophus-Methanospirillum Gentianae Benzoate Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n430\t100.0\tkb/communities/THOR_Rhizosphere_Model_Community.yaml\tCommunityMech:000079\tTHOR Rhizosphere Model Community\t3\t3\t0\t4\t2\t5\t\t0\t0\n431\t100.0\tkb/communities/TYQ1_Nematode_Biocontrol_SynCom.yaml\tCommunityMech:000072\tTYQ1 Nematode Biocontrol SynCom\t8\t8\t0\t4\t4\t4\t\t0\t0\n432\t100.0\tkb/communities/Teosinte_Maize_Biofertilizer_SynCom7.yaml\tCommunityMech:000100\tTeosinte-Derived Maize Biofertilizer SynCom7\t4\t4\t0\t6\t2\t12\t\t0\t0\n433\t100.0\tkb/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml\tCommunityMech:000259\tThalassiosira-Marinobacter Marine Snow Coculture\t2\t2\t0\t4\t2\t10\t\t0\t0\n434\t100.0\tkb/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml\tCommunityMech:000162\tThalassiosira-Ruegeria Phycosphere Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n435\t100.0\tkb/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml\tCommunityMech:000182\tThermacetogenium-Methanothermobacter Acetate Oxidation Coculture\t2\t2\t0\t3\t2\t8\t\t0\t0\n436\t100.0\tkb/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml\tCommunityMech:000282\tThermophilic Lignocellulose-degrading Composting SynCom\t5\t5\t0\t3\t2\t3\t\t0\t0\n437\t100.0\tkb/communities/Thermophilic_Pyrite_QS_Consortium.yaml\tCommunityMech:000073\tThermophilic Pyrite Quorum Sensing Consortium\t3\t3\t0\t6\t2\t14\t\t0\t0\n438\t100.0\tkb/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml\tCommunityMech:000186\tThermotoga-Methanocaldococcus Hyperthermophilic Syntrophy\t2\t2\t0\t3\t2\t8\t\t0\t0\n439\t100.0\tkb/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml\tCommunityMech:000239\tThiocyanate-Degrading Afipia and Thiobacillus Bioreactor Community\t3\t3\t0\t3\t2\t3\t\t0\t0\n440\t100.0\tkb/communities/Tinto_River_Iron_Cycling_Community.yaml\tCommunityMech:000074\tTinto River Iron Cycling Community\t6\t6\t0\t5\t3\t6\t\t0\t0\n441\t100.0\tkb/communities/Tobacco_Chemotactic_Biocontrol_SynCom.yaml\tCommunityMech:000106\tTobacco Chemotactic Biocontrol SynCom\t2\t2\t0\t3\t2\t4\t\t0\t0\n442\t100.0\tkb/communities/Tomato_Oxylipin_SynCom3.yaml\tCommunityMech:000107\tTomato Oxylipin-Protective SynCom3\t3\t3\t0\t3\t2\t4\t\t0\t0\n443\t100.0\tkb/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml\tCommunityMech:000112\tTribromophenol Anaerobic Bioremediation SynCom\t3\t3\t0\t4\t3\t5\t\t0\t0\n444\t100.0\tkb/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml\tCommunityMech:000188\tTrichococcus-Syntrophomonas-Methanospirillum Butyrate Coculture\t3\t3\t0\t3\t2\t6\t\t0\t0\n445\t100.0\tkb/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml\tCommunityMech:000205\tTrichoderma-E. coli Cellulosic Isobutanol Coculture\t2\t2\t0\t3\t2\t5\t\t0\t0\n446\t100.0\tkb/communities/Trichoderma_Lactate_Platform.yaml\tCommunityMech:000075\tTrichoderma Lactate Platform for SCFA Production\t3\t3\t0\t3\t2\t3\t\t0\t0\n447\t100.0\tkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml\tCommunityMech:000270\tTrichoderma-Streptomyces Filamentous Cellulose Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n448\t100.0\tkb/communities/Trichodesmium_Alteromonas_Marine_Consortium.yaml\tCommunityMech:000147\tTrichodesmium-Alteromonas Marine Consortium\t3\t3\t0\t3\t2\t5\t\t0\t0\n449\t100.0\tkb/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n" + }, + { + "check": "render", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/render-retry-1.log", + "log_sha256": "4617ff08ffeffef1be0f9f6cf01a523b1aed0d4f3fb81174b8a59c8fb7aa96aa", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch61/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch61/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch61/docs/index.html\n" + }, + { + "check": "render-repeat", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/render-repeat-retry-1.log", + "log_sha256": "4617ff08ffeffef1be0f9f6cf01a523b1aed0d4f3fb81174b8a59c8fb7aa96aa", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch61/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch61/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch61/docs/index.html\n" + }, + { + "check": "connectivity-survey", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-c", + "import json, pathlib, runpy\nfn=runpy.run_path('tests/test_community_level_connectivity_credit.py')['_survey']\nresult={}\nfor name,root in [('baseline',pathlib.Path('/private/tmp/communitymech-causal-batch60')),('current',pathlib.Path.cwd())]:\n paths=sorted(p for r in ['kb/communities','data/isolates'] for p in (root/r).rglob('*.yaml'))\n assert len(paths)==460\n fn.__globals__['record_files']=lambda: paths\n result[name]=fn()\nprint(json.dumps(result))\n" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/connectivity-survey-retry-1.log", + "log_sha256": "2dcbda64d4b5530059ac8ad2c76a801bffcf051d557341927f6c204fb4d3f7e5", + "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}, \"current\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}}\n" + }, + { + "check": "regressions", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch10.py", + "tests/test_causal_review_batch11.py", + "tests/test_causal_review_batch12.py", + "tests/test_causal_review_batch13.py", + "tests/test_causal_review_batch14.py", + "tests/test_causal_review_batch15.py", + "tests/test_causal_review_batch16.py", + "tests/test_causal_review_batch17.py", + "tests/test_causal_review_batch18.py", + "tests/test_causal_review_batch19.py", + "tests/test_causal_review_batch20.py", + "tests/test_causal_review_batch21.py", + "tests/test_causal_review_batch22.py", + "tests/test_causal_review_batch23.py", + "tests/test_causal_review_batch24.py", + "tests/test_causal_review_batch25.py", + "tests/test_causal_review_batch27.py", + "tests/test_causal_review_batch28.py", + "tests/test_causal_review_batch29.py", + "tests/test_causal_review_batch30.py", + "tests/test_causal_review_batch31.py", + "tests/test_causal_review_batch32.py", + "tests/test_causal_review_batch33.py", + "tests/test_causal_review_batch34.py", + "tests/test_causal_review_batch35.py", + "tests/test_causal_review_batch36.py", + "tests/test_causal_review_batch37.py", + "tests/test_causal_review_batch38.py", + "tests/test_causal_review_batch39.py", + "tests/test_causal_review_batch40.py", + "tests/test_causal_review_batch41.py", + "tests/test_causal_review_batch42.py", + "tests/test_causal_review_batch43.py", + "tests/test_causal_review_batch44.py", + "tests/test_causal_review_batch45.py", + "tests/test_causal_review_batch46.py", + "tests/test_causal_review_batch47.py", + "tests/test_causal_review_batch48.py", + "tests/test_causal_review_batch49.py", + "tests/test_causal_review_batch5.py", + "tests/test_causal_review_batch50.py", + "tests/test_causal_review_batch51.py", + "tests/test_causal_review_batch52.py", + "tests/test_causal_review_batch53.py", + "tests/test_causal_review_batch54.py", + "tests/test_causal_review_batch55.py", + "tests/test_causal_review_batch56.py", + "tests/test_causal_review_batch57.py", + "tests/test_causal_review_batch58.py", + "tests/test_causal_review_batch59.py", + "tests/test_causal_review_batch6.py", + "tests/test_causal_review_batch60.py", + "tests/test_causal_review_batch61.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_site_audit_fixes.py", + "tests/test_causal_review_inventory.py", + "tests/test_rank_causal_graph_readiness.py", + "tests/test_network_auditor.py", + "tests/test_participating_taxa.py", + "tests/test_causal_descriptions_are_published.py", + "tests/test_published_pages_name_real_records.py", + "tests/test_reference_validator_actually_validates.py", + "tests/test_snippet_audit_artefact_classes.py", + "tests/test_reference_error_annotation.py", + "tests/test_community_level_connectivity_credit.py", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/regressions-retry-1.log", + "log_sha256": "75ac8d5dcef824083e64499ec45197625b39da0279dd48a516676bc09bf9c236", + "output_tail": "........................................................................ [ 12%]\n........................................................................ [ 25%]\n........................................................................ [ 38%]\n........................................................................ [ 51%]\n........................................................................ [ 64%]\n........................................................................ [ 77%]\n........................................................................ [ 89%]\n......................................................... [100%]\n561 passed in 356.77s (0:05:56)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch61.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/black-retry-1.log", + "log_sha256": "b9cf511501d306d2bd8355ccb165c8ddc0a6fdd62d7c72c4a7b1795cf8934c8c", + "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n2 files would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff", + "check", + "tests/test_causal_review_batch61.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/ruff-retry-1.log", + "log_sha256": "82b3e6a6c090a57601d22943bd23fca9218d1031dbe5a7b754092f9a156b4f18", + "output_tail": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/followup-final/diff-check-retry-1.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + }, + { + "check": "primary-graph-proof", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-c", + "import hashlib,json,pathlib,yaml\nP=pathlib.Path\nledger=yaml.safe_load(P('reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml').read_text())\nmanifest=json.loads(P('/private/tmp/communitymech-batch61/primary-manifest.json').read_text())\nfor path,digest in ledger['primary_artifacts'].items():\n assert hashlib.sha256(P(path).read_bytes()).hexdigest()==digest\ncount=0\nfor row,key in zip(ledger['records'],['brachypodium','gut','soil'],strict=True):\n doc=yaml.safe_load(P(row['path']).read_text())\n primary=''.join(P(manifest[key]['extracted_body']).read_text().split())\n for node in doc['ecological_interactions']:\n for ev in node['evidence']:\n assert ''.join(ev['snippet'].split()) in primary\n count+=1\n if key=='brachypodium':\n e=doc['ecological_interactions'][2]['evidence']\n assert [item['evidence_source'] for item in e]==['IN_VIVO','IN_VITRO']\nassert ledger['edison']['provider_submissions']==ledger['edison']['credits_spent']==0\nprint(json.dumps({'primary_matched_graph_snippets':count,'host_liquid_evidence_distinguished':True,'paid_submissions':0,'new_nodes_or_arrows':0}))\n" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/primary-graph-proof.log", + "log_sha256": "f4554865dff9b8e47eba980b86041c902d20e1c7c83239b80ddfa1e681ba25dc", + "output_tail": "{\"primary_matched_graph_snippets\": 17, \"host_liquid_evidence_distinguished\": true, \"paid_submissions\": 0, \"new_nodes_or_arrows\": 0}\n" + } + ], + "limitations": [ + "All15 original nodes and2 arrows reviewed: four procedure nodes and one workflow arrow removed;11 biological/model nodes and one bounded model-feedback arrow retained. No new nodes/arrows or Edison submission.", + "All three fresh open-access primary main bodies, Methods, Results, Discussion and embedded captions/table text read. Original figure pixels, separate supplementary files, raw data and executable models were not audited; flattened tables were not used to recurate exact strain-by-gene matrices.", + "Brachypodium liquid persistence, sustained drought, rewatering and strain-specific spatial responses remain distinct. Gene annotations and isolate assays do not establish host delivery or necessary mediation.", + "Gut gLV coexistence feedback retained as a positive model result. Pairwise prediction is not a categorical exclusion of higher-order effects; effective signs do not identify unique molecular mechanisms.", + "Soil nutrient18, ratio17/18, EcoFAB17/18 and final16 contexts are distinguished. Additional taxon-dropout evidence is described as context, not converted into unreviewed new causal structure.", + "Canonical aggregate taxonomy and raw non-graph blocks preserved, not recertified. #1548 remains unresolved after graph repair merge.", + "All920 reference caches unchanged. Every retained graph snippet independently matches fresh primary text, but this does not certify all historical cache/non-graph provenance or resolve476/1091/1095.", + "844 all-state issue titles/bodies and41 ignored/hidden local matches searched; all10 matching issue bodies read, not every comment/PR/local match. Self-adversarial review is not independent approval.1545-1547 stay OPEN until protected-main merge.", + "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate." + ], + "superseded_checks": [ + { + "check": "LBNL_Brachypodium_Drought_SynCom15-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-strict.tsv", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-strict.log", + "log_sha256": "37347690929db8dd768bdab0ebe617b8734dee9fae681988ed99cca81cd5de68", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-strict.tsv\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-references.log", + "log_sha256": "027695e77fa6f9185fc9d4b58b8cc350ffe7d2df838a11632540ae8ae191432a", + "output_tail": "Validating kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Brachypodium_Drought_SynCom15.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": "LBNL_Brachypodium_Drought_SynCom15-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-snippets.log", + "log_sha256": "5f0e8a5be45b94195ee5599498c60e06ff8db089c85d0bf23969aa37351ca96e", + "output_tail": "# 17 evidence snippets scanned across 1 files\n MATCH 17\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": "LBNL_Brachypodium_Drought_SynCom15-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-rank.log", + "log_sha256": "95790e8a42a55271b8bcd074bd0d7589edc33e548494039cd0d18127a6c35e1a", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000088\",\n \"name\": \"LBNL Brachypodium Drought SynCom15\",\n \"score\": 75.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 5,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 8,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Brachypodium_Drought_SynCom15-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Brachypodium_Drought_SynCom15/2026-10-06T204405Z-codex-1f9ff6.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Brachypodium_Drought_SynCom15-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-strict.tsv", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-strict.log", + "log_sha256": "aec6c38c5d466aae7f2b1ff0a6b1cc033d780e8fe8bc58c89c7cf077c77cb0d8", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-strict.tsv\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-references.log", + "log_sha256": "78306de0070f1a42a09a0ec87d71df80ae79d25d66acb504f3e06af4cd4a134a", + "output_tail": "Validating kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-snippets.log", + "log_sha256": "389f1d2b093a1648cf407d53853e429a283f80eed2628a1a14cf1f38649ca780", + "output_tail": "# 12 evidence snippets scanned across 1 files\n MATCH 12\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": "LBNL_Human_Gut_Interaction_SynCom-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-rank.log", + "log_sha256": "052b5a195a59b1901326175540df4ae4094fae3188b1484936a560045822990c", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000122\",\n \"name\": \"LBNL Human Gut Interaction SynCom\",\n \"score\": 90.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 1,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Human_Gut_Interaction_SynCom-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Human_Gut_Interaction_SynCom/2026-10-06T204405Z-codex-60df62.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Human_Gut_Interaction_SynCom-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-strict.tsv", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-strict.log", + "log_sha256": "517355cb820df2b0a949674c1e39cea713d3989c5264c6f2f08bc3372cc64b6c", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch61/src/communitymech/schema/communitymech.yaml\n\n=== validate-strict summary ===\n files scanned: 1\n files with ERROR: 0\n total ERROR rows: 0\n TSV: /private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-strict.tsv\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-references.log", + "log_sha256": "dcfb90ae0cea910445f385c00e1c89c8075cb11c11cc8d9f243adb365b2c5634", + "output_tail": "Validating kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/LBNL_Switchgrass_Soil_SynCom16.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": "LBNL_Switchgrass_Soil_SynCom16-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-snippets.log", + "log_sha256": "1835af07ebf0373785ca2d25de18c6984a3cbcfdec0d2610f1d8437504408710", + "output_tail": "# 10 evidence snippets scanned across 1 files\n MATCH 10\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-rank.log", + "log_sha256": "8ae761eeeefb3ba22fbb1db68abdd4845e77f846b8b1c445e720733835140681", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000087\",\n \"name\": \"LBNL Switchgrass Soil SynCom16\",\n \"score\": 75.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 5,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\"\n ],\n \"path\": \"kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml\"\n }\n]\n" + }, + { + "check": "LBNL_Switchgrass_Soil_SynCom16-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/LBNL_Switchgrass_Soil_SynCom16/2026-10-06T204405Z-codex-ae8721.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/LBNL_Switchgrass_Soil_SynCom16-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/inventory.log", + "log_sha256": "d25cc5e87743a9e6f53699f4e269e0361657943b6506502a3896a051ae60e5e2", + "output_tail": "{\n \"scope\": \"Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.\",\n \"semantic_review_rule\": \"Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.\",\n \"records\": 460,\n \"nodes\": 1454,\n \"edges\": 650,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 156,\n \"review_status_counts\": {\n \"needs_research\": 21,\n \"pending\": 242,\n \"reviewed\": 197\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "log": "/private/tmp/communitymech-batch61/network.log", + "log_sha256": "0955d3471f474fec8dcceb846ff932573d11c9833de73b2b2822241553762186", + "output_tail": "{\n \"preferred_term\": \"Legionella MAGs\",\n \"term\": {\n \"id\": \"NCBITaxon:445\",\n \"label\": \"Legionella\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The study detected Legionella-affiliated MAGs and used them in a virulence-gene risk assessment; the source did not assert pathogenicity for a cultured Legionella isolate.\\n\"\n },\n \"abundance_value\": \"Lower-abundance Legionella-affiliated MAGs detected during metagenomic risk assessment.\\n\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41457319\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"detection of waterborne pathogens from the Legionella genus\",\n \"explanation\": \"Supports Legionella-affiliated lower-abundance bins as monitored biosafety-relevant members of the consortium.\\n\"\n }\n ]\n },\n \"message\": \"Taxon 'Legionella MAGs' has no interactions\"\n }\n ],\n \"Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom\": [\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Twelve-Strain SynCom Suppression of Sclerotinia Sclerotia\",\n \"interaction_index\": 0,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Trinickia MC Key Contribution to Sclerotia Mortality\",\n \"interaction_index\": 1,\n \"taxon\": \"Sclerotinia sclerotiorum\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Sclerotinia sclerotiorum' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Space_Habitat_SevenMember_Stress_Tolerance_SynCom\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Acinetobacter radioresistens 50V1\",\n \"taxon_id\": \"NCBITaxon:40216\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Acinetobacter radioresistens 50V1\",\n \"term\": {\n \"id\": \"NCBITaxon:40216\",\n \"label\": \"Acinetobacter radioresistens\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate came from the preflight Mars Odyssey Orbiter; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"50V1\",\n \"genome_accession\": \"GCA_002834555.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Acinetobacter radioresistens | 50V1 | Preflight Mars Odyssey Orbiter | \\u2013 | Mccoy et al., 2012 | GCA_002834555.1 | TSYB/TSYA | 37 \\u00b0C | 16\\u201318 h\",\n \"explanation\": \"Identifies A. radioresistens 50V1 as a consortium member and gives its spacecraft-associated source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Acinetobacter radioresistens 50V1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Micrococcus luteus W4-Al-K1\",\n \"taxon_id\": \"NCBITaxon:1270\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Micrococcus luteus W4-Al-K1\",\n \"term\": {\n \"id\": \"NCBITaxon:1270\",\n \"label\": \"Micrococcus luteus\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from an ISS aluminum-case touch array; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"W4-Al-K1\",\n \"genome_accession\": \"GCA_057816565.1\"\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Micrococcus luteus | W4-Al-K1 | ISS, Touch Array Aluminum Case | - | Kr\\u00e4mer et al., 2025 | GCA_057816565.1 | NB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies M. luteus W4-Al-K1 as a consortium member and gives its ISS source, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Micrococcus luteus W4-Al-K1' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"taxon_id\": \"NCBITaxon:64702\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Propionibacterium cyclohexanicum TA-12T\",\n \"term\": {\n \"id\": \"NCBITaxon:64702\",\n \"label\": \"Propionibacterium cyclohexanicum\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. cyclohexanicum type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"TA-12T\",\n \"genome_accession\": \"GCA_900111365\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"16859\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Propionibacterium cyclohexanicum | TA-12 T | Spoilt Orange Juice | DSM 16859 T | Kusano et al., 1997 | GCA_900111365 | BHI, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies P. cyclohexanicum TA-12T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Propionibacterium cyclohexanicum TA-12T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas antarctica CMS 35T\",\n \"taxon_id\": \"NCBITaxon:219572\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas antarctica CMS 35T\",\n \"term\": {\n \"id\": \"NCBITaxon:219572\",\n \"label\": \"Pseudomonas antarctica\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the P. antarctica type strain as a biosafety-level-1 Pseudomonas surrogate.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"CMS 35T\",\n \"genome_accession\": \"GCA_010634845\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"15318\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pseudomonas antarctica | CMS 35 T | Antarctica | DSM 15318 T | Reddy et al., 2004 | GCA_010634845 | TSYB/TSYA | Ambient | 12\\u201316 h\",\n \"explanation\": \"Identifies P. antarctica CMS 35T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas antarctica CMS 35T' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Staphylococcus capitis K1-2-2-23\",\n \"taxon_id\": \"NCBITaxon:29388\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Staphylococcus capitis K1-2-2-23\",\n \"term\": {\n \"id\": \"NCBITaxon:29388\",\n \"label\": \"Staphylococcus capitis\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The isolate was recovered from ISS V2A steel; ontology grounding is at species level.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"K1-2-2-23\",\n \"genome_accession\": \"GCA_025272695\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"111179\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Staphylococcus capitis | K1-2-2-23 | ISS, V2A Steel | DSM 111179 | Sobisch et al., 2019 | GCA_025272695 | TSYB/TSYA | 37 \\u00b0C | 16\\u201324 h\",\n \"explanation\": \"Identifies S. capitis K1-2-2-23 as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Staphylococcus capitis K1-2-2-23' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Streptococcus halotolerans HTS9T\",\n \"taxon_id\": \"NCBITaxon:1814128\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Streptococcus halotolerans HTS9T\",\n \"term\": {\n \"id\": \"NCBITaxon:1814128\",\n \"label\": \"Streptococcus halotolerans\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"The source used the S. halotolerans type strain as a biosafety-level-1 representative.\"\n },\n \"strain_designation\": {\n \"strain_name\": \"HTS9T\",\n \"genome_accession\": \"GCA_001598035\",\n \"culture_collections\": [\n {\n \"collection\": \"DSM\",\n \"accession\": \"101996\"\n }\n ]\n },\n \"evidence\": [\n {\n \"reference\": \"PMID:42577390\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Streptococcus halotolerans | HTS9 T | Respiratory Tract of Marmota himalayana | DSM 101996 T | Niu et al., 2016 | GCA_001598035 | 2xLB, TSYB/TSYA | 37 \\u00b0C | 24 h\",\n \"explanation\": \"Identifies S. halotolerans HTS9T as a consortium member and gives its source, DSM number, genome accession and cultivation conditions.\"\n }\n ]\n },\n \"message\": \"Taxon 'Streptococcus halotolerans HTS9T' has no interactions\"\n }\n ]\n}\n" + }, + { + "check": "rank-all", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/rank-all.log", + "log_sha256": "2a06dea519ee81b927da13d07efdf87eedda73a453f63be6228db440e79f3e8d", + "output_tail": "ities/Soybean_N_Fixation_sfSynCom.yaml\tCommunityMech:000064\tSoybean N-Fixation Simplified SynCom\t4\t4\t0\t3\t2\t3\t\t0\t0\n402\t100.0\tkb/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml\tCommunityMech:000267\tSphingobium-Rhodococcus Lignin-Dimer Valorization Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n403\t100.0\tkb/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml\tCommunityMech:000326\tStaphylococcus-Candida Context-Dependent Biofilm Coculture\t2\t2\t0\t6\t2\t13\t\t0\t0\n404\t100.0\tkb/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml\tCommunityMech:000254\tStordalen Mire Methylotrophic Methanogenesis Community\t3\t3\t0\t4\t4\t9\t\t0\t0\n405\t100.0\tkb/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml\tCommunityMech:000335\tStreptomyces A2-A5-A11-M7 Pesticide-Bioremediation Consortium\t4\t4\t0\t4\t2\t5\t\t0\t0\n406\t100.0\tkb/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.yaml\tCommunityMech:000251\tSubsurface Carboxydocella CO-Oxidation Aquifer Community\t1\t1\t0\t5\t2\t5\t\t0\t0\n407\t100.0\tkb/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml\tCommunityMech:000312\tSuillus clintonianus-Bacillus altitudinis Thiamine Cross-Feeding SynCom\t3\t3\t0\t4\t3\t4\t\t0\t0\n408\t100.0\tkb/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml\tCommunityMech:000222\tSulfide Spring Autotrophic CPR-Hosting Biofilm\t3\t3\t0\t3\t2\t4\t\t0\t0\n409\t100.0\tkb/communities/SynComBac10_Chicken_Intestinal_SynCom.yaml\tCommunityMech:000127\tSynComBac10 Chicken Intestinal SynCom\t3\t3\t0\t3\t2\t3\t\t0\t0\n410\t100.0\tkb/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml\tCommunityMech:000314\tSynCom ARC Peanut Aflatoxin-Control and Nodulation-Coupling Community\t5\t5\t0\t3\t2\t3\t\t0\t0\n411\t100.0\tkb/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml\tCommunityMech:000278\tSynCom BsBv Cigar Tobacco Leaf Fermentation\t2\t2\t0\t3\t2\t3\t\t0\t0\n412\t100.0\tkb/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml\tCommunityMech:000285\tSynCom + Chlorella sorokiniana Biogas-slurry Coupling System\t2\t2\t0\t5\t3\t5\t\t0\t0\n413\t100.0\tkb/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml\tCommunityMech:000302\tSynCom MetG2 Rhizobacteria Sugarcane Stress Resilience\t2\t2\t0\t3\t2\t4\t\t0\t0\n414\t100.0\tkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml\tCommunityMech:000283\tSesame-flavor Baijiu Fuqu SynCom (13-genus)\t13\t13\t0\t3\t2\t3\t\t0\t0\n415\t100.0\tkb/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml\tCommunityMech:000272\tSynCom Y Agrobacterium-Bacillus Biofilm Biocontrol Co-culture\t2\t2\t0\t4\t2\t6\t\t0\t0\n416\t100.0\tkb/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml\tCommunityMech:000207\tSynechococcus-Azotobacter Photoproduction Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n417\t100.0\tkb/communities/Synechococcus_Bacillus_SPC.yaml\tCommunityMech:000065\tSynechococcus-Bacillus Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n418\t100.0\tkb/communities/Synechococcus_Ecoli_SPC.yaml\tCommunityMech:000066\tSynechococcus-E.coli Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n419\t100.0\tkb/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml\tCommunityMech:000198\tSynechococcus-Halomonas Light-Driven PHB Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n420\t100.0\tkb/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml\tCommunityMech:000167\tSynechococcus-Pseudomonas Phototrophic PHA and DNT Coculture\t2\t2\t0\t4\t2\t8\t\t0\t0\n421\t100.0\tkb/communities/Synechococcus_Saccharomyces_SPC.yaml\tCommunityMech:000067\tSynechococcus-Saccharomyces Synthetic Photosynthetic Consortium\t2\t2\t0\t3\t2\t4\t\t0\t0\n422\t100.0\tkb/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml\tCommunityMech:000211\tSynechococcus-Shewanella D-Lactate Biophotovoltaic Consortium\t2\t2\t0\t3\t2\t6\t\t0\t0\n423\t100.0\tkb/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml\tCommunityMech:000149\tSynthetic Lichen Synechococcus-Rhodotorula Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n424\t100.0\tkb/communities/Syntrophobacter_Methanobacterium_Syntrophy.yaml\tCommunityMech:000068\tSyntrophobacter-Methanobacterium Syntrophic Consortium\t2\t2\t0\t3\t3\t8\t\t0\t0\n425\t100.0\tkb/communities/Syntrophobacter_Methanospirillum_Syntrophy.yaml\tCommunityMech:000069\tSyntrophobacter-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t5\t\t0\t0\n426\t100.0\tkb/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml\tCommunityMech:000189\tSyntrophomonas-Methanococcus Butyrate Growth Coordination Coculture\t2\t2\t0\t3\t2\t6\t\t0\t0\n427\t100.0\tkb/communities/Syntrophomonas_Methanospirillum_Syntrophy.yaml\tCommunityMech:000070\tSyntrophomonas-Methanospirillum Syntrophic Consortium\t2\t2\t0\t3\t3\t7\t\t0\t0\n428\t100.0\tkb/communities/Syntrophus_Benzoate_Degrader.yaml\tCommunityMech:000071\tSyntrophus Benzoate Degrader\t2\t2\t0\t3\t2\t6\t\t0\t0\n429\t100.0\tkb/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml\tCommunityMech:000187\tSyntrophus-Methanospirillum Gentianae Benzoate Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n430\t100.0\tkb/communities/THOR_Rhizosphere_Model_Community.yaml\tCommunityMech:000079\tTHOR Rhizosphere Model Community\t3\t3\t0\t4\t2\t5\t\t0\t0\n431\t100.0\tkb/communities/TYQ1_Nematode_Biocontrol_SynCom.yaml\tCommunityMech:000072\tTYQ1 Nematode Biocontrol SynCom\t8\t8\t0\t4\t4\t4\t\t0\t0\n432\t100.0\tkb/communities/Teosinte_Maize_Biofertilizer_SynCom7.yaml\tCommunityMech:000100\tTeosinte-Derived Maize Biofertilizer SynCom7\t4\t4\t0\t6\t2\t12\t\t0\t0\n433\t100.0\tkb/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml\tCommunityMech:000259\tThalassiosira-Marinobacter Marine Snow Coculture\t2\t2\t0\t4\t2\t10\t\t0\t0\n434\t100.0\tkb/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml\tCommunityMech:000162\tThalassiosira-Ruegeria Phycosphere Coculture\t2\t2\t0\t3\t2\t4\t\t0\t0\n435\t100.0\tkb/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml\tCommunityMech:000182\tThermacetogenium-Methanothermobacter Acetate Oxidation Coculture\t2\t2\t0\t3\t2\t8\t\t0\t0\n436\t100.0\tkb/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml\tCommunityMech:000282\tThermophilic Lignocellulose-degrading Composting SynCom\t5\t5\t0\t3\t2\t3\t\t0\t0\n437\t100.0\tkb/communities/Thermophilic_Pyrite_QS_Consortium.yaml\tCommunityMech:000073\tThermophilic Pyrite Quorum Sensing Consortium\t3\t3\t0\t6\t2\t14\t\t0\t0\n438\t100.0\tkb/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml\tCommunityMech:000186\tThermotoga-Methanocaldococcus Hyperthermophilic Syntrophy\t2\t2\t0\t3\t2\t8\t\t0\t0\n439\t100.0\tkb/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml\tCommunityMech:000239\tThiocyanate-Degrading Afipia and Thiobacillus Bioreactor Community\t3\t3\t0\t3\t2\t3\t\t0\t0\n440\t100.0\tkb/communities/Tinto_River_Iron_Cycling_Community.yaml\tCommunityMech:000074\tTinto River Iron Cycling Community\t6\t6\t0\t5\t3\t6\t\t0\t0\n441\t100.0\tkb/communities/Tobacco_Chemotactic_Biocontrol_SynCom.yaml\tCommunityMech:000106\tTobacco Chemotactic Biocontrol SynCom\t2\t2\t0\t3\t2\t4\t\t0\t0\n442\t100.0\tkb/communities/Tomato_Oxylipin_SynCom3.yaml\tCommunityMech:000107\tTomato Oxylipin-Protective SynCom3\t3\t3\t0\t3\t2\t4\t\t0\t0\n443\t100.0\tkb/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml\tCommunityMech:000112\tTribromophenol Anaerobic Bioremediation SynCom\t3\t3\t0\t4\t3\t5\t\t0\t0\n444\t100.0\tkb/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml\tCommunityMech:000188\tTrichococcus-Syntrophomonas-Methanospirillum Butyrate Coculture\t3\t3\t0\t3\t2\t6\t\t0\t0\n445\t100.0\tkb/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml\tCommunityMech:000205\tTrichoderma-E. coli Cellulosic Isobutanol Coculture\t2\t2\t0\t3\t2\t5\t\t0\t0\n446\t100.0\tkb/communities/Trichoderma_Lactate_Platform.yaml\tCommunityMech:000075\tTrichoderma Lactate Platform for SCFA Production\t3\t3\t0\t3\t2\t3\t\t0\t0\n447\t100.0\tkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml\tCommunityMech:000270\tTrichoderma-Streptomyces Filamentous Cellulose Coculture\t2\t2\t0\t3\t2\t7\t\t0\t0\n448\t100.0\tkb/communities/Trichodesmium_Alteromonas_Marine_Consortium.yaml\tCommunityMech:000147\tTrichodesmium-Alteromonas Marine Consortium\t3\t3\t0\t3\t2\t5\t\t0\t0\n449\t100.0\tkb/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n" + }, + { + "check": "render", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/render.log", + "log_sha256": "4617ff08ffeffef1be0f9f6cf01a523b1aed0d4f3fb81174b8a59c8fb7aa96aa", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch61/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch61/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch61/docs/index.html\n" + }, + { + "check": "render-repeat", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.render" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/render-repeat.log", + "log_sha256": "4617ff08ffeffef1be0f9f6cf01a523b1aed0d4f3fb81174b8a59c8fb7aa96aa", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch61/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch61/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch61/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch61/docs/index.html\n" + }, + { + "check": "connectivity-survey", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-c", + "import json, pathlib, runpy\nfn=runpy.run_path('tests/test_community_level_connectivity_credit.py')['_survey']\nresult={}\nfor name,root in [('baseline',pathlib.Path('/private/tmp/communitymech-causal-batch60')),('current',pathlib.Path.cwd())]:\n paths=sorted(p for r in ['kb/communities','data/isolates'] for p in (root/r).rglob('*.yaml'))\n assert len(paths)==460\n fn.__globals__['record_files']=lambda: paths\n result[name]=fn()\nprint(json.dumps(result))\n" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/connectivity-survey.log", + "log_sha256": "2dcbda64d4b5530059ac8ad2c76a801bffcf051d557341927f6c204fb4d3f7e5", + "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}, \"current\": {\"records\": 460, \"with_community_level\": 391, \"mixed\": 124, \"community_level_only\": 267, \"taxa\": 1507, \"credited_solely_by_the_rule\": 1238}}\n" + }, + { + "check": "regressions", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch10.py", + "tests/test_causal_review_batch11.py", + "tests/test_causal_review_batch12.py", + "tests/test_causal_review_batch13.py", + "tests/test_causal_review_batch14.py", + "tests/test_causal_review_batch15.py", + "tests/test_causal_review_batch16.py", + "tests/test_causal_review_batch17.py", + "tests/test_causal_review_batch18.py", + "tests/test_causal_review_batch19.py", + "tests/test_causal_review_batch20.py", + "tests/test_causal_review_batch21.py", + "tests/test_causal_review_batch22.py", + "tests/test_causal_review_batch23.py", + "tests/test_causal_review_batch24.py", + "tests/test_causal_review_batch25.py", + "tests/test_causal_review_batch27.py", + "tests/test_causal_review_batch28.py", + "tests/test_causal_review_batch29.py", + "tests/test_causal_review_batch30.py", + "tests/test_causal_review_batch31.py", + "tests/test_causal_review_batch32.py", + "tests/test_causal_review_batch33.py", + "tests/test_causal_review_batch34.py", + "tests/test_causal_review_batch35.py", + "tests/test_causal_review_batch36.py", + "tests/test_causal_review_batch37.py", + "tests/test_causal_review_batch38.py", + "tests/test_causal_review_batch39.py", + "tests/test_causal_review_batch40.py", + "tests/test_causal_review_batch41.py", + "tests/test_causal_review_batch42.py", + "tests/test_causal_review_batch43.py", + "tests/test_causal_review_batch44.py", + "tests/test_causal_review_batch45.py", + "tests/test_causal_review_batch46.py", + "tests/test_causal_review_batch47.py", + "tests/test_causal_review_batch48.py", + "tests/test_causal_review_batch49.py", + "tests/test_causal_review_batch5.py", + "tests/test_causal_review_batch50.py", + "tests/test_causal_review_batch51.py", + "tests/test_causal_review_batch52.py", + "tests/test_causal_review_batch53.py", + "tests/test_causal_review_batch54.py", + "tests/test_causal_review_batch55.py", + "tests/test_causal_review_batch56.py", + "tests/test_causal_review_batch57.py", + "tests/test_causal_review_batch58.py", + "tests/test_causal_review_batch59.py", + "tests/test_causal_review_batch6.py", + "tests/test_causal_review_batch60.py", + "tests/test_causal_review_batch61.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_site_audit_fixes.py", + "tests/test_causal_review_inventory.py", + "tests/test_rank_causal_graph_readiness.py", + "tests/test_network_auditor.py", + "tests/test_participating_taxa.py", + "tests/test_causal_descriptions_are_published.py", + "tests/test_published_pages_name_real_records.py", + "tests/test_reference_validator_actually_validates.py", + "tests/test_snippet_audit_artefact_classes.py", + "tests/test_reference_error_annotation.py", + "tests/test_community_level_connectivity_credit.py", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/regressions.log", + "log_sha256": "bd3761e2fbd004bac369cf4b5df1713d059a89f31015bf5dada30907b555f5fd", + "output_tail": "........................................................................ [ 12%]\n........................................................................ [ 25%]\n........................................................................ [ 38%]\n........................................................................ [ 51%]\n........................................................................ [ 64%]\n........................................................................ [ 77%]\n........................................................................ [ 89%]\n......................................................... [100%]\n561 passed in 311.18s (0:05:11)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch61.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/black.log", + "log_sha256": "b9cf511501d306d2bd8355ccb165c8ddc0a6fdd62d7c72c4a7b1795cf8934c8c", + "output_tail": "All done! \u2728 \ud83c\udf70 \u2728\n2 files would be left unchanged.\n" + }, + { + "check": "ruff", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/wCcxEYRM4HeHgwYPZemHX/bin/ruff", + "check", + "tests/test_causal_review_batch61.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/ruff.log", + "log_sha256": "82b3e6a6c090a57601d22943bd23fca9218d1031dbe5a7b754092f9a156b4f18", + "output_tail": "All checks passed!\n" + }, + { + "check": "diff-check", + "command": [ + "git", + "diff", + "--check" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch61/diff-check.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + } + ], + "adversarial_followup": { + "issue": 1545, + "change": "Replaced the mixed-context stability abstract excerpt with direct host Results labeled IN_VIVO; retained separate IN_VITRO low-detection evidence.", + "initial_validation_sha256": "fa74249e66e93d1c83407e0bfbb0b3641f4c6e8702e8ce76b170487f32b6de7f", + "initial_validation": "/private/tmp/communitymech-batch61/initial-validation.json", + "requirement": "Rerun all final-state checks; initial-candidate results are superseded, not reused as final-state proof." + }, + "followup_note": "Initial candidate passed but source review required a host/liquid evidence classification correction. All final-state checks rerun; previous outputs and digests retained as superseded.", + "snippet_counts_by_record": { + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml": { + "MATCH": 17, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml": { + "MATCH": 12, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml": { + "MATCH": 10, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 37, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "edison": { + "required_for_this_repair": false, + "provider_submissions": 0, + "credits_spent": 0, + "reason": "Existing-node/arrow repair only; no new causal structure." + }, + "primary_artifacts": { + "/private/tmp/communitymech-batch61/brachypodium-primary.xml": "d7bd1b471c935f12857602b94534b6d4963d479e099decb6b8719740c6d6882e", + "/private/tmp/communitymech-batch61/brachypodium-primary.txt": "a47cfa9cf0636a574e70c348ea566ef5c1d1254f44b3d3af4b21b910fc69de48", + "/private/tmp/communitymech-batch61/gut-primary.xml": "9148ad1c34d3e0527d86bbd7d70c83792306c502deadde5c353c525ece318e08", + "/private/tmp/communitymech-batch61/gut-primary.txt": "0d8dc614f5a8e925c5862589c3ba90988ce55fd875368c3a29f272adc835addf", + "/private/tmp/communitymech-batch61/soil-primary.xml": "ad9774e85b789eaa1718f1f06984f59845f20e3108993418c0444f715e869922", + "/private/tmp/communitymech-batch61/soil-primary.txt": "32ef705a0af7ecb4bc4576abaa964257e74095a92d811302fe6d1cb731e98d49" + }, + "cache_provenance_caveat": "All 920 caches unchanged. All retained graph snippets independently match fresh primary text; this does not certify full historical cache provenance or scientific support for non-graph fields.", + "network_delta": { + "existing_findings_preserved": 36, + "added_findings": {}, + "removed_findings": {} + }, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1440, + "arrows": 642 + }, + "participant_census": { + "measurements": { + "baseline": { + "records": 460, + "with_community_level": 391, + "mixed": 124, + "community_level_only": 267, + "taxa": 1507, + "credited_solely_by_the_rule": 1238 + }, + "current": { + "records": 460, + "with_community_level": 391, + "mixed": 124, + "community_level_only": 267, + "taxa": 1507, + "credited_solely_by_the_rule": 1238 + } + }, + "interpretation": "All three records retain community-level scope with one explicitly listed canonical Bacteria aggregate each. This does not resolve their experimental strain rosters. Both-root participant census is unchanged; no auditor-rule or canonical taxonomy change." + }, + "network_warning_count": 36, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1454, + "edges": 650, + "records_without_nodes": 8, + "records_without_edges": 156, + "review_status_counts": { + "needs_research": 21, + "pending": 242, + "reviewed": 197 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml": "b9b1755235b23128b647fc2272b8ca0c2205286db36006b8f154cb6ba5679f21", + "tests/test_causal_review_batch61.py": "36c67aaf4c2b76ccbf7e2164827b47904e09f9d3c10f211dd858e211d157a13a", + "tests/test_participating_taxa.py": "3ba923dba13310cac9e8e141ed1a84a67b0c4535f3d648b5af645df39dda7789", + "kb/communities/LBNL_Brachypodium_Drought_SynCom15.yaml": "a7e41d95bc05106486f450153065da247369b854b757d68d451bea5e64e0b8e4", + "kb/communities/LBNL_Human_Gut_Interaction_SynCom.yaml": "aa02533254dbc2a5f78544e1d3155b49f65ba8cffaa2f88b99d625ebf91cd816", + "kb/communities/LBNL_Switchgrass_Soil_SynCom16.yaml": "9e12c5c9efe9440e6ae98386a71eaba63198a4eb71fca5a7bd25dcb1cc188562", + "reports/causal_graph_review/README.md": "5be3a344b20516479bfae527120da539f43b53e3f01ff2a78514ec88c93782ac" + }, + "status": "verified_lbnl_graph_review", + "pre_research_baseline": { + "base_commit": "e1b40d0123d5fe47d5ce14bab5fda21f4469997a", + "base_tree": "22e8e241499518b9b9619e09e97ebf393bb9576e", + "research_worktree": "/private/tmp/communitymech-causal-batch60", + "checks": [ + { + "name": "rank", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch61/baseline-rank.log", + "sha256": "d69653cefc25c0719401942991a6616a6ece5cb019a5d885616b481c2b59ad0c", + "output_tail": "/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml\tCommunityMech:000337\tTropidoatractus magnetotacticus Magnetotactic Ciliate Tripartite Syntrophy\t3\t3\t0\t4\t2\t9\t\t0\t0\n450\t100.0\tkb/communities/Urine_Nitrification_SynCom.yaml\tCommunityMech:000117\tUrine Nitrification Synthetic Microbial Community\t5\t5\t0\t3\t2\t5\t\t0\t0\n451\t100.0\tkb/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml\tCommunityMech:000213\tVariovorax-Cryptococcus Vitamin Cross-Feeding Microcosm\t2\t2\t0\t3\t2\t4\t\t0\t0\n452\t100.0\tkb/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml\tCommunityMech:000328\tWaste-Sludge Electro-Fermentation Biofilm-Suspension Community\t5\t5\t0\t4\t2\t6\t\t0\t0\n453\t100.0\tkb/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.yaml\tCommunityMech:000098\tWatermelon Rhizosphere Fusarium-Protective SynCom8\t2\t2\t0\t3\t2\t7\t\t0\t0\n454\t100.0\tkb/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml\tCommunityMech:000255\tWetland Oxygen-Sulfate Greenhouse Gas Microcosm Community\t3\t3\t0\t3\t2\t6\t\t0\t0\n455\t100.0\tkb/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.yaml\tCommunityMech:000118\tWheat Straw Biogas Pretreatment SynCom\t4\t4\t0\t3\t2\t4\t\t0\t0\n456\t100.0\tkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml\tCommunityMech:000354\tYarrowia lipolytica Division-of-Labor Lipid Consortium\t2\t2\t0\t3\t2\t3\t\t0\t0\n457\t100.0\tkb/communities/Yogurt_TwoSpecies_Starter_Culture.yaml\tCommunityMech:000164\tYogurt Two-Species Starter Culture\t2\t2\t0\t4\t2\t9\t\t0\t0\n458\t100.0\tkb/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml\tCommunityMech:000210\tZymomonas-E. coli Exometabolomics-Designed Obligate Mutualism\t2\t2\t0\t3\t2\t6\t\t0\t0\n459\t100.0\tkb/communities/hCom2_Complex_Gut_Microbiome.yaml\tCommunityMech:000123\thCom2 Complex Gut Microbiome\t1\t1\t0\t3\t2\t3\t\t0\t0\n460\t100.0\tkb/communities/mCAFEs_Brachypodium_RCC.yaml\tCommunityMech:000078\tm-CAFEs Brachypodium Reduced Complexity Consortia\t10\t10\t0\t6\t2\t11\t\t0\t0\nPYTHONPATH=src uv run python scripts/rank_causal_graph_readiness.py \n" + }, + { + "name": "just-network", + "command": [ + "just", + "audit-network-json" + ], + "exit_code": 2, + "expected_exit_code": 2, + "log": "/private/tmp/communitymech-batch61/baseline-just-network.log", + "sha256": "8595db43420d3f0a01c57acd6ad733a531a72e962486d20b4e1c2840dda55bff", + "output_tail": "uv run communitymech audit-network --json\nerror: Failed to spawn: `communitymech`\n Caused by: No such file or directory (os error 2)\nerror: recipe `audit-network-json` failed on line 574 with exit code 2\n" + }, + { + "name": "network", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_code": 1, + "log": "/private/tmp/communitymech-batch61/baseline-network.log", + "sha256": "0955d3471f474fec8dcceb846ff932573d11c9833de73b2b2822241553762186", + "output_tail": " \"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" + }, + { + "name": "downstream", + "command": [ + "rg", + "--no-ignore", + "--hidden", + "-n", + "downstream:", + "kb/communities", + "data/isolates", + "--glob", + "*.yaml" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch61/baseline-downstream.log", + "sha256": "664328c0a93c598eaea1e67a1dd21ed775859b5afd7e0df9e3be3e7c9c16597c", + "output_tail": "kb/communities/SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml:141: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:138: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:182: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:232: downstream:\nkb/communities/Methylotuvimicrobium_Synechococcus_Gas_Feedstock_Coculture.yaml:157: downstream:\nkb/communities/Methylotuvimicrobium_Synechococcus_Gas_Feedstock_Coculture.yaml:203: downstream:\nkb/communities/PMI_Variovorax_Thermotolerance_Collection.yaml:330: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:120: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:152: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:268: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:315: downstream:\nkb/communities/ENIGMA_Denitrifying_SynCom.yaml:167: downstream:\nkb/communities/ENIGMA_Denitrifying_SynCom.yaml:217: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:65: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:98: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:131: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:155: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:295: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:339: downstream:\nkb/communities/Ferroplasma_Leptospirillum_Syntrophy.yaml:125: downstream:\nkb/communities/BioModels_MODEL2204300001_Kefir_Community_Model.yaml:203: downstream:\nkb/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml:115: downstream:\nkb/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml:153: downstream:\nkb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml:285: downstream:\nkb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml:324: downstream:\n" + } + ], + "baseline_sha256": "416066caeddba89e89d71bb5d1afe325a626a2fc49c6951b0c99c95de5d52698" + }, + "reference_validator_caveat": "CLI Total checks counts reported issues, not executed checks. MATCH does not prove scientific entailment or historical provenance. All920 caches unchanged; all retained graph excerpts independently matched to fresh primary bodies. Non-graph1548 and existing476/1091/1095 remain unresolved." +} diff --git a/tests/test_causal_review_batch61.py b/tests/test_causal_review_batch61.py new file mode 100644 index 000000000..83b7d0ea6 --- /dev/null +++ b/tests/test_causal_review_batch61.py @@ -0,0 +1,140 @@ +"""Keep LBNL causal claims within the measured community and model boundaries.""" + +import hashlib +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-lbnl-batch61.yaml" +B = "LBNL_Brachypodium_Drought_SynCom15" +G = "LBNL_Human_Gut_Interaction_SynCom" +S = "LBNL_Switchgrass_Soil_SynCom16" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + rows = {Path(row["path"]).stem: row for row in ledger["records"]} + docs = {name: yaml.safe_load((ROOT / row["path"]).read_text()) for name, row in rows.items()} + return ledger, rows, docs + + +def test_brachypodium_retains_functional_potential_not_assembly_procedures(): + _, rows, docs = records() + genes, phenotypes, *_ = docs[B]["ecological_interactions"] + assert len(docs[B]["ecological_interactions"]) == 5 + assert len(rows[B]["removed_node_decisions"]) == 2 + assert "gene presence does not establish expression" in genes["description"] + assert all(ev["supports"] == "PARTIAL" for ev in genes["evidence"]) + assert "not measured transfer" in genes["metabolites"][0]["notes"] + assert "member-level phenotypes" in phenotypes["description"] + assert "not direct community flux" in phenotypes["description"] + + +def test_brachypodium_liquid_persistence_is_not_uniform_fifteen_member_stability(): + ledger, _, docs = records() + persistence = docs[B]["ecological_interactions"][2] + assert "six strains were undetectable or below 0.1%" in persistence["description"] + assert "more balanced 16S relative profiles" in persistence["description"] + assert "absolute viable counts" in persistence["description"] + assert [ev["evidence_source"] for ev in persistence["evidence"]] == ["IN_VIVO", "IN_VITRO"] + assert persistence["evidence"][0]["snippet"] == ledger["primary_matched_fragments"][3] + assert persistence["evidence"][-1]["snippet"] == ledger["primary_matched_fragments"][0] + assert not any(n.get("downstream") for n in docs[B]["ecological_interactions"]) + + +def test_brachypodium_rewatering_and_spatial_results_keep_their_context(): + _, _, docs = records() + recovery, location = docs[B]["ecological_interactions"][3:] + assert "after drought followed by rewatering" in recovery["description"] + assert "no significant differences" in recovery["description"] + assert "during sustained drought" in recovery["description"] + assert recovery["evidence"][0]["evidence_source"] == "IN_VIVO" + assert "some other strains were instead enriched at the base" in location["description"] + assert "HYPOTHESIZED" in location["description"] + assert "do not trace migration" in location["description"] + assert all(ev["evidence_source"] == "IN_VIVO" for ev in location["evidence"]) + + +def test_gut_dynamics_does_not_encode_universal_acetate_crossfeeding(): + _, _, docs = records() + dynamics, topology, feedback = docs[G]["ecological_interactions"] + assert "metabolites" not in dynamics and "downstream" not in dynamics + assert len(dynamics["evidence"]) == 2 + assert "not absence of higher-order effects" in dynamics["description"] + assert "not direct viable-cell counts" in dynamics["description"] + assert all("interaction_type" not in n for n in [dynamics, topology, feedback]) + assert "prior-literature example" in docs[G]["discussions"][-1]["rationale"] + + +def test_gut_positive_negative_model_feedback_is_preserved(): + _, rows, docs = records() + _, topology, feedback = docs[G]["ecological_interactions"] + (edge,) = topology["downstream"] + assert edge["target"] == feedback["name"] + assert edge["description"].startswith("PARTIAL - in the fitted pairwise gLV models") + assert "negative feedback" in edge["description"] + assert "broader tested growth-rate range than mutual inhibition" in edge["description"] + assert "experimentally coexisting example" in feedback["description"] + assert topology["evidence"][0]["evidence_source"] == "COMPUTATIONAL" + assert feedback["evidence"][0]["evidence_source"] == "COMPUTATIONAL" + assert len(rows[G]["retained_edge_decisions"]) == len(rows[G]["removed_edge_decisions"]) == 1 + + +def test_soil_assay_memberships_are_not_all_the_final_sixteen(): + ledger, rows, docs = records() + nutrient, ratio, host = docs[S]["ecological_interactions"] + assert len(rows[S]["removed_node_decisions"]) == 2 + assert "initial equally mixed 18-strain" in nutrient["description"] + assert "17/18-strain starting-ratio panels" in ratio["description"] + assert "later 16-member dropout experiments are distinct" in ratio["description"] + assert "17 or 18 isolates" in host["description"] + assert nutrient["evidence"][-1]["snippet"] == ledger["primary_matched_fragments"][1] + assert host["evidence"][-1]["snippet"] == ledger["primary_matched_fragments"][2] + assert not any(n.get("downstream") for n in docs[S]["ecological_interactions"]) + + +def test_soil_host_composition_is_not_mutual_benefit_or_absolute_viability(): + _, _, docs = records() + nutrient, ratio, host = docs[S]["ecological_interactions"] + assert "does not demonstrate increased absolute viable abundance" in nutrient["description"] + assert "relative sequencing is not a direct viable-cell count" in ratio["description"] + assert "not demonstrated reciprocal benefit" in host["description"] + assert "single inoculum batch" in host["description"] + assert "did not significantly change overall EcoFAB composition" in host["description"] + assert all(ev["evidence_source"] == "IN_VIVO" for ev in host["evidence"]) + assert host["biological_processes"][0]["term"]["id"] == "GO:0044419" + + +def test_batch61_canonical_aggregate_and_cached_evidence_remain_explicit(): + ledger, _, docs = records() + for path, digest in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == digest + for doc in docs.values(): + assert len(doc["taxonomy"]) == 1 + for node in doc["ecological_interactions"]: + assert [t["term"]["id"] for t in node["participating_taxa"]] == ["NCBITaxon:2"] + assert "aggregate placeholder" in doc["discussions"][-1]["rationale"] + assert "#1548" in doc["discussions"][-1]["rationale"] + assert ledger["unresolved_non_graph_issues"] == [1548] + assert ledger["edison"]["provider_submissions"] == 0 + + +def test_batch61_all_nodes_arrows_anchors_and_history_are_accounted_for(): + ledger, rows, docs = records() + assert ledger["independent_approval"] is False + assert ledger["issues"] == [1545, 1546, 1547] + assert sum(len(r["node_decisions"]) for r in rows.values()) == 11 + assert sum(len(r["removed_node_decisions"]) for r in rows.values()) == 4 + assert sum(len(r["edges_before"]) for r in rows.values()) == 2 + assert sum(len(r["edges_after"]) for r in rows.values()) == 1 + for name, row in rows.items(): + doc = docs[name] + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + assert doc["curation_history"][-1]["llm_assisted"] is True + assert len(row["history_files"]) == 1 and row["status"] == "reviewed" + assert row["source_review"]["all_retained_graph_snippets_primary_matched"] is True + names = {n["name"] for n in doc["ecological_interactions"]} + assert {d["node"] for d in row["node_decisions"]} == names + assert {a.split("#", 1)[1] for a in doc["discussions"][-1]["attaches_to"]} == names + assert doc["discussions"][-1]["status"] == "OPEN" diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py index 162af691b..037a624d7 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -307,6 +307,9 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "Kefir_Flavor_Lentilactobacillus_Kluyveromyces_Coculture.yaml", "Klebsiella_Arthrobacter_KZ_Phenanthrene_Cadmium_SynCom.yaml", "Kombucha_KMC_IMBG1_Fermentation_Community.yaml", + "LBNL_Brachypodium_Drought_SynCom15.yaml", + "LBNL_Human_Gut_Interaction_SynCom.yaml", + "LBNL_Switchgrass_Soil_SynCom16.yaml", "Legume_Rhizobia_Mars_Simulant_Symbiosis.yaml", "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", "MSC1_Dominant_Core.yaml",