From 59dcd99fbce7b49095f51ac3fc6d91a3c2c65a17 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Tue, 6 Oct 2026 08:14:23 -0700 Subject: [PATCH] Bound enrichment and Core-20 causal mechanisms --- ...ogas_0B_Butyrate_Oxidizing_Enrichment.html | 35 +- ...s_Switchgrass_Methanogenic_Microbiome.html | 150 ++-- .../Honeybee_Core20_Defined_Microbiota.html | 35 +- .../2026-10-06T150638Z-codex-d88273.yaml | 24 + .../2026-10-06T150639Z-codex-d4f5f9.yaml | 25 + .../2026-10-06T150639Z-codex-017a39.yaml | 25 + ...ogas_0B_Butyrate_Oxidizing_Enrichment.yaml | 138 ++-- ...s_Switchgrass_Methanogenic_Microbiome.yaml | 147 ++-- .../Honeybee_Core20_Defined_Microbiota.yaml | 88 +- reports/causal_graph_review/README.md | 15 + .../adversarial-review-20261006-batch51.yaml | 161 ++++ .../20261006-enrichments-core20-batch51.yaml | 278 +++++++ reports/causal_graph_review/inventory.tsv | 6 +- reports/causal_graph_review/summary.json | 4 +- .../validation-20261006-batch51.json | 769 ++++++++++++++++++ tests/test_causal_review_batch51.py | 113 +++ tests/test_participating_taxa.py | 1 + 17 files changed, 1802 insertions(+), 212 deletions(-) create mode 100644 history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml create mode 100644 history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml create mode 100644 history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261006-batch51.yaml create mode 100644 reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml create mode 100644 reports/causal_graph_review/validation-20261006-batch51.json create mode 100644 tests/test_causal_review_batch51.py diff --git a/docs/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.html b/docs/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.html index 3697b1c82..26071fb5d 100644 --- a/docs/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.html +++ b/docs/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.html @@ -748,7 +748,7 @@

Ecological Interactions

Syntrophic Butyrate Oxidation by MAG1

SYNTROPHY -

Candidatus Syntrophothermus ammoniitolerans MAG1 is inferred to oxidize butyrate through beta-oxidation, releasing acetate and reduced electron carriers whose removal by acetate oxidizers and hydrogenotrophic methanogens makes the overall butyrate-to-methane conversion favorable.

+

PARTIAL - cultivation and metagenomics support MAG1 as a putative syntrophic butyrate oxidizer. The single long-term 0B culture converted butyrate to methane, while MAG1 beta-oxidation and energy-conservation genes support the proposed organism-level role. Acetate provision to the putative MAG2 acetate oxidizer and carrier consumption by methanogens form the authors' model, not measured MAG-specific flux or a selectively tested partner requirement. The source-to-target pair represents the proposed acetate branch, not transfer of every listed metabolite to MAG2.

Source Taxon: Candidatus Syntrophothermus ammoniitolerans MAG1

@@ -799,12 +799,12 @@

Syntrophic Butyrate Oxidation by MAG1

→ Syntrophic Acetate Oxidation by MAG2 to Methanoculleus -

MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then inferred to oxidize acetate with Methanoculleus consuming released H2 or formate.

+

PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanoculleus consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic potential do not establish this exact partner-resolved flux or the hydrogen/formate split.

→ Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter -

MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then inferred to oxidize acetate with Methanothermobacter consuming released H2 or formate.

+

PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanothermobacter consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic potential do not establish this exact partner-resolved flux or the hydrogen/formate split.

@@ -820,13 +820,26 @@

Evidence

PMID:42527912 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
"Acetate produced during butyrate oxidation was further oxidized by syntrophic acetate-oxidizing bacteria and ultimately converted to methane by hydrogenotrophic methanogens"
+
  • +
    + + PMID:42527912 + + - SUPPORT (IN_VITRO) +
    + +
    "Thereafter, the 0B culture subsequently converted butyrate to methane without substantial lag phases during the subsequent seven butyrate depletion cycles"
    + +
  • + @@ -836,7 +849,7 @@

    Evidence

    Syntrophic Acetate Oxidation by MAG2 to Methanoculleus

    SYNTROPHY -

    The Candidatus Thermosyntrophaceticus-like MAG2 is inferred to consume acetate produced during MAG1-driven butyrate oxidation and to route electrons to H2 or formate for Candidatus Methanoculleus thermohydrogenotrophicum MAG3.

    +

    PARTIAL - the authors infer acetate oxidation by MAG2 coupled to hydrogen- or formate-consuming Methanoculleus MAG3. MAG2 is a moderate-quality genome without a completely annotated Wood-Ljungdahl pathway; the close-relative comparison supports a hypothesis, not observation of its missing genes or active acetate flux. Methanogen genomic potential supports the proposed partner role without resolving carrier partition or proving that each partner is necessary.

    Source Taxon: Candidatus Thermosyntrophaceticus-like SAOB MAG2

    @@ -916,7 +929,7 @@

    Evidence

    PMID:42527912 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
    "members of the genera Methanoculleus and Methanothermobacter likely served as hydrogenotrophic methanogenic partners"
    @@ -932,7 +945,7 @@

    Evidence

    Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter

    SYNTROPHY -

    The Candidatus Thermosyntrophaceticus-like MAG2 is inferred to consume acetate produced during MAG1-driven butyrate oxidation and to route electrons to H2 or formate for Methanothermobacter MAG4 and MAG5.

    +

    PARTIAL - the authors infer acetate oxidation by MAG2 coupled to hydrogen- or formate-consuming Methanothermobacter MAG4/MAG5. MAG2 is a moderate-quality genome without a completely annotated Wood-Ljungdahl pathway; the close-relative comparison supports a hypothesis, not observation of its missing genes or active acetate flux. Methanogen genomic potential supports the proposed partner role without resolving carrier partition or proving that each partner is necessary. Late relative enrichment of Methanothermobacter does not establish an improved butyrate-conversion rate. Proposed acetate assimilation by MAG5 is distinct from acetoclastic methane production.

    Source Taxon: Candidatus Thermosyntrophaceticus-like SAOB MAG2

    @@ -1012,7 +1025,7 @@

    Evidence

    PMID:42527912 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
    "members of the genera Methanoculleus and Methanothermobacter likely served as hydrogenotrophic methanogenic partners"
    @@ -1072,9 +1085,9 @@

    OPEN Does the moderate-quality Candidatus Thermosyntrophaceticus-like MAG2 actively perform syntrophic acetate oxidation in the 0B enrichment, and what is the division of hydrogen versus formate transfer among the MAG1, MAG2, Methanoculleus, and Methanothermobacter MAGs?

    -

    The 0B enrichment couples butyrate loss to methane formation, but MAG2 was reconstructed at moderate quality and a complete Wood-Ljungdahl pathway was inferred from a close relative rather than completely annotated in MAG2 itself.

    +

    The 0B enrichment couples butyrate loss to methane formation, but MAG2 was reconstructed at moderate quality and a complete Wood-Ljungdahl pathway was inferred from a close relative rather than completely annotated in MAG2 itself. All three pairwise assignments and both acetate-branch arrows remain PARTIAL. The single 0B long-term culture is distinct from replicated yeast-extract YB cultures; yeast-extract-free medium is not proof that butyrate was the only available organic carbon. Direct MAG1-to-methanogen carrier provision is another proposed route, not a new demonstrated branch here. MAG9 alternative roles, hydrogen/formate partition, MAG2 activity and partner necessity remain unresolved; isotope tracing, expression and partner perturbations would discriminate them. Below-detection relative abundance is not extinction, calculated free ammonia is not a direct measurement, and archaeal succession is not a demonstrated rate advantage. No complete mechanism expansion is claimed. Non-graph metadata is preserved, not recertified.

    -

    Attaches to: ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanoculleus, ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter

    +

    Attaches to: ecological_interactions#Syntrophic Butyrate Oxidation by MAG1, ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanoculleus, ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter

    @@ -1532,7 +1545,7 @@

    Evidence

    processes.push("fatty acid beta-oxidation"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, diff --git a/docs/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.html b/docs/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.html index f3e312885..846258432 100644 --- a/docs/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.html +++ b/docs/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.html @@ -710,7 +710,7 @@

    Ecological Interactions

    Ecological interaction network for High-Solids Switchgrass Methanogenic Microbiome - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (syntrophy, niche partitioning). + 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.
    @@ -718,13 +718,8 @@

    Ecological Interactions

    Syntrophy -
    -
    - Niche partitioning + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
    @@ -733,14 +728,25 @@

    Ecological Interactions

    High-Solids Switchgrass Carbohydrate Solubilization

    - NICHE_PARTITIONING
    -

    Bacterial CAZyme-producing lineages collectively maintained carbohydrate solubilization as switchgrass solids loading increased, with Firmicutes dominant and Chloroflexi/Thermotogae showing fraction-specific enzyme contributions.

    +

    The thermophilic HR1 community maintained fractional carbohydrate solubilization as switchgrass loading increased from 30 to 150 g/L in one sequentially operated reactor. This positive bulk-carbohydrate result does not demonstrate complete lignin mineralization or selectively identify the causal enzyme strategy. Vitamins, medium optimization, mixing and adaptation also changed during operation. LC-MS profiles identify expressed protein groups with annotated CAZyme potential, not direct catalytic activities; the five canonical taxa are a curated subset, not every organism responsible for conversion.

    + + + +

    Participating Taxa: -

    Source Taxon: Clostridia

    + Clostridia, + Bacilli, + Chloroflexota, + + Thermotogota, + + Euryarchaeota + +

    @@ -781,8 +787,8 @@

    High-Solids Switchgrass Carbohydrate Solubilization

    Downstream Effects:
    - → Hydrogenotrophic Methanogenic Sink -

    High-solids carbohydrate solubilization and downstream fermentation provide the reducing equivalents and carbon flow that support methane and carbon dioxide as the main steady-state reactor products.

    + → Methane Production and Inferred Hydrogenotrophic Route +

    PARTIAL - carbohydrate solubilization followed by fermentation can supply carbon and reducing equivalents to methanogenesis, connecting the measured reactor outcomes. The broad trophic model is supported by bulk products and protein profiles, but the hydrogenotrophic contribution and exact donor-to-methanogen flux were not selectively quantified.

    @@ -824,17 +830,20 @@

    Evidence

    -

    Fraction-Specific CAZyme Functional Niches

    - NICHE_PARTITIONING +

    Fraction-Associated CAZyme Protein Profiles

    -

    Chloroflexi-associated CAZymes were more prevalent in planktonic-cell fractions, whereas Thermotogae-associated enzymes were more represented in supernatant and substrate-bound fractions, indicating spatially partitioned lignocellulose-deconstruction functions.

    +

    Chloroflexi-assigned CAZyme proteins were more prevalent in the planktonic-cell fraction, whereas Thermotogae-assigned proteins were more represented in supernatant and substrate-bound fractions. These positive metaproteomic profiles motivated the authors' functional-niche interpretation. Centrifugation-enriched fractions and protein adsorption do not directly locate every living organism, establish competitive niche partitioning, or demonstrate a Chloroflexota-to-Thermotogota interaction.

    + + -

    Source Taxon: Chloroflexota

    +

    Participating Taxa: + Chloroflexota, + Thermotogota -

    Target Taxon: Thermotogota

    +

    @@ -870,7 +879,7 @@

    Fraction-Specific CAZyme Functional Niches

    → High-Solids Switchgrass Carbohydrate Solubilization -

    Spatially partitioned Chloroflexi and Thermotogae CAZyme contributions are part of the bacterial enzyme strategy that maintains fractional carbohydrate solubilization as switchgrass solids increase.

    +

    PARTIAL - fraction-associated CAZyme proteins could contribute complementary hydrolysis functions that maintain carbohydrate solubilization. Protein abundance and localization profiles support this interpretation, not selective perturbation establishing that spatial partitioning causes the maintained phenotype.

    @@ -889,7 +898,7 @@

    Evidence

    - SUPPORT (COMPUTATIONAL) -
    "suggesting the presence of functional niches"
    +
    "CAZymes from the phylum Chloroflexi were more prevalent in the PC fraction while enzymes from the phylum Thermotogae were more represented in the SNT and SB fractions"
    @@ -902,7 +911,7 @@

    Evidence

    - SUPPORT (COMPUTATIONAL) -
    "substrate bound"
    +
    "each sample was split into three fractions: supernatant (SNT), planktonic cells (PC), and substrate-bound (SB)"
    @@ -912,15 +921,18 @@

    Evidence

    -

    Hydrogenotrophic Methanogenic Sink

    - SYNTROPHY +

    Methane Production and Inferred Hydrogenotrophic Route

    -

    Archaeal methanogenesis functions converted fermentation-derived reducing equivalents and carbon dioxide to methane, consistent with methane and carbon dioxide as the main observed reactor products and hydrogenotrophic methanogenesis proteins increasing at high solids.

    +

    Methane and carbon dioxide were measured reactor products. The higher abundance and diversity of proteins assigned to hydrogenotrophic rather than acetoclastic pathways suggest a major hydrogenotrophic route, but do not quantify its fraction of methane production or exclude other routes. Steady-state hydrogen and volatile fatty acids below detection do not mean absent turnover. The canonical archaeal group represents inferred methanogenic capacity, not the complete community or an experimentally resolved partner pair.

    + + -

    Source Taxon: Euryarchaeota

    +

    Participating Taxa: + Euryarchaeota +

    @@ -979,10 +991,10 @@

    Evidence

    PMID:35790765 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
    -
    "all hydrogenotrophic methanogenesis pathway enzymes"
    +
    "both the aggregate abundance and diversity (protein count) of those mapping the hydrogenotrophic pathway markedly exceeded that of the acetoclastic pathway"
    @@ -1046,6 +1058,25 @@

    Associated Datasets

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which enzymes and metabolic routes maintain conversion at high solids? +

    +

    One sequential HR1 reactor supports positive conversion and gas outcomes but does not isolate solids loading from vitamin, medium, mixing or adaptation changes. Metaproteomic replicates are not independent replicate reactors, and the sequence database was derived from lower-solids metagenomes. Selective enzyme perturbations, catalytic assays and route-resolved flux would test both existing arrows. AA6 enrichment motivated an oxidative/Fenton accessibility hypothesis, but ROS, iron cycling and lignin-depolymerization flux were not directly established in the inspected study; no new oxidative branch is asserted. The authors' proposed syntrophic acetate oxidation likewise remains unresolved. Canonical broad taxa are incomplete and are not a newly grounded strain roster. Cache abstract-only metadata coexists with an appended primary full body, which was read. Non-graph metadata is preserved, not recertified.

    + +

    Attaches to: ecological_interactions#High-Solids Switchgrass Carbohydrate Solubilization, ecological_interactions#Fraction-Associated CAZyme Protein Profiles, ecological_interactions#Methane Production and Inferred Hydrogenotrophic Route

    + + + + +
    + +
    @@ -1502,7 +1533,7 @@

    Evidence

    (function() { var intId = "interaction:0"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1532,18 +1563,32 @@

    Evidence

    }); - var srcKey = "Clostridia"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ + + "Clostridia", + + "Bacilli", + + "Chloroflexota", + + "Thermotogota", + + "Euryarchaeota" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:1"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1562,7 +1607,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Fraction-Specific CAZyme Functional Niches", + label: "Fraction-Associated CAZyme Protein Profiles", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1571,23 +1616,26 @@

    Evidence

    }); - var srcKey = "Chloroflexota"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ - var tgtKey = "Thermotogota"; - if (taxonNodeIds[tgtKey]) { - links.push({ source: intId, target: taxonNodeIds[tgtKey] }); - } + "Chloroflexota", + + "Thermotogota" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); (function() { var intId = "interaction:2"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1608,7 +1656,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Hydrogenotrophic Methanogenic Sink", + label: "Methane Production and Inferred Hydrogenotrophic Route", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1617,12 +1665,18 @@

    Evidence

    }); - var srcKey = "Euryarchaeota"; - if (taxonNodeIds[srcKey]) { - links.push({ source: taxonNodeIds[srcKey], target: intId }); - } + var participantKeys = [ + + "Euryarchaeota" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); })(); diff --git a/docs/communities/Honeybee_Core20_Defined_Microbiota.html b/docs/communities/Honeybee_Core20_Defined_Microbiota.html index 48ae8c7f6..795f16d65 100644 --- a/docs/communities/Honeybee_Core20_Defined_Microbiota.html +++ b/docs/communities/Honeybee_Core20_Defined_Microbiota.html @@ -529,7 +529,7 @@

    Ecological Interactions

    Core-20 Gut Colonization

    -

    The defined Core-20 community colonizes the honeybee gut in vivo; most member strains remained detectable through the serial-passage experiment, with G. sp. W8131 falling below detection or failing to colonize.

    +

    The defined Core-20 inoculum established gut communities in honeybees. During four serial passages, most input strains were detected, while G. sp. W8131 was below detection or failed to colonize. Relative abundance and diversity changed, so this is not unchanged composition or confirmed persistence of every strain. The separate passaging experiment did not establish that every passage preserved immune stimulation or pathogen protection. The canonical Bacteria participant is a broad placeholder, not a resolved 20-strain roster.

    @@ -562,7 +562,7 @@

    Core-20 Gut Colonization

    → Core-20 Immune Priming -

    In vivo Core-20 gut colonization provides the defined community context that stimulates antimicrobial peptide expression before Hafnia alvei challenge.

    +

    PARTIAL - experimental Core-20 inoculation and establishment provide the microbial exposure that induces host immune-gene expression before challenge. The positive treatment response supports this link, but the separate serial-passage result does not establish persistent colonization as the necessary mediator or protection at every passage.

    @@ -593,7 +593,7 @@

    Evidence

    Core-20 Immune Priming

    -

    The stably established Core-20 community triggers up-regulation of honeybee innate immune genes, including antimicrobial peptide genes, that the authors link to microbiota-mediated pathogen protection.

    +

    Core-20 treatment increased host innate immune-gene expression: selected Toll/Imd pathway genes at 24 h and abaecin, apidaecin, hymenoptaecin and defensin-1 transcripts on Day 7 before Hafnia alvei challenge. These are positive qPCR transcriptional responses, not direct AMP protein concentration or antimicrobial activity measurements. The authors propose immune priming as part of protection; selective immune or PTS perturbations were not reported in this study.

    @@ -625,8 +625,8 @@

    Core-20 Immune Priming

    Downstream Effects:
    - → Immune-Mediated Hafnia alvei Reduction -

    Core-20 immune-gene induction coincided with reduced H. alvei loads after oral challenge and was interpreted as part of the protective mechanism.

    + → Core-20-Associated Hafnia alvei Load Reduction +

    PARTIAL - induced host immune effectors could restrict Hafnia alvei after challenge. Prechallenge immune-gene induction and subsequent reduced pathogen load support the authors' protective mechanism proposal, but no selective immune-pathway perturbation establishes mediation or excludes nutrient competition and other community effects.

    @@ -655,9 +655,9 @@

    Evidence

    -

    Immune-Mediated Hafnia alvei Reduction

    +

    Core-20-Associated Hafnia alvei Load Reduction

    -

    Host immune regulation by the Core-20 gut community reduces Hafnia alvei prevalence in orally challenged honeybees.

    +

    Core-20 treatment reduced Hafnia alvei load by the reported 78-fold relative to microbiota-free bees five days after oral challenge; load was measured by qPCR and normalized to host actin. Core-6 did not significantly reduce the load in that comparison. This positive community-treatment outcome is not pathogen eradication, direct viable-cell enumeration or demonstrated immune mediation. The strain-composition comparison does not isolate richness from strain identity, and the broad canonical bacterial participant does not resolve host, pathogen or individual symbiont identities.

    @@ -712,6 +712,25 @@

    Evidence

    +
    +

    Knowledge gaps & discussions (1)

    + +
    +

    + KNOWLEDGE_GAP + OPEN + Which Core-20 members and host mechanisms cause the reduced pathogen load? +

    +

    Retain the positive immune-gene and load responses while testing immune-pathway necessity, peptide activity and strain-resolved contributions separately. The primary study proposes PTS-linked immune stimulation and nutrient-niche occupation from comparative genomic potential; neither is a newly demonstrated causal branch here. Four-passage detection is a separate endpoint with W8131 uncertainty, changing diversity and no protective challenge demonstrated for each passage. Existing broad Bacteria grounding is preserved rather than expanded to unverified CURIEs. Non-graph evidence classification and metadata are preserved, not recertified.

    + +

    Attaches to: ecological_interactions#Core-20 Gut Colonization, ecological_interactions#Core-20 Immune Priming, ecological_interactions#Core-20-Associated Hafnia alvei Load Reduction

    + + + + +
    + +
    @@ -996,7 +1015,7 @@

    Evidence

    nodes.push({ id: intId, - label: "Immune-Mediated Hafnia alvei Reduction", + label: "Core-20-Associated Hafnia alvei Load Reduction", type: "interaction", interactionType: intType, metabolites: metabolites, diff --git a/history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml b/history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml new file mode 100644 index 000000000..4ffd65a3b --- /dev/null +++ b/history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml @@ -0,0 +1,24 @@ +history_version: 1 +target: + kind: record + path: kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml + slug: High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment +session: + id: 2026-10-06T150638Z-codex-d88273 + timestamp: '2026-10-06T15:06:38Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1497 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Bound MAG-resolved syntrophy while retaining positive 0B conversion. + details: Source-based self-adversarial existing-graph repair. reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml diff --git a/history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml b/history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml new file mode 100644 index 000000000..ed00e87fb --- /dev/null +++ b/history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml + slug: High_Solids_Switchgrass_Methanogenic_Microbiome +session: + id: 2026-10-06T150639Z-codex-d4f5f9 + timestamp: '2026-10-06T15:06:39Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1498 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Separate CAZyme protein profiles and inferred methanogenic routes from demonstrated + mediation. + details: Source-based self-adversarial existing-graph repair. reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml diff --git a/history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml b/history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml new file mode 100644 index 000000000..9d0d6d5c4 --- /dev/null +++ b/history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml @@ -0,0 +1,25 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Honeybee_Core20_Defined_Microbiota.yaml + slug: Honeybee_Core20_Defined_Microbiota +session: + id: 2026-10-06T150639Z-codex-017a39 + timestamp: '2026-10-06T15:06:39Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1499 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Separate positive Core-20 transcripts and pathogen reduction from proposed immune + mediation. + details: Source-based self-adversarial existing-graph repair. reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml diff --git a/kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml b/kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml index d0b79e1e0..47c65ba95 100644 --- a/kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml +++ b/kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml @@ -191,11 +191,12 @@ taxonomy: culture 0B. ecological_interactions: - name: Syntrophic Butyrate Oxidation by MAG1 - description: >- - Candidatus Syntrophothermus ammoniitolerans MAG1 is inferred to oxidize - butyrate through beta-oxidation, releasing acetate and reduced electron - carriers whose removal by acetate oxidizers and hydrogenotrophic - methanogens makes the overall butyrate-to-methane conversion favorable. + description: PARTIAL - cultivation and metagenomics support MAG1 as a putative syntrophic butyrate oxidizer. The + single long-term 0B culture converted butyrate to methane, while MAG1 beta-oxidation and energy-conservation + genes support the proposed organism-level role. Acetate provision to the putative MAG2 acetate oxidizer and + carrier consumption by methanogens form the authors' model, not measured MAG-specific flux or a selectively + tested partner requirement. The source-to-target pair represents the proposed acetate branch, not transfer of + every listed metabolite to MAG2. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -232,32 +233,34 @@ ecological_interactions: label: fatty acid beta-oxidation downstream: - target: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus - description: >- - MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then - inferred to oxidize acetate with Methanoculleus consuming released H2 or - formate. + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanoculleus + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. - target: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter - description: >- - MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then - inferred to oxidize acetate with Methanothermobacter consuming released - H2 or formate. + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanothermobacter + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. evidence: - reference: PMID:42527912 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - Acetate produced during butyrate oxidation was further oxidized by - syntrophic acetate-oxidizing bacteria and ultimately converted to methane - by hydrogenotrophic methanogens - explanation: >- - Supports the flow from butyrate oxidation through acetate oxidation to - hydrogenotrophic methanogenesis. + snippet: Acetate produced during butyrate oxidation was further oxidized by syntrophic acetate-oxidizing bacteria + and ultimately converted to methane by hydrogenotrophic methanogens + explanation: Supports the authors' coupled metabolic model; bulk chemistry does not resolve MAG1-to-MAG2 acetate + transfer or partner-specific hydrogen/formate flux. + - reference: PMID:42527912 + supports: SUPPORT + evidence_source: IN_VITRO + snippet: Thereafter, the 0B culture subsequently converted butyrate to methane without substantial lag phases + during the subsequent seven butyrate depletion cycles + explanation: Supports positive community-level 0B butyrate-to-methane conversion, not a direct MAG1-specific + flux measurement. - name: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus - description: >- - The Candidatus Thermosyntrophaceticus-like MAG2 is inferred to consume - acetate produced during MAG1-driven butyrate oxidation and to route - electrons to H2 or formate for Candidatus Methanoculleus - thermohydrogenotrophicum MAG3. + description: PARTIAL - the authors infer acetate oxidation by MAG2 coupled to hydrogen- or formate-consuming Methanoculleus + MAG3. MAG2 is a moderate-quality genome without a completely annotated Wood-Ljungdahl pathway; the close-relative + comparison supports a hypothesis, not observation of its missing genes or active acetate flux. Methanogen genomic + potential supports the proposed partner role without resolving carrier partition or proving that each partner + is necessary. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -304,24 +307,23 @@ ecological_interactions: - reference: PMID:42527912 supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - suggesting that MAG2 also possesses the genomic potential for SAO - explanation: >- - Supports the inferred, but not directly transcription-validated, - syntrophic acetate oxidation role of MAG2. + snippet: suggesting that MAG2 also possesses the genomic potential for SAO + explanation: Supports inferred MAG2 SAO potential with incomplete pathway annotation, not demonstrated in situ + acetate oxidation. - reference: PMID:42527912 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - members of the genera Methanoculleus and Methanothermobacter likely - served as hydrogenotrophic methanogenic partners - explanation: >- - Names Methanoculleus as one inferred hydrogenotrophic partner genus. + snippet: members of the genera Methanoculleus and Methanothermobacter likely served as hydrogenotrophic methanogenic + partners + explanation: Supports a proposed hydrogenotrophic partner genus, not selective validation of the exact MAG-to-MAG + exchange. - name: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter - description: >- - The Candidatus Thermosyntrophaceticus-like MAG2 is inferred to consume - acetate produced during MAG1-driven butyrate oxidation and to route - electrons to H2 or formate for Methanothermobacter MAG4 and MAG5. + description: PARTIAL - the authors infer acetate oxidation by MAG2 coupled to hydrogen- or formate-consuming Methanothermobacter + MAG4/MAG5. MAG2 is a moderate-quality genome without a completely annotated Wood-Ljungdahl pathway; the close-relative + comparison supports a hypothesis, not observation of its missing genes or active acetate flux. Methanogen genomic + potential supports the proposed partner role without resolving carrier partition or proving that each partner + is necessary. Late relative enrichment of Methanothermobacter does not establish an improved butyrate-conversion + rate. Proposed acetate assimilation by MAG5 is distinct from acetoclastic methane production. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -368,19 +370,16 @@ ecological_interactions: - reference: PMID:42527912 supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - suggesting that MAG2 also possesses the genomic potential for SAO - explanation: >- - Supports the inferred, but not directly transcription-validated, - syntrophic acetate oxidation role of MAG2. + snippet: suggesting that MAG2 also possesses the genomic potential for SAO + explanation: Supports inferred MAG2 SAO potential with incomplete pathway annotation, not demonstrated in situ + acetate oxidation. - reference: PMID:42527912 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - members of the genera Methanoculleus and Methanothermobacter likely - served as hydrogenotrophic methanogenic partners - explanation: >- - Names Methanothermobacter as one inferred hydrogenotrophic partner genus. + snippet: members of the genera Methanoculleus and Methanothermobacter likely served as hydrogenotrophic methanogenic + partners + explanation: Supports a proposed hydrogenotrophic partner genus, not selective validation of the exact MAG-to-MAG + exchange. environmental_factors: - name: High-ammonia biogas origin value: elevated ammonia digestate @@ -635,27 +634,34 @@ metal_notes: >- high-ammonia syntrophic butyrate-oxidizing enrichment. discussions: - discussion_id: kg-high-ammonia-mag2-sao-inference - prompt: >- - Does the moderate-quality Candidatus Thermosyntrophaceticus-like MAG2 - actively perform syntrophic acetate oxidation in the 0B enrichment, and - what is the division of hydrogen versus formate transfer among the MAG1, + prompt: Does the moderate-quality Candidatus Thermosyntrophaceticus-like MAG2 actively perform syntrophic acetate + oxidation in the 0B enrichment, and what is the division of hydrogen versus formate transfer among the MAG1, MAG2, Methanoculleus, and Methanothermobacter MAGs? kind: KNOWLEDGE_GAP status: OPEN attaches_to: + - ecological_interactions#Syntrophic Butyrate Oxidation by MAG1 - ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanoculleus - ecological_interactions#Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter - rationale: >- - The 0B enrichment couples butyrate loss to methane formation, but MAG2 was - reconstructed at moderate quality and a complete Wood-Ljungdahl pathway was - inferred from a close relative rather than completely annotated in MAG2 - itself. + rationale: The 0B enrichment couples butyrate loss to methane formation, but MAG2 was reconstructed at moderate + quality and a complete Wood-Ljungdahl pathway was inferred from a close relative rather than completely annotated + in MAG2 itself. All three pairwise assignments and both acetate-branch arrows remain PARTIAL. The single 0B + long-term culture is distinct from replicated yeast-extract YB cultures; yeast-extract-free medium is not proof + that butyrate was the only available organic carbon. Direct MAG1-to-methanogen carrier provision is another + proposed route, not a new demonstrated branch here. MAG9 alternative roles, hydrogen/formate partition, MAG2 + activity and partner necessity remain unresolved; isotope tracing, expression and partner perturbations would + discriminate them. Below-detection relative abundance is not extinction, calculated free ammonia is not a direct + measurement, and archaeal succession is not a demonstrated rate advantage. No complete mechanism expansion is + claimed. Non-graph metadata is preserved, not recertified. evidence: - reference: PMID:42527912 supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: >- - Owing to the relatively low completeness of MAG2, a complete - Wood-Ljungdahl pathway could not be annotated - explanation: >- - Documents the main uncertainty around MAG2's acetate-oxidizing role. + snippet: Owing to the relatively low completeness of MAG2, a complete Wood-Ljungdahl pathway could not be annotated + explanation: Documents the main uncertainty around MAG2's acetate-oxidizing role. +curation_history: +- timestamp: '2026-10-06T15:06:38Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Bound MAG-resolved syntrophy while retaining positive 0B conversion. Issue #1497; reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml' + llm_assisted: true diff --git a/kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml b/kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml index ef1eb207f..d48f01a8d 100644 --- a/kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml +++ b/kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml @@ -181,16 +181,13 @@ taxonomy: explanation: Supports Euryarchaeota as the archaeal methanogenic protein source tracked in the study. ecological_interactions: - name: High-Solids Switchgrass Carbohydrate Solubilization - description: Bacterial CAZyme-producing lineages collectively maintained carbohydrate solubilization - as switchgrass solids loading increased, with Firmicutes dominant and Chloroflexi/Thermotogae - showing fraction-specific enzyme contributions. - interaction_type: NICHE_PARTITIONING + description: The thermophilic HR1 community maintained fractional carbohydrate solubilization as switchgrass loading + increased from 30 to 150 g/L in one sequentially operated reactor. This positive bulk-carbohydrate result does + not demonstrate complete lignin mineralization or selectively identify the causal enzyme strategy. Vitamins, + medium optimization, mixing and adaptation also changed during operation. LC-MS profiles identify expressed + protein groups with annotated CAZyme potential, not direct catalytic activities; the five canonical taxa are + a curated subset, not every organism responsible for conversion. scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: Clostridia - term: - id: NCBITaxon:186801 - label: Clostridia metabolites: - preferred_term: cellulose term: @@ -210,38 +207,52 @@ ecological_interactions: id: GO:0045493 label: xylan catabolic process downstream: - - target: Hydrogenotrophic Methanogenic Sink - description: High-solids carbohydrate solubilization and downstream - fermentation provide the reducing equivalents and carbon flow that - support methane and carbon dioxide as the main steady-state reactor - products. + - target: Methane Production and Inferred Hydrogenotrophic Route + description: PARTIAL - carbohydrate solubilization followed by fermentation can supply carbon and reducing equivalents + to methanogenesis, connecting the measured reactor outcomes. The broad trophic model is supported by bulk + products and protein profiles, but the hydrogenotrophic contribution and exact donor-to-methanogen flux were + not selectively quantified. evidence: - reference: PMID:35790765 supports: SUPPORT evidence_source: IN_VITRO snippet: undiminished fractional carbohydrate solubilization - explanation: Supports the high-solids deconstruction phenotype of the microbiome. + explanation: Supports maintained bulk fractional carbohydrate solubilization in the sequential reactor experiment, + not an isolated solids-only treatment effect or complete lignin mineralization. - reference: PMID:35790765 supports: SUPPORT evidence_source: COMPUTATIONAL snippet: specific carbohydrate-active enzyme classes - explanation: Supports CAZymes as the measured enzymatic basis for carbohydrate solubilization. -- name: Fraction-Specific CAZyme Functional Niches - description: Chloroflexi-associated CAZymes were more prevalent in planktonic-cell fractions, whereas - Thermotogae-associated enzymes were more represented in supernatant and substrate-bound fractions, - indicating spatially partitioned lignocellulose-deconstruction functions. - interaction_type: NICHE_PARTITIONING - scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: Chloroflexota + explanation: Supports the study's CAZyme-category analysis, not selective enzyme mediation or direct measurement + of catalytic activity. + participating_taxa: + - preferred_term: Clostridia + term: + id: NCBITaxon:186801 + label: Clostridia + - preferred_term: Bacilli + term: + id: NCBITaxon:91061 + label: Bacilli + - preferred_term: Chloroflexota term: id: NCBITaxon:200795 label: Chloroflexota - target_taxon: - preferred_term: Thermotogota + - preferred_term: Thermotogota term: id: NCBITaxon:200918 label: Thermotogota + - preferred_term: Euryarchaeota + term: + id: NCBITaxon:28890 + label: Methanobacteriota +- name: Fraction-Associated CAZyme Protein Profiles + description: Chloroflexi-assigned CAZyme proteins were more prevalent in the planktonic-cell fraction, whereas + Thermotogae-assigned proteins were more represented in supernatant and substrate-bound fractions. These positive + metaproteomic profiles motivated the authors' functional-niche interpretation. Centrifugation-enriched fractions + and protein adsorption do not directly locate every living organism, establish competitive niche partitioning, + or demonstrate a Chloroflexota-to-Thermotogota interaction. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: cellulose term: @@ -258,31 +269,39 @@ ecological_interactions: label: biological process involved in interspecies interaction between organisms downstream: - target: High-Solids Switchgrass Carbohydrate Solubilization - description: Spatially partitioned Chloroflexi and Thermotogae CAZyme - contributions are part of the bacterial enzyme strategy that maintains - fractional carbohydrate solubilization as switchgrass solids increase. + description: PARTIAL - fraction-associated CAZyme proteins could contribute complementary hydrolysis functions + that maintain carbohydrate solubilization. Protein abundance and localization profiles support this interpretation, + not selective perturbation establishing that spatial partitioning causes the maintained phenotype. evidence: - reference: PMID:35790765 supports: SUPPORT evidence_source: COMPUTATIONAL - snippet: suggesting the presence of functional niches - explanation: Supports spatially differentiated CAZyme contributions across community fractions. + snippet: CAZymes from the phylum Chloroflexi were more prevalent in the PC fraction while enzymes from the phylum + Thermotogae were more represented in the SNT and SB fractions + explanation: Supports fraction-associated annotated protein profiles and the authors' suggested niches, not + experimentally established competitive partitioning. - reference: PMID:35790765 supports: SUPPORT evidence_source: COMPUTATIONAL - snippet: substrate bound - explanation: Supports the substrate-bound fraction as one localization context for lignocellulose enzymes. -- name: Hydrogenotrophic Methanogenic Sink - description: Archaeal methanogenesis functions converted fermentation-derived reducing equivalents - and carbon dioxide to methane, consistent with methane and carbon dioxide as the main observed - reactor products and hydrogenotrophic methanogenesis proteins increasing at high solids. - interaction_type: SYNTROPHY - scope: COMMUNITY_LEVEL - source_taxon: - preferred_term: Euryarchaeota + snippet: 'each sample was split into three fractions: supernatant (SNT), planktonic cells (PC), and substrate-bound + (SB)' + explanation: Defines the measured fractions without asserting pure compartments or direct live-cell localization. + participating_taxa: + - preferred_term: Chloroflexota term: - id: NCBITaxon:28890 - label: Methanobacteriota + id: NCBITaxon:200795 + label: Chloroflexota + - preferred_term: Thermotogota + term: + id: NCBITaxon:200918 + label: Thermotogota +- name: Methane Production and Inferred Hydrogenotrophic Route + description: Methane and carbon dioxide were measured reactor products. The higher abundance and diversity of + proteins assigned to hydrogenotrophic rather than acetoclastic pathways suggest a major hydrogenotrophic route, + but do not quantify its fraction of methane production or exclude other routes. Steady-state hydrogen and volatile + fatty acids below detection do not mean absent turnover. The canonical archaeal group represents inferred methanogenic + capacity, not the complete community or an experimentally resolved partner pair. + scope: COMMUNITY_LEVEL metabolites: - preferred_term: methane term: @@ -306,12 +325,19 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: The main products observed were methane - explanation: Supports methane as a main reactor product. + explanation: Supports positive bulk methane production, not pathway-resolved carbon or electron flux. - reference: PMID:35790765 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: all hydrogenotrophic methanogenesis pathway enzymes - explanation: Supports hydrogenotrophic methanogenesis as a metaproteomic feature increasing at high solids. + snippet: both the aggregate abundance and diversity (protein count) of those mapping the hydrogenotrophic pathway + markedly exceeded that of the acetoclastic pathway + explanation: Supports the authors' dominant-route inference from annotated protein profiles, not a measured + methane-flux partition. + participating_taxa: + - preferred_term: Euryarchaeota + term: + id: NCBITaxon:28890 + label: Methanobacteriota environmental_factors: - name: Switchgrass solids loading value: 30 to 150 @@ -473,3 +499,30 @@ rare_earth_elements_present: [] metal_relevance: NOT_APPLICABLE metal_notes: No metal or rare earth element processing role was reported for this thermophilic switchgrass methanogenic microbiome in the curated sources. +discussions: +- discussion_id: switchgrass_profile_to_function + prompt: Which enzymes and metabolic routes maintain conversion at high solids? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#High-Solids Switchgrass Carbohydrate Solubilization + - ecological_interactions#Fraction-Associated CAZyme Protein Profiles + - ecological_interactions#Methane Production and Inferred Hydrogenotrophic Route + rationale: One sequential HR1 reactor supports positive conversion and gas outcomes but does not isolate solids + loading from vitamin, medium, mixing or adaptation changes. Metaproteomic replicates are not independent replicate + reactors, and the sequence database was derived from lower-solids metagenomes. Selective enzyme perturbations, + catalytic assays and route-resolved flux would test both existing arrows. AA6 enrichment motivated an oxidative/Fenton + accessibility hypothesis, but ROS, iron cycling and lignin-depolymerization flux were not directly established + in the inspected study; no new oxidative branch is asserted. The authors' proposed syntrophic acetate oxidation + likewise remains unresolved. Canonical broad taxa are incomplete and are not a newly grounded strain roster. + Cache abstract-only metadata coexists with an appended primary full body, which was read. Non-graph metadata + is preserved, not recertified. + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T15:06:38Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Separate CAZyme protein profiles and inferred methanogenic routes from demonstrated mediation. Issue + #1498; reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml' + llm_assisted: true diff --git a/kb/communities/Honeybee_Core20_Defined_Microbiota.yaml b/kb/communities/Honeybee_Core20_Defined_Microbiota.yaml index 704824c7e..574ce2471 100644 --- a/kb/communities/Honeybee_Core20_Defined_Microbiota.yaml +++ b/kb/communities/Honeybee_Core20_Defined_Microbiota.yaml @@ -52,9 +52,11 @@ taxonomy: - *id001 ecological_interactions: - name: Core-20 Gut Colonization - description: The defined Core-20 community colonizes the honeybee gut in vivo; most member strains - remained detectable through the serial-passage experiment, with G. sp. W8131 falling below - detection or failing to colonize. + description: The defined Core-20 inoculum established gut communities in honeybees. During four serial passages, + most input strains were detected, while G. sp. W8131 was below detection or failed to colonize. Relative abundance + and diversity changed, so this is not unchanged composition or confirmed persistence of every strain. The separate + passaging experiment did not establish that every passage preserved immune stimulation or pathogen protection. + The canonical Bacteria participant is a broad placeholder, not a resolved 20-strain roster. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: honeybee gut bacterial Core-20 members @@ -68,20 +70,23 @@ ecological_interactions: label: biological process involved in interspecies interaction between organisms downstream: - target: Core-20 Immune Priming - description: In vivo Core-20 gut colonization provides the defined community context that stimulates - antimicrobial peptide expression before Hafnia alvei challenge. + description: PARTIAL - experimental Core-20 inoculation and establishment provide the microbial exposure that + induces host immune-gene expression before challenge. The positive treatment response supports this link, + but the separate serial-passage result does not establish persistent colonization as the necessary mediator + or protection at every passage. evidence: - reference: PMID:36532452 supports: SUPPORT evidence_source: IN_VIVO - snippet: All strains except G. sp. W8131 were detected individually in bee gut samples - among passages - explanation: Establishes in vivo persistence for most Core-20 strains during the serial honeybee-gut - passaging experiment and prevents the record from implying perfect detection of all 20 members. + snippet: All strains except G. sp. W8131 were detected individually in bee gut samples among passages + explanation: Establishes in vivo persistence for most Core-20 strains during the serial honeybee-gut passaging + experiment and prevents the record from implying perfect detection of all 20 members. - name: Core-20 Immune Priming - description: The stably established Core-20 community triggers up-regulation of honeybee innate immune - genes, including antimicrobial peptide genes, that the authors link to microbiota-mediated pathogen - protection. + description: 'Core-20 treatment increased host innate immune-gene expression: selected Toll/Imd pathway genes + at 24 h and abaecin, apidaecin, hymenoptaecin and defensin-1 transcripts on Day 7 before Hafnia alvei challenge. + These are positive qPCR transcriptional responses, not direct AMP protein concentration or antimicrobial activity + measurements. The authors propose immune priming as part of protection; selective immune or PTS perturbations + were not reported in this study.' scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: honeybee gut bacterial Core-20 members @@ -94,20 +99,26 @@ ecological_interactions: id: GO:0045088 label: regulation of innate immune response downstream: - - target: Immune-Mediated Hafnia alvei Reduction - description: Core-20 immune-gene induction coincided with reduced H. alvei loads after oral challenge - and was interpreted as part of the protective mechanism. + - target: Core-20-Associated Hafnia alvei Load Reduction + description: PARTIAL - induced host immune effectors could restrict Hafnia alvei after challenge. Prechallenge + immune-gene induction and subsequent reduced pathogen load support the authors' protective mechanism proposal, + but no selective immune-pathway perturbation establishes mediation or excludes nutrient competition and other + community effects. evidence: - reference: PMID:36532452 supports: SUPPORT evidence_source: IN_VIVO - snippet: bees with the Core-20 showed a significant increase of AMPs abaecin, - apidaecin, hymenoptaecin, and defensin-1 - explanation: Supports the Core-20-induced antimicrobial peptide response measured before H. alvei - inoculation. -- name: Immune-Mediated Hafnia alvei Reduction - description: Host immune regulation by the Core-20 gut community reduces Hafnia alvei prevalence in - orally challenged honeybees. + snippet: bees with the Core-20 showed a significant increase of AMPs abaecin, apidaecin, hymenoptaecin, and + defensin-1 + explanation: Supports prechallenge AMP-gene transcript increases measured by qPCR, not direct peptide abundance + or proof of immune-mediated protection. +- name: Core-20-Associated Hafnia alvei Load Reduction + description: Core-20 treatment reduced Hafnia alvei load by the reported 78-fold relative to microbiota-free bees + five days after oral challenge; load was measured by qPCR and normalized to host actin. Core-6 did not significantly + reduce the load in that comparison. This positive community-treatment outcome is not pathogen eradication, direct + viable-cell enumeration or demonstrated immune mediation. The strain-composition comparison does not isolate + richness from strain identity, and the broad canonical bacterial participant does not resolve host, pathogen + or individual symbiont identities. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: honeybee gut bacterial Core-20 members @@ -123,11 +134,10 @@ ecological_interactions: - reference: PMID:36532452 supports: SUPPORT evidence_source: IN_VIVO - snippet: bees treated with the Core-6, including all these strains demonstrating the ability - to inhibit pathogens, did not show a significant reduction of H. alvei, while - the Core-20 reduced the H. alvei loads by 78 times - explanation: 'Supports the endpoint: the high-diversity Core-20 inoculum reduced H. alvei burden - in vivo after oral challenge.' + snippet: bees treated with the Core-6, including all these strains demonstrating the ability to inhibit pathogens, + did not show a significant reduction of H. alvei, while the Core-20 reduced the H. alvei loads by 78 times + explanation: Supports the positive oral-challenge load endpoint, not selectively identified immune mediation + or a richness-only treatment effect. environmental_factors: - name: stably transmitted defined microbiota value: The Core-20 community was passaged through honeybee guts and evaluated for stable colonization @@ -190,3 +200,27 @@ growth_media: 35°C in 5% CO2 for 2–3 days. explanation: Names the agar media, 35°C incubation, 5% CO2 atmosphere, and 2–3 day duration used to revive the Core-20 strains. +discussions: +- discussion_id: core20_protection_mediation + prompt: Which Core-20 members and host mechanisms cause the reduced pathogen load? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Core-20 Gut Colonization + - ecological_interactions#Core-20 Immune Priming + - ecological_interactions#Core-20-Associated Hafnia alvei Load Reduction + rationale: Retain the positive immune-gene and load responses while testing immune-pathway necessity, peptide + activity and strain-resolved contributions separately. The primary study proposes PTS-linked immune stimulation + and nutrient-niche occupation from comparative genomic potential; neither is a newly demonstrated causal branch + here. Four-passage detection is a separate endpoint with W8131 uncertainty, changing diversity and no protective + challenge demonstrated for each passage. Existing broad Bacteria grounding is preserved rather than expanded + to unverified CURIEs. Non-graph evidence classification and metadata are preserved, not recertified. + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T15:06:39Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Separate positive Core-20 transcripts and pathogen reduction from proposed immune mediation. Issue #1499; + reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/README.md b/reports/causal_graph_review/README.md index 4b1268144..508d760c6 100644 --- a/reports/causal_graph_review/README.md +++ b/reports/causal_graph_review/README.md @@ -5,6 +5,21 @@ 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`. +## Batch51: Enrichments And Core-20 + +[Decisions](decisions/20261006-enrichments-core20-batch51.yaml), +[validation](validation-20261006-batch51.json) and +[self-adversarial review](adversarial-review-20261006-batch51.yaml) retain +nine nodes and six explicitly qualified arrows. Positive 0B conversion remains +distinct from MAG-resolved syntrophy; switchgrass protein profiles and gas +production remain distinct from selective enzyme mediation and methane-route +flux. Core-20 immune transcripts and pathogen-load reduction remain positive +results without asserting immune mediation. Complete cached main texts, Methods +and embedded captions were read, not original figure images or supplements. +Unrepresented proposed carrier, AA6/Fenton and PTS pathways remain acknowledged +gaps; this is an existing-structure review, not an exhaustive mechanism expansion. +Non-graph metadata and canonical taxonomy are preserved, not recertified. + ## Batch50: HAMBI, Hanford And C6 [Decisions](decisions/20261006-hambi-hanford-c6-batch50.yaml), diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch51.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch51.yaml new file mode 100644 index 000000000..0a0f7c347 --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch51.yaml @@ -0,0 +1,161 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: fbd0ad08df5251ded93706420bf57d41d94ced64 +scope: +- kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml +- kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml +- kb/communities/Honeybee_Core20_Defined_Microbiota.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch51.json +findings: +- issue: 1497 + severity: P2 + status: addressed_in_this_change + finding: Bound MAG-resolved syntrophy while retaining positive 0B conversion. + disposition: Close only after protected main merge. +- issue: 1498 + severity: P2 + status: addressed_in_this_change + finding: Separate CAZyme protein profiles and inferred methanogenic routes from demonstrated mediation. + disposition: Close only after protected main merge. +- issue: 1499 + severity: P2 + status: addressed_in_this_change + finding: Separate positive Core-20 transcripts and pathogen reduction from proposed immune mediation. + disposition: Close only after protected main merge. +adversarial_checks: +- Whole661-line ammonia,475-line switchgrass and192-line Core-20 records and all nine nodes/six arrows + reviewed. Complete cached primary main bodies, Methods and embedded figure captions read, plus ammonia + Table1. No original figure images, supplements, raw data or code audited. +- 0B positive single-culture butyrate-to-methane conversion remains SUPPORT/IN_VITRO, separate from PARTIAL + MAG-resolved syntrophy. Canonical source/target directions and three SYNTROPHY hypotheses retained. + Do not transfer YB replication, carbon balance or yeast-extract results to 0B. +- MAG2 incomplete Wood-Ljungdahl annotation is not filled using its relative. MAG-specific flux, carrier + partition and partner necessity remain unresolved. Relative Methanothermobacter succession is not rate + improvement; proposed MAG5 acetate assimilation is not acetoclastic methane formation. Existing gap/evidence + extended, not duplicated or erased. +- Switchgrass maintains positive bulk solubilization and methane outcomes; one sequential reactor and + changed vitamins, medium, mixing and adaptation do not isolate a solids-only mechanism. Protein abundance + is not catalytic activity, and hydrogenotrophic protein dominance is not a measured methane-flux share. +- Fraction-associated CAZyme profiles remain positive observations supporting the authors' suggested niches, + not demonstrated competitive partitioning or a Chloroflexota-to-Thermotogota pair. Explicit participants + are the canonical five-member subset for the community phenotype, two profile groups and the archaeal + capacity group. All three nodes remain community-scoped. +- Core-20 preserves positive qPCR immune transcripts and the reported78-fold pathogen-load reduction. + Transcript abundance is not AMP protein activity, qPCR load is not viable-cell count, and composition + differences do not isolate richness. Rename the terminal outcome and qualify proposed immune mediation + without falsely claiming that the original incoming edge lacked interpretation wording. +- Core-20 W8131 non-detection was already bounded and remains so. Four passages with changed diversity + and relative abundance do not prove unchanged composition or protective efficacy in every passage. Existing + broad Bacteria participant remains a placeholder, not a complete strain/host/pathogen roster or newly + minted CURIE. +- 'Structural completeness considered explicitly: proposed direct MAG1 carrier routes, alternative MAG9 + functions, AA6/Fenton accessibility and PTS/nutrient competition remain acknowledged gaps. This batch + repairs existing claims, not exhaustive mechanism expansion. No new node, arrow or paid Edison job; + no speculative route represented as experimentally established.' +- Inspected complete record diffs and focused tests. Nine nodes retained and all six existing arrows explicitly + PARTIAL. Three guarded writes and append-only history artifacts; all457 other records and920 caches + unchanged. Non-graph raw blocks and canonical taxonomy preserved, not certified. One participant registry + entry added; measured connectivity census unchanged. +- Actual schema, strict, terms, references, snippets, rank and history gates passed. Network equals baseline + with34 prior findings and zero structural errors. Deterministic renders and exact node/arrow descriptions + across456 pages parser-checked, not browser screenshots. Actual post-commit docs-current is a separate + publication gate. +- Dedup checked806 all-state issue titles/bodies and25 ignored/hidden local files, not every comment or + PR review. Closed401/366 concern taxonomy tooling, not these graph repairs. Issues1497/1498/1499 stay + open until protected main merge. Self-adversarial review is not independent approval. +verification: + combined_regressions: 489 passed in 185.39s (0:03:05) + new_regression_tests: 5 + schema_strict_terms_history: Passed with actual output digests + references: CLI Total checks counts reported issues, not executed checks. Exit0 is no reported issues, + not source verification. SupportingReference coverage (#476), Linux DOI-cache lookup (#1091) and selected-cache + provenance (#1362) remain limitations. + snippet_counts_by_record: + kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml: + MATCH: 33 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml: + MATCH: 25 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Honeybee_Core20_Defined_Microbiota.yaml: + MATCH: 9 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + network: + existing_findings_preserved: 34 + added_findings: {} + removed_findings: {} + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml: ba9263151489fa4b4e0b3ee95eb3b9eadb3edbec4183c1ce04780a0d3474e00e + tests/test_causal_review_batch51.py: 976accbf36a466289e467ee8d82d4c058e29d280da217f61e632bccabc4248b6 + tests/test_participating_taxa.py: f990f589edb8aca67486464f99e18edfe185c6fd13f5c6c81dc36d007bd046f6 + kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml: 9c1ecf68184260fe68327386dea7b0ca0c056fb610975b21cb9cbd8352042f14 + kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml: 89902153cb8c0086b9305528173ec5147c6dcc6c0fa0c9ba9980011a559b7aac + kb/communities/Honeybee_Core20_Defined_Microbiota.yaml: 9f955b7498ec80ad343cc5afc8ee5121fd0f9370d456bb94009088d8fcd6efae + reports/causal_graph_review/README.md: e3c342a142ae58c193195452d9df52e4c871977c9e9ec749be5e7f7611ac0a46 + post_commit_docs_current: Separate publication gate; not asserted before commit. +participant_census: + measurements: + baseline: + records: 460 + with_community_level: 389 + mixed: 127 + community_level_only: 262 + taxa: 1498 + credited_solely_by_the_rule: 1222 + current: + records: 460 + with_community_level: 389 + mixed: 127 + community_level_only: 262 + taxa: 1498 + credited_solely_by_the_rule: 1222 + interpretation: Three ammonia pairwise and six community nodes retain their scopes. Switchgrass participants + made explicit, with one registry entry added; census unchanged. No production matching or census-bound + changes. +corpus: + records: 460 + nodes: 1465 + edges: 674 + review_status_counts: + needs_research: 14 + pending: 267 + reviewed: 179 +limitations: +- Whole three records and all nine nodes/six arrows reviewed against complete cached primary main bodies, + Methods and embedded captions. Ammonia main Table1 read. No original figure images, supplements, raw + data or code audited. +- 'Existing-structure repair only: nine nodes and six arrows retained; all arrows explicitly PARTIAL. + No new causal structure or paid Edison job. Unrepresented proposed MAG1 carrier routes, AA6/Fenton chemistry + and PTS/nutrient competition are acknowledged gaps, not new demonstrated mechanisms or an exhaustive + expansion.' +- 0B is one long-term culture, distinct from replicated YB. Bulk conversion and genomic potential do not + resolve MAG flux, carrier partition, MAG2 pathway completeness or partner necessity. Canonical labels + and CURIEs unchanged. +- Switchgrass single sequential reactor, changed operational conditions, enriched fractions and annotation-based + protein functions do not selectively establish niche partitioning, catalytic activity or methane-route + shares. Cache abstract-only metadata does not describe its appended full-body content. +- Core-20 positive qPCR transcripts and pathogen-load reduction retained; immune mediation remains PARTIAL. + Existing W8131 caveat retained. Serial passage is separate from protective efficacy, and broad Bacteria + grounding is not a complete strain/host/pathogen roster. +- Non-graph blocks and all920 cache files preserved, not certified. SupportingReference coverage (#476), + Linux DOI-cache lookup (#1091), selected-cache provenance (#1362) and unrelated writer-audit artifact + issue (#1095) remain outside scope. Reference CLI Total checks counts reported issues, not executed + checks. +- Dedup checked806 all-state issue titles/bodies and25 ignored/hidden local files, not all comments or + PR reviews. Closed401/366 concern taxonomy tooling, not these graph repairs. Self-adversarial review + is not independent approval; protected-main merge and corpus completion remain pending. diff --git a/reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml b/reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml new file mode 100644 index 000000000..e4d057258 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml @@ -0,0 +1,278 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: fbd0ad08df5251ded93706420bf57d41d94ced64 +baseline_commit: fbd0ad08df5251ded93706420bf57d41d94ced64 +base_tree: f87fe4da5384c18d2d7f6d390a9d1f4c185a735f +pre_source_baseline_sha256: b502a3520c63a66e4a05ee0d718e130c59d70273a48986765edd5905263a5ea6 +issues: +- 1497 +- 1498 +- 1499 +issue_deduplication: + all_state_issue_titles_and_bodies: 806 + ignored_hidden_local_search: true + matching_issues: + - 401 + - 366 + matching_local_files: 25 + disposition: Closed taxonomy-tooling issues, not duplicates of these causal graph repairs. + limitations: Not every issue comment or PR review inspected. +reference_cache_original_hashes: + references_cache/PMID_42527912.txt: 31bb64a84ba5145e3be009a4e8763072645cf117d173fb5ea3f464330ce89712 + references_cache/PMID_35790765.md: 81f8a8209fbdeb3d34b6c4e9f6ef76437aa761d023d92702c6c2aee7c558967c + references_cache/PMID_36532452.txt: dc6079e0859dc65c34b74b87b0d65ab3d748e6ca9bf21eccb62320cf8c309e52 +limitations: +- Whole three records and all nine nodes/six arrows reviewed against complete cached primary main bodies, Methods + and embedded captions. Ammonia main Table1 read. No original figure images, supplements, raw data or code audited. +- 'Existing-structure repair only: nine nodes and six arrows retained; all arrows explicitly PARTIAL. No new causal + structure or paid Edison job. Unrepresented proposed MAG1 carrier routes, AA6/Fenton chemistry and PTS/nutrient + competition are acknowledged gaps, not new demonstrated mechanisms or an exhaustive expansion.' +- 0B is one long-term culture, distinct from replicated YB. Bulk conversion and genomic potential do not resolve + MAG flux, carrier partition, MAG2 pathway completeness or partner necessity. Canonical labels and CURIEs unchanged. +- Switchgrass single sequential reactor, changed operational conditions, enriched fractions and annotation-based + protein functions do not selectively establish niche partitioning, catalytic activity or methane-route shares. + Cache abstract-only metadata does not describe its appended full-body content. +- Core-20 positive qPCR transcripts and pathogen-load reduction retained; immune mediation remains PARTIAL. Existing + W8131 caveat retained. Serial passage is separate from protective efficacy, and broad Bacteria grounding is not + a complete strain/host/pathogen roster. +- Non-graph blocks and all920 cache files preserved, not certified. SupportingReference coverage (#476), Linux DOI-cache + lookup (#1091), selected-cache provenance (#1362) and unrelated writer-audit artifact issue (#1095) remain outside + scope. Reference CLI Total checks counts reported issues, not executed checks. +- Dedup checked806 all-state issue titles/bodies and25 ignored/hidden local files, not all comments or PR reviews. + Closed401/366 concern taxonomy tooling, not these graph repairs. Self-adversarial review is not independent approval; + protected-main merge and corpus completion remain pending. +records: +- path: kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml + id: CommunityMech:000350 + original_sha256: f84342dd9328dacd1d2b6b5a77a5d4e62c858e9653e1028c2b19ae5e61279c1d + record_sha256: 9c1ecf68184260fe68327386dea7b0ca0c056fb610975b21cb9cbd8352042f14 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml + scope: Whole record and every original node/arrow; bounded existing structure, not all possible mechanisms. + summary: Bound MAG-resolved syntrophy while retaining positive 0B conversion. + renamed_nodes: {} + node_decisions: + - node: Syntrophic Butyrate Oxidation by MAG1 + rationale: Retain positive bulk 0B conversion and qualify the existing MAG1-to-MAG2 acetate branch as inferred, + without transferring YB replication or resolving partner flux. + - node: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus + rationale: Retain PARTIAL MAG2-to-MAG3 syntrophy with incomplete MAG2 pathway and carrier-partition limits. + - node: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter + rationale: Retain PARTIAL MAG2-to-MAG4/MAG5 syntrophy without rate-benefit or acetoclastic-methanogenesis inference. + removed_node_decisions: [] + edges_before: + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus + description: MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then inferred to oxidize acetate + with Methanoculleus consuming released H2 or formate. + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter + description: MAG1 produces acetate during butyrate beta-oxidation; MAG2 is then inferred to oxidize acetate + with Methanothermobacter consuming released H2 or formate. + edges_after: + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanoculleus + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanothermobacter + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. + retained_edge_decisions: + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanoculleus + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanoculleus + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + - source: Syntrophic Butyrate Oxidation by MAG1 + target: Syntrophic Acetate Oxidation by MAG2 to Methanothermobacter + description: PARTIAL - proposed MAG1 butyrate oxidation supplies acetate that MAG2 could oxidize while Methanothermobacter + consumes released hydrogen or formate, supporting the modeled coupled conversion. Bulk conversion and genomic + potential do not establish this exact partner-resolved flux or the hydrogen/formate split. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + removed_edge_decisions: [] + references: + - PMID:42527912 + issues: + - 1497 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml + source_review: + PMID:42527912: + cache: references_cache/PMID_42527912.txt + url: https://pubmed.ncbi.nlm.nih.gov/42527912/ + scope: Whole 661-line record; complete cached primary main body, Methods, Table 1 and Figures 1-5 captions; + primary PubMed abstract corroborated. No original figure images, supplements, raw data or code audited. + sha256: 31bb64a84ba5145e3be009a4e8763072645cf117d173fb5ea3f464330ce89712 +- path: kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml + id: CommunityMech:000194 + original_sha256: b87f26070e4056d40895b75d0ef19bd21d1a10c507ed1d5b3e54305f94925e59 + record_sha256: 89902153cb8c0086b9305528173ec5147c6dcc6c0fa0c9ba9980011a559b7aac + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml + scope: Whole record and every original node/arrow; bounded existing structure, not all possible mechanisms. + summary: Separate CAZyme protein profiles and inferred methanogenic routes from demonstrated mediation. + renamed_nodes: + Fraction-Specific CAZyme Functional Niches: Fraction-Associated CAZyme Protein Profiles + Hydrogenotrophic Methanogenic Sink: Methane Production and Inferred Hydrogenotrophic Route + node_decisions: + - node: High-Solids Switchgrass Carbohydrate Solubilization + rationale: Preserve positive bulk solubilization with the sequential-reactor and catalytic-mediation limits; + remove unqualified NICHE_PARTITIONING. + - node: Fraction-Associated CAZyme Protein Profiles + rationale: Retain measured fraction-associated protein profiles and author interpretation without pairwise exchange + or proven competitive niche partitioning. + - node: Methane Production and Inferred Hydrogenotrophic Route + rationale: Retain positive gas production and PARTIAL hydrogenotrophic-route inference without quantitative + pathway dominance or universal partner assignment. + removed_node_decisions: [] + edges_before: + - source: High-Solids Switchgrass Carbohydrate Solubilization + target: Hydrogenotrophic Methanogenic Sink + description: High-solids carbohydrate solubilization and downstream fermentation provide the reducing equivalents + and carbon flow that support methane and carbon dioxide as the main steady-state reactor products. + - source: Fraction-Specific CAZyme Functional Niches + target: High-Solids Switchgrass Carbohydrate Solubilization + description: Spatially partitioned Chloroflexi and Thermotogae CAZyme contributions are part of the bacterial + enzyme strategy that maintains fractional carbohydrate solubilization as switchgrass solids increase. + edges_after: + - source: High-Solids Switchgrass Carbohydrate Solubilization + target: Methane Production and Inferred Hydrogenotrophic Route + description: PARTIAL - carbohydrate solubilization followed by fermentation can supply carbon and reducing equivalents + to methanogenesis, connecting the measured reactor outcomes. The broad trophic model is supported by bulk + products and protein profiles, but the hydrogenotrophic contribution and exact donor-to-methanogen flux were + not selectively quantified. + - source: Fraction-Associated CAZyme Protein Profiles + target: High-Solids Switchgrass Carbohydrate Solubilization + description: PARTIAL - fraction-associated CAZyme proteins could contribute complementary hydrolysis functions + that maintain carbohydrate solubilization. Protein abundance and localization profiles support this interpretation, + not selective perturbation establishing that spatial partitioning causes the maintained phenotype. + retained_edge_decisions: + - source: High-Solids Switchgrass Carbohydrate Solubilization + target: Methane Production and Inferred Hydrogenotrophic Route + description: PARTIAL - carbohydrate solubilization followed by fermentation can supply carbon and reducing equivalents + to methanogenesis, connecting the measured reactor outcomes. The broad trophic model is supported by bulk + products and protein profiles, but the hydrogenotrophic contribution and exact donor-to-methanogen flux were + not selectively quantified. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + - source: Fraction-Associated CAZyme Protein Profiles + target: High-Solids Switchgrass Carbohydrate Solubilization + description: PARTIAL - fraction-associated CAZyme proteins could contribute complementary hydrolysis functions + that maintain carbohydrate solubilization. Protein abundance and localization profiles support this interpretation, + not selective perturbation establishing that spatial partitioning causes the maintained phenotype. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + removed_edge_decisions: [] + references: + - PMID:35790765 + issues: + - 1498 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml + source_review: + PMID:35790765: + cache: references_cache/PMID_35790765.md + url: https://pubmed.ncbi.nlm.nih.gov/35790765/ + scope: Whole 475-line record; complete appended primary main body, Methods and Figures 1-5 captions despite + cache abstract-only metadata; primary PubMed abstract corroborated. No original figures, supplements, source + data or code audited. + sha256: 81f8a8209fbdeb3d34b6c4e9f6ef76437aa761d023d92702c6c2aee7c558967c +- path: kb/communities/Honeybee_Core20_Defined_Microbiota.yaml + id: CommunityMech:000124 + original_sha256: 006cc682646f3c776a543188a0c55ca2b0246c1cc79e321cbb83ee6d865be09c + record_sha256: 9f955b7498ec80ad343cc5afc8ee5121fd0f9370d456bb94009088d8fcd6efae + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml + scope: Whole record and every original node/arrow; bounded existing structure, not all possible mechanisms. + summary: Separate positive Core-20 transcripts and pathogen reduction from proposed immune mediation. + renamed_nodes: + Immune-Mediated Hafnia alvei Reduction: Core-20-Associated Hafnia alvei Load Reduction + node_decisions: + - node: Core-20 Gut Colonization + rationale: Retain positive colonization and prior W8131 caveat; distinguish passage persistence from unchanged + composition and passage-specific protective efficacy. + - node: Core-20 Immune Priming + rationale: Preserve positive measured immune transcripts, not protein activity; qualify protective mediation. + - node: Core-20-Associated Hafnia alvei Load Reduction + rationale: Rename to the observed positive load endpoint without asserting immune mediation, eradication or + a richness-only effect. + removed_node_decisions: [] + edges_before: + - source: Core-20 Gut Colonization + target: Core-20 Immune Priming + description: In vivo Core-20 gut colonization provides the defined community context that stimulates antimicrobial + peptide expression before Hafnia alvei challenge. + - source: Core-20 Immune Priming + target: Immune-Mediated Hafnia alvei Reduction + description: Core-20 immune-gene induction coincided with reduced H. alvei loads after oral challenge and was + interpreted as part of the protective mechanism. + edges_after: + - source: Core-20 Gut Colonization + target: Core-20 Immune Priming + description: PARTIAL - experimental Core-20 inoculation and establishment provide the microbial exposure that + induces host immune-gene expression before challenge. The positive treatment response supports this link, + but the separate serial-passage result does not establish persistent colonization as the necessary mediator + or protection at every passage. + - source: Core-20 Immune Priming + target: Core-20-Associated Hafnia alvei Load Reduction + description: PARTIAL - induced host immune effectors could restrict Hafnia alvei after challenge. Prechallenge + immune-gene induction and subsequent reduced pathogen load support the authors' protective mechanism proposal, + but no selective immune-pathway perturbation establishes mediation or excludes nutrient competition and other + community effects. + retained_edge_decisions: + - source: Core-20 Gut Colonization + target: Core-20 Immune Priming + description: PARTIAL - experimental Core-20 inoculation and establishment provide the microbial exposure that + induces host immune-gene expression before challenge. The positive treatment response supports this link, + but the separate serial-passage result does not establish persistent colonization as the necessary mediator + or protection at every passage. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + - source: Core-20 Immune Priming + target: Core-20-Associated Hafnia alvei Load Reduction + description: PARTIAL - induced host immune effectors could restrict Hafnia alvei after challenge. Prechallenge + immune-gene induction and subsequent reduced pathogen load support the authors' protective mechanism proposal, + but no selective immune-pathway perturbation establishes mediation or excludes nutrient competition and other + community effects. + rationale: Retain the source-backed proposed direction with explicit PARTIAL qualification; measured treatment + or community outcomes do not selectively resolve this exact mediator. + removed_edge_decisions: [] + references: + - PMID:36532452 + issues: + - 1499 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml + source_review: + PMID:36532452: + cache: references_cache/PMID_36532452.txt + url: https://pubmed.ncbi.nlm.nih.gov/36532452/ + scope: Whole 192-line record; complete cached primary abstract, main body, Methods and Figures 1-6 captions. + PubMed web open returned no body; local complete primary text used. No original figure images, supplementary + files, raw data or code audited. + sha256: dc6079e0859dc65c34b74b87b0d65ab3d748e6ca9bf21eccb62320cf8c309e52 diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index c81318944..7b6d3c425 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -191,9 +191,9 @@ kb/communities/Groundwater_Elusimicrobia_Diverse_Metabolisms.yaml CommunityMech: kb/communities/HAMBI_Carbon_Gradient_SynCom16.yaml CommunityMech:000423 a6de23c0605bdd23154c61dca8a27d161e55f8fdf0e191bc55d38969b693a6f8 1 0 55.0 reports/causal_graph_review/decisions/20261006-hambi-hanford-c6-batch50.yaml reviewed kb/communities/Hanford_300_Area_Unconfined_Aquifer_Community.yaml CommunityMech:000138 61ab38249ffc3fd960901f1868e3373e77ea3077bc79880e1e125eef7e8162d2 3 0 65.0 reports/causal_graph_review/decisions/20261006-hambi-hanford-c6-batch50.yaml reviewed kb/communities/Hexamine_Formaldehyde_Consortium_C6.yaml CommunityMech:000405 275243762d5d3c3032178fcc68b9005177a5d0f1924ff6ef01e3aeaf114e8d08 2 0 60.0 reports/causal_graph_review/decisions/20261006-hambi-hanford-c6-batch50.yaml reviewed -kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml CommunityMech:000350 f84342dd9328dacd1d2b6b5a77a5d4e62c858e9653e1028c2b19ae5e61279c1d 3 2 100.0 pending -kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml CommunityMech:000194 b87f26070e4056d40895b75d0ef19bd21d1a10c507ed1d5b3e54305f94925e59 3 2 100.0 pending -kb/communities/Honeybee_Core20_Defined_Microbiota.yaml CommunityMech:000124 006cc682646f3c776a543188a0c55ca2b0246c1cc79e321cbb83ee6d865be09c 3 2 100.0 pending +kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml CommunityMech:000350 9c1ecf68184260fe68327386dea7b0ca0c056fb610975b21cb9cbd8352042f14 3 2 100.0 reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml reviewed +kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml CommunityMech:000194 89902153cb8c0086b9305528173ec5147c6dcc6c0fa0c9ba9980011a559b7aac 3 2 90.0 reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml reviewed +kb/communities/Honeybee_Core20_Defined_Microbiota.yaml CommunityMech:000124 9f955b7498ec80ad343cc5afc8ee5121fd0f9370d456bb94009088d8fcd6efae 3 2 100.0 reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml reviewed kb/communities/Horonobe_Mizunami_URL_Subsurface_Microbiome.yaml CommunityMech:000218 5478558435b0618f8a5d333ae2281a2af611766be3cb9c2a3cc6875e9ec59feb 4 2 100.0 pending kb/communities/Hualgayoc_Acidic_Sulfate_Reducing_AMD_Consortium.yaml CommunityMech:000353 7b1ed8410d6c23f032ae27b4041756125c8bf971aa58827fa87ea34164b1c9d4 2 1 85.0 pending kb/communities/Human_Gut_FourMember_Proteome_Complementarity_Consortium.yaml CommunityMech:000317 899e722c69660db1def097d713a22b6e95d7ed43c26a1aacd6386ad9312dac29 3 2 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index e06bf730b..b1800a4b1 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -8,8 +8,8 @@ "records_without_edges": 151, "review_status_counts": { "needs_research": 14, - "pending": 270, - "reviewed": 176 + "pending": 267, + "reviewed": 179 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261006-batch51.json b/reports/causal_graph_review/validation-20261006-batch51.json new file mode 100644 index 000000000..85a08e4d1 --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch51.json @@ -0,0 +1,769 @@ +{ + "base_commit": "fbd0ad08df5251ded93706420bf57d41d94ced64", + "scope": [ + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-strict.tsv", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-strict.log", + "log_sha256": "734d0c8079d26aae9c7f3491a70615b3527ce5191706495eb6afc141f7360e14", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch51/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-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-strict.tsv\n" + }, + { + "check": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-references.log", + "log_sha256": "193a7ef6af1d024059b1545d8d4ce67d314eb54a1aa2724067fc75131649332c", + "output_tail": "Validating kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.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/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.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": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-snippets.log", + "log_sha256": "6f2de9fb4d8c177ffbcd0ad88a37a36fb65a242f256bee6a97070647234944fe", + "output_tail": "# 33 evidence snippets scanned across 1 files\n MATCH 33\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": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-rank.log", + "log_sha256": "89d8b8c7993c262f8ddc6560a9639b4e9806524125e252865b03c832494b5aaf", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000350\",\n \"name\": \"High-Ammonia Biogas 0B Butyrate-Oxidizing Enrichment\",\n \"score\": 100.0,\n \"taxonomy\": 4,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [],\n \"path\": \"kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml\"\n }\n]\n" + }, + { + "check": "High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment/2026-10-06T150638Z-codex-d88273.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "High_Solids_Switchgrass_Methanogenic_Microbiome-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "High_Solids_Switchgrass_Methanogenic_Microbiome-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-strict.tsv", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-strict.log", + "log_sha256": "ed2322c0f0d9533c5ab08e02bffd8427dceb4c7e93c03d88bcc457a0c69e7507", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch51/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-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-strict.tsv\n" + }, + { + "check": "High_Solids_Switchgrass_Methanogenic_Microbiome-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "High_Solids_Switchgrass_Methanogenic_Microbiome-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-references.log", + "log_sha256": "4094fd984da7a1e37d5a25b7955be382fb0c0ea969f1a9dd80ddeeed80f25587", + "output_tail": "Validating kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.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/High_Solids_Switchgrass_Methanogenic_Microbiome.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": "High_Solids_Switchgrass_Methanogenic_Microbiome-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-snippets.log", + "log_sha256": "f261f4401991124875d6e69fbc7c75c05d38b3868788199bef07a85e404ac32e", + "output_tail": "# 25 evidence snippets scanned across 1 files\n MATCH 25\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": "High_Solids_Switchgrass_Methanogenic_Microbiome-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-rank.log", + "log_sha256": "14280e523f75eefb58ae9605433db5966878306f7334b91d0eb1209f981d0563", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000194\",\n \"name\": \"High-Solids Switchgrass Methanogenic Microbiome\",\n \"score\": 90.0,\n \"taxonomy\": 5,\n \"connected_taxa\": 5,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml\"\n }\n]\n" + }, + { + "check": "High_Solids_Switchgrass_Methanogenic_Microbiome-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/High_Solids_Switchgrass_Methanogenic_Microbiome/2026-10-06T150639Z-codex-d4f5f9.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/High_Solids_Switchgrass_Methanogenic_Microbiome-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Honeybee_Core20_Defined_Microbiota-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Honeybee_Core20_Defined_Microbiota-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-strict.tsv", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-strict.log", + "log_sha256": "8e2185cb502bc139ccd108d432c82c0642db075aefd4ae3c1b036f3bfc64d0cd", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch51/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-batch51/Honeybee_Core20_Defined_Microbiota-strict.tsv\n" + }, + { + "check": "Honeybee_Core20_Defined_Microbiota-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Honeybee_Core20_Defined_Microbiota-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-references.log", + "log_sha256": "f0c1203a0d8e05dc1a7ae3f6b5c0150f2a2edbe8df7ac78c70daac04a905197a", + "output_tail": "Validating kb/communities/Honeybee_Core20_Defined_Microbiota.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/Honeybee_Core20_Defined_Microbiota.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": "Honeybee_Core20_Defined_Microbiota-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-snippets.log", + "log_sha256": "32e79f5bf36e5c97f219c301b9924d6a9da1ff1bf07e2b076f93f0d0ee74a358", + "output_tail": "# 9 evidence snippets scanned across 1 files\n MATCH 9\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": "Honeybee_Core20_Defined_Microbiota-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-rank.log", + "log_sha256": "5d779594881bf1b08cfb08fb38e87f0042d11018416461d607a78cd0d17f880a", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000124\",\n \"name\": \"Honeybee Core-20 Defined Microbiota\",\n \"score\": 100.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [],\n \"path\": \"kb/communities/Honeybee_Core20_Defined_Microbiota.yaml\"\n }\n]\n" + }, + { + "check": "Honeybee_Core20_Defined_Microbiota-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Honeybee_Core20_Defined_Microbiota/2026-10-06T150639Z-codex-017a39.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/Honeybee_Core20_Defined_Microbiota-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-batch51/inventory.log", + "log_sha256": "f4c4781ecbbe6d59ecd255e7dd750799f393e971540110e90d2f7b2a0b419ce6", + "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\": 1465,\n \"edges\": 674,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 151,\n \"review_status_counts\": {\n \"needs_research\": 14,\n \"pending\": 267,\n \"reviewed\": 179\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-batch51/network.log", + "log_sha256": "71a1e46fdd5d7c44e1766fabc85efb996c70258e3e64018891cfa94bb22fb13e", + "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-batch51/rank-all.log", + "log_sha256": "d5ca03319728761eb8aa3343de0e0b37718c14b8f5445694b39cbdbe9775d1a1", + "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-batch51/render.log", + "log_sha256": "4c738beaa0935e8bb4725e29896e6c24bc43d6aa424cf3a860404e1a6f978d14", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch51/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch51/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch51/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-batch51/render-repeat.log", + "log_sha256": "4c738beaa0935e8bb4725e29896e6c24bc43d6aa424cf3a860404e1a6f978d14", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch51/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch51/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch51/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch51/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-batch50')), ('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-batch51/connectivity-survey.log", + "log_sha256": "d1f8cb53fc02a66edb17ed342b6a42f93828fdfc7d58e11aaea1140c633be1e1", + "output_tail": "{\"baseline\": {\"records\": 460, \"with_community_level\": 389, \"mixed\": 127, \"community_level_only\": 262, \"taxa\": 1498, \"credited_solely_by_the_rule\": 1222}, \"current\": {\"records\": 460, \"with_community_level\": 389, \"mixed\": 127, \"community_level_only\": 262, \"taxa\": 1498, \"credited_solely_by_the_rule\": 1222}}\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_batch6.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_site_audit_fixes.py", + "tests/test_causal_review_inventory.py", + "tests/test_rank_causal_graph_readiness.py", + "tests/test_network_auditor.py", + "tests/test_participating_taxa.py", + "tests/test_causal_descriptions_are_published.py", + "tests/test_published_pages_name_real_records.py", + "tests/test_reference_validator_actually_validates.py", + "tests/test_snippet_audit_artefact_classes.py", + "tests/test_reference_error_annotation.py", + "tests/test_community_level_connectivity_credit.py", + "tests/test_no_paywalled_text_in_repo.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/regressions.log", + "log_sha256": "6a5e36ea67b2fc2e454dc07c61493d038ce016ceba53894c4eab430adb7acde7", + "output_tail": "........................................................................ [ 14%]\n........................................................................ [ 29%]\n........................................................................ [ 44%]\n........................................................................ [ 58%]\n........................................................................ [ 73%]\n........................................................................ [ 88%]\n......................................................... [100%]\n489 passed in 185.39s (0:03:05)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch51.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/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_batch51.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch51/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-batch51/diff-check.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + } + ], + "limitations": [ + "Whole three records and all nine nodes/six arrows reviewed against complete cached primary main bodies, Methods and embedded captions. Ammonia main Table1 read. No original figure images, supplements, raw data or code audited.", + "Existing-structure repair only: nine nodes and six arrows retained; all arrows explicitly PARTIAL. No new causal structure or paid Edison job. Unrepresented proposed MAG1 carrier routes, AA6/Fenton chemistry and PTS/nutrient competition are acknowledged gaps, not new demonstrated mechanisms or an exhaustive expansion.", + "0B is one long-term culture, distinct from replicated YB. Bulk conversion and genomic potential do not resolve MAG flux, carrier partition, MAG2 pathway completeness or partner necessity. Canonical labels and CURIEs unchanged.", + "Switchgrass single sequential reactor, changed operational conditions, enriched fractions and annotation-based protein functions do not selectively establish niche partitioning, catalytic activity or methane-route shares. Cache abstract-only metadata does not describe its appended full-body content.", + "Core-20 positive qPCR transcripts and pathogen-load reduction retained; immune mediation remains PARTIAL. Existing W8131 caveat retained. Serial passage is separate from protective efficacy, and broad Bacteria grounding is not a complete strain/host/pathogen roster.", + "Non-graph blocks and all920 cache files preserved, not certified. SupportingReference coverage (#476), Linux DOI-cache lookup (#1091), selected-cache provenance (#1362) and unrelated writer-audit artifact issue (#1095) remain outside scope. Reference CLI Total checks counts reported issues, not executed checks.", + "Dedup checked806 all-state issue titles/bodies and25 ignored/hidden local files, not all comments or PR reviews. Closed401/366 concern taxonomy tooling, not these graph repairs. Self-adversarial review is not independent approval; protected-main merge and corpus completion remain pending.", + "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate.", + "CLI Total checks counts reported issues, not executed checks. Exit0 is no reported issues, not source verification. SupportingReference coverage (#476), Linux DOI-cache lookup (#1091) and selected-cache provenance (#1362) remain limitations." + ], + "snippet_counts_by_record": { + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml": { + "MATCH": 33, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml": { + "MATCH": 25, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml": { + "MATCH": 9, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 50, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "network_delta": { + "existing_findings_preserved": 34, + "added_findings": {}, + "removed_findings": {} + }, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1451, + "arrows": 666 + }, + "participant_census": { + "measurements": { + "baseline": { + "records": 460, + "with_community_level": 389, + "mixed": 127, + "community_level_only": 262, + "taxa": 1498, + "credited_solely_by_the_rule": 1222 + }, + "current": { + "records": 460, + "with_community_level": 389, + "mixed": 127, + "community_level_only": 262, + "taxa": 1498, + "credited_solely_by_the_rule": 1222 + } + }, + "interpretation": "Three ammonia pairwise and six community nodes retain their scopes. Switchgrass participants made explicit, with one registry entry added; census unchanged. No production matching or census-bound changes." + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1465, + "edges": 674, + "records_without_nodes": 8, + "records_without_edges": 151, + "review_status_counts": { + "needs_research": 14, + "pending": 267, + "reviewed": 179 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml": "ba9263151489fa4b4e0b3ee95eb3b9eadb3edbec4183c1ce04780a0d3474e00e", + "tests/test_causal_review_batch51.py": "976accbf36a466289e467ee8d82d4c058e29d280da217f61e632bccabc4248b6", + "tests/test_participating_taxa.py": "f990f589edb8aca67486464f99e18edfe185c6fd13f5c6c81dc36d007bd046f6", + "kb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml": "9c1ecf68184260fe68327386dea7b0ca0c056fb610975b21cb9cbd8352042f14", + "kb/communities/High_Solids_Switchgrass_Methanogenic_Microbiome.yaml": "89902153cb8c0086b9305528173ec5147c6dcc6c0fa0c9ba9980011a559b7aac", + "kb/communities/Honeybee_Core20_Defined_Microbiota.yaml": "9f955b7498ec80ad343cc5afc8ee5121fd0f9370d456bb94009088d8fcd6efae", + "reports/causal_graph_review/README.md": "e3c342a142ae58c193195452d9df52e4c871977c9e9ec749be5e7f7611ac0a46" + }, + "status": "verified_enrichments_core20_graph_repair", + "reference_validator_caveat": "CLI Total checks counts reported issues, not executed checks. Exit0 is no reported issues, not source verification. SupportingReference coverage (#476), Linux DOI-cache lookup (#1091) and selected-cache provenance (#1362) remain limitations.", + "pre_research_baseline": { + "base_commit": "fbd0ad08df5251ded93706420bf57d41d94ced64", + "base_tree": "f87fe4da5384c18d2d7f6d390a9d1f4c185a735f", + "research_worktree": "/private/tmp/communitymech-causal-batch50", + "checks": [ + { + "name": "rank", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch51/baseline-rank.log", + "sha256": "b5397a3090f7bc2afa835f9eca696b7334cd99cc9feab0f8b254fc9367519cee", + "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-batch51/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-batch51/baseline-network.log", + "sha256": "71a1e46fdd5d7c44e1766fabc85efb996c70258e3e64018891cfa94bb22fb13e", + "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-batch51/baseline-downstream.log", + "sha256": "a611faeb25ae08cd6711195b65f5b4f5c370fcb3c1c55d0c1a9a32ff5cca85a1", + "output_tail": ":146: downstream:\nkb/communities/Rumen_Substrate_Adapted_Lignocellulose_Enrichment_Consortia.yaml:328: downstream:\nkb/communities/Geobacter_Methanosarcina_DIET.yaml:133: downstream:\nkb/communities/Geobacter_Methanosarcina_DIET.yaml:217: downstream:\nkb/communities/SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml:141: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:311: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:365: downstream:\nkb/communities/Ferroplasma_Leptospirillum_Syntrophy.yaml:125: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:120: downstream:\nkb/communities/Synechococcus_Bacillus_SPC.yaml:152: downstream:\nkb/communities/At_RSPHERE_SynCom.yaml:207: downstream:\nkb/communities/At_RSPHERE_SynCom.yaml:249: downstream:\nkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml:342: downstream:\nkb/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml:381: downstream:\nkb/communities/Miscanthus_REE_Tailings_Nitrogen_SynCom10.yaml:135: downstream:\nkb/communities/Miscanthus_REE_Tailings_Nitrogen_SynCom10.yaml:173: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:134: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:189: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:281: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:401: downstream:\nkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml:223: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:138: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:182: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:232: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:135: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:177: downstream:\n" + } + ], + "baseline_sha256": "b502a3520c63a66e4a05ee0d718e130c59d70273a48986765edd5905263a5ea6" + } +} diff --git a/tests/test_causal_review_batch51.py b/tests/test_causal_review_batch51.py new file mode 100644 index 000000000..3c65629c4 --- /dev/null +++ b/tests/test_causal_review_batch51.py @@ -0,0 +1,113 @@ +"""Preserve positive outcomes without upgrading inferred mediators to proven ones.""" + +import hashlib +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-enrichments-core20-batch51.yaml" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + return ledger, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in ledger["records"]] + + +def canonical(doc, indices): + return [ + { + "preferred_term": doc["taxonomy"][i]["taxon_term"]["preferred_term"], + "term": doc["taxonomy"][i]["taxon_term"]["term"], + } + for i in indices + ] + + +def test_ammonia_canonical_directions_and_bulk_conversion_are_preserved(): + _, (doc, _, _) = records() + nodes = doc["ecological_interactions"] + for node, source, target in zip(nodes, [0, 1, 1], [1, 2, 3], strict=True): + assert node["scope"] == "PAIRWISE" and node["interaction_type"] == "SYNTROPHY" + assert node["source_taxon"] == canonical(doc, [source])[0] + assert node["target_taxon"] == canonical(doc, [target])[0] + assert node["description"].startswith("PARTIAL -") + assert node["evidence"][0]["supports"] == "PARTIAL" + assert nodes[0]["evidence"][-1]["supports"] == "SUPPORT" + assert nodes[0]["evidence"][-1]["evidence_source"] == "IN_VITRO" + assert "single long-term 0B" in nodes[0]["description"] + assert "without a completely annotated Wood-Ljungdahl pathway" in nodes[1]["description"] + assert "does not establish an improved" in nodes[2]["description"] + assert "distinct from acetoclastic" in nodes[2]["description"] + gap = doc["discussions"][0] + assert gap["discussion_id"] == "kg-high-ammonia-mag2-sao-inference" + assert gap["evidence"][0]["supports"] == "PARTIAL" + assert len(gap["attaches_to"]) == 3 + + +def test_switchgrass_participants_are_explicit_without_pairwise_niche_claims(): + _, (_, doc, _) = records() + for node, indices in zip(doc["ecological_interactions"], [range(5), [2, 3], [4]], strict=True): + assert node["scope"] == "COMMUNITY_LEVEL" + assert node["participating_taxa"] == canonical(doc, indices) + assert not {"source_taxon", "target_taxon", "interaction_type"} & node.keys() + conversion, profiles, methane = doc["ecological_interactions"] + assert "one sequentially operated reactor" in conversion["description"] + assert "Vitamins, medium optimization, mixing and adaptation" in conversion["description"] + assert "not direct catalytic activities" in conversion["description"] + assert profiles["name"] == "Fraction-Associated CAZyme Protein Profiles" + assert "protein adsorption" in profiles["description"] + assert methane["evidence"][0]["supports"] == "SUPPORT" + assert methane["evidence"][1]["supports"] == "PARTIAL" + assert "do not quantify its fraction" in methane["description"] + assert "do not mean absent turnover" in methane["description"] + + +def test_core20_retains_positive_transcripts_and_load_without_mediation(): + _, (_, _, doc) = records() + colonization, immune, reduction = doc["ecological_interactions"] + for node in [colonization, immune, reduction]: + assert node["participating_taxa"] == canonical(doc, [0]) + assert node["evidence"][0]["supports"] == "SUPPORT" + assert "W8131" in colonization["description"] + assert "not unchanged composition" in colonization["description"] + assert "separate passaging experiment" in colonization["description"] + assert "qPCR transcriptional responses" in immune["description"] + assert "not direct AMP protein" in immune["description"] + assert reduction["name"] == "Core-20-Associated Hafnia alvei Load Reduction" + assert immune["downstream"][0]["target"] == reduction["name"] + assert "78-fold relative to microbiota-free" in reduction["description"] + assert "normalized to host actin" in reduction["description"] + assert "does not isolate richness from strain identity" in reduction["description"] + + +def test_unrepresented_proposals_are_disclosed_without_new_structure(): + ledger, docs = records() + assert [len(d["ecological_interactions"]) for d in docs] == [3, 3, 3] + assert "Direct MAG1-to-methanogen" in docs[0]["discussions"][0]["rationale"] + assert "AA6 enrichment" in docs[1]["discussions"][0]["rationale"] + assert "PTS-linked immune stimulation" in docs[2]["discussions"][0]["rationale"] + assert "No new causal structure or paid Edison job" in ledger["limitations"][1] + + +def test_every_node_and_arrow_has_a_hash_bound_decision(): + ledger, docs = records() + assert ledger["independent_approval"] is False and ledger["issues"] == [1497, 1498, 1499] + assert ledger["issue_deduplication"]["ignored_hidden_local_search"] is True + for row, doc in zip(ledger["records"], docs, strict=True): + names = {n["name"] for n in doc["ecological_interactions"]} + assert {n["node"] for n in row["node_decisions"]} == names + assert len(row["edges_before"]) == len(row["edges_after"]) == 2 + assert len(row["retained_edge_decisions"]) == 2 + assert row["removed_node_decisions"] == row["removed_edge_decisions"] == [] + for node in doc["ecological_interactions"]: + for edge in node.get("downstream", []): + assert edge["target"] in names + assert edge["description"].startswith("PARTIAL -") + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + assert len(row["history_files"]) == 1 and (ROOT / row["history_files"][0]).is_file() + assert doc["curation_history"][-1]["llm_assisted"] is True + for gap in doc["discussions"]: + assert all(a.split("#", 1)[1] in names for a in gap["attaches_to"]) + for path, digest in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == digest diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py index 48be0ae98..5884f4ce6 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -286,6 +286,7 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "HAMBI_Carbon_Gradient_SynCom16.yaml", "Hanford_300_Area_Unconfined_Aquifer_Community.yaml", "Hexamine_Formaldehyde_Consortium_C6.yaml", + "High_Solids_Switchgrass_Methanogenic_Microbiome.yaml", "Honeybee_Core20_Defined_Microbiota.yaml", "Hualgayoc_Acidic_Sulfate_Reducing_AMD_Consortium.yaml", "Iberian_Pit_Lake_Stratified_Community.yaml",