From d080a43935e14fd680da6271a65b3398fcd99f52 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Tue, 6 Oct 2026 15:33:09 -0700 Subject: [PATCH] Bound regolith, lupin and MAMC causal claims --- ...phate_Solubilizing_Bacteria_Nicotiana.html | 224 +++-- .../Lupinus_SC7_Rhizosphere_SynCom.html | 209 ++++- docs/communities/MAMC_M48_Lignocellulose.html | 279 +----- .../2026-10-06T222317Z-codex-545fd8.yaml | 25 + .../2026-10-06T222317Z-codex-eeec4c.yaml | 25 + .../2026-10-06T222317Z-codex-086b3f.yaml | 24 + ...phate_Solubilizing_Bacteria_Nicotiana.yaml | 183 ++-- .../Lupinus_SC7_Rhizosphere_SynCom.yaml | 270 +++++- kb/communities/MAMC_M48_Lignocellulose.yaml | 166 ++-- reports/causal_graph_review/README.md | 23 + .../adversarial-review-20261006-batch64.yaml | 190 ++++ .../20261006-assay-boundaries-batch64.yaml | 217 +++++ reports/causal_graph_review/inventory.tsv | 6 +- reports/causal_graph_review/summary.json | 10 +- .../validation-20261006-batch64.json | 832 ++++++++++++++++++ tests/test_causal_review_batch64.py | 142 +++ tests/test_participating_taxa.py | 2 + 17 files changed, 2241 insertions(+), 586 deletions(-) create mode 100644 history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml create mode 100644 history/records/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml create mode 100644 history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261006-batch64.yaml create mode 100644 reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml create mode 100644 reports/causal_graph_review/validation-20261006-batch64.json create mode 100644 tests/test_causal_review_batch64.py diff --git a/docs/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.html b/docs/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.html index bd929570f..c0beb8fbc 100644 --- a/docs/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.html +++ b/docs/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.html @@ -703,7 +703,7 @@

Ecological Interactions

Ecological interaction network for Lunar Regolith Simulant Phosphorus-Solubilizing Bacteria for Nicotiana benthamiana - 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, colonization facilitation). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction.
@@ -711,13 +711,8 @@

Ecological Interactions

Cross-feeding -
-
- Colonization facilitation + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -725,11 +720,9 @@

Ecological Interactions

-

PSB attachment to regolith particles concentrates phosphate dissolution

- COLONIZATION_FACILITATION +

PSB Particle-Associated Biomass Phosphorus

-

The effective PSBs attached to lunar regolith simulant particles after the early planktonic-growth phase, creating a particle-associated microbial pool that tracked dissociation of insoluble inorganic phosphorus. The attachment trait complements organic-acid secretion by binding the cells to mineral particles and creating extracellular microenvironments where protons and organic acids can decompose phosphate minerals. -

+

In five separate individual-strain flask treatments, attached microbial biomass phosphorus tracked inferred insoluble-phosphorus dissociation. The attached pool increased after day 4 for B. mucilaginosus, B. megaterium and P. fluorescens, while most microbial biomass phosphorus remained suspended. This is an operational biomass-P and regression observation, not direct biofilm imaging or a selective attachment perturbation. HYPOTHESIZED - particle-associated biofilms could concentrate proton or organic-acid action, but the proposed bacteria-mineral microenvironment was not demonstrated. The five participants identify the tested panel, not a five-strain coculture.

@@ -740,36 +733,19 @@

PSB attachment to regolith particles concentrates phosphate dissolution

Bacillus megaterium (AS1.217), - Pseudomonas fluorescens (ATCC 13525) - -

- - + Pseudomonas fluorescens (ATCC 13525), + Bacillus subtilis (CMCC 63501), + Bacillus licheniformis (ATCC 11946) -

Biological Processes:

- -
- Downstream Effects: -
- → Phosphorus solubilization from lunar regolith simulant via organic-acid secretion -

Particle attachment forms a stable bacteria-mineral interface that supports local proton and organic-acid attack on insoluble phosphate minerals in the regolith simulant.

-
-
@@ -785,20 +761,7 @@

Evidence

- SUPPORT (IN_VITRO)
-
"attachment of PSBs to the regolith simulant particles was also an important factor in the dissociation of insoluble inorganic phosphorus"
- - - -
  • -
    - - PMID:37945659 - - - SUPPORT (IN_VITRO) -
    - -
    "developing biofilms to tightly bind with mineral particles, forming a stable bacteria-mineral complex"
    +
    "Suspended microbial biomass phosphorus was always much higher than attached microbial biomass phosphorus among all five PSB treatments"
  • @@ -808,64 +771,45 @@

    Evidence

    -

    Phosphorus solubilization from lunar regolith simulant via organic-acid secretion

    - CROSS_FEEDING +

    PSB Phosphorus Mobilization In Regolith Simulant

    -

    The phosphorus-solubilizing bacteria synthesize organic acids from carbon sources in the medium, lowering the pH and chelating metal ions in insoluble phosphate minerals (Ca3(PO4)2, FePO4, AlPO4), thereby dissociating insoluble inorganic phosphorus and increasing the soluble/available phosphorus available to plants. This microbe-mineral process, driven by the whole PSB treatment, is the core mechanism improving the fertility of the lunar regolith simulant. -

    +

    Individual-strain flasks with terrestrial CAS-1-type regolith simulant and glucose broth showed increased total available phosphorus for B. mucilaginosus, B. megaterium and P. fluorescens; B. subtilis and B. licheniformis had little dissociation activity. Total available phosphorus includes dissolved, biomass and adsorbed pools and is not identical to freely dissolved inorganic phosphate. Low pH and attached biomass phosphorus correlated with inferred dissociation. HYPOTHESIZED - acidification and organic-acid chelation may contribute, but specific secreted oxalate or citrate, mediator necessity and interspecies nutrient transfer were not measured. The five canonical participants are separate tested strains, not an experimentally demonstrated cross-feeding community.

    +

    Participating Taxa: + Bacillus mucilaginosus (AS1.232), -

    Metabolites: + Bacillus megaterium (AS1.217), - phosphate - (CHEBI:18367), + Pseudomonas fluorescens (ATCC 13525), - oxalic acid - (CHEBI:16995), + Bacillus subtilis (CMCC 63501), - citrate - (CHEBI:16947) + Bacillus licheniformis (ATCC 11946)

    +

    Metabolites: + phosphate + (CHEBI:18367) -

    - Downstream Effects: - -
    - → Phosphorus-enabled promotion of Nicotiana benthamiana growth -

    Organic-acid phosphate solubilization raises the available phosphorus pool in the regolith simulant that drives the downstream Nicotiana growth response.

    -
    - -
    - +

    -

    Evidence

    -
    @@ -702,153 +702,29 @@

    Ecological Interactions

    -

    Sugarcane Lignocellulose Enrichment

    - NICHE_PARTITIONING +

    MAMC-M48 Lignocellulose Degradation

    -

    Soil bacteria were enriched on sugarcane lignocellulose, dereplicated and phenotyped to yield 18 degraders spanning four metabolic functional groups for downstream MAMC construction. -

    +

    MAMC-M48, containing study isolate IDs 13, 18, 25, 29 and 68, was the best-performing five-member mixture in the tested 65-mixture screen. At 96 hours, calibrated FTIR estimates were 43.01% lignin, 39.65% cellulose and 69.18% hemicellulose change, averaging 50.6%, rather than 50.6% for each fraction. These are fraction-composition estimates, not direct gravimetric mass loss, carbon mineralization or partner-resolved catalytic flux. HYPOTHESIZED - complementary substrate use could contribute, but niche partitioning and directed exchanges were not established. Canonical participants retain source-reported 16S identification labels; their strain-like suffixes are not independently verified culture-strain identities. Enrichment and reductive screening describe selection procedures, not ecological interactions.

    +

    Participating Taxa: + Stenotrophomonas maltophilia JN40, -

    Metabolites: + Paenibacillus sp. PALXIL05, - cellulose - (CHEBI:18246), + Microbacterium sp. UYFA68, - xylan - (CHEBI:37166), + Chryseobacterium taiwanense DUCC3723, - lignin - (CHEBI:6457) + Brevundimonas sp. R3

    -

    Biological Processes:

    - - - - - - -

    Evidence

    - - -
    - -
    -
    -

    Functional-Group Reductive MAMC Screening

    - NICHE_PARTITIONING -
    -

    Sixty-five five-species synthetic communities were assembled from the 18 enriched strains while varying the number of metabolic functional groups, metabolic potential, and degradation capacity. -

    - - - - - - -

    Metabolites: - - lignocellulose - (CHEBI:180683) - -

    - - - -

    Biological Processes:

    - - - - - - -

    Evidence

    - - -
    - -
    -
    -

    MAMC-M48 Lignocellulose Degradation

    - NICHE_PARTITIONING -
    -

    The Stenotrophomonas, Paenibacillus, Microbacterium, Chryseobacterium, and Brevundimonas MAMC-M48 consortium was selected as the strongest five-member degrader, while the specific partner interaction routes remain unresolved by this screen. -

    - - - - - -

    Metabolites: cellulose @@ -867,29 +743,6 @@

    MAMC-M48 Lignocellulose Degradation

    -

    Biological Processes:

    - - @@ -932,6 +785,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which M48 partner activities account for the observed fraction changes? +

    +

    Retain the M48 endpoint and zero arrows; remove two procedure nodes without restoring previously removed workflow arrows. Metabolic functional groups and isolate secretome assays guide selection but do not prove division of labor in M48. The50.6% value is a mean of three FTIR-derived fraction-change estimates, not50.6% each or gravimetric carbon loss. Table2 identification strings are 16S-based labels; exact isolate-to-culture/genome identity needs reconciliation. Main text and Tables2/3 read, not image-only Table1 cells, original figure pixels, supplementary files or raw measurements. #1564 separately tracks canonical labels, inoculum metadata and non-graph endpoint wording; approximately3e4 cells/mL per strain refers to the eighteen-strain control, not all five-member consortia.

    + +

    Attaches to: ecological_interactions#MAMC-M48 Lignocellulose Degradation

    + + + + +
    + +
    @@ -1366,7 +1238,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1379,51 +1251,11 @@

    Evidence

    var processes = []; - - processes.push("cellulose catabolic process"); - - processes.push("xylan catabolic process"); - - - var evidenceCount = 1; - - nodes.push({ - id: intId, - label: "Sugarcane Lignocellulose Enrichment", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount - }); - - - - - })(); - - (function() { - var intId = "interaction:1"; - var intType = "NICHE_PARTITIONING"; - var metabolites = []; - - - metabolites.push("lignocellulose"); - - - var processes = []; - - - processes.push("cellulose catabolic process"); - - processes.push("interspecies interaction between organisms"); - - - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, - label: "Functional-Group Reductive MAMC Screening", + label: "MAMC-M48 Lignocellulose Degradation", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1434,46 +1266,25 @@

    Evidence

    - })(); + var participantKeys = [ - (function() { - var intId = "interaction:2"; - var intType = "NICHE_PARTITIONING"; - var metabolites = []; + "Stenotrophomonas maltophilia JN40", + "Paenibacillus sp. PALXIL05", - metabolites.push("cellulose"); + "Microbacterium sp. UYFA68", - metabolites.push("xylan"); + "Chryseobacterium taiwanense DUCC3723", - metabolites.push("lignin"); + "Brevundimonas sp. R3" - - var processes = []; - - - processes.push("cellulose catabolic process"); - - processes.push("xylan catabolic process"); - - processes.push("interspecies interaction between organisms"); - - - var evidenceCount = 2; - - nodes.push({ - id: intId, - label: "MAMC-M48 Lignocellulose Degradation", - type: "interaction", - interactionType: intType, - metabolites: metabolites, - processes: processes, - evidenceCount: evidenceCount + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } }); - - - })(); @@ -1495,7 +1306,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/history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml b/history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml new file mode 100644 index 000000000..50723b282 --- /dev/null +++ b/history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml + slug: Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana +session: + id: 2026-10-06T222317Z-codex-545fd8 + timestamp: '2026-10-06T22:23:17Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1561 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Separate regolith attachment, phosphorus and living-host outcomes from proposed + mediation. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml diff --git a/history/records/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml b/history/records/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml new file mode 100644 index 000000000..70337f634 --- /dev/null +++ b/history/records/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml + slug: Lupinus_SC7_Rhizosphere_SynCom +session: + id: 2026-10-06T222317Z-codex-eeec4c + timestamp: '2026-10-06T22:23:17Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1562 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Scope SC-7 growth, transcription and assembly observations to the tested assays + and input roster. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml diff --git a/history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml b/history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml new file mode 100644 index 000000000..7807fd085 --- /dev/null +++ b/history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml @@ -0,0 +1,24 @@ +history_version: 1 +target: + kind: record + path: kb/communities/MAMC_M48_Lignocellulose.yaml + slug: MAMC_M48_Lignocellulose +session: + id: 2026-10-06T222317Z-codex-086b3f + timestamp: '2026-10-06T22:23:17Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1563 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Remove MAMC procedure nodes and bound the retained M48 FTIR endpoint. + details: Source-based self-adversarial review. reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml diff --git a/kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml b/kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml index 11fd5eed6..b52471e39 100644 --- a/kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml +++ b/kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml @@ -254,15 +254,13 @@ taxonomy: snippet: B. megaterium (AS1.217), B. subtilis (CMCC 63501), P. fluorescens (ATCC 13525), B. licheniformis (ATCC 11946), and B. mucilaginosus (AS1.232) explanation: Names Bacillus licheniformis (ATCC 11946) as one of the five tested PSB strains. ecological_interactions: -- name: PSB attachment to regolith particles concentrates phosphate dissolution - description: > - The effective PSBs attached to lunar regolith simulant particles after the - early planktonic-growth phase, creating a particle-associated microbial pool - that tracked dissociation of insoluble inorganic phosphorus. The attachment - trait complements organic-acid secretion by binding the cells to mineral - particles and creating extracellular microenvironments where protons and - organic acids can decompose phosphate minerals. - interaction_type: COLONIZATION_FACILITATION +- name: PSB Particle-Associated Biomass Phosphorus + description: In five separate individual-strain flask treatments, attached microbial biomass phosphorus tracked + inferred insoluble-phosphorus dissociation. The attached pool increased after day 4 for B. mucilaginosus, B. + megaterium and P. fluorescens, while most microbial biomass phosphorus remained suspended. This is an operational + biomass-P and regression observation, not direct biofilm imaging or a selective attachment perturbation. HYPOTHESIZED + - particle-associated biofilms could concentrate proton or organic-acid action, but the proposed bacteria-mineral + microenvironment was not demonstrated. The five participants identify the tested panel, not a five-strain coculture. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Bacillus mucilaginosus (AS1.232) @@ -277,90 +275,105 @@ ecological_interactions: term: id: NCBITaxon:294 label: Pseudomonas fluorescens - biological_processes: - - preferred_term: biofilm formation + - preferred_term: Bacillus subtilis (CMCC 63501) + term: + id: NCBITaxon:1423 + label: Bacillus subtilis + - preferred_term: Bacillus licheniformis (ATCC 11946) term: - id: GO:0042710 - label: biofilm formation - downstream: - - target: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion - description: Particle attachment forms a stable bacteria-mineral interface - that supports local proton and organic-acid attack on insoluble phosphate - minerals in the regolith simulant. + id: NCBITaxon:1402 + label: Bacillus licheniformis evidence: - reference: PMID:37945659 supports: SUPPORT evidence_source: IN_VITRO - snippet: attachment of PSBs to the regolith simulant particles was also an important factor in the dissociation of insoluble inorganic phosphorus - explanation: Links PSB attachment to regolith particles with insoluble-phosphorus dissociation. - - reference: PMID:37945659 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: developing biofilms to tightly bind with mineral particles, forming a stable bacteria-mineral complex - explanation: Supports biofilm-like particle binding as an inferred mechanism concentrating mineral dissolution. -- name: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion - description: > - The phosphorus-solubilizing bacteria synthesize organic acids from carbon - sources in the medium, lowering the pH and chelating metal ions in insoluble - phosphate minerals (Ca3(PO4)2, FePO4, AlPO4), thereby dissociating insoluble - inorganic phosphorus and increasing the soluble/available phosphorus available - to plants. This microbe-mineral process, driven by the whole PSB treatment, is - the core mechanism improving the fertility of the lunar regolith simulant. - interaction_type: CROSS_FEEDING + snippet: Suspended microbial biomass phosphorus was always much higher than attached microbial biomass phosphorus + among all five PSB treatments + explanation: Supports the measured operational phosphorus pools in separate-strain flasks, not demonstrated + biofilm formation or attachment-mediated dissolution. +- name: PSB Phosphorus Mobilization In Regolith Simulant + description: Individual-strain flasks with terrestrial CAS-1-type regolith simulant and glucose broth showed increased + total available phosphorus for B. mucilaginosus, B. megaterium and P. fluorescens; B. subtilis and B. licheniformis + had little dissociation activity. Total available phosphorus includes dissolved, biomass and adsorbed pools + and is not identical to freely dissolved inorganic phosphate. Low pH and attached biomass phosphorus correlated + with inferred dissociation. HYPOTHESIZED - acidification and organic-acid chelation may contribute, but specific + secreted oxalate or citrate, mediator necessity and interspecies nutrient transfer were not measured. The five + canonical participants are separate tested strains, not an experimentally demonstrated cross-feeding community. scope: COMMUNITY_LEVEL metabolites: - preferred_term: phosphate term: id: CHEBI:18367 label: phosphate(3-) - - preferred_term: oxalic acid - term: - id: CHEBI:16995 - label: oxalic acid - - preferred_term: citrate - term: - id: CHEBI:16947 - label: citrate(3-) - downstream: - - target: Phosphorus-enabled promotion of Nicotiana benthamiana growth - description: Organic-acid phosphate solubilization raises the available - phosphorus pool in the regolith simulant that drives the downstream - Nicotiana growth response. + notes: Phosphorus context; measured total available phosphorus pools are not equivalent to freely dissolved + phosphate or demonstrated interspecies transfer. evidence: - reference: PMID:37945659 supports: SUPPORT evidence_source: IN_VITRO - snippet: PSBs to synthesize organic acids by using carbon sources in the medium to reduce regolith pH, thus activating insoluble inorganic phosphorus in lunar regolith simulant - explanation: States the organic-acid / pH-reduction mechanism of phosphorus mobilization from the simulant. - - reference: PMID:37945659 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: organic acid ions also facilitate the dissolution of phosphate minerals through chelating with the metal ions in Ca3(PO4)2, FePO4, AlPO4 - explanation: Documents metal-ion chelation of insoluble phosphate minerals by secreted organic acids. -- name: Phosphorus-enabled promotion of Nicotiana benthamiana growth - description: > - By raising the available phosphorus content of the lunar regolith simulant, - the PSB treatment promotes the growth of the higher plant Nicotiana benthamiana, - a plant-beneficial outcome that is strongest when the simulant is pre-cultured - with PSBs 18 days before sowing. - interaction_type: COLONIZATION_FACILITATION + snippet: the total available phosphorus capacity could be significantly increased by B. mucilaginosus, B. megaterium, + and P. fluorescens + explanation: Supports the positive treatment-associated phosphorus endpoint; regressions and background literature + do not identify the secreted acid or selectively establish mediation. + participating_taxa: + - preferred_term: Bacillus mucilaginosus (AS1.232) + term: + id: NCBITaxon:61624 + label: Paenibacillus mucilaginosus + - preferred_term: Bacillus megaterium (AS1.217) + term: + id: NCBITaxon:1404 + label: Priestia megaterium + - preferred_term: Pseudomonas fluorescens (ATCC 13525) + term: + id: NCBITaxon:294 + label: Pseudomonas fluorescens + - preferred_term: Bacillus subtilis (CMCC 63501) + term: + id: NCBITaxon:1423 + label: Bacillus subtilis + - preferred_term: Bacillus licheniformis (ATCC 11946) + term: + id: NCBITaxon:1402 + label: Bacillus licheniformis +- name: Nicotiana Response To PSB-Conditioned Regolith Simulant + description: Living Nicotiana benthamiana plants grew better on simulant conditioned with the three effective + PSBs, with the strongest measured response after 18 days of pretreatment. At 24 days after sowing, fresh weight + and chlorophyll were 315.92% and 204.08% of the sterilized control, respectively; these are percentages of control, + not percentage increases. Without pretreatment, seedling length at day 6 was only 53.28% of control. The three + strains were mixed 1:1:1 by volume; blank and steam-killed controls were not pre-cultured. MS nutrient supplementation + from day 6 contributed phosphorus. These results support a conditioning-treatment effect, not exclusive phosphorus + mediation, universal early benefit or actual lunar-environment performance. The listed participants are inoculants, + not the missing canonical plant host. scope: COMMUNITY_LEVEL metabolites: - preferred_term: phosphate term: id: CHEBI:18367 label: phosphate(3-) + notes: Proposed nutrient contributor; the plant experiment does not selectively establish exclusive phosphorus + mediation. evidence: - reference: PMID:37945659 supports: SUPPORT - evidence_source: IN_VITRO - snippet: The phosphorus-solubilizing bacteria treatment improves the available phosphorus content of the regolith simulant, promoting the growth of Nicotiana benthamiana - explanation: Links PSB-driven available-phosphorus increase to promotion of Nicotiana benthamiana growth. - - reference: PMID:37945659 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: the growth of Nicotiana benthamiana could be most improved by treating the regolith simulant with PSBs 18 days before sowing - explanation: Documents the strongest plant-growth improvement from an 18-day pre-culture treatment. + evidence_source: IN_VIVO + snippet: the growth of Nicotiana benthamiana could be most improved by treating the regolith simulant with PSBs + 18 days before sowing + explanation: Supports the living-host conditioning result; Table 3, Methods and MS supplementation qualify the + outcome and causal interpretation. + participating_taxa: + - preferred_term: Bacillus mucilaginosus (AS1.232) + term: + id: NCBITaxon:61624 + label: Paenibacillus mucilaginosus + - preferred_term: Bacillus megaterium (AS1.217) + term: + id: NCBITaxon:1404 + label: Priestia megaterium + - preferred_term: Pseudomonas fluorescens (ATCC 13525) + term: + id: NCBITaxon:294 + label: Pseudomonas fluorescens environmental_factors: - name: Lunar regolith simulant substrate value: CAS-1 lunar soil simulant @@ -520,7 +533,31 @@ curation_history: curator: codex action: REPAIR_OBSOLETE_GO_PROCESS llm_assisted: true - changes: Removed the optional obsolete GO:0016053 descriptor. Its only explicit GO replacement is GO:0008152 - (metabolic process), which the existing no-vacuous-annotations policy rejects. Retained the specific - biological meaning in the unchanged interaction prose, metabolites, downstream links, and evidence - without inventing a narrower ontology mapping. + changes: Removed the optional obsolete GO:0016053 descriptor. Its only explicit GO replacement is GO:0008152 (metabolic + process), which the existing no-vacuous-annotations policy rejects. Retained the specific biological meaning + in the unchanged interaction prose, metabolites, downstream links, and evidence without inventing a narrower + ontology mapping. +- timestamp: '2026-10-06T22:23:15Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Separate regolith attachment, phosphorus and living-host outcomes from proposed mediation. Issue #1561; + reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml' + llm_assisted: true +discussions: +- discussion_id: nicotiana_assay_identity_and_mediation + prompt: Which processes mediate regolith phosphorus mobilization and the time-dependent plant response? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#PSB Particle-Associated Biomass Phosphorus + - ecological_interactions#PSB Phosphorus Mobilization In Regolith Simulant + - ecological_interactions#Nicotiana Response To PSB-Conditioned Regolith Simulant + rationale: 'Retain measured attachment pools, phosphorus mobilization and plant outcomes without the two untested + mediation arrows. Separate five individual-strain flask treatments from three-strain plant inoculation. Biofilms + and named organic acids are hypotheses; correlated phosphorus pools are not a selective mediator test. MS supplementation + after day6, unconditioned controls and the adverse early unconditioned-treatment response limit exclusive-P + attribution. Full primary body and embedded tables were read. The complete 2026 correction PMID:42304108 changes + Fig1 particle-size labels, not the biology; no original figure pixels or separate supplementary measurement + methods were audited. Non-graph mechanism, host, medium and assay metadata remain under #1564.' + posed_by: codex + posed_date: '2026-10-06' diff --git a/kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml b/kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml index 02e716c18..09728cc42 100644 --- a/kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml +++ b/kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml @@ -302,61 +302,215 @@ taxonomy: explanation: Identifies Variovorax sp. LARHSF232 as an SC-7 member. ecological_interactions: - name: SC-7 high-complexity lupin response - description: > - The most complex consortium, SC-7, was the SynCom associated with the - highest lupin growth increase and broad host transcriptional responses, but - the assay varied richness and membership simultaneously and therefore does - not separate a pure diversity effect from the effect of particular strains. + description: The twelve-strain SC-7 inoculum produced the strongest reported lupin growth response in both gnotobiotic + FlowPot and non-sterile CAS-soil experiments. The panel varied richness and strain composition together, so + a pure diversity effect is not isolated. The twelve listed canonical participants match the inoculated strain + codes in main Table 1, including both Streptomyces strains; they do not represent the missing host or all background + soil taxa. Input membership does not establish dominance or equal abundance at harvest. scope: COMMUNITY_LEVEL evidence: - reference: PMID:42602126 supports: SUPPORT evidence_source: IN_VIVO - snippet: > - Given that SC-7 was the most complex SynCom and led to the highest - increase in plant growth + snippet: 'Given that SC-7 was the most complex SynCom and led to the highest increase in plant growth + + ' explanation: Identifies SC-7 as the most growth-promoting SynCom in the series. - reference: PMID:42602126 supports: SUPPORT evidence_source: IN_VIVO - snippet: > - Because community complexity and strain composition varied simultaneously - among SynComs, the individual contributions of these factors cannot be - disentangled under the conditions tested. - explanation: > - Preserves the paper's caution that the SC-7 response is not evidence for - a richness-only causal effect. + snippet: 'Because community complexity and strain composition varied simultaneously among SynComs, the individual + contributions of these factors cannot be disentangled under the conditions tested. + + ' + explanation: 'Preserves the paper''s caution that the SC-7 response is not evidence for a richness-only causal + effect. + + ' + participating_taxa: + - preferred_term: Bradyrhizobium sp. CAR08 + term: + id: NCBITaxon:374 + label: Bradyrhizobium + - preferred_term: Micromonospora sp. Lupac 08 + term: + id: NCBITaxon:1873 + label: Micromonospora + - preferred_term: Caulobacter sp. LARHSG274 + term: + id: NCBITaxon:75 + label: Caulobacter + - preferred_term: Kribbella sp. LARHCF250 + term: + id: NCBITaxon:182639 + label: Kribbella + - preferred_term: Pseudomonas sp. LARHCG127 + term: + id: NCBITaxon:286 + label: Pseudomonas + - preferred_term: Pseudoxanthomonas sp. LARHCG66 + term: + id: NCBITaxon:83618 + label: Pseudoxanthomonas + - preferred_term: Rhizobium sp. LARHSG275 + term: + id: NCBITaxon:379 + label: Rhizobium + - preferred_term: Sphingopyxis sp. LARHCG72 + term: + id: NCBITaxon:165697 + label: Sphingopyxis + - preferred_term: Stenotrophomonas sp. LARHCG68 + term: + id: NCBITaxon:40323 + label: Stenotrophomonas + - preferred_term: Streptomyces sp. LARHCF249 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Streptomyces sp. LARHCF252 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Variovorax sp. LARHSF232 + term: + id: NCBITaxon:34072 + label: Variovorax - name: SC-7-associated host transcriptional reprogramming - description: > - SC-7 inoculation was associated with up-regulated lupin root pathways for - signaling, hormone perception, primary and secondary metabolism, defense - responses, and growth regulation. + description: RNA-seq of living lupin roots from the FlowPot experiment associated SC-7 with changes in signaling, + hormone perception, defense, and primary and secondary metabolic gene sets. Some pathways were upregulated and + others downregulated; this is differential expression and enrichment, not direct hormone production, nitrogen-fixation + rate or a demonstrated mediator of growth. Leghemoglobin expression and genomic plant-growth annotations do + not independently establish functional flux. The inoculated twelve-strain roster does not resolve each strain + contribution. scope: COMMUNITY_LEVEL evidence: - reference: PMID:42602126 supports: SUPPORT evidence_source: IN_VIVO - snippet: > - Upon addition of SC-7, several key pathways related to signalling, hormone - perception, and primary and secondary metabolism were significantly - upregulated - explanation: Supports the host transcriptional response observed after SC-7 inoculation. + snippet: 'Upon addition of SC-7, several key pathways related to signalling, hormone perception, and primary + and secondary metabolism were significantly upregulated + + ' + explanation: Supports SC-7-associated root transcriptional changes in the FlowPot experiment; expression is + not biochemical activity or selective growth mediation. + participating_taxa: + - preferred_term: Bradyrhizobium sp. CAR08 + term: + id: NCBITaxon:374 + label: Bradyrhizobium + - preferred_term: Micromonospora sp. Lupac 08 + term: + id: NCBITaxon:1873 + label: Micromonospora + - preferred_term: Caulobacter sp. LARHSG274 + term: + id: NCBITaxon:75 + label: Caulobacter + - preferred_term: Kribbella sp. LARHCF250 + term: + id: NCBITaxon:182639 + label: Kribbella + - preferred_term: Pseudomonas sp. LARHCG127 + term: + id: NCBITaxon:286 + label: Pseudomonas + - preferred_term: Pseudoxanthomonas sp. LARHCG66 + term: + id: NCBITaxon:83618 + label: Pseudoxanthomonas + - preferred_term: Rhizobium sp. LARHSG275 + term: + id: NCBITaxon:379 + label: Rhizobium + - preferred_term: Sphingopyxis sp. LARHCG72 + term: + id: NCBITaxon:165697 + label: Sphingopyxis + - preferred_term: Stenotrophomonas sp. LARHCG68 + term: + id: NCBITaxon:40323 + label: Stenotrophomonas + - preferred_term: Streptomyces sp. LARHCF249 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Streptomyces sp. LARHCF252 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Variovorax sp. LARHSF232 + term: + id: NCBITaxon:34072 + label: Variovorax - name: Complex SynCom root and rhizosphere reshaping - description: > - More complex Lupinus SynCom inocula, including SC-7, were associated with - root-associated microbiome shifts, moderate rhizosphere effects, and limited - bulk-soil effects across sterile and non-sterile tests. + description: In non-sterile CAS soil, the SynCom panel including SC-7 was associated with compartment-specific + relative microbiome profiles, with the largest reported changes in roots and limited bulk-soil changes. SC-7 + had lower root Shannon diversity than uninoculated controls. These results must remain separate from gnotobiotic + colonization and FlowPot RNA-seq. Genus-level relative profiles are not absolute exclusion or unambiguous persistence + of each inoculated strain; changes after computational removal of inoculant-associated ASVs are not a biological + knockout. The Results sentence reporting no significant compartment treatment effects conflicts with its reported + PERMANOVA p=0.001, so no blanket significance claim is certified here. scope: COMMUNITY_LEVEL evidence: - reference: PMID:42602126 supports: SUPPORT evidence_source: IN_VIVO - snippet: > - SynCom inoculation reshaped root-associated microbiota, moderately - influenced the rhizosphere, and had limited impact on bulk soil communities. - explanation: > - Supports the root, rhizosphere, and soil microbiome shifts associated with - the Lupinus SynCom inoculation series. + snippet: 'SynCom inoculation reshaped root-associated microbiota, moderately influenced the rhizosphere, and + had limited impact on bulk soil communities. + + ' + explanation: Supports the panel-level compartment pattern, not identical effects for every SC-7 taxon, absolute + abundance changes or a proven assembly-to-growth pathway. + participating_taxa: + - preferred_term: Bradyrhizobium sp. CAR08 + term: + id: NCBITaxon:374 + label: Bradyrhizobium + - preferred_term: Micromonospora sp. Lupac 08 + term: + id: NCBITaxon:1873 + label: Micromonospora + - preferred_term: Caulobacter sp. LARHSG274 + term: + id: NCBITaxon:75 + label: Caulobacter + - preferred_term: Kribbella sp. LARHCF250 + term: + id: NCBITaxon:182639 + label: Kribbella + - preferred_term: Pseudomonas sp. LARHCG127 + term: + id: NCBITaxon:286 + label: Pseudomonas + - preferred_term: Pseudoxanthomonas sp. LARHCG66 + term: + id: NCBITaxon:83618 + label: Pseudoxanthomonas + - preferred_term: Rhizobium sp. LARHSG275 + term: + id: NCBITaxon:379 + label: Rhizobium + - preferred_term: Sphingopyxis sp. LARHCG72 + term: + id: NCBITaxon:165697 + label: Sphingopyxis + - preferred_term: Stenotrophomonas sp. LARHCG68 + term: + id: NCBITaxon:40323 + label: Stenotrophomonas + - preferred_term: Streptomyces sp. LARHCF249 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Streptomyces sp. LARHCF252 + term: + id: NCBITaxon:1883 + label: Streptomyces + - preferred_term: Variovorax sp. LARHSF232 + term: + id: NCBITaxon:34072 + label: Variovorax environmental_factors: - name: SC-7 equal-ratio inoculum value: OD600 1 individual cultures diluted as a 12-member mixture to OD600 0.02 @@ -483,20 +637,38 @@ external_resources: explanation: Lists the exact primary SC-7 Lupinus SynCom publication. discussions: - discussion_id: sc7_richness_vs_membership - prompt: > - Which SC-7 phenotypes are caused by increased member richness and which are - caused by the presence of Bradyrhizobium, Micromonospora, or other specific - strains in the 12-member mixture? + prompt: 'Which SC-7 phenotypes are caused by increased member richness and which are caused by the presence of + Bradyrhizobium, Micromonospora, or other specific strains in the 12-member mixture? + + ' kind: KNOWLEDGE_GAP status: OPEN attaches_to: - ecological_interactions#SC-7 high-complexity lupin response - rationale: > - The study's SynCom series changes strain richness and strain composition at - the same time, and the authors state that those contributions cannot be - disentangled under the tested conditions. + rationale: 'The study''s SynCom series changes strain richness and strain composition at the same time, and the + authors state that those contributions cannot be disentangled under the tested conditions. + + ' posed_by: codex posed_date: '2026-09-22' +- discussion_id: sc7_assay_separation_and_function + prompt: Which SC-7 functions mediate host growth and compartment-specific community changes? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#SC-7 high-complexity lupin response + - ecological_interactions#SC-7-associated host transcriptional reprogramming + - ecological_interactions#Complex SynCom root and rhizosphere reshaping + rationale: 'Preserve all three observations and zero arrows. FlowPot root transcriptomics, gnotobiotic strain + profiles and non-sterile CAS-soil relative microbiota are different endpoints. Co-occurrence hubs, no agar inhibition + zones and gene annotations do not demonstrate facilitation, coexistence, nitrogen-fixation flux or a growth + mediator. Main Table1 verifies twelve input strain codes, not dominance or genome/culture identity; two Streptomyces + strains share a genus CURIE and must retain distinct preferred names. The existing richness-versus-membership + gap stays open. Main text has conflicting PERMANOVA wording/p-value and six-week incubation/eight-week harvest + wording; no reanalysis or supplement/raw-data audit was performed. #1564 tracks these and missing-host/role + metadata.' + posed_by: codex + posed_date: '2026-10-06' metals_present: [] rare_earth_elements_present: [] metal_relevance: NOT_APPLICABLE @@ -508,9 +680,15 @@ curation_history: - timestamp: '2026-09-22T23:10:24Z' curator: codex action: ADD_COMMUNITY_RECORD - changes: > - Added CommunityMech:000427 for the twelve-strain Lupinus SC-7 rhizosphere - SynCom from PMID:42602126 / doi:10.3389/fpls.2026.1891479, including - genus-level member curation, FlowPot and non-sterile soil inoculation + changes: 'Added CommunityMech:000427 for the twelve-strain Lupinus SC-7 rhizosphere SynCom from PMID:42602126 + / doi:10.3389/fpls.2026.1891479, including genus-level member curation, FlowPot and non-sterile soil inoculation conditions, NCBI BioProject links, and scoped plant-response interactions. + + ' + llm_assisted: true +- timestamp: '2026-10-06T22:23:16Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Scope SC-7 growth, transcription and assembly observations to the tested assays and input roster. Issue + #1562; reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml' llm_assisted: true diff --git a/kb/communities/MAMC_M48_Lignocellulose.yaml b/kb/communities/MAMC_M48_Lignocellulose.yaml index 81f55ca19..c1f6e7ae7 100644 --- a/kb/communities/MAMC_M48_Lignocellulose.yaml +++ b/kb/communities/MAMC_M48_Lignocellulose.yaml @@ -135,127 +135,71 @@ taxonomy: Chryseobacterium taiwanense, and Brevundimonas sp. was found to be the most effective degrading synthetic community. ecological_interactions: -- name: Sugarcane Lignocellulose Enrichment - description: > - Soil bacteria were enriched on sugarcane lignocellulose, dereplicated and phenotyped to yield - 18 degraders spanning four metabolic functional groups for downstream MAMC construction. +- name: MAMC-M48 Lignocellulose Degradation + description: MAMC-M48, containing study isolate IDs 13, 18, 25, 29 and 68, was the best-performing five-member + mixture in the tested 65-mixture screen. At 96 hours, calibrated FTIR estimates were 43.01% lignin, 39.65% cellulose + and 69.18% hemicellulose change, averaging 50.6%, rather than 50.6% for each fraction. These are fraction-composition + estimates, not direct gravimetric mass loss, carbon mineralization or partner-resolved catalytic flux. HYPOTHESIZED + - complementary substrate use could contribute, but niche partitioning and directed exchanges were not established. + Canonical participants retain source-reported 16S identification labels; their strain-like suffixes are not + independently verified culture-strain identities. Enrichment and reductive screening describe selection procedures, + not ecological interactions. scope: COMMUNITY_LEVEL - interaction_type: NICHE_PARTITIONING metabolites: - preferred_term: cellulose term: id: CHEBI:18246 label: (1->4)-beta-D-glucan + notes: Lignocellulosic substrate context; calibrated FTIR fraction estimates do not identify the individual + partner or enzyme responsible. - preferred_term: xylan term: id: CHEBI:37166 label: xylan + notes: Lignocellulosic substrate context; calibrated FTIR fraction estimates do not identify the individual + partner or enzyme responsible. - preferred_term: lignin term: id: CHEBI:6457 label: lignin - biological_processes: - - preferred_term: cellulose catabolic process - term: - id: GO:0030245 - label: cellulose catabolic process - - preferred_term: xylan catabolic process - term: - id: GO:0045493 - label: xylan catabolic process + notes: Lignocellulosic substrate context; calibrated FTIR fraction estimates do not identify the individual + partner or enzyme responsible. evidence: - reference: PMID:29392382 supports: SUPPORT evidence_source: IN_VITRO - snippet: Following an enrichment of soil bacteria capable of degrading lignocellulose material - from sugarcane origin, we applied a reductive-screening approach based on molecular - phenotyping, identification, and metabolic characterization to obtain a selection - of 18 lignocellulose-degrading strains representing four metabolic functional groups. - explanation: > - Defines the enriched strain pool and metabolic grouping that preceded five-member MAMC - assembly. -- name: Functional-Group Reductive MAMC Screening - description: > - Sixty-five five-species synthetic communities were assembled from the 18 enriched strains while - varying the number of metabolic functional groups, metabolic potential, and degradation - capacity. - scope: COMMUNITY_LEVEL - interaction_type: NICHE_PARTITIONING - metabolites: - - preferred_term: lignocellulose - term: - id: CHEBI:180683 - label: lignocellulose - biological_processes: - - preferred_term: cellulose catabolic process - term: - id: GO:0030245 - label: cellulose catabolic process - - preferred_term: interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: + snippet: A consortium containing Stenotrophomonas maltophilia, Paenibacillus sp., Microbacterium sp., Chryseobacterium + taiwanense, and Brevundimonas sp. was found to be the most effective degrading synthetic community. + explanation: Supports the selected five-member mixture and its performance; primary Table3 provides FTIR-based + fraction estimates, not a partner mechanism or direct dry-mass loss. - reference: PMID:29392382 supports: SUPPORT evidence_source: IN_VITRO - snippet: We then generated 65 compositional replicates of MAMC containing five species each, - which vary in the number of functional groups, metabolic potential, and degradation - capacity. - explanation: > - Shows that the five-member consortia were systematically assembled and screened across - functional-group combinations. -- name: MAMC-M48 Lignocellulose Degradation - description: > - The Stenotrophomonas, Paenibacillus, Microbacterium, Chryseobacterium, and Brevundimonas - MAMC-M48 consortium was selected as the strongest five-member degrader, while the specific - partner interaction routes remain unresolved by this screen. - scope: COMMUNITY_LEVEL - interaction_type: NICHE_PARTITIONING - metabolites: - - preferred_term: cellulose - term: - id: CHEBI:18246 - label: (1->4)-beta-D-glucan - - preferred_term: xylan + snippet: Further work would be needed to understand the interactive relationship and metabolic pathways of these + consortium partners. + explanation: Explicitly leaves partner interaction routes and metabolic pathways unresolved; no niche-partitioning + type or directed transfer is inferred. + participating_taxa: + - preferred_term: Stenotrophomonas maltophilia JN40 term: - id: CHEBI:37166 - label: xylan - - preferred_term: lignin + id: NCBITaxon:40324 + label: Stenotrophomonas maltophilia + - preferred_term: Paenibacillus sp. PALXIL05 term: - id: CHEBI:6457 - label: lignin - biological_processes: - - preferred_term: cellulose catabolic process + id: NCBITaxon:375486 + label: Paenibacillus sp. PALXIL05 + - preferred_term: Microbacterium sp. UYFA68 term: - id: GO:0030245 - label: cellulose catabolic process - - preferred_term: xylan catabolic process + id: NCBITaxon:1605331 + label: Microbacterium sp. UYFA68 + - preferred_term: Chryseobacterium taiwanense DUCC3723 term: - id: GO:0045493 - label: xylan catabolic process - - preferred_term: interspecies interaction between organisms + id: NCBITaxon:363331 + label: Chryseobacterium taiwanense + - preferred_term: Brevundimonas sp. R3 term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - evidence: - - reference: PMID:29392382 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: A consortium containing Stenotrophomonas maltophilia, Paenibacillus sp., Microbacterium sp., - Chryseobacterium taiwanense, and Brevundimonas sp. was found to be the most effective degrading - synthetic community. - explanation: > - Names the five genera in MAMC-M48 and reports that this composition was the most effective - degrading synthetic community in the reductive screen. - - reference: PMID:29392382 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: Further work would be needed to understand the interactive relationship and metabolic - pathways of these consortium partners. - explanation: > - Keeps the graph at community level because the source identifies the winning consortium but - does not resolve pairwise cross-feeding or syntrophic routes among its members. + id: NCBITaxon:1501972 + label: Brevundimonas sp. R3 environmental_factors: - name: Substrate value: sugarcane waste @@ -487,9 +431,31 @@ curation_history: - timestamp: '2026-10-02T05:57:41Z' curator: codex action: PRUNE_CAUSAL_GRAPH_WORKFLOW_EDGES - changes: > - Removed two downstream edges that linked sugarcane-degrader enrichment to - reductive five-member MAMC screening and linked that screen to the curated - MAMC-M48 degradation phenotype as study workflow rather than community - causal structure. + changes: 'Removed two downstream edges that linked sugarcane-degrader enrichment to reductive five-member MAMC + screening and linked that screen to the curated MAMC-M48 degradation phenotype as study workflow rather than + community causal structure. + + ' + llm_assisted: true +- timestamp: '2026-10-06T22:23:17Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Remove MAMC procedure nodes and bound the retained M48 FTIR endpoint. Issue #1563; reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml' llm_assisted: true +discussions: +- discussion_id: mamc_m48_fraction_endpoints_and_partner_roles + prompt: Which M48 partner activities account for the observed fraction changes? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#MAMC-M48 Lignocellulose Degradation + rationale: 'Retain the M48 endpoint and zero arrows; remove two procedure nodes without restoring previously removed + workflow arrows. Metabolic functional groups and isolate secretome assays guide selection but do not prove division + of labor in M48. The50.6% value is a mean of three FTIR-derived fraction-change estimates, not50.6% each or + gravimetric carbon loss. Table2 identification strings are 16S-based labels; exact isolate-to-culture/genome + identity needs reconciliation. Main text and Tables2/3 read, not image-only Table1 cells, original figure pixels, + supplementary files or raw measurements. #1564 separately tracks canonical labels, inoculum metadata and non-graph + endpoint wording; approximately3e4 cells/mL per strain refers to the eighteen-strain control, not all five-member + consortia.' + 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 500867fab..107a72442 100644 --- a/reports/causal_graph_review/README.md +++ b/reports/causal_graph_review/README.md @@ -5,6 +5,29 @@ 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`. +## Batch64: Regolith, Lupin And MAMC Assay Boundaries + +[Decisions](decisions/20261006-assay-boundaries-batch64.yaml), +[validation](validation-20261006-batch64.json) and +[self-adversarial review](adversarial-review-20261006-batch64.yaml) account for +all nine original nodes and two arrows. Seven observations remain; two MAMC +procedure nodes and two Nicotiana mediation arrows are removed. + +Nicotiana retains phosphorus mobilization and time-dependent plant responses, +including the adverse early response without pretreatment. Biofilms, named acids +and exclusive phosphorus mediation remain untested. Lupin growth, FlowPot RNA-seq +and CAS-soil relative profiles are kept distinct. MAMC's 50.6% mean of three +FTIR-derived fraction estimates is not loss of 50.6% of each fraction or dry mass. + +Three complete fresh primary bodies, embedded tables and the complete 2026 +Nicotiana figure-label correction were read. MAMC's image-only Table 1 cells, +original figure pixels, separate supplements and raw data were not audited. +All 920 caches remain unchanged; nine graph excerpts match fresh primary text. +Canonical taxonomy and non-graph blocks remain unchanged, not recertified. +Metadata, missing hosts, strain identities and source inconsistencies stay open +under #1564. Repairs #1561-#1563 await protected-main merge. No new causal +structure or Edison submission; this is self-review, not independent approval. + ## Batch63: Coculture And Living-Host Assay Boundaries [Decisions](decisions/20261006-coculture-hosts-batch63.yaml), diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch64.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch64.yaml new file mode 100644 index 000000000..7e68f019c --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch64.yaml @@ -0,0 +1,190 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: ba082c3e8c3f34f78e3f9dc32b35f57cc303bc7f +scope: +- kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml +- kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml +- kb/communities/MAMC_M48_Lignocellulose.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch64.json +findings: +- issue: 1561 + severity: P2 + status: addressed_in_this_change + finding: Nicotiana assay identity and unsupported attachment/phosphorus mediation. + disposition: Close only after protected-main merge. +- issue: 1562 + severity: P2 + status: addressed_in_this_change + finding: Lupinus assay, expression and relative-profile scope with explicit input roster. + disposition: Close only after protected-main merge. +- issue: 1563 + severity: P2 + status: addressed_in_this_change + finding: MAMC procedure nodes, mechanism labels and unbounded fraction endpoint. + disposition: Close only after protected-main merge. +- issue: 1564 + severity: P2 + status: unresolved_non_graph + finding: Host/strain/role metadata, inoculum and medium phases, non-graph mechanisms and primary-source + reporting inconsistencies. + disposition: Keep OPEN after graph repair merge. +adversarial_checks: +- Read all three whole records and account for9 original nodes and2 arrows. Three complete fresh primary + main bodies and complete Nicotiana2026 correction read; embedded text tables inspected. MAMC image-only + Table1 cells, original figure pixels, separate supplements and raw data were not audited. Numerical + endpoints are author-reported, not independently recomputed. +- 'Nicotiana: separate five individual-strain flask treatments from the three-strain1:1:1 plant inoculum. + Attached microbial biomass phosphorus is an operational pool, not direct biofilm imaging. Its regression + with inferred dissociation and pH correlation do not selectively prove attachment or named-acid mediation. + Retain these hypotheses in prose, not asserted arrows or GO biofilm activity.' +- 'Nicotiana: preserve increased phosphorus endpoints for three effective strains and limited activity + of two comparators. Total available phosphorus pools include dissolved, biomass and adsorbed fractions + and are not all freely dissolved inorganic phosphate. Remove unmeasured oxalate/citrate and CROSS_FEEDING + assertions while retaining phosphate context.' +- 'Nicotiana: retain the18-day conditioning benefit, percentages of control rather than percent increases, + and adverse day6 seedling response without pretreatment. Controls were not pre-cultured and MS supplied + phosphorus from day6. Correct living-host evidence; these outcomes do not isolate exclusive phosphorus + mediation or lunar-environment performance. The2026 correction only fixes particle-size labels.' +- 'Lupin: preserve positive SC7 growth in both systems and existing richness-versus-membership confounding. + Main Table1 confirms twelve input strain codes; keep both Streptomyces strain names despite their shared + genus CURIE. Input membership is not dominance, equal harvest abundance, complete host/background membership + or independently verified genome identity.' +- 'Lupin: distinguish FlowPot root RNA-seq from non-sterile CAS-soil microbiome measurements. Expression/enrichment, + leghemoglobin and genomic annotations are not hormone secretion, nitrogen-fixation rate or a demonstrated + growth mediator. No transcription-to-growth or assembly-to-growth arrow is introduced.' +- 'Lupin: relative genus profiles are not absolute exclusion or exact inoculant persistence. In-silico + ASV removal is not a biological knockout. Disclose conflicting PERMANOVA wording/p=.001 and preserve + observational conclusions without certifying blanket significance. Source timing contradiction and missing-host/dominance + metadata remain under1564.' +- 'MAMC: remove enrichment and reductive screening nodes as procedures; preserve earlier workflow-arrow + deletion. Retain M48 study isolate IDs13/18/25/29/68 and its positive performance. FTIR estimates43.01/39.65/69.18% + average50.6%, not50.6% each, gravimetric mass loss, mineralization or partner-resolved flux.' +- 'MAMC: metabolic functional groups and isolate secretome assays do not establish niche partitioning, + directed exchange or division of labor in M48. Keep source-reported16S identification labels with identity + caveats; canonical labels are not independently certified culture-strain equivalents. Approximately3e4 + cells/mL per strain is stated for the18-strain control; separate non-graph metadata repair stays open.' +- Review full biological diff and eight focused tests.457 other records,920 caches and raw non-graph blocks + unchanged. Canonical taxonomy preserved, not recertified.46 baseline network warnings retained exactly + with zero structural defects or auditor-rule changes. Coarse roster/scope census unchanged and does + not resolve missing hosts or strain identity. +- Actual schema, strict, terms, references, snippets, histories, corpus audit, deterministic render and + regression outputs captured. Exact descriptions parsed across456 pages, not browser screenshots. Post-commit + docs-current remains a separate publication gate. +- Deduplication covered857 all-state issue titles/bodies with no exact matches and21 scoped ignored/hidden + local files. Existing Lupinus review and MAMC workflow history read, not every PR/comment/local match.1561-1563 + addressed but OPEN until protected-main merge;1564 remains OPEN afterward. Exact-head self-review is + COMMENT, not independent approval. No new graph structure or paid Edison submission. +verification: + combined_regressions: 587 passed in 201.44s (0:03:21) + new_regression_tests: 8 + schema_strict_terms_history: Passed with actual outputs/digests + references: CLI Total checks counts reported issues, not executed checks. MATCH is not scientific entailment + or certification of historical provenance. All920 caches unchanged;9 graph excerpts independently + match fresh primary text.1564 and existing476/1091/1095 limitations remain unresolved; graph repairs + do not recertify non-graph blocks. + snippet_counts_by_record: + kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml: + MATCH: 22 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml: + MATCH: 28 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/MAMC_M48_Lignocellulose.yaml: + MATCH: 17 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + primary_graph_snippet_proof: + primary_matched_graph_snippets: 9 + primary_main_bodies: 3 + complete_correction_texts: 1 + paid_submissions: 0 + new_nodes_or_arrows: 0 + separate_supplements_inspected: false + mamc_image_only_table1_cells_inspected: false + network: + existing_findings_preserved: 46 + added_findings: {} + removed_findings: {} + interpretation: All46 baseline network findings preserved exactly; no auditor-rule changes or invented + links. Explicit participant lists identify tested panels/inoculants, not missing hosts or background + communities. + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml: c1ee5014ea7d83ad47d2a03e7392fb2e5f86722f7d29f90b1b132f41804982b4 + tests/test_causal_review_batch64.py: 4a864fd15d4cb6988952b8f1a31364989276e99280b2225a06c88e051f847b70 + tests/test_participating_taxa.py: 01e176fc992824021f3e48108ee225f94a5e3c2cf56e97d4468fa3cced4adbd0 + kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml: 880e7a2f3269d73be3a9cdd38f7433934afbdf47ad3a04cc6820982256b3ce89 + kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml: 59a83e4d0b1defdc5f3bae63bccb38caa87fa9fd90a6c115e5be6f518998f6ff + kb/communities/MAMC_M48_Lignocellulose.yaml: d877e443187162745cbfa2adba246854e6b2667793da22f8837fd64d08925176 + reports/causal_graph_review/README.md: a61930eb6b303a69168837c7cf82a476707ffc92d9748429fdbfbe8ce3163e7a + unchanged_caches: 920 + edison: + required_for_this_repair: false + provider_submissions: 0 + credits_spent: 0 + reason: Existing-node/arrow repairs 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: Canonical roster/scope census unchanged. Explicit participants separate the five-strain + Nicotiana test panel from its three-strain plant inoculum and preserve two distinct Lupinus Streptomyces + strain names. This coarse census does not resolve missing hosts, strain identity or background community + membership. +corpus: + records: 460 + nodes: 1452 + edges: 639 + review_status_counts: + needs_research: 21 + pending: 233 + reviewed: 206 +limitations: +- All9 original nodes and2 arrows reviewed;7 outcome/observation nodes retained,2 procedure nodes and2 + unsupported mediation arrows removed. No new causal structure or Edison submission. +- 'Three complete fresh primary main bodies and complete Nicotiana2026 correction read, with embedded + tables. MAMC Table1 is an image: only its caption read. No original figure pixels, separate supplements + or raw data audited; numerical summaries are author-reported, not independently recomputed.' +- Nicotiana correction PMID:42304108 fixes Fig1 particle-size labels only. Five individual-strain flasks, + three-strain plant mixture, time-dependent benefits/adverse early response, unconditioned controls and + later MS phosphorus supplementation remain distinct. Biofilm/acid/exclusive-P mediators remain hypotheses. +- Lupin input roster follows main Table1, preserving two distinct Streptomyces strains. FlowPot RNA-seq + is not CAS-soil transcriptomics or biochemical flux. Richness/composition confounding and statistical/timing + wording inconsistencies remain unresolved. +- MAMC FTIR fraction estimates and their mean are not dry-mass loss, individual partner flux or measured + division of labor. Source-reported strain-like16S labels are preserved, not recertified culture/genome + identities. +- Canonical taxonomy and raw non-graph blocks preserved, not recertified. Issue1564 remains OPEN for metadata, + host/role/strain identities and source inconsistencies. +- All920 caches unchanged. Retained graph excerpts match fresh primary text without certifying historical + full-cache or non-graph provenance. Public OA XML was used without bypassing publisher access restrictions. +- Deduplication covered857 all-state issue titles/bodies with no exact matches and21 scoped ignored/hidden + local files. Existing Lupinus review and MAMC workflow history read, not every PR/comment/local match. + Self-adversarial review is not independent approval; repair issues remain OPEN until protected-main + merge. diff --git a/reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml b/reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml new file mode 100644 index 000000000..1c20c5fd2 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml @@ -0,0 +1,217 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: ba082c3e8c3f34f78e3f9dc32b35f57cc303bc7f +baseline_commit: ba082c3e8c3f34f78e3f9dc32b35f57cc303bc7f +base_tree: dd17ec3ede912a585403b33770ce6384ec2bb295 +pre_source_baseline_sha256: f431bba44c0751b74884be1f75895b81ef84d434af48839db008c39b2c9b7d45 +issues: +- 1561 +- 1562 +- 1563 +unresolved_non_graph_issues: +- 1564 +unresolved_research_issues: [] +issue_deduplication: + all_state_issue_titles_and_bodies: 857 + ignored_hidden_local_search: true + matching_local_files: 21 + matching_issues: [] +reference_cache_original_hashes: + references_cache/PMID_37945659.md: 9dbe89e88959cc16f71502d869dd3b8b750f72939009500167fa724c334b608e + references_cache/PMID_42602126.txt: c37d35419d8479f813eeefd9539b3774999064492d90ea152126a7224a9ade70 + references_cache/PMID_29392382.txt: 8736c0e90379f8107894af1188a6899af6f994b8a16dce65569917d7fc20c6e5 +primary_artifacts: + /private/tmp/communitymech-batch64/nicotiana-primary.xml: b0e29caab42b70eafcea35174b987581223d6592195fb209a311d6002cf6d120 + /private/tmp/communitymech-batch64/nicotiana-primary.txt: 3aea6870c9fca9b5021b2ba885ba899559289611f50c362ea74daa4439fe7b5b + /private/tmp/communitymech-batch64/nicotiana-tables.txt: c2f3d53ce320679ab571bc2770a09cdc2e0aa5dd1d5f8a358ca0fee4a9a826c1 + /private/tmp/communitymech-batch64/lupin-primary.xml: b3de8ac7353f008d8a6c255be0a50c993896e2e666a9607d1bc69b2130681a20 + /private/tmp/communitymech-batch64/lupin-primary.txt: f2b8d661573ce3b2a9e88c48ad88181199ccff7a5a952d2a8bcaac535826236f + /private/tmp/communitymech-batch64/lupin-tables.txt: 881e10b07a321a12ef30b406af1fe25d70f2bcef33e29d6dc613d4497f9591cc + /private/tmp/communitymech-batch64/mamc-primary.xml: c3924a1a9c2d6e516f24530c97c11f8298ddb83953bdd95774e7cd6ccb79c982 + /private/tmp/communitymech-batch64/mamc-primary.txt: 4824e382532cab0a329ed32489d3a7f75959c6e133ea7566b106115db7125a9f + /private/tmp/communitymech-batch64/mamc-tables.txt: 9e0d2b7f7c8b132c0dc141728a0f767bf6bcd8a5b12f4143d5ff81f4315758c1 + /private/tmp/communitymech-batch64/nicotiana-correction-primary.xml: 61d37d0dfcb7b6db8a8324be80d062b69a81a66fe19f074d3e451e29bc80e0ed + /private/tmp/communitymech-batch64/nicotiana-correction-primary.txt: ff255ecfd9a827224a3dd8e16b17a4692197731117382f0f4905b8a9f91e90c9 + /private/tmp/communitymech-batch64/nicotiana-correction-tables.txt: 01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b +primary_urls: +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC10636133/fullTextXML +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC13473416/fullTextXML +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6061470/fullTextXML +- https://www.ebi.ac.uk/europepmc/webservices/rest/PMC13273066/fullTextXML +primary_graph_snippet_count: 9 +edison: + required_for_this_repair: false + provider_submissions: 0 + credits_spent: 0 + reason: Existing-node/arrow repairs only; no new causal structure. +limitations: +- All9 original nodes and2 arrows reviewed;7 outcome/observation nodes retained,2 procedure nodes and2 unsupported + mediation arrows removed. No new causal structure or Edison submission. +- 'Three complete fresh primary main bodies and complete Nicotiana2026 correction read, with embedded tables. MAMC + Table1 is an image: only its caption read. No original figure pixels, separate supplements or raw data audited; + numerical summaries are author-reported, not independently recomputed.' +- Nicotiana correction PMID:42304108 fixes Fig1 particle-size labels only. Five individual-strain flasks, three-strain + plant mixture, time-dependent benefits/adverse early response, unconditioned controls and later MS phosphorus + supplementation remain distinct. Biofilm/acid/exclusive-P mediators remain hypotheses. +- Lupin input roster follows main Table1, preserving two distinct Streptomyces strains. FlowPot RNA-seq is not CAS-soil + transcriptomics or biochemical flux. Richness/composition confounding and statistical/timing wording inconsistencies + remain unresolved. +- MAMC FTIR fraction estimates and their mean are not dry-mass loss, individual partner flux or measured division + of labor. Source-reported strain-like16S labels are preserved, not recertified culture/genome identities. +- Canonical taxonomy and raw non-graph blocks preserved, not recertified. Issue1564 remains OPEN for metadata, host/role/strain + identities and source inconsistencies. +- All920 caches unchanged. Retained graph excerpts match fresh primary text without certifying historical full-cache + or non-graph provenance. Public OA XML was used without bypassing publisher access restrictions. +- Deduplication covered857 all-state issue titles/bodies with no exact matches and21 scoped ignored/hidden local + files. Existing Lupinus review and MAMC workflow history read, not every PR/comment/local match. Self-adversarial + review is not independent approval; repair issues remain OPEN until protected-main merge. +records: +- path: kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml + id: CommunityMech:000306 + original_sha256: 358a9e93ceefb177f75d8058dd96407eacd401acfe89ecc2b1e640b5f9438d42 + record_sha256: 880e7a2f3269d73be3a9cdd38f7433934afbdf47ad3a04cc6820982256b3ce89 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml + scope: Whole record and every original node/arrow. + summary: Separate regolith attachment, phosphorus and living-host outcomes from proposed mediation. + renamed_nodes: + PSB attachment to regolith particles concentrates phosphate dissolution: PSB Particle-Associated Biomass Phosphorus + Phosphorus solubilization from lunar regolith simulant via organic-acid secretion: PSB Phosphorus Mobilization + In Regolith Simulant + Phosphorus-enabled promotion of Nicotiana benthamiana growth: Nicotiana Response To PSB-Conditioned Regolith + Simulant + node_decisions: + - node: PSB Particle-Associated Biomass Phosphorus + rationale: Retain measured attachment-associated phosphorus pools without demonstrated biofilm mediation. + - node: PSB Phosphorus Mobilization In Regolith Simulant + rationale: Retain phosphorus mobilization while separating individual-strain evidence from cross-feeding and + named-acid claims. + - node: Nicotiana Response To PSB-Conditioned Regolith Simulant + rationale: Retain time-dependent living-host benefits and adverse early outcome without exclusive phosphorus + mediation. + removed_node_decisions: [] + edges_before: + - source: PSB attachment to regolith particles concentrates phosphate dissolution + target: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion + description: Particle attachment forms a stable bacteria-mineral interface that supports local proton and organic-acid + attack on insoluble phosphate minerals in the regolith simulant. + - source: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion + target: Phosphorus-enabled promotion of Nicotiana benthamiana growth + description: Organic-acid phosphate solubilization raises the available phosphorus pool in the regolith simulant + that drives the downstream Nicotiana growth response. + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: + - source: PSB attachment to regolith particles concentrates phosphate dissolution + target: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion + rationale: Regression or co-measured phosphorus and plant outcomes do not selectively establish attachment or + phosphorus mediation. + - source: Phosphorus solubilization from lunar regolith simulant via organic-acid secretion + target: Phosphorus-enabled promotion of Nicotiana benthamiana growth + rationale: Regression or co-measured phosphorus and plant outcomes do not selectively establish attachment or + phosphorus mediation. + references: + - PMID:37945659 + issues: + - 1561 + - 1564 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml + source_review: + PMID:37945659: + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC10636133/fullTextXML + scope: Complete primary XML main body, abstract, embedded table text and captions; original figure pixels, + separate supplements and raw data require separate inspection. + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false +- path: kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml + id: CommunityMech:000427 + original_sha256: fc766f0e946fdb45923e41b662ea83f385c6f6f2f6e1b65048c7b3bbd75dc25d + record_sha256: 59a83e4d0b1defdc5f3bae63bccb38caa87fa9fd90a6c115e5be6f518998f6ff + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml + scope: Whole record and every original node/arrow. + summary: Scope SC-7 growth, transcription and assembly observations to the tested assays and input roster. + renamed_nodes: {} + node_decisions: + - node: SC-7 high-complexity lupin response + rationale: Retain positive growth with richness/composition confounding and input-roster limits. + - node: SC-7-associated host transcriptional reprogramming + rationale: Retain FlowPot transcriptional responses without measured biochemical activity or mediation. + - node: Complex SynCom root and rhizosphere reshaping + rationale: Scope microbiome reshaping to CAS-soil relative profiles and disclose inconsistent statistical wording. + removed_node_decisions: [] + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:42602126 + issues: + - 1562 + - 1564 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml + source_review: + PMID:42602126: + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC13473416/fullTextXML + scope: Complete primary XML main body, abstract, embedded table text and captions; original figure pixels, + separate supplements and raw data require separate inspection. + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false +- path: kb/communities/MAMC_M48_Lignocellulose.yaml + id: CommunityMech:000041 + original_sha256: 735478651e62d2c25435aecbb15f2a78a11eb11669452fd35a1203ee3264cfc0 + record_sha256: d877e443187162745cbfa2adba246854e6b2667793da22f8837fd64d08925176 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml + scope: Whole record and every original node/arrow. + summary: Remove MAMC procedure nodes and bound the retained M48 FTIR endpoint. + renamed_nodes: {} + node_decisions: + - node: MAMC-M48 Lignocellulose Degradation + rationale: Retain measured mixture performance with FTIR, mean-value and unresolved-partner limits. + removed_node_decisions: + - node: Sugarcane Lignocellulose Enrichment + rationale: Laboratory enrichment or mixture-construction/screening procedure, not a biological niche-partitioning + interaction. + - node: Functional-Group Reductive MAMC Screening + rationale: Laboratory enrichment or mixture-construction/screening procedure, not a biological niche-partitioning + interaction. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:29392382 + issues: + - 1563 + - 1564 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml + source_review: + PMID:29392382: + url: https://www.ebi.ac.uk/europepmc/webservices/rest/PMC6061470/fullTextXML + scope: Complete primary XML main body, abstract, embedded table text and captions; original figure pixels, + separate supplements and raw data require separate inspection. + all_retained_graph_snippets_primary_matched: true + cache_provenance_certified: false diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 85622dfa0..e6cbf029d 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -223,9 +223,9 @@ kb/communities/Legume_Rhizobia_Mars_Simulant_Symbiosis.yaml CommunityMech:000311 kb/communities/Leptolyngbya_Pseudomonas_Mangrove_Coculture.yaml CommunityMech:000452 de38e85b39857ca2d12ebc0bd2e00381497e2237a05bc3b57c054308b37551a7 2 0 57.5 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed kb/communities/Lotus_LjSC3.yaml CommunityMech:000040 317b96ee5acec4d086af63b9862dc613ca0d2ccfc325eae037b14eea0db5d011 3 0 60.5 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed kb/communities/Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml CommunityMech:000304 f15a9d74bf4cdf521541790fed47c158980424e9a616152545370ccb93ca7000 3 0 65.0 reports/causal_graph_review/decisions/20261006-coculture-hosts-batch63.yaml reviewed -kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml CommunityMech:000306 358a9e93ceefb177f75d8058dd96407eacd401acfe89ecc2b1e640b5f9438d42 3 2 100.0 pending -kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml CommunityMech:000427 fc766f0e946fdb45923e41b662ea83f385c6f6f2f6e1b65048c7b3bbd75dc25d 3 0 60.0 pending -kb/communities/MAMC_M48_Lignocellulose.yaml CommunityMech:000041 735478651e62d2c25435aecbb15f2a78a11eb11669452fd35a1203ee3264cfc0 3 0 75.0 pending +kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml CommunityMech:000306 880e7a2f3269d73be3a9cdd38f7433934afbdf47ad3a04cc6820982256b3ce89 3 0 63.3 reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml reviewed +kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml CommunityMech:000427 59a83e4d0b1defdc5f3bae63bccb38caa87fa9fd90a6c115e5be6f518998f6ff 3 0 60.0 reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml reviewed +kb/communities/MAMC_M48_Lignocellulose.yaml CommunityMech:000041 d877e443187162745cbfa2adba246854e6b2667793da22f8837fd64d08925176 1 0 55.0 reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml reviewed kb/communities/MSC1_Dominant_Core.yaml CommunityMech:000042 2bbdd3d11235534673733b5a35aac95a3b723e0495e20b91b8e6709dac2c0590 3 0 75.0 pending kb/communities/MSC2_Model_Soil_Consortium.yaml CommunityMech:000086 b0db48390b7ed1517baf0ebf3bad414629e283dbb43406dd730223c619cb5a9a 3 2 100.0 pending kb/communities/MUC2_Human_Gut_Commensal_Defined_Consortium.yaml CommunityMech:000351 733a7112c11721d7004858c4a3ccbc986b31bda36bfc7e2714e3691c8222c6e0 2 1 85.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 78ae7e0c5..a3ff85906 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": 1454, - "edges": 641, + "nodes": 1452, + "edges": 639, "records_without_nodes": 8, - "records_without_edges": 160, + "records_without_edges": 161, "review_status_counts": { "needs_research": 21, - "pending": 236, - "reviewed": 203 + "pending": 233, + "reviewed": 206 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261006-batch64.json b/reports/causal_graph_review/validation-20261006-batch64.json new file mode 100644 index 000000000..2b6363a06 --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch64.json @@ -0,0 +1,832 @@ +{ + "base_commit": "ba082c3e8c3f34f78e3f9dc32b35f57cc303bc7f", + "scope": [ + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml", + "kb/communities/MAMC_M48_Lignocellulose.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-strict.tsv", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-strict.log", + "log_sha256": "5f77c5faae14baf65752d137bd06a6f311088915f0f21b3800420ca568f0243c", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch64/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-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-strict.tsv\n" + }, + { + "check": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-references.log", + "log_sha256": "5b593c0962add4e8a5c887d7ad2eab791ed6c8cb82ea8c4b50fc4ae3b7564568", + "output_tail": "Validating kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.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/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.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": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-snippets.log", + "log_sha256": "96a23c88588d68e990af5d62f9c27df12879566b4125e7703a275c3bfa7adcd7", + "output_tail": "# 22 evidence snippets scanned across 1 files\n MATCH 22\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": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-rank.log", + "log_sha256": "b4cdc41ac742625e7f1fc62f3b6dd602cb4423600342e69566e1fe3cd80ece21", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000306\",\n \"name\": \"Lunar Regolith Simulant Phosphorus-Solubilizing Bacteria for Nicotiana benthamiana\",\n \"score\": 63.3,\n \"taxonomy\": 5,\n \"connected_taxa\": 5,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml\"\n }\n]\n" + }, + { + "check": "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana/2026-10-06T222317Z-codex-545fd8.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_SynCom-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_SynCom-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-strict.tsv", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-strict.log", + "log_sha256": "ba2945d23bf49282c13b821d8dca8b1140d46fede340552f95727163192fbac2", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch64/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-batch64/Lupinus_SC7_Rhizosphere_SynCom-strict.tsv\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_SynCom-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_SynCom-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-references.log", + "log_sha256": "d286a78988ab8bc0752823a1d56350b58d8401315e3bec7394f53cb684566544", + "output_tail": "Validating kb/communities/Lupinus_SC7_Rhizosphere_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/Lupinus_SC7_Rhizosphere_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": "Lupinus_SC7_Rhizosphere_SynCom-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-snippets.log", + "log_sha256": "d353a2e438e49543043d94dbd2d275ccc825dad7bb23be8ad43bf853927d2fe3", + "output_tail": "# 28 evidence snippets scanned across 1 files\n MATCH 28\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_SynCom-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-rank.log", + "log_sha256": "aa9039d4272f623cced16a9f52ea89763d7ed05e118335f7b6833b57c0930722", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000427\",\n \"name\": \"Lupinus SC-7 Rhizosphere SynCom\",\n \"score\": 60.0,\n \"taxonomy\": 12,\n \"connected_taxa\": 12,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml\"\n }\n]\n" + }, + { + "check": "Lupinus_SC7_Rhizosphere_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/Lupinus_SC7_Rhizosphere_SynCom/2026-10-06T222317Z-codex-eeec4c.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/Lupinus_SC7_Rhizosphere_SynCom-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "MAMC_M48_Lignocellulose-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/MAMC_M48_Lignocellulose.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "MAMC_M48_Lignocellulose-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-strict.tsv", + "kb/communities/MAMC_M48_Lignocellulose.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-strict.log", + "log_sha256": "4bc02ddabb060300d4f7f3699aed465b2f3d00501a63bee80f744fe02cbe8ffa", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch64/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-batch64/MAMC_M48_Lignocellulose-strict.tsv\n" + }, + { + "check": "MAMC_M48_Lignocellulose-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/MAMC_M48_Lignocellulose.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "MAMC_M48_Lignocellulose-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/MAMC_M48_Lignocellulose.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-references.log", + "log_sha256": "a3896064c5f913e782611abaa13ecadb1081c6600cdb65676c3e97b5877db5fe", + "output_tail": "Validating kb/communities/MAMC_M48_Lignocellulose.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/MAMC_M48_Lignocellulose.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": "MAMC_M48_Lignocellulose-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/MAMC_M48_Lignocellulose.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-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": "MAMC_M48_Lignocellulose-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/MAMC_M48_Lignocellulose.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-rank.log", + "log_sha256": "c391d60e5482e5a974862dcb0c213ed70f2a72ab74587e5fe5de896aa08f27e2", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000041\",\n \"name\": \"MAMC-M48 Lignocellulose-Degrading Consortium\",\n \"score\": 55.0,\n \"taxonomy\": 5,\n \"connected_taxa\": 5,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 1,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 2,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/MAMC_M48_Lignocellulose.yaml\"\n }\n]\n" + }, + { + "check": "MAMC_M48_Lignocellulose-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/MAMC_M48_Lignocellulose/2026-10-06T222317Z-codex-086b3f.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/MAMC_M48_Lignocellulose-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-batch64/inventory.log", + "log_sha256": "b4d3059af2f3b565f2a18b7887ce140fc64ba2d8970a0373313a061e48767c04", + "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\": 1452,\n \"edges\": 639,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 161,\n \"review_status_counts\": {\n \"needs_research\": 21,\n \"pending\": 233,\n \"reviewed\": 206\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-batch64/network.log", + "log_sha256": "3a156d88a5b27b6a726e91303cf9249745ee46d4e53a0ac73d58779dc1041a7d", + "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-batch64/rank-all.log", + "log_sha256": "0a90127cb011de8db6ed2c44df99d1a66c0ca6642e37d071fa1654d866cc91ee", + "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-batch64/render.log", + "log_sha256": "82fd031f5e6459df0bfc4597138685bd984405b777019cc9ffbfabaa83f24356", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch64/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch64/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch64/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-batch64/render-repeat.log", + "log_sha256": "82fd031f5e6459df0bfc4597138685bd984405b777019cc9ffbfabaa83f24356", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch64/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch64/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch64/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch64/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-batch63')),('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-batch64/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_batch62.py", + "tests/test_causal_review_batch63.py", + "tests/test_causal_review_batch64.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-batch64/regressions.log", + "log_sha256": "548db4bf270442d0c6b769ff23a9f97549738242bfd5288bd844f35549fe697a", + "output_tail": "........................................................................ [ 12%]\n........................................................................ [ 24%]\n........................................................................ [ 36%]\n........................................................................ [ 49%]\n........................................................................ [ 61%]\n........................................................................ [ 73%]\n........................................................................ [ 85%]\n........................................................................ [ 98%]\n........... [100%]\n587 passed in 201.44s (0:03:21)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch64.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/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_batch64.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/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-batch64/diff-check.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-assay-boundaries-batch64.yaml').read_text())\nmanifest=json.loads(P('/private/tmp/communitymech-batch64/primary-manifest.json').read_text())\nprimary={'PMID:'+v['pmid']:''.join(P(v['extracted_body']).read_text().split()) for v in manifest.values()}\nfor path,digest in ledger['primary_artifacts'].items():\n assert hashlib.sha256(P(path).read_bytes()).hexdigest()==digest\ncount=0\nfor row in ledger['records']:\n doc=yaml.safe_load(P(row['path']).read_text())\n for node in doc['ecological_interactions']:\n for ev in node['evidence']:\n assert ''.join(ev['snippet'].split()) in primary[ev['reference']]\n count+=1\nassert count==ledger['primary_graph_snippet_count']==9\nassert ledger['edison']['provider_submissions']==ledger['edison']['credits_spent']==0\ncorrection=P(manifest['nicotiana-correction']['extracted_body']).read_text()\nassert 'labeling errors in Fig. 1a' in correction and 'now reading top-down' in correction\nprint(json.dumps({'primary_matched_graph_snippets':count,'primary_main_bodies':3,'complete_correction_texts':1,'paid_submissions':0,'new_nodes_or_arrows':0,'separate_supplements_inspected':False,'mamc_image_only_table1_cells_inspected':False}))\n" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/primary-graph-proof.log", + "log_sha256": "19222e3d55df466a09a7a88bfd7f2bb181ff4c19926089af7fb1b9d296e3107a", + "output_tail": "{\"primary_matched_graph_snippets\": 9, \"primary_main_bodies\": 3, \"complete_correction_texts\": 1, \"paid_submissions\": 0, \"new_nodes_or_arrows\": 0, \"separate_supplements_inspected\": false, \"mamc_image_only_table1_cells_inspected\": false}\n" + } + ], + "limitations": [ + "All9 original nodes and2 arrows reviewed;7 outcome/observation nodes retained,2 procedure nodes and2 unsupported mediation arrows removed. No new causal structure or Edison submission.", + "Three complete fresh primary main bodies and complete Nicotiana2026 correction read, with embedded tables. MAMC Table1 is an image: only its caption read. No original figure pixels, separate supplements or raw data audited; numerical summaries are author-reported, not independently recomputed.", + "Nicotiana correction PMID:42304108 fixes Fig1 particle-size labels only. Five individual-strain flasks, three-strain plant mixture, time-dependent benefits/adverse early response, unconditioned controls and later MS phosphorus supplementation remain distinct. Biofilm/acid/exclusive-P mediators remain hypotheses.", + "Lupin input roster follows main Table1, preserving two distinct Streptomyces strains. FlowPot RNA-seq is not CAS-soil transcriptomics or biochemical flux. Richness/composition confounding and statistical/timing wording inconsistencies remain unresolved.", + "MAMC FTIR fraction estimates and their mean are not dry-mass loss, individual partner flux or measured division of labor. Source-reported strain-like16S labels are preserved, not recertified culture/genome identities.", + "Canonical taxonomy and raw non-graph blocks preserved, not recertified. Issue1564 remains OPEN for metadata, host/role/strain identities and source inconsistencies.", + "All920 caches unchanged. Retained graph excerpts match fresh primary text without certifying historical full-cache or non-graph provenance. Public OA XML was used without bypassing publisher access restrictions.", + "Deduplication covered857 all-state issue titles/bodies with no exact matches and21 scoped ignored/hidden local files. Existing Lupinus review and MAMC workflow history read, not every PR/comment/local match. Self-adversarial review is not independent approval; repair issues remain OPEN until protected-main merge.", + "Exact HTML-description parser and repeat-render checks, not browser screenshots. Post-commit docs-current is separate." + ], + "snippet_counts_by_record": { + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml": { + "MATCH": 22, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml": { + "MATCH": 28, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/MAMC_M48_Lignocellulose.yaml": { + "MATCH": 17, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 53, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "edison": { + "required_for_this_repair": false, + "provider_submissions": 0, + "credits_spent": 0, + "reason": "Existing-node/arrow repairs only; no new causal structure." + }, + "primary_artifacts": { + "/private/tmp/communitymech-batch64/nicotiana-primary.xml": "b0e29caab42b70eafcea35174b987581223d6592195fb209a311d6002cf6d120", + "/private/tmp/communitymech-batch64/nicotiana-primary.txt": "3aea6870c9fca9b5021b2ba885ba899559289611f50c362ea74daa4439fe7b5b", + "/private/tmp/communitymech-batch64/nicotiana-tables.txt": "c2f3d53ce320679ab571bc2770a09cdc2e0aa5dd1d5f8a358ca0fee4a9a826c1", + "/private/tmp/communitymech-batch64/lupin-primary.xml": "b3de8ac7353f008d8a6c255be0a50c993896e2e666a9607d1bc69b2130681a20", + "/private/tmp/communitymech-batch64/lupin-primary.txt": "f2b8d661573ce3b2a9e88c48ad88181199ccff7a5a952d2a8bcaac535826236f", + "/private/tmp/communitymech-batch64/lupin-tables.txt": "881e10b07a321a12ef30b406af1fe25d70f2bcef33e29d6dc613d4497f9591cc", + "/private/tmp/communitymech-batch64/mamc-primary.xml": "c3924a1a9c2d6e516f24530c97c11f8298ddb83953bdd95774e7cd6ccb79c982", + "/private/tmp/communitymech-batch64/mamc-primary.txt": "4824e382532cab0a329ed32489d3a7f75959c6e133ea7566b106115db7125a9f", + "/private/tmp/communitymech-batch64/mamc-tables.txt": "9e0d2b7f7c8b132c0dc141728a0f767bf6bcd8a5b12f4143d5ff81f4315758c1", + "/private/tmp/communitymech-batch64/nicotiana-correction-primary.xml": "61d37d0dfcb7b6db8a8324be80d062b69a81a66fe19f074d3e451e29bc80e0ed", + "/private/tmp/communitymech-batch64/nicotiana-correction-primary.txt": "ff255ecfd9a827224a3dd8e16b17a4692197731117382f0f4905b8a9f91e90c9", + "/private/tmp/communitymech-batch64/nicotiana-correction-tables.txt": "01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b" + }, + "network_delta": { + "existing_findings_preserved": 46, + "added_findings": {}, + "removed_findings": {}, + "interpretation": "All46 baseline network findings preserved exactly; no auditor-rule changes or invented links. Explicit participant lists identify tested panels/inoculants, not missing hosts or background communities." + }, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1438, + "arrows": 631 + }, + "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": "Canonical roster/scope census unchanged. Explicit participants separate the five-strain Nicotiana test panel from its three-strain plant inoculum and preserve two distinct Lupinus Streptomyces strain names. This coarse census does not resolve missing hosts, strain identity or background community membership." + }, + "network_warning_count": 46, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1452, + "edges": 639, + "records_without_nodes": 8, + "records_without_edges": 161, + "review_status_counts": { + "needs_research": 21, + "pending": 233, + "reviewed": 206 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml": "c1ee5014ea7d83ad47d2a03e7392fb2e5f86722f7d29f90b1b132f41804982b4", + "tests/test_causal_review_batch64.py": "4a864fd15d4cb6988952b8f1a31364989276e99280b2225a06c88e051f847b70", + "tests/test_participating_taxa.py": "01e176fc992824021f3e48108ee225f94a5e3c2cf56e97d4468fa3cced4adbd0", + "kb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml": "880e7a2f3269d73be3a9cdd38f7433934afbdf47ad3a04cc6820982256b3ce89", + "kb/communities/Lupinus_SC7_Rhizosphere_SynCom.yaml": "59a83e4d0b1defdc5f3bae63bccb38caa87fa9fd90a6c115e5be6f518998f6ff", + "kb/communities/MAMC_M48_Lignocellulose.yaml": "d877e443187162745cbfa2adba246854e6b2667793da22f8837fd64d08925176", + "reports/causal_graph_review/README.md": "a61930eb6b303a69168837c7cf82a476707ffc92d9748429fdbfbe8ce3163e7a" + }, + "status": "verified_assay_boundary_graph_review", + "superseded_checks": [ + { + "check": "primary-graph-proof-initial", + "exit_code": 1, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch64/primary-graph-proof-initial.log", + "log_sha256": "85151831cc085556c2cec2560862da7a718b42af899dba3c5637e1ff5e841201", + "output_tail": "Traceback (most recent call last):\n File \"\", line 17, in \n assert 'particle' in P(manifest['nicotiana-correction']['extracted_body']).read_text()\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\nAssertionError\n", + "disposition": "Audit-helper canary incorrectly expected the word particle; the correction says sizes of simulants. Replaced by checks for its actual figure-label correction wording. No record, source or regression inputs changed." + } + ], + "pre_research_baseline": { + "base_commit": "ba082c3e8c3f34f78e3f9dc32b35f57cc303bc7f", + "base_tree": "dd17ec3ede912a585403b33770ce6384ec2bb295", + "research_worktree": "/private/tmp/communitymech-causal-batch63", + "checks": [ + { + "name": "rank", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch64/baseline-rank.log", + "sha256": "78534391fe19f49767a27da87bc7383b273d458b64a3537873c0090f000dffbb", + "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-batch64/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-batch64/baseline-network.log", + "sha256": "3a156d88a5b27b6a726e91303cf9249745ee46d4e53a0ac73d58779dc1041a7d", + "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-batch64/baseline-downstream.log", + "sha256": "cd4b8863430cac214817daeda6aea3a656ccbeb533b7eb7d6646cfd6fb1ce6b6", + "output_tail": "ies/Yogurt_TwoSpecies_Starter_Culture.yaml:267: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:120: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:152: downstream:\nkb/communities/SMutans_VParvula_ASC_Biofilm.yaml:131: downstream:\nkb/communities/SMutans_VParvula_ASC_Biofilm.yaml:179: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:268: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:315: downstream:\nkb/communities/PMI_Variovorax_Thermotolerance_Collection.yaml:330: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:281: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:401: downstream:\nkb/communities/BioModels_MODEL2204300001_Kefir_Community_Model.yaml:203: downstream:\nkb/communities/Asgard_Wetland_Soil_Methanogenesis_Substrate_Community.yaml:157: downstream:\nkb/communities/Asgard_Wetland_Soil_Methanogenesis_Substrate_Community.yaml:196: downstream:\nkb/communities/Acetobacterium_Clostridium_CO2_Electrolysis_Coculture.yaml:149: downstream:\nkb/communities/Acetobacterium_Clostridium_CO2_Electrolysis_Coculture.yaml:218: downstream:\nkb/communities/Clostridium_Autoethanogenum_Kluyveri_Syngas_Coculture.yaml:147: downstream:\nkb/communities/Clostridium_Autoethanogenum_Kluyveri_Syngas_Coculture.yaml:247: downstream:\nkb/communities/Sclerotinia_Sclerotia_12Strain_Biocontrol_SynCom.yaml:332: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:295: downstream:\nkb/communities/Salar_Atacama_Lithium_Brine_Community.yaml:339: downstream:\nkb/communities/Human_Gut_FourMember_Proteome_Complementarity_Consortium.yaml:153: downstream:\nkb/communities/Human_Gut_FourMember_Proteome_Complementarity_Consortium.yaml:218: downstream:\nkb/communities/Shewanella_Streptococcus_Starch_Microbial_Fuel_Cell.yaml:140: downstream:\nkb/communities/Shewanella_Streptococcus_Starch_Microbial_Fuel_Cell.yaml:221: downstream:\n" + } + ], + "baseline_sha256": "f431bba44c0751b74884be1f75895b81ef84d434af48839db008c39b2c9b7d45" + }, + "reference_validator_caveat": "CLI Total checks counts reported issues, not executed checks. MATCH is not scientific entailment or certification of historical provenance. All920 caches unchanged;9 graph excerpts independently match fresh primary text.1564 and existing476/1091/1095 limitations remain unresolved; graph repairs do not recertify non-graph blocks." +} diff --git a/tests/test_causal_review_batch64.py b/tests/test_causal_review_batch64.py new file mode 100644 index 000000000..1791003dd --- /dev/null +++ b/tests/test_causal_review_batch64.py @@ -0,0 +1,142 @@ +"""Separate measured outcomes from procedures and proposed causal mediators.""" + +import hashlib +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-assay-boundaries-batch64.yaml" +N = "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana" +L = "Lupinus_SC7_Rhizosphere_SynCom" +M = "MAMC_M48_Lignocellulose" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + rows = {Path(r["path"]).stem: r for r in ledger["records"]} + docs = {name: yaml.safe_load((ROOT / r["path"]).read_text()) for name, r in rows.items()} + return ledger, rows, docs + + +def test_nicotiana_attachment_and_acids_remain_hypotheses(): + _, _, docs = records() + attachment, phosphorus, _ = docs[N]["ecological_interactions"] + assert "not direct biofilm imaging" in attachment["description"] + assert "separate individual-strain" in attachment["description"] + assert "HYPOTHESIZED" in attachment["description"] + assert "specific secreted oxalate or citrate" in phosphorus["description"] + assert "were not measured" in phosphorus["description"] + assert len(phosphorus["metabolites"]) == 1 + for node in [attachment, phosphorus]: + assert len(node["participating_taxa"]) == 5 + assert "biological_processes" not in node + assert all(e["evidence_source"] == "IN_VITRO" for e in node["evidence"]) + + +def test_nicotiana_plant_response_preserves_time_controls_and_supplementation(): + _, rows, docs = records() + plant = docs[N]["ecological_interactions"][2] + text = plant["description"] + for phrase in [ + "315.92%", + "204.08%", + "percentages of control", + "53.28%", + "not pre-cultured", + "MS nutrient supplementation", + "missing canonical plant host", + ]: + assert phrase in text + assert len(plant["participating_taxa"]) == 3 + assert all(e["evidence_source"] == "IN_VIVO" for e in plant["evidence"]) + assert len(rows[N]["removed_edge_decisions"]) == 2 + assert "PMID:42304108" in docs[N]["discussions"][-1]["rationale"] + + +def test_lupin_input_roster_keeps_two_distinct_streptomyces_strains(): + _, _, docs = records() + for node in docs[L]["ecological_interactions"]: + taxa = node["participating_taxa"] + assert len(taxa) == 12 + strains = [t for t in taxa if t["term"]["id"] == "NCBITaxon:1883"] + assert len(strains) == 2 + assert len({t["preferred_term"] for t in strains}) == 2 + assert "does not establish dominance" in docs[L]["ecological_interactions"][0]["description"] + + +def test_lupin_expression_and_composition_are_not_functional_flux(): + _, _, docs = records() + _, expression, assembly = docs[L]["ecological_interactions"] + assert "FlowPot experiment" in expression["description"] + assert "not direct hormone production, nitrogen-fixation rate" in expression["description"] + assert "non-sterile CAS soil" in assembly["description"] + assert "not absolute exclusion" in assembly["description"] + assert "conflicts with its reported PERMANOVA p=0.001" in assembly["description"] + assert docs[L]["discussions"][0]["discussion_id"] == "sc7_richness_vs_membership" + assert docs[L]["discussions"][0]["status"] == "OPEN" + + +def test_mamc_procedures_are_not_ecological_nodes(): + _, rows, docs = records() + assert len(docs[M]["ecological_interactions"]) == 1 + assert {n["node"] for n in rows[M]["removed_node_decisions"]} == { + "Sugarcane Lignocellulose Enrichment", + "Functional-Group Reductive MAMC Screening", + } + assert rows[M]["edges_before"] == rows[M]["edges_after"] == [] + + +def test_mamc_fraction_mean_is_not_each_fraction_or_gravimetric_loss(): + _, _, docs = records() + output = docs[M]["ecological_interactions"][0] + for phrase in [ + "43.01%", + "39.65%", + "69.18%", + "averaging 50.6%", + "rather than 50.6% for each", + "not direct gravimetric mass loss", + "16S identification labels", + "HYPOTHESIZED", + ]: + assert phrase in output["description"] + assert len(output["participating_taxa"]) == 5 + assert "biological_processes" not in output + + +def test_batch64_caches_and_canonical_participants_are_not_rewritten(): + 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(): + canonical = { + t["taxon_term"]["preferred_term"]: t["taxon_term"]["term"] for t in doc["taxonomy"] + } + for node in doc["ecological_interactions"]: + assert "interaction_type" not in node and "downstream" not in node + for taxon in node["participating_taxa"]: + assert canonical[taxon["preferred_term"]] == taxon["term"] + assert "#1564" in doc["discussions"][-1]["rationale"] + assert ledger["unresolved_non_graph_issues"] == [1564] + assert ledger["primary_graph_snippet_count"] == 9 + + +def test_batch64_all_nodes_arrows_histories_and_source_limits_recorded(): + ledger, rows, docs = records() + assert ledger["independent_approval"] is False + assert ledger["issues"] == [1561, 1562, 1563] + assert ledger["edison"]["provider_submissions"] == ledger["edison"]["credits_spent"] == 0 + assert sum(len(r["node_decisions"]) for r in rows.values()) == 7 + assert sum(len(r["removed_node_decisions"]) for r in rows.values()) == 2 + assert sum(len(r["edges_before"]) for r in rows.values()) == 2 + assert sum(len(r["edges_after"]) for r in rows.values()) == 0 + 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" + 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 0929db9ba..454f4fb8b 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -316,6 +316,8 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "Lotus_LjSC3.yaml", "Lunar_Martian_Simulant_PGPB_Lettuce_SynCom.yaml", "Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml", + "Lupinus_SC7_Rhizosphere_SynCom.yaml", + "MAMC_M48_Lignocellulose.yaml", "MSC1_Dominant_Core.yaml", "MSC2_Model_Soil_Consortium.yaml", "Magnetite_Sulfate_Stress_Anaerobic_Microbiome.yaml",