From 44593064c0e3615bd5e0f45ef5854fd0aba41725 Mon Sep 17 00:00:00 2001 From: "marcin p. joachimiak" <4625870+realmarcin@users.noreply.github.com> Date: Mon, 5 Oct 2026 22:06:02 -0700 Subject: [PATCH] Bound predicted functions and proposed DIET while removing noncausal plasmid arrows --- .../Cyantraniliprole_Fahmy_Consortium_T4.html | 100 ++- ...opper_Sulphide_Bioleaching_Consortium.html | 171 ++-- ...nocellulose_to_Methane_DIET_Consortia.html | 77 +- .../2026-10-06T045256Z-codex-c09567.yaml | 27 + .../2026-10-06T045256Z-codex-f71387.yaml | 28 + .../2026-10-06T045256Z-codex-a98f56.yaml | 29 + .../Cyantraniliprole_Fahmy_Consortium_T4.yaml | 187 +++-- ...opper_Sulphide_Bioleaching_Consortium.yaml | 153 ++-- ...nocellulose_to_Methane_DIET_Consortia.yaml | 149 ++-- .../adversarial-review-20261006-batch28.yaml | 161 ++++ .../20261006-four-records-batch28.yaml | 281 +++++++ reports/causal_graph_review/inventory.tsv | 8 +- reports/causal_graph_review/summary.json | 8 +- .../validation-20261006-batch28.json | 790 ++++++++++++++++++ tests/test_causal_review_batch28.py | 155 ++++ tests/test_participating_taxa.py | 2 + 16 files changed, 2013 insertions(+), 313 deletions(-) create mode 100644 history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml create mode 100644 history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml create mode 100644 history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml create mode 100644 reports/causal_graph_review/adversarial-review-20261006-batch28.yaml create mode 100644 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml create mode 100644 reports/causal_graph_review/validation-20261006-batch28.json create mode 100644 tests/test_causal_review_batch28.py diff --git a/docs/communities/Cyantraniliprole_Fahmy_Consortium_T4.html b/docs/communities/Cyantraniliprole_Fahmy_Consortium_T4.html index 19046fe79..86948e99c 100644 --- a/docs/communities/Cyantraniliprole_Fahmy_Consortium_T4.html +++ b/docs/communities/Cyantraniliprole_Fahmy_Consortium_T4.html @@ -742,7 +742,7 @@

Ecological Interactions

Ecological interaction network for Cyantraniliprole Fahmy Consortium T4 - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (mutualism). + 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.
@@ -750,8 +750,8 @@

Ecological Interactions

Mutualism + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -760,13 +760,27 @@

Ecological Interactions

T4 distributed cyantraniliprole enzyme potential

- MUTUALISM
-

Bioinformatic prediction assigned T4 a distributed enzyme set covering the five enzyme classes the authors considered necessary for the cyantraniliprole degradation pathway. Individual predicted enzyme activities differed among strains, so the record captures this as community-level functional complementarity and not as a resolved pairwise metabolite exchange. -

+

Post-assay bioinformatic analysis assigns the T4 strains a combined repertoire spanning five enzyme classes proposed for cyantraniliprole transformation. These are predicted functions and pathway coverage, not measured enzyme expression, catalytic activity or necessary member-specific flux. The six-strain aggregate can have complementary potential without demonstrated reciprocal fitness benefits or resolved metabolite exchange; the simpler four-strain design suggested by the authors was not experimentally validated.

+ + + + +

Participating Taxa: + + Bacillus subtilis subsp. subtilis AZFS3, + Bacillus pumilus AZFS5, + Bacillus mojavensis AZFS15, + Bacillus paramycoides AZFS18, + + Pseudomonas aeruginosa KZFS4, + + Alcaligenes aquatilis KZFS11 + +

@@ -819,14 +833,28 @@

Evidence

HPLC-confirmed cyantraniliprole removal

- MUTUALISM
-

In simulated contaminated water amended with NPK and incubated at 30 C, T4 removed 98.27% of the 57.79 mg/L zero-day cyantraniliprole residue from the nominal 60 mg/L dose and left the lowest 20-day residual concentration among the tested consortia. -

+

In NPK-amended freshwater microcosms incubated at 30 C for 20 days, T4 augmentation was associated with HPLC-measured cyantraniliprole decline from a 57.79 mg/L zero-day residue to 1.00 mg/L, corresponding to 98.27% removal from the recovered starting residue after a nominal 60 mg/L spike. This positive treatment-level outcome occurred alongside a native water microbiota and exceeded uninoculated controls. Parent-compound loss does not establish complete mineralization, detoxification, member-specific contribution, reciprocal benefit or enzyme mediation.

+

Participating Taxa: + + Bacillus subtilis subsp. subtilis AZFS3, + + Bacillus pumilus AZFS5, + + Bacillus mojavensis AZFS15, + + Bacillus paramycoides AZFS18, + + Pseudomonas aeruginosa KZFS4, + + Alcaligenes aquatilis KZFS11 + +

+

Metabolites: @@ -887,13 +915,11 @@

Knowledge gaps & discussions (1)

KNOWLEDGE_GAP OPEN - Which T4 member enzyme activities are expressed during cyantraniliprole biodegradation, and which predicted transformation products are formed? - + Which T4 enzymes and members causally mediate parent-compound removal, and what transformation products and fitness effects result?

-

The 2026 study used bioinformatic prediction to map candidate cyantraniliprole-degradation enzymes and noted simpler transformation products, but it did not experimentally assign expressed enzymes or measured intermediates to specific T4 strains. -

+

The complete primary body supports positive HPLC parent-removal outcomes, growth and redox proxies, and post-assay predicted pathway coverage. It does not experimentally assign the predicted enzyme activities or intermediary flux to T4 strains. Selective member/enzyme perturbations, product identification and mass balance would test mediation and distinguish removal from mineralization or detoxification. Reciprocal fitness benefits and the suggested reduced consortium remain untested. The former prediction-to-removal workflow arrow is not restored. Salinity and temperature inconsistencies in non-graph metadata remain in #1371.

-

Attaches to: ecological_interactions#T4 distributed cyantraniliprole enzyme potential

+

Attaches to: ecological_interactions#T4 distributed cyantraniliprole enzyme potential, ecological_interactions#HPLC-confirmed cyantraniliprole removal

@@ -1573,7 +1599,7 @@

Evidence

(function() { var intId = "interaction:0"; - var intType = "MUTUALISM"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1601,11 +1627,32 @@

Evidence

+ var participantKeys = [ + + "Bacillus subtilis subsp. subtilis AZFS3", + + "Bacillus pumilus AZFS5", + + "Bacillus mojavensis AZFS15", + + "Bacillus paramycoides AZFS18", + + "Pseudomonas aeruginosa KZFS4", + + "Alcaligenes aquatilis KZFS11" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:1"; - var intType = "MUTUALISM"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1633,6 +1680,27 @@

Evidence

+ var participantKeys = [ + + "Bacillus subtilis subsp. subtilis AZFS3", + + "Bacillus pumilus AZFS5", + + "Bacillus mojavensis AZFS15", + + "Bacillus paramycoides AZFS18", + + "Pseudomonas aeruginosa KZFS4", + + "Alcaligenes aquatilis KZFS11" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); diff --git a/docs/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.html b/docs/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.html index bdddc3c98..567c172ae 100644 --- a/docs/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.html +++ b/docs/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.html @@ -646,7 +646,7 @@

Ecological Interactions

Ecological interaction network for Cyprus Copper Sulphide Bioleaching Consortium - 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 (competition, commensalism, 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.
@@ -654,18 +654,8 @@

Ecological Interactions

Competition -
-
- Commensalism -
-
- Niche partitioning + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -673,13 +663,24 @@

Ecological Interactions

-

Mineral-Type-Dependent Community Composition

- NICHE_PARTITIONING +

Mineral- and Fraction-Associated Community Profiles

-

Switching between chalcopyrite and chalcocite reshapes member abundances in the bioleaching consortium, reflecting differences in mineral structure and Fe availability.

+

Serially passaged SC3 enrichments on chalcopyrite and chalcocite showed different metagenomic community profiles, including differences between attached and planktonic fractions at eight weeks. The four named taxonomic groups are an aggregate view of the recovered organisms. These positive mineral-treatment and microhabitat observations support ecological selection, but the combined mineral-structure, dissolution and Fe-availability changes do not isolate Fe as the sole cause. Relative DNA profiles from pooled replicate samples and gene annotations do not directly measure each member's metabolic niche or flux.

+ + +

Participating Taxa: + Acidithiobacillus species, + + Leptospirillum ferrodiazotrophum, + + Rhodospirillales bacterium, + + Thermoplasmatales archaea + +

@@ -701,28 +702,7 @@

Mineral-Type-Dependent Community Composition

-

Biological Processes:

- - - - -
- Downstream Effects: - -
- → Plasmid-Borne Metal Resistance and Sulphur Metabolism -

Mineral type and planktonic-versus-attached partitioning define the acidophile consortium in which plasmids encoding metal resistance, sulphur metabolism, and CRISPR-Cas loci were recovered.

-
-
@@ -748,13 +728,20 @@

Evidence

-

Plasmid-Borne Metal Resistance and Sulphur Metabolism

- COMMENSALISM +

Plasmid-Encoded Functional Potential

-

Plasmid-encoded metal resistance pathways, sulphur metabolic capacities, and CRISPR-Cas loci are widespread in the bioleaching consortium and may modulate microbial activity during sulphide ore dissolution.

+

The metagenomic analysis recovered twelve distinct putative plasmids, some encoding predicted metal-resistance, sulphur-metabolism or CRISPR-associated functions. Named participants represent the explicitly Acidithiobacillus- and Leptospirillum-associated subset, not every host or every listed function. Copper-resistance candidates on an Alphaproteobacteria-related plasmid are not assigned specifically to the canonical Rhodospirillales member or to archaea. Gene content and phylogenetic association do not demonstrate expression, host benefit, horizontal transfer or a plasmid-caused increase in bioleaching.

+ +

Participating Taxa: + + Acidithiobacillus species, + + Leptospirillum ferrodiazotrophum + +

@@ -773,16 +760,6 @@

Plasmid-Borne Metal Resistance and Sulphur Metabolism

-
- Downstream Effects: - -
- → Intra-Plasmid CRISPR Competition -

CRISPR-Cas loci were among the plasmid-borne functions, and the Acidithiobacillus Plasmid_56_509 CRISPR spacers provided the specific evidence for plasmid-plasmid competition within the consortium.

-
- -
-

Evidence

@@ -794,7 +771,7 @@

Evidence

PMID:41381092 - - SUPPORT (IN_VITRO) + - SUPPORT (COMPUTATIONAL)
"encoded metal resistance pathways, sulphur metabolic capacities and CRISPR-Cas loci"
@@ -807,28 +784,18 @@

Evidence

-

Intra-Plasmid CRISPR Competition

- COMPETITION +

Putative Acidithiobacillus Plasmid CRISPR Interference

-

CRISPR spacers on an Acidithiobacillus plasmid target plasmid- borne conjugal transfer genes from the same genus, indicating intra-plasmid competition among co-resident mobile elements.

- +

HYPOTHESIZED - CRISPR spacers on Acidithiobacillus-associated Plasmid_56_509 match two unbinned Acidithiobacillus-like contigs containing conjugation-related genes. This supports a putative plasmid interference model in that host group. The source-only scope records the host-associated molecular capability, not a taxon-to-taxon competitive relationship. Sequence matches do not demonstrate target cleavage, blocked conjugation, plasmid exclusion, confirmed co-residence in a cell or reciprocal harm among the microbial members.

+

Source Taxon: Acidithiobacillus species

-

Biological Processes:

-
    - -
  • - biological process involved in interspecies interaction between organisms - (GO:0044419) -
  • -
@@ -843,7 +810,7 @@

Evidence

PMID:41381092 - - SUPPORT (IN_VITRO) + - PARTIAL (COMPUTATIONAL)
"CRISPR spacers on an Acidithiobacillus plasmid targeted plasmid-borne conjugal transfer genes found in the same genus, likely belonging to another plasmid, evidence of intra-plasmid competition"
@@ -859,6 +826,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which mineral-associated functions and plasmid activities causally alter SC3 bioleaching? +

+

The main body and tables distinguish measured composition/solution chemistry from predicted organism/plasmid functions. The two removed arrows were a recovery-context link and a general-repertoire-to-example link, not causal dependencies. Plasmid perturbations, expression/flux assays, host resolution and conjugation/interference experiments would test the proposed functions. Relative abundance and spacer matches alone cannot assign benefits or competition. The literature-derived sulphur pathway diagram is not a measured organism-resolved exchange map. No figure images or supplementary files were inspected. Non-graph mineral oxidation-state and Fe-specific attribution wording remains in #1372.

+ +

Attaches to: ecological_interactions#Mineral- and Fraction-Associated Community Profiles, ecological_interactions#Plasmid-Encoded Functional Potential, ecological_interactions#Putative Acidithiobacillus Plasmid CRISPR Interference

+ + + + +
+ +
@@ -1108,7 +1094,7 @@

Environmental Factors

(function() { var intId = "interaction:0"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1121,15 +1107,11 @@

Environmental Factors

var processes = []; - - processes.push("biological process involved in interspecies interaction between organisms"); - - var evidenceCount = 1; nodes.push({ id: intId, - label: "Mineral-Type-Dependent Community Composition", + label: "Mineral- and Fraction-Associated Community Profiles", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1140,11 +1122,28 @@

Environmental Factors

+ var participantKeys = [ + + "Acidithiobacillus species", + + "Leptospirillum ferrodiazotrophum", + + "Rhodospirillales bacterium", + + "Thermoplasmatales archaea" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:1"; - var intType = "COMMENSALISM"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1157,7 +1156,7 @@

Environmental Factors

nodes.push({ id: intId, - label: "Plasmid-Borne Metal Resistance and Sulphur Metabolism", + label: "Plasmid-Encoded Functional Potential", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1168,24 +1167,33 @@

Environmental Factors

+ var participantKeys = [ + + "Acidithiobacillus species", + + "Leptospirillum ferrodiazotrophum" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:2"; - var intType = "COMPETITION"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; - - processes.push("biological process involved in interspecies interaction between organisms"); - - var evidenceCount = 1; nodes.push({ id: intId, - label: "Intra-Plasmid CRISPR Competition", + label: "Putative Acidithiobacillus Plasmid CRISPR Interference", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1194,6 +1202,11 @@

Environmental Factors

}); + var srcKey = "Acidithiobacillus species"; + if (taxonNodeIds[srcKey]) { + links.push({ source: taxonNodeIds[srcKey], target: intId }); + } + })(); diff --git a/docs/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.html b/docs/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.html index 8026d0ba3..3f6fa1efd 100644 --- a/docs/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.html +++ b/docs/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.html @@ -627,16 +627,21 @@

Ecological Interactions

aria-hidden="true" data-symbol="symbolTriangle" data-color="#7f30cf"> Syntrophy
+
+ Other +
-

DIET syntrophy from S. globosa to M. mazei

+

Proposed S. globosa to M. mazei DIET Syntrophy

SYNTROPHY
-

Sphaerochaeta globosa metabolizes lignocellulose-derived intermediates (xylose, glucose, pyruvate, acetate) and transfers electrons via direct interspecies electron transfer to Methanosarcina mazei, which uses them to reduce CO2 to methane.

+

HYPOTHESIZED - Sphaerochaeta globosa is proposed to participate in direct electron delivery to Methanosarcina mazei in the two simplified lignocellulose-digesting consortia. The abstract links the dominant bacterial pair collectively to intermediates including xylose, glucose, pyruvate and acetate; it does not assign every substrate or flux separately to this donor. Community conductivity, cytochrome-associated spectra and metagenomic profiles support the model but do not distinguish this route from hydrogen/formate transfer, establish obligate donor dependence, or trace direct electron delivery by this particular partner.

Source Taxon: Sphaerochaeta globosa

@@ -683,9 +688,8 @@

DIET syntrophy from S. globosa to M. mazei

Downstream Effects:
- → DIET-Driven CO2 Reduction to Methane -

Electron transfer from S. globosa to M. mazei contributes reducing power for methanogenic CO2 reduction in the DIETsimp consortia. -

+ → Proposed M. mazei CO2 Reduction to Methane +

HYPOTHESIZED - direct electron delivery by Sphaerochaeta globosa could supply reducing equivalents for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution but does not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this arrow does not assert a dependency between the two bacterial donors.

@@ -701,7 +705,7 @@

Evidence

PMID:42229598 - - SUPPORT (IN_VITRO) + - PARTIAL (OTHER)
"S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate and acetate) and transferred electrons to M. mazei for the reduction of CO2 to methane"
@@ -714,10 +718,10 @@

Evidence

-

DIET syntrophy from C. aceticum to M. mazei

+

Proposed C. aceticum to M. mazei DIET Syntrophy

SYNTROPHY
-

Clostridium aceticum (Andreesenella acetica) metabolizes lignocellulose-derived intermediates (xylose, glucose, pyruvate, acetate) and transfers electrons via direct interspecies electron transfer to Methanosarcina mazei, which uses them to reduce CO2 to methane.

+

HYPOTHESIZED - Clostridium aceticum (Andreesenella acetica) is proposed to participate in direct electron delivery to Methanosarcina mazei in the two simplified lignocellulose-digesting consortia. The abstract links the dominant bacterial pair collectively to intermediates including xylose, glucose, pyruvate and acetate; it does not assign every substrate or flux separately to this donor. Community conductivity, cytochrome-associated spectra and metagenomic profiles support the model but do not distinguish this route from hydrogen/formate transfer, establish obligate donor dependence, or trace direct electron delivery by this particular partner.

Source Taxon: Clostridium aceticum

@@ -764,9 +768,8 @@

DIET syntrophy from C. aceticum to M. mazei

Downstream Effects:
- → DIET-Driven CO2 Reduction to Methane -

Electron transfer from C. aceticum to M. mazei contributes reducing power for methanogenic CO2 reduction in the DIETsimp consortia. -

+ → Proposed M. mazei CO2 Reduction to Methane +

HYPOTHESIZED - direct electron delivery by Clostridium aceticum (Andreesenella acetica) could supply reducing equivalents for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution but does not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this arrow does not assert a dependency between the two bacterial donors.

@@ -782,7 +785,7 @@

Evidence

PMID:42229598 - - SUPPORT (IN_VITRO) + - PARTIAL (OTHER)
"S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate and acetate) and transferred electrons to M. mazei for the reduction of CO2 to methane"
@@ -795,12 +798,12 @@

Evidence

-

DIET-Driven CO2 Reduction to Methane

- SYNTROPHY +

Proposed M. mazei CO2 Reduction to Methane

-

Methanosarcina mazei accepts electrons transferred from the dominant electroactive bacteria and uses them to reduce carbon dioxide to methane in the simplified lignocellulose-degrading DIET consortia. -

+

HYPOTHESIZED - the proposed model assigns CO2 reduction to methane to dominant Methanosarcina mazei using electrons attributed to the bacterial partners. This is an intrinsic methanogen step, not a separate whole-community syntrophic relationship. Lower-pH conductivity and enhanced cytochrome-associated electrochemical FTIR signals are positive community-level observations consistent with the DIET model, but do not measure the M. mazei-specific contribution or exclude alternative electron carriers and methanogenic routes. Reported methane-performance improvements are not selective tests of this mechanism.

+ +

Source Taxon: Methanosarcina mazei

@@ -844,13 +847,26 @@

Evidence

PMID:42229598 - - SUPPORT (IN_VITRO) + - PARTIAL (OTHER)
"transferred electrons to M. mazei for the reduction of CO2 to methane"
+
  • +
    + + PMID:42229598 + + - PARTIAL (IN_VITRO) +
    + +
    "Lowering pH dramatically increased conductivity of both DIETsimp"
    + +
  • + @@ -867,13 +883,11 @@

    Knowledge gaps & discussions (1)

    KNOWLEDGE_GAP OPEN - Are the S. globosa→M. mazei and C. aceticum→M. mazei DIET pathways experimentally validated (direct interspecies electron transfer vs H2/formate mediation), and is there any causal dependency between the two parallel donor→methanogen relationships? - + Do the proposed S. globosa-to-M. mazei and C. aceticum-to-M. mazei routes involve direct electron transfer rather than hydrogen/formate mediation, and how much methane do they support?

    -

    An Edison causal-graph pass (PMID:42229598) found no justifiable directed causal edge for this consortium: both interactions are recorded as "Proposed DIET pathway", the primary full text was inaccessible, and no perturbation (donor-removal, inhibitor, mono-/co-culture, or knockout) evidence was retrieved. The source supports two parallel donor→methanogen proposals, not a causal dependency of one on the other, so no `downstream` edge was added. Neutral-red-mediated electron delivery to M. mazei reported in a different system must not be imported here without exact-system verification. -

    +

    The complete primary abstract contains positive pH-dependent conductivity, cytochrome-associated spectral and metagenomic observations, but explicitly calls the methanogenic route proposed. Full Methods/Results, donor-resolved tracing and selective perturbations were not available in this review. Both existing arrows are retained as hypotheses connecting parallel donor proposals to the methanogen's intrinsic step; neither makes one donor relationship depend on the other. This corrects the older no-downstream wording without asserting new structure. Neutral-red-mediated electron delivery or other-system demonstrations must not be imported as exact-system evidence. Non-graph taxon roles, mechanism language and performance-versus-protocol distinctions remain in #1373.

    -

    Attaches to: ecological_interactions#DIET syntrophy from S. globosa to M. mazei, ecological_interactions#DIET syntrophy from C. aceticum to M. mazei

    +

    Attaches to: ecological_interactions#Proposed S. globosa to M. mazei DIET Syntrophy, ecological_interactions#Proposed C. aceticum to M. mazei DIET Syntrophy, ecological_interactions#Proposed M. mazei CO2 Reduction to Methane

    @@ -882,7 +896,7 @@

    - IN_VITRO + OTHER PARTIAL @@ -892,7 +906,7 @@

    during anaerobic digestion of lignocellulose that S. globosa and C. aceticum metabolized intermediates

    -

    The consortium role is stated at the level of intermediate metabolism / proposed DIET, without a validated or perturbation-tested causal mechanism — the basis for the knowledge gap.

    +

    This excerpt belongs to the abstract's explicitly proposed mechanism. It does not invalidate the positive community measurements, but cannot establish partner-specific direct transfer or its share of methane production.

    @@ -1108,7 +1122,7 @@

    Evidence

    nodes.push({ id: intId, - label: "DIET syntrophy from S. globosa to M. mazei", + label: "Proposed S. globosa to M. mazei DIET Syntrophy", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1156,7 +1170,7 @@

    Evidence

    nodes.push({ id: intId, - label: "DIET syntrophy from C. aceticum to M. mazei", + label: "Proposed C. aceticum to M. mazei DIET Syntrophy", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1181,7 +1195,7 @@

    Evidence

    (function() { var intId = "interaction:2"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1196,11 +1210,11 @@

    Evidence

    processes.push("methanogenesis"); - var evidenceCount = 1; + var evidenceCount = 2; nodes.push({ id: intId, - label: "DIET-Driven CO2 Reduction to Methane", + label: "Proposed M. mazei CO2 Reduction to Methane", type: "interaction", interactionType: intType, metabolites: metabolites, @@ -1209,6 +1223,11 @@

    Evidence

    }); + var srcKey = "Methanosarcina mazei"; + if (taxonNodeIds[srcKey]) { + links.push({ source: taxonNodeIds[srcKey], target: intId }); + } + })(); diff --git a/history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml b/history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml new file mode 100644 index 000000000..1bdd51b77 --- /dev/null +++ b/history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml @@ -0,0 +1,27 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml + slug: Cyantraniliprole_Fahmy_Consortium_T4 +session: + id: 2026-10-06T045256Z-codex-c09567 + timestamp: '2026-10-06T04:52:56Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1368 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain predicted community repertoire coverage without assigning mutual fitness, + measured enzyme activity or minimum-member necessity.; Retain the positive HPLC parent-removal + outcome and recovery-based denominator while distinguishing native-community context, + mineralization and causal mediation. + details: Source-based self-adversarial qualification/removal, no new nodes or arrows. reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml diff --git a/history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml b/history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml new file mode 100644 index 000000000..976749ef5 --- /dev/null +++ b/history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml + slug: Cyprus_Copper_Sulphide_Bioleaching_Consortium +session: + id: 2026-10-06T045256Z-codex-f71387 + timestamp: '2026-10-06T04:52:56Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1369 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain positive mineral/fraction-associated composition observations without isolating + Fe or claiming measured niche-specific metabolic flux.; Retain the annotated plasmid repertoire + with a known-host subset and unresolved hosts, not commensal fitness or expressed biochemical + effects.; Represent the putative CRISPR interference mechanism as host-associated source-only + capability, not observed taxon competition or confirmed plasmid co-residence. + details: Source-based self-adversarial qualification/removal, no new nodes or arrows. reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml diff --git a/history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml b/history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml new file mode 100644 index 000000000..cfc564a62 --- /dev/null +++ b/history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml @@ -0,0 +1,29 @@ +history_version: 1 +target: + kind: record + path: kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml + slug: DIETsimp_Lignocellulose_to_Methane_DIET_Consortia +session: + id: 2026-10-06T045256Z-codex-a98f56 + timestamp: '2026-10-06T04:52:56Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1370 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the explicitly proposed S. globosa donor relationship and qualified arrow + without assigning every substrate, a resolved carrier or obligatory dependence.; Retain + the parallel proposed C. aceticum donor relationship, canonical synonym grounding and + qualified arrow without a donor-to-donor causal dependency.; Represent the proposed intrinsic + M. mazei CO2-reduction step source-only; preserve positive whole-consortium conductivity/spectral + evidence without taxon-specific flux or selective performance attribution. + details: Source-based self-adversarial qualification/removal, no new nodes or arrows. reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml diff --git a/kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml b/kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml index 554985fea..9dfad9ed7 100644 --- a/kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml +++ b/kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml @@ -183,13 +183,11 @@ taxonomy: consortium and reports its sequence accession. ecological_interactions: - name: T4 distributed cyantraniliprole enzyme potential - description: > - Bioinformatic prediction assigned T4 a distributed enzyme set covering the - five enzyme classes the authors considered necessary for the cyantraniliprole - degradation pathway. Individual predicted enzyme activities differed among - strains, so the record captures this as community-level functional - complementarity and not as a resolved pairwise metabolite exchange. - interaction_type: MUTUALISM + description: Post-assay bioinformatic analysis assigns the T4 strains a combined repertoire spanning five enzyme + classes proposed for cyantraniliprole transformation. These are predicted functions and pathway coverage, not + measured enzyme expression, catalytic activity or necessary member-specific flux. The six-strain aggregate can + have complementary potential without demonstrated reciprocal fitness benefits or resolved metabolite exchange; + the simpler four-strain design suggested by the authors was not experimentally validated. scope: COMMUNITY_LEVEL metabolites: - preferred_term: cyantraniliprole @@ -205,31 +203,55 @@ ecological_interactions: - reference: PMID:42354927 supports: SUPPORT evidence_source: COMPUTATIONAL - snippet: > - While T3 had 24 enzymes and T4 had 22, the critical factor was that both - contained all five key enzymes necessary for the complete degradation - pathway, most notably including the enzyme catechol O-methyltransferase + snippet: 'While T3 had 24 enzymes and T4 had 22, the critical factor was that both contained all five key enzymes + necessary for the complete degradation pathway, most notably including the enzyme catechol O-methyltransferase (COMT). - explanation: > - Supports predicted coverage of all five cyantraniliprole-degradation - enzyme classes by the T4 consortium without proving pairwise metabolite - exchange. + + ' + explanation: Supports the authors' predicted repertoire coverage, not measured enzyme activity, confirmed pathway + intermediates, mutualism or an experimentally established four-strain minimum. Table 8 is explicitly bioinformatic + despite its gene-activation wording. computational_provenance: prediction_type: OTHER tools: - tool_name: EAWAG-BBD pathway prediction system role: predicted cyantraniliprole transformation pathway and associated enzyme coverage - parameters: > - Pathway and enzyme-activity prediction used to compare candidate enzyme - coverage across Consortia No. 1-4; tool version and sequence-search - thresholds were not reported in the source paper. + parameters: 'Pathway and enzyme-activity prediction used to compare candidate enzyme coverage across Consortia + No. 1-4; tool version and sequence-search thresholds were not reported in the source paper. + + ' + participating_taxa: + - preferred_term: Bacillus subtilis subsp. subtilis AZFS3 + term: + id: NCBITaxon:135461 + label: Bacillus subtilis subsp. subtilis + - preferred_term: Bacillus pumilus AZFS5 + term: + id: NCBITaxon:1408 + label: Bacillus pumilus + - preferred_term: Bacillus mojavensis AZFS15 + term: + id: NCBITaxon:72360 + label: Bacillus mojavensis + - preferred_term: Bacillus paramycoides AZFS18 + term: + id: NCBITaxon:2026194 + label: Bacillus paramycoides + - preferred_term: Pseudomonas aeruginosa KZFS4 + term: + id: NCBITaxon:287 + label: Pseudomonas aeruginosa + - preferred_term: Alcaligenes aquatilis KZFS11 + term: + id: NCBITaxon:323284 + label: Alcaligenes aquatilis - name: HPLC-confirmed cyantraniliprole removal - description: > - In simulated contaminated water amended with NPK and incubated at 30 C, T4 - removed 98.27% of the 57.79 mg/L zero-day cyantraniliprole residue from the - nominal 60 mg/L dose and left the lowest 20-day residual concentration among - the tested consortia. - interaction_type: MUTUALISM + description: In NPK-amended freshwater microcosms incubated at 30 C for 20 days, T4 augmentation was associated + with HPLC-measured cyantraniliprole decline from a 57.79 mg/L zero-day residue to 1.00 mg/L, corresponding to + 98.27% removal from the recovered starting residue after a nominal 60 mg/L spike. This positive treatment-level + outcome occurred alongside a native water microbiota and exceeded uninoculated controls. Parent-compound loss + does not establish complete mineralization, detoxification, member-specific contribution, reciprocal benefit + or enzyme mediation. scope: COMMUNITY_LEVEL metabolites: - preferred_term: cyantraniliprole @@ -245,16 +267,40 @@ ecological_interactions: - reference: PMID:42354927 supports: SUPPORT evidence_source: IN_VITRO - snippet: > - after 20 days of incubation at 30 °C, as confirmed by HPLC analysis, with - the six-strain consortium (T4), comprising Bacillus subtilis subsp. - subtilis AZFS3, Bacillus pumilus AZFS5, Bacillus mojavensis AZFS15, - Bacillus paramycoides AZFS18, Pseudomonas aeruginosa KZFS4, and - Alcaligenes aquatilis KZFS11, demonstrating the highest removal efficiency - (98.27%) and reducing the pesticide concentration to 1.00 mg/L - explanation: > - Supports the exact T4 composition, the 20-day HPLC assay, and the - 98.27%/1.00 mg/L HPLC endpoint in simulated contaminated water. + snippet: 'after 20 days of incubation at 30 °C, as confirmed by HPLC analysis, with the six-strain consortium + (T4), comprising Bacillus subtilis subsp. subtilis AZFS3, Bacillus pumilus AZFS5, Bacillus mojavensis AZFS15, + Bacillus paramycoides AZFS18, Pseudomonas aeruginosa KZFS4, and Alcaligenes aquatilis KZFS11, demonstrating + the highest removal efficiency (98.27%) and reducing the pesticide concentration to 1.00 mg/L + + ' + explanation: Supports the six-strain treatment and measured HPLC endpoint. The percentage uses Table 7 zero-day + recovery, not the nominal dose. Native-water controls and the predictive pathway analysis do not establish + member-resolved causal flux or mutualism. + participating_taxa: + - preferred_term: Bacillus subtilis subsp. subtilis AZFS3 + term: + id: NCBITaxon:135461 + label: Bacillus subtilis subsp. subtilis + - preferred_term: Bacillus pumilus AZFS5 + term: + id: NCBITaxon:1408 + label: Bacillus pumilus + - preferred_term: Bacillus mojavensis AZFS15 + term: + id: NCBITaxon:72360 + label: Bacillus mojavensis + - preferred_term: Bacillus paramycoides AZFS18 + term: + id: NCBITaxon:2026194 + label: Bacillus paramycoides + - preferred_term: Pseudomonas aeruginosa KZFS4 + term: + id: NCBITaxon:287 + label: Pseudomonas aeruginosa + - preferred_term: Alcaligenes aquatilis KZFS11 + term: + id: NCBITaxon:323284 + label: Alcaligenes aquatilis environmental_factors: - name: Simulated-water cyantraniliprole removal value: '98.27' @@ -488,29 +534,30 @@ external_resources: explanation: Links the cached primary publication to the T4 cyantraniliprole record. discussions: - discussion_id: cyantraniliprole_t4_expressed_enzymes - prompt: > - Which T4 member enzyme activities are expressed during cyantraniliprole - biodegradation, and which predicted transformation products are formed? + prompt: Which T4 enzymes and members causally mediate parent-compound removal, and what transformation products + and fitness effects result? kind: KNOWLEDGE_GAP status: OPEN attaches_to: - ecological_interactions#T4 distributed cyantraniliprole enzyme potential - rationale: > - The 2026 study used bioinformatic prediction to map candidate - cyantraniliprole-degradation enzymes and noted simpler transformation - products, but it did not experimentally assign expressed enzymes or measured - intermediates to specific T4 strains. + - ecological_interactions#HPLC-confirmed cyantraniliprole removal + rationale: 'The complete primary body supports positive HPLC parent-removal outcomes, growth and redox proxies, + and post-assay predicted pathway coverage. It does not experimentally assign the predicted enzyme activities + or intermediary flux to T4 strains. Selective member/enzyme perturbations, product identification and mass balance + would test mediation and distinguish removal from mineralization or detoxification. Reciprocal fitness benefits + and the suggested reduced consortium remain untested. The former prediction-to-removal workflow arrow is not + restored. Salinity and temperature inconsistencies in non-graph metadata remain in #1371.' evidence: - reference: PMID:42354927 supports: SUPPORT evidence_source: IN_VITRO - snippet: > - To facilitate practical bioremediation, subsequent studies should - prioritize the characterization of bacterial enzymes that degrade - cyantraniliprole. - explanation: > - Supports leaving strain-specific cyantraniliprole enzyme expression as an - open mechanistic gap. + snippet: 'To facilitate practical bioremediation, subsequent studies should prioritize the characterization + of bacterial enzymes that degrade cyantraniliprole. + + ' + explanation: 'Supports leaving strain-specific cyantraniliprole enzyme expression as an open mechanistic gap. + + ' posed_by: codex posed_date: '2026-09-13' metals_present: [] @@ -521,29 +568,35 @@ curation_history: - timestamp: '2026-09-13T23:13:25Z' curator: codex action: CREATE_COMMUNITY - changes: > - Created CommunityMech:000369 for the six-member T4 Fahmy cyantraniliprole - bioremediation consortium from PMID:42354927, including exact strain - membership, HPLC simulated-water cyantraniliprole removal, DCPIP and diamide - growth assays, EAWAG-BBD pathway prediction evidence, microcosm culture - conditions, and an explicit open question for strain-specific expressed - enzymes. + changes: 'Created CommunityMech:000369 for the six-member T4 Fahmy cyantraniliprole bioremediation consortium + from PMID:42354927, including exact strain membership, HPLC simulated-water cyantraniliprole removal, DCPIP + and diamide growth assays, EAWAG-BBD pathway prediction evidence, microcosm culture conditions, and an explicit + open question for strain-specific expressed enzymes. + + ' llm_assisted: true - timestamp: '2026-09-13T23:22:59Z' curator: codex action: UPDATE_COMMUNITY - changes: > - Resolved adversarial-review issues #869 and #870 by shortening a cached HPLC - snippet that flattened 10^7 CFU/mL to 107 CFU/mL in rendered evidence and by - clarifying that the 98.27% T4 removal value is calculated from the 57.79 - mg/L zero-day residue in the nominal 60 mg/L microcosm. + changes: 'Resolved adversarial-review issues #869 and #870 by shortening a cached HPLC snippet that flattened + 10^7 CFU/mL to 107 CFU/mL in rendered evidence and by clarifying that the 98.27% T4 removal value is calculated + from the 57.79 mg/L zero-day residue in the nominal 60 mg/L microcosm. + + ' llm_assisted: true - timestamp: '2026-10-02T05:45:52Z' curator: codex action: PRUNE_CAUSAL_GRAPH_WORKFLOW_EDGES - changes: > - Removed the downstream edge from T4 predicted cyantraniliprole enzyme - potential to HPLC-confirmed cyantraniliprole removal because the edge - described post-assay bioinformatic interpretation rather than a demonstrated - causal transition from predicted enzyme annotations to pesticide removal. + changes: 'Removed the downstream edge from T4 predicted cyantraniliprole enzyme potential to HPLC-confirmed cyantraniliprole + removal because the edge described post-assay bioinformatic interpretation rather than a demonstrated causal + transition from predicted enzyme annotations to pesticide removal. + + ' + llm_assisted: true +- timestamp: '2026-10-06T04:52:55Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain predicted community repertoire coverage without assigning mutual fitness, measured enzyme activity + or minimum-member necessity.; Retain the positive HPLC parent-removal outcome and recovery-based denominator + while distinguishing native-community context, mineralization and causal mediation. Issue #1368; reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml' llm_assisted: true diff --git a/kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml b/kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml index 06058c4af..aee9db6d5 100644 --- a/kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml +++ b/kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml @@ -149,91 +149,106 @@ taxonomy: snippet: Thermoplasmatales archaea explanation: Supports the Thermoplasmatales archaeal member. ecological_interactions: -- name: Mineral-Type-Dependent Community Composition - description: Switching between chalcopyrite and chalcocite reshapes member - abundances in the bioleaching consortium, reflecting differences in mineral - structure and Fe availability. - interaction_type: NICHE_PARTITIONING +- name: Mineral- and Fraction-Associated Community Profiles + description: Serially passaged SC3 enrichments on chalcopyrite and chalcocite showed different metagenomic community + profiles, including differences between attached and planktonic fractions at eight weeks. The four named taxonomic + groups are an aggregate view of the recovered organisms. These positive mineral-treatment and microhabitat observations + support ecological selection, but the combined mineral-structure, dissolution and Fe-availability changes do + not isolate Fe as the sole cause. Relative DNA profiles from pooled replicate samples and gene annotations do + not directly measure each member's metabolic niche or flux. scope: COMMUNITY_LEVEL metabolites: - preferred_term: chalcopyrite term: id: CHEBI:86202 label: chalcopyrite - notes: Fe-bearing CuFeS2 mineral used to establish and propagate the - consortium before substrate switching. + notes: Fe-bearing CuFeS2 mineral used to establish and propagate the consortium before substrate switching. - preferred_term: chalcocite term: id: CHEBI:51114 label: copper(I) sulfide - notes: Fe-free Cu2S mineral used to test how mineral structure and - mineral-derived Fe availability shift community composition. + notes: Fe-free Cu2S mineral used to test how mineral structure and mineral-derived Fe availability shift community + composition. - preferred_term: iron(2+) term: id: CHEBI:29033 label: iron(2+) - notes: Ferrous iron whose mineral-derived availability differs between - chalcopyrite and chalcocite enrichments. - biological_processes: - - preferred_term: biological process involved in interspecies interaction between organisms - term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms - downstream: - - target: Plasmid-Borne Metal Resistance and Sulphur Metabolism - description: Mineral type and planktonic-versus-attached partitioning define - the acidophile consortium in which plasmids encoding metal resistance, - sulphur metabolism, and CRISPR-Cas loci were recovered. + notes: Ferrous iron whose mineral-derived availability differs between chalcopyrite and chalcocite enrichments. evidence: - reference: PMID:41381092 supports: SUPPORT evidence_source: IN_VITRO - snippet: trends in abundance patterns were observed with mineralogy and - surface-attached versus planktonic conditions - explanation: Supports mineralogy and lifestyle as drivers of abundance - patterns. -- name: Plasmid-Borne Metal Resistance and Sulphur Metabolism - description: Plasmid-encoded metal resistance pathways, sulphur metabolic - capacities, and CRISPR-Cas loci are widespread in the bioleaching consortium - and may modulate microbial activity during sulphide ore dissolution. - interaction_type: COMMENSALISM + snippet: trends in abundance patterns were observed with mineralogy and surface-attached versus planktonic conditions + explanation: Supports observed composition patterns under the mineral and fraction comparisons, not a selectively + demonstrated Fe-only mechanism or experimentally resolved metabolic niche partitioning. + participating_taxa: + - preferred_term: Acidithiobacillus species + term: + id: NCBITaxon:119977 + label: Acidithiobacillus + - preferred_term: Leptospirillum ferrodiazotrophum + term: + id: NCBITaxon:412449 + label: Leptospirillum ferrodiazotrophum + - preferred_term: Rhodospirillales bacterium + term: + id: NCBITaxon:204441 + label: Rhodospirillales + - preferred_term: Thermoplasmatales archaea + term: + id: NCBITaxon:2301 + label: Thermoplasmatales +- name: Plasmid-Encoded Functional Potential + description: The metagenomic analysis recovered twelve distinct putative plasmids, some encoding predicted metal-resistance, + sulphur-metabolism or CRISPR-associated functions. Named participants represent the explicitly Acidithiobacillus- + and Leptospirillum-associated subset, not every host or every listed function. Copper-resistance candidates + on an Alphaproteobacteria-related plasmid are not assigned specifically to the canonical Rhodospirillales member + or to archaea. Gene content and phylogenetic association do not demonstrate expression, host benefit, horizontal + transfer or a plasmid-caused increase in bioleaching. scope: COMMUNITY_LEVEL biological_processes: - preferred_term: sulfur compound metabolic process term: id: GO:0006790 label: sulfur compound metabolic process - downstream: - - target: Intra-Plasmid CRISPR Competition - description: CRISPR-Cas loci were among the plasmid-borne functions, and the - Acidithiobacillus Plasmid_56_509 CRISPR spacers provided the specific - evidence for plasmid-plasmid competition within the consortium. evidence: - reference: PMID:41381092 supports: SUPPORT - evidence_source: IN_VITRO - snippet: encoded metal resistance pathways, sulphur metabolic capacities and - CRISPR-Cas loci - explanation: Supports the plasmid-encoded functional repertoire. -- name: Intra-Plasmid CRISPR Competition - description: CRISPR spacers on an Acidithiobacillus plasmid target plasmid- - borne conjugal transfer genes from the same genus, indicating intra-plasmid - competition among co-resident mobile elements. - interaction_type: COMPETITION - scope: COMMUNITY_LEVEL - biological_processes: - - preferred_term: biological process involved in interspecies interaction between organisms + evidence_source: COMPUTATIONAL + snippet: encoded metal resistance pathways, sulphur metabolic capacities and CRISPR-Cas loci + explanation: Supports sequence-annotated functional potential in some plasmids, not expressed activity or commensal + fitness. Host associations and functions are distinct annotations; the unresolved Alphaproteobacteria-linked + plasmid is not grounded to a specific Rhodospirillales taxon. + participating_taxa: + - preferred_term: Acidithiobacillus species term: - id: GO:0044419 - label: biological process involved in interspecies interaction between organisms + id: NCBITaxon:119977 + label: Acidithiobacillus + - preferred_term: Leptospirillum ferrodiazotrophum + term: + id: NCBITaxon:412449 + label: Leptospirillum ferrodiazotrophum +- name: Putative Acidithiobacillus Plasmid CRISPR Interference + description: HYPOTHESIZED - CRISPR spacers on Acidithiobacillus-associated Plasmid_56_509 match two unbinned Acidithiobacillus-like + contigs containing conjugation-related genes. This supports a putative plasmid interference model in that host + group. The source-only scope records the host-associated molecular capability, not a taxon-to-taxon competitive + relationship. Sequence matches do not demonstrate target cleavage, blocked conjugation, plasmid exclusion, confirmed + co-residence in a cell or reciprocal harm among the microbial members. + scope: PAIRWISE evidence: - reference: PMID:41381092 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: CRISPR spacers on an Acidithiobacillus plasmid targeted plasmid-borne - conjugal transfer genes found in the same genus, likely belonging to - another plasmid, evidence of intra-plasmid competition - explanation: Supports the CRISPR-spacer-based plasmid competition. + supports: PARTIAL + evidence_source: COMPUTATIONAL + snippet: CRISPR spacers on an Acidithiobacillus plasmid targeted plasmid-borne conjugal transfer genes found + in the same genus, likely belonging to another plasmid, evidence of intra-plasmid competition + explanation: Supports a spacer/contig-based interference inference. The primary body identifies two unbinned + targets with plasmid-related genes; it does not experimentally establish plasmid elimination or co-residence. + Competition here concerns proposed mobile-element dynamics, not measured reciprocal taxon fitness. + source_taxon: + preferred_term: Acidithiobacillus species + term: + id: NCBITaxon:119977 + label: Acidithiobacillus cultivation_setup: - cultivation_mode: BATCH operating_temperature: 28.0 @@ -381,3 +396,31 @@ metal_relevance: PRIMARY metal_notes: Copper recovery from sulphide ores is the primary biotechnological motivation; iron availability differs between chalcopyrite and chalcocite and shapes consortium composition. +discussions: +- discussion_id: cyprus_mineral_functions_and_plasmid_interference + prompt: Which mineral-associated functions and plasmid activities causally alter SC3 bioleaching? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Mineral- and Fraction-Associated Community Profiles + - ecological_interactions#Plasmid-Encoded Functional Potential + - ecological_interactions#Putative Acidithiobacillus Plasmid CRISPR Interference + rationale: 'The main body and tables distinguish measured composition/solution chemistry from predicted organism/plasmid + functions. The two removed arrows were a recovery-context link and a general-repertoire-to-example link, not + causal dependencies. Plasmid perturbations, expression/flux assays, host resolution and conjugation/interference + experiments would test the proposed functions. Relative abundance and spacer matches alone cannot assign benefits + or competition. The literature-derived sulphur pathway diagram is not a measured organism-resolved exchange + map. No figure images or supplementary files were inspected. Non-graph mineral oxidation-state and Fe-specific + attribution wording remains in #1372.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T04:52:55Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain positive mineral/fraction-associated composition observations without isolating Fe or claiming + measured niche-specific metabolic flux.; Retain the annotated plasmid repertoire with a known-host subset and + unresolved hosts, not commensal fitness or expressed biochemical effects.; Represent the putative CRISPR interference + mechanism as host-associated source-only capability, not observed taxon competition or confirmed plasmid co-residence. + Issue #1369; reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml' + llm_assisted: true diff --git a/kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml b/kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml index 331a1fbff..f1a1280ce 100644 --- a/kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml +++ b/kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml @@ -113,10 +113,13 @@ taxonomy: bacteria in both DIETsimp, respectively.' explanation: Identifies C. aceticum (Andreesenella acetica) as a dominant electroactive bacterial member. ecological_interactions: -- name: DIET syntrophy from S. globosa to M. mazei - description: Sphaerochaeta globosa metabolizes lignocellulose-derived intermediates (xylose, - glucose, pyruvate, acetate) and transfers electrons via direct interspecies electron transfer - to Methanosarcina mazei, which uses them to reduce CO2 to methane. +- name: Proposed S. globosa to M. mazei DIET Syntrophy + description: HYPOTHESIZED - Sphaerochaeta globosa is proposed to participate in direct electron delivery to Methanosarcina + mazei in the two simplified lignocellulose-digesting consortia. The abstract links the dominant bacterial pair + collectively to intermediates including xylose, glucose, pyruvate and acetate; it does not assign every substrate + or flux separately to this donor. Community conductivity, cytochrome-associated spectra and metagenomic profiles + support the model but do not distinguish this route from hydrogen/formate transfer, establish obligate donor + dependence, or trace direct electron delivery by this particular partner. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -155,21 +158,27 @@ ecological_interactions: id: CHEBI:16183 label: methane downstream: - - target: DIET-Driven CO2 Reduction to Methane - description: > - Electron transfer from S. globosa to M. mazei contributes reducing power - for methanogenic CO2 reduction in the DIETsimp consortia. + - target: Proposed M. mazei CO2 Reduction to Methane + description: HYPOTHESIZED - direct electron delivery by Sphaerochaeta globosa could supply reducing equivalents + for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution but does + not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this arrow does + not assert a dependency between the two bacterial donors. evidence: - reference: PMID:42229598 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate - and acetate) and transferred electrons to M. mazei for the reduction of CO2 to methane - explanation: Proposed DIET pathway with S. globosa as electron/substrate donor to M. mazei. -- name: DIET syntrophy from C. aceticum to M. mazei - description: Clostridium aceticum (Andreesenella acetica) metabolizes lignocellulose-derived - intermediates (xylose, glucose, pyruvate, acetate) and transfers electrons via direct - interspecies electron transfer to Methanosarcina mazei, which uses them to reduce CO2 to methane. + supports: PARTIAL + evidence_source: OTHER + snippet: S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate and acetate) and + transferred electrons to M. mazei for the reduction of CO2 to methane + explanation: The complete abstract explicitly proposes this pathway from community electrochemical/spectral + observations and metagenomic composition. The quoted mechanism is an author interpretation, not a selectively + measured partner-resolved electron flux; full Methods and Results were unavailable. +- name: Proposed C. aceticum to M. mazei DIET Syntrophy + description: HYPOTHESIZED - Clostridium aceticum (Andreesenella acetica) is proposed to participate in direct + electron delivery to Methanosarcina mazei in the two simplified lignocellulose-digesting consortia. The abstract + links the dominant bacterial pair collectively to intermediates including xylose, glucose, pyruvate and acetate; + it does not assign every substrate or flux separately to this donor. Community conductivity, cytochrome-associated + spectra and metagenomic profiles support the model but do not distinguish this route from hydrogen/formate transfer, + establish obligate donor dependence, or trace direct electron delivery by this particular partner. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -208,24 +217,28 @@ ecological_interactions: id: CHEBI:16183 label: methane downstream: - - target: DIET-Driven CO2 Reduction to Methane - description: > - Electron transfer from C. aceticum to M. mazei contributes reducing power - for methanogenic CO2 reduction in the DIETsimp consortia. + - target: Proposed M. mazei CO2 Reduction to Methane + description: HYPOTHESIZED - direct electron delivery by Clostridium aceticum (Andreesenella acetica) could supply + reducing equivalents for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution + but does not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this + arrow does not assert a dependency between the two bacterial donors. evidence: - reference: PMID:42229598 - supports: SUPPORT - evidence_source: IN_VITRO - snippet: S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate - and acetate) and transferred electrons to M. mazei for the reduction of CO2 to methane - explanation: Proposed DIET pathway with C. aceticum as electron/substrate donor to M. mazei. -- name: DIET-Driven CO2 Reduction to Methane - description: > - Methanosarcina mazei accepts electrons transferred from the dominant - electroactive bacteria and uses them to reduce carbon dioxide to methane in - the simplified lignocellulose-degrading DIET consortia. - interaction_type: SYNTROPHY - scope: COMMUNITY_LEVEL + supports: PARTIAL + evidence_source: OTHER + snippet: S. globosa and C. aceticum metabolized intermediates (e.g. xylose, glucose, pyruvate and acetate) and + transferred electrons to M. mazei for the reduction of CO2 to methane + explanation: The complete abstract explicitly proposes this pathway from community electrochemical/spectral + observations and metagenomic composition. The quoted mechanism is an author interpretation, not a selectively + measured partner-resolved electron flux; full Methods and Results were unavailable. +- name: Proposed M. mazei CO2 Reduction to Methane + description: HYPOTHESIZED - the proposed model assigns CO2 reduction to methane to dominant Methanosarcina mazei + using electrons attributed to the bacterial partners. This is an intrinsic methanogen step, not a separate whole-community + syntrophic relationship. Lower-pH conductivity and enhanced cytochrome-associated electrochemical FTIR signals + are positive community-level observations consistent with the DIET model, but do not measure the M. mazei-specific + contribution or exclude alternative electron carriers and methanogenic routes. Reported methane-performance + improvements are not selective tests of this mechanism. + scope: PAIRWISE metabolites: - preferred_term: carbon dioxide term: @@ -242,12 +255,24 @@ ecological_interactions: label: methanogenesis evidence: - reference: PMID:42229598 - supports: SUPPORT - evidence_source: IN_VITRO + supports: PARTIAL + evidence_source: OTHER snippet: transferred electrons to M. mazei for the reduction of CO2 to methane - explanation: > - Supports DIET-fed reduction of carbon dioxide to methane by - Methanosarcina mazei. + explanation: The complete abstract explicitly proposes this pathway from community electrochemical/spectral + observations and metagenomic composition. The quoted mechanism is an author interpretation, not a selectively + measured partner-resolved electron flux; full Methods and Results were unavailable. + - reference: PMID:42229598 + supports: PARTIAL + evidence_source: IN_VITRO + snippet: Lowering pH dramatically increased conductivity of both DIETsimp + explanation: Preserves positive physical evidence in the primary abstract. The measurement concerns each whole + consortium, not M. mazei-specific electron uptake; cytochrome-associated spectra and metagenomics are additional + community evidence, not donor-resolved flux. + source_taxon: + preferred_term: Methanosarcina mazei + term: + id: NCBITaxon:2209 + label: Methanosarcina mazei growth_media: - name: unspecified anaerobic digestion medium (lignocellulose substrate) atmosphere: ANAEROBIC @@ -281,30 +306,36 @@ growth_media: explanation: Confirms cultivation is anaerobic (anaerobic digestion of lignocellulose). discussions: - discussion_id: kg-dietsimp-proposed-diet-no-causal-edge - prompt: > - Are the S. globosa→M. mazei and C. aceticum→M. mazei DIET pathways - experimentally validated (direct interspecies electron transfer vs - H2/formate mediation), and is there any causal dependency between the two - parallel donor→methanogen relationships? + prompt: Do the proposed S. globosa-to-M. mazei and C. aceticum-to-M. mazei routes involve direct electron transfer + rather than hydrogen/formate mediation, and how much methane do they support? kind: KNOWLEDGE_GAP status: OPEN attaches_to: - - ecological_interactions#DIET syntrophy from S. globosa to M. mazei - - ecological_interactions#DIET syntrophy from C. aceticum to M. mazei - rationale: > - An Edison causal-graph pass (PMID:42229598) found no justifiable directed - causal edge for this consortium: both interactions are recorded as "Proposed - DIET pathway", the primary full text was inaccessible, and no perturbation - (donor-removal, inhibitor, mono-/co-culture, or knockout) evidence was - retrieved. The source supports two parallel donor→methanogen proposals, not a - causal dependency of one on the other, so no `downstream` edge was added. - Neutral-red-mediated electron delivery to M. mazei reported in a different - system must not be imported here without exact-system verification. + - ecological_interactions#Proposed S. globosa to M. mazei DIET Syntrophy + - ecological_interactions#Proposed C. aceticum to M. mazei DIET Syntrophy + - ecological_interactions#Proposed M. mazei CO2 Reduction to Methane + rationale: 'The complete primary abstract contains positive pH-dependent conductivity, cytochrome-associated spectral + and metagenomic observations, but explicitly calls the methanogenic route proposed. Full Methods/Results, donor-resolved + tracing and selective perturbations were not available in this review. Both existing arrows are retained as + hypotheses connecting parallel donor proposals to the methanogen''s intrinsic step; neither makes one donor + relationship depend on the other. This corrects the older no-downstream wording without asserting new structure. + Neutral-red-mediated electron delivery or other-system demonstrations must not be imported as exact-system evidence. + Non-graph taxon roles, mechanism language and performance-versus-protocol distinctions remain in #1373.' evidence: - reference: PMID:42229598 supports: PARTIAL - evidence_source: IN_VITRO - snippet: during anaerobic digestion of lignocellulose that S. globosa and C. aceticum - metabolized intermediates - explanation: The consortium role is stated at the level of intermediate metabolism / proposed - DIET, without a validated or perturbation-tested causal mechanism — the basis for the knowledge gap. + evidence_source: OTHER + snippet: during anaerobic digestion of lignocellulose that S. globosa and C. aceticum metabolized intermediates + explanation: This excerpt belongs to the abstract's explicitly proposed mechanism. It does not invalidate the + positive community measurements, but cannot establish partner-specific direct transfer or its share of methane + production. +curation_history: +- timestamp: '2026-10-06T04:52:56Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the explicitly proposed S. globosa donor relationship and qualified arrow without assigning every + substrate, a resolved carrier or obligatory dependence.; Retain the parallel proposed C. aceticum donor relationship, + canonical synonym grounding and qualified arrow without a donor-to-donor causal dependency.; Represent the proposed + intrinsic M. mazei CO2-reduction step source-only; preserve positive whole-consortium conductivity/spectral + evidence without taxon-specific flux or selective performance attribution. Issue #1370; reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch28.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch28.yaml new file mode 100644 index 000000000..5658badb6 --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch28.yaml @@ -0,0 +1,161 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: d82bf3ed87f5166e7ae41d763f90ff4d2bd8cccc +scope: +- kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml +- kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml +- kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml +- kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch28.json +findings: +- issue: 1368 + severity: P2 + status: addressed_in_this_change + finding: Fahmy T4 prediction and parent-removal observations were labelled mutualism without reciprocal + fitness evidence. + disposition: Remove both types, preserve all six canonical participants and positive recovery-based + HPLC outcome, and distinguish predicted enzyme coverage from measured activity, flux, detoxification + or mineralization. +- issue: 1369 + severity: P2 + status: addressed_in_this_change + finding: Cyprus recovery-context and general-to-specific arrows were not causal; plasmid annotations + and CRISPR matches were overinterpreted as fitness and co-resident competition. + disposition: Remove two arrows, keep positive composition observations, qualify plasmid functional potential + and unresolved host assignments, and represent CRISPR as a hypothetical host-associated source-only + capability. +- issue: 1370 + severity: P2 + status: addressed_in_this_change + finding: DIETsimp donor routes were asserted as measured, the intrinsic methanogen step was community-scoped, + and the knowledge gap incorrectly claimed no downstream arrows. + disposition: Retain two parallel explicitly hypothesized donor arrows; qualify partner-specific flux + and carrier uncertainty, preserve positive conductivity evidence, and repair exact names/anchors and + contradictory gap wording. +- issue: 1371 + severity: P2 + status: open_nongraph_followup + finding: Fahmy non-graph salinity and diamide-assay temperature statements conflict across primary sections. + disposition: Tracked separately. Non-graph blocks are byte-preserved, not certified by this graph review. +- issue: 1372 + severity: P2 + status: open_nongraph_followup + finding: Cyprus non-graph ingredient oxidation-state and Fe-specific attribution wording requires separate + repair. + disposition: Tracked separately. Non-graph blocks are byte-preserved, not certified by this graph review. +- issue: 1373 + severity: P2 + status: open_nongraph_followup + finding: DIETsimp non-graph taxon roles and performance-versus-protocol language overstate what the + abstract establishes. + disposition: Tracked separately. Non-graph blocks are byte-preserved, not certified by this graph review. +adversarial_checks: +- All ten original nodes and four original arrows have decisions. Six renames propagate to exact targets + and anchors; two Cyprus arrows are removed and two DIETsimp arrows retained as hypotheses. +- Cultivated-meat predicted complementarity is not measured exchange. The exogenous antimicrobial outcome + is not member antagonism; MIC is not the unspecified effective long-term dose. The unchanged review + invents no event or history. +- Fahmy T4 retains positive HPLC parent removal, the 57.79 mg/L starting recovery and native-community + context. Prediction Table 8 wording does not establish enzyme expression, minimum-member necessity, + reciprocal fitness or mineralization. +- Cyprus relative pooled-DNA profiles and mineral treatments do not isolate Fe or establish niche flux. + The four named groups are an aggregate, not all twelve MAGs. +- Named plasmid participants are only a known-host subset. Alphaproteobacteria-linked copper-resistance + candidates are not grounded to Rhodospirillales or archaea. CRISPR spacer matches do not demonstrate + cleavage, exclusion, co-residence or microbial competition. +- DIETsimp positive pH-dependent conductivity and cytochrome-associated spectra are not discarded; the + abstract explicitly proposes the mechanism. Donor-specific substrates, direct electron carriers and + M. mazei-specific methane contribution remain unresolved. +- DIETsimp intrinsic methanogenesis uses the existing source-only PAIRWISE convention, not an invented + enum or whole-community syntrophy. Neither retained arrow links one bacterial donor relationship causally + to the other. +- Three guarded edits each have one llm-assisted event and one append-only history. All non-graph blocks, + the other 457 records and all 920 caches are byte-preserved. +- The exact participating_taxa registry gains only Fahmy T4 and Cyprus, 168 to 170 users. Both connectivity + surveys are measured; mixed scope remains 124 without changed numeric bounds or algorithms. +- Issue deduplication searched 700 all-state titles/bodies plus ignored/hidden local review/history scopes, + not all comments or the whole filesystem. Earlier cultivated-meat and Fahmy fixes are preserved. +- All 456 community pages have exact node/arrow descriptions checked by HTML parser and repeat renders. + Browser screenshots, figure images and supplements were not inspected. +verification: + combined_regressions: 336 passed in 306.36s (0:05:06) + new_regression_tests: 6 + schema_strict_terms_history: passed for applicable targets; complete commands and raw results retained + snippet_counts_by_record: + kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml: + MATCH: 14 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml: + MATCH: 24 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml: + MATCH: 17 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml: + MATCH: 11 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + network: Zero structural errors; same 25 warnings with raw warning exits retained. + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml: b6c1f9081c2d4a75c3db896187e3e20dffac6d339c7ad455c03e07719c17a29f + tests/test_causal_review_batch28.py: 6e0f1bf11083032868200230d907e72e43df4451cfe9773b98bc74df161939c9 + tests/test_participating_taxa.py: 3f68fe32489b09369c902fc3355c21c4bb5eec21d10ce9c8700559003cc8a00d + kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml: 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e + kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml: 0ecd37ff8b4675764844c6d704c634832fecd8635b80e6f9c5759c217345595c + kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml: c914e6ebd91d24dbb0b18b48b2aff7979e6528900cc282824d40b8da8afb29c8 + kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml: 41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be + post_commit_docs_current: Separate publication gate; not yet claimed by this pre-commit artifact. + protected_ci_and_merge: Require live exact-head status and protected main queue; not asserted here. +participant_census: + connectivity_before: + community_level_only: 265 + credited_solely_by_the_rule: 1217 + mixed: 124 + records: 460 + taxa: 1499 + with_community_level: 389 + connectivity_after: + community_level_only: 264 + credited_solely_by_the_rule: 1216 + mixed: 124 + records: 460 + taxa: 1496 + with_community_level: 388 + exact_change: 168 -> 170 users; only Fahmy T4 and Cyprus added + numeric_bounds_changed: false +corpus: + records: 460 + nodes: 1474 + edges: 708 + review_status_counts: + needs_research: 4 + pending: 327 + reviewed: 129 +limitations: +- 'Four graph reviews: three changed and one unchanged. Ten existing nodes retained; two unsupported Cyprus + arrows removed and two DIETsimp arrows qualified. No new graph structure or Edison spend.' +- Two complete primary main bodies and two complete primary abstracts reviewed. No figure images or supplementary + files inspected; no new full text or PDF added to git. +- Cultivated-meat and DIETsimp conclusions remain abstract-bounded, with exact-species/protocol and direct-transfer + gaps left open respectively. +- Non-graph blocks are preserved, not certified; three separate metadata follow-ups remain open. +- Source-based self-adversarial review is not independent approval, protected CI success, or full-corpus + completion. diff --git a/reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml b/reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml new file mode 100644 index 000000000..d4a8a90f8 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml @@ -0,0 +1,281 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: d82bf3ed87f5166e7ae41d763f90ff4d2bd8cccc +issues: +- 1368 +- 1369 +- 1370 +open_nongraph_followups: +- 1371 +- 1372 +- 1373 +issue_deduplication: + all_state_issue_titles_bodies: 700 + ignored_hidden_local_files_included: true + comments_exhaustive: false + relevant_issues_read: + - 858 + - 859 + - 860 + - 869 + - 870 + - 543 + - 1232 + - 295 + - 749 + relevant_comments_read: + - 543 + finding: No duplicate of these graph defects or metadata discrepancies in the searched titles/bodies and local + review/history scope. Earlier Fahmy quotation/denominator issues remain open but their fixes are preserved; + the cultivated-meat earlier fixes and Cyprus cultivation history are preserved. +reference_cache_original_hashes: + references_cache/PMID_41381092.md: b1305170302d2a3241a7fbce156d9c0c8054bf257cf308810b34a66baecd2710 + references_cache/PMID_41381092.txt: 8d157568486d11ca3c30eeb232590a5d513e9ef90de8bac2340deab82b70f00a + references_cache/PMID_42229598.md: 8342a4ca3213eb3c7c9b2a14d8f1fce90c70fd37aae9270987ffeb7cd5247bb3 + references_cache/PMID_42354927.txt: 2b47a77cf230a1f61781cf3020710ad3e469dfe4fdebe0eb0c1981a457082f43 + references_cache/PMID_42425643.txt: 1d3994fb0b3aa1aedcb2af4effbf3d512a8f810140fec73dddedf5c98383b26f +limitations: +- 'Four graph reviews: three changed and one unchanged. Ten existing nodes retained; two unsupported Cyprus arrows + removed and two DIETsimp arrows qualified. No new graph structure or Edison spend.' +- Two complete primary main bodies and two complete primary abstracts reviewed. No figure images or supplementary + files inspected; no new full text or PDF added to git. +- Cultivated-meat and DIETsimp conclusions remain abstract-bounded, with exact-species/protocol and direct-transfer + gaps left open respectively. +- Non-graph blocks are preserved, not certified; three separate metadata follow-ups remain open. +- Source-based self-adversarial review is not independent approval, protected CI success, or full-corpus completion. +records: +- path: kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml + id: CommunityMech:000366 + original_sha256: 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e + record_sha256: 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e + status: reviewed + outcome: unchanged + review_file: reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml + scope: Whole record and every original node/arrow inspected against primary evidence at the access scope documented + below. Non-graph metadata is preserved, not certified. + summary: Retain WGS-predicted potential complementarity with unresolved taxa and topology, not demonstrated inter-organism + exchange or robustness causality.; Retain the abstract-supported exogenous peptide suppression outcome. MIC + and long-term effective dose are not equated, and the old workflow arrow from complementarity to antimicrobial + testing remains absent. + renamed_nodes: {} + node_decisions: + - node: Six-Contaminant Potential Metabolic Complementarity + rationale: Retain WGS-predicted potential complementarity with unresolved taxa and topology, not demonstrated + inter-organism exchange or robustness causality. + - node: 1018-k6 SynCom Antimicrobial Suppression + rationale: Retain the abstract-supported exogenous peptide suppression outcome. MIC and long-term effective + dose are not equated, and the old workflow arrow from complementarity to antimicrobial testing remains absent. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:42425643 + issues: [] + allowed_changed_fields: [] + curation_events_added: 0 + history_files: [] + source_review: + PMID:42425643: + url: https://pubmed.ncbi.nlm.nih.gov/42425643/ + doi: 10.1016/j.fm.2026.105164 + reviewed_scope: Entire independent cached primary abstract and full abstract returned by official PubMed search. + Direct DOI open failed and direct PubMed open returned only a shell. No primary body, figure images or supplements + reviewed. +- path: kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml + id: CommunityMech:000369 + original_sha256: 90f6ac24afc01d7d5b3d732f4c6d54a9cef8ed1df11e6fe63b8e9ebc8018e003 + record_sha256: 0ecd37ff8b4675764844c6d704c634832fecd8635b80e6f9c5759c217345595c + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml + scope: Whole record and every original node/arrow inspected against primary evidence at the access scope documented + below. Non-graph metadata is preserved, not certified. + summary: Retain predicted community repertoire coverage without assigning mutual fitness, measured enzyme activity + or minimum-member necessity.; Retain the positive HPLC parent-removal outcome and recovery-based denominator + while distinguishing native-community context, mineralization and causal mediation. + renamed_nodes: {} + node_decisions: + - node: T4 distributed cyantraniliprole enzyme potential + rationale: Retain predicted community repertoire coverage without assigning mutual fitness, measured enzyme + activity or minimum-member necessity. + - node: HPLC-confirmed cyantraniliprole removal + rationale: Retain the positive HPLC parent-removal outcome and recovery-based denominator while distinguishing + native-community context, mineralization and causal mediation. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:42354927 + issues: + - 1368 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml + source_review: + PMID:42354927: + url: https://www.mdpi.com/2076-2607/14/6/1303 + doi: 10.3390/microorganisms14061303 + license: CC BY 4.0 + reviewed_scope: Complete independent primary main body, abstract, Tables 1-8 and five main figure captions, + from the existing PMC full-text cache; fresh MDPI/PMC/PubMed search confirmed identity and primary content. + No figure images or supplements inspected. +- path: kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml + id: CommunityMech:000217 + original_sha256: 391aec875e774e78467f82dd8455b315ee3e2f0bacce673aa4e7b91665fec8a2 + record_sha256: c914e6ebd91d24dbb0b18b48b2aff7979e6528900cc282824d40b8da8afb29c8 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml + scope: Whole record and every original node/arrow inspected against primary evidence at the access scope documented + below. Non-graph metadata is preserved, not certified. + summary: Retain positive mineral/fraction-associated composition observations without isolating Fe or claiming + measured niche-specific metabolic flux.; Retain the annotated plasmid repertoire with a known-host subset and + unresolved hosts, not commensal fitness or expressed biochemical effects.; Represent the putative CRISPR interference + mechanism as host-associated source-only capability, not observed taxon competition or confirmed plasmid co-residence. + renamed_nodes: + Mineral-Type-Dependent Community Composition: Mineral- and Fraction-Associated Community Profiles + Plasmid-Borne Metal Resistance and Sulphur Metabolism: Plasmid-Encoded Functional Potential + Intra-Plasmid CRISPR Competition: Putative Acidithiobacillus Plasmid CRISPR Interference + node_decisions: + - node: Mineral- and Fraction-Associated Community Profiles + rationale: Retain positive mineral/fraction-associated composition observations without isolating Fe or claiming + measured niche-specific metabolic flux. + - node: Plasmid-Encoded Functional Potential + rationale: Retain the annotated plasmid repertoire with a known-host subset and unresolved hosts, not commensal + fitness or expressed biochemical effects. + - node: Putative Acidithiobacillus Plasmid CRISPR Interference + rationale: Represent the putative CRISPR interference mechanism as host-associated source-only capability, not + observed taxon competition or confirmed plasmid co-residence. + edges_before: + - source: Mineral-Type-Dependent Community Composition + target: Plasmid-Borne Metal Resistance and Sulphur Metabolism + description: Mineral type and planktonic-versus-attached partitioning define the acidophile consortium in which + plasmids encoding metal resistance, sulphur metabolism, and CRISPR-Cas loci were recovered. + - source: Plasmid-Borne Metal Resistance and Sulphur Metabolism + target: Intra-Plasmid CRISPR Competition + description: CRISPR-Cas loci were among the plasmid-borne functions, and the Acidithiobacillus Plasmid_56_509 + CRISPR spacers provided the specific evidence for plasmid-plasmid competition within the consortium. + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: + - source: Mineral-Type-Dependent Community Composition + target: Plasmid-Borne Metal Resistance and Sulphur Metabolism + rationale: The source describes the mineral/fraction context in which plasmids were recovered, not a demonstrated + composition-to-plasmid functional effect. + - source: Plasmid-Borne Metal Resistance and Sulphur Metabolism + target: Intra-Plasmid CRISPR Competition + rationale: A general plasmid repertoire includes a specific CRISPR example; category membership and analysis + order do not establish a causal transition. + references: + - PMID:41381092 + issues: + - 1369 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml + source_review: + PMID:41381092: + url: https://pmc.ncbi.nlm.nih.gov/articles/PMC12698208/ + doi: 10.1111/1758-2229.70261 + license: CC BY 4.0 + reviewed_scope: Complete independently retrieved primary main body, abstract, Tables 1-3 and main figure captions + after the Europe PMC full-text marker; fresh official search confirmed source identity, license and primary + content. No figure images or supplementary files inspected. +- path: kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml + id: CommunityMech:000297 + original_sha256: 50097ae1bdfd2b9d167b4997b15241b1ad1d3158586a05a38ad7d911100f94f7 + record_sha256: 41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml + scope: Whole record and every original node/arrow inspected against primary evidence at the access scope documented + below. Non-graph metadata is preserved, not certified. + summary: Retain the explicitly proposed S. globosa donor relationship and qualified arrow without assigning every + substrate, a resolved carrier or obligatory dependence.; Retain the parallel proposed C. aceticum donor relationship, + canonical synonym grounding and qualified arrow without a donor-to-donor causal dependency.; Represent the proposed + intrinsic M. mazei CO2-reduction step source-only; preserve positive whole-consortium conductivity/spectral + evidence without taxon-specific flux or selective performance attribution. + renamed_nodes: + DIET syntrophy from S. globosa to M. mazei: Proposed S. globosa to M. mazei DIET Syntrophy + DIET syntrophy from C. aceticum to M. mazei: Proposed C. aceticum to M. mazei DIET Syntrophy + DIET-Driven CO2 Reduction to Methane: Proposed M. mazei CO2 Reduction to Methane + node_decisions: + - node: Proposed S. globosa to M. mazei DIET Syntrophy + rationale: Retain the explicitly proposed S. globosa donor relationship and qualified arrow without assigning + every substrate, a resolved carrier or obligatory dependence. + - node: Proposed C. aceticum to M. mazei DIET Syntrophy + rationale: Retain the parallel proposed C. aceticum donor relationship, canonical synonym grounding and qualified + arrow without a donor-to-donor causal dependency. + - node: Proposed M. mazei CO2 Reduction to Methane + rationale: Represent the proposed intrinsic M. mazei CO2-reduction step source-only; preserve positive whole-consortium + conductivity/spectral evidence without taxon-specific flux or selective performance attribution. + edges_before: + - source: DIET syntrophy from S. globosa to M. mazei + target: DIET-Driven CO2 Reduction to Methane + description: 'Electron transfer from S. globosa to M. mazei contributes reducing power for methanogenic CO2 + reduction in the DIETsimp consortia. + + ' + - source: DIET syntrophy from C. aceticum to M. mazei + target: DIET-Driven CO2 Reduction to Methane + description: 'Electron transfer from C. aceticum to M. mazei contributes reducing power for methanogenic CO2 + reduction in the DIETsimp consortia. + + ' + edges_after: + - source: Proposed S. globosa to M. mazei DIET Syntrophy + target: Proposed M. mazei CO2 Reduction to Methane + description: HYPOTHESIZED - direct electron delivery by Sphaerochaeta globosa could supply reducing equivalents + for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution but does + not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this arrow does + not assert a dependency between the two bacterial donors. + - source: Proposed C. aceticum to M. mazei DIET Syntrophy + target: Proposed M. mazei CO2 Reduction to Methane + description: HYPOTHESIZED - direct electron delivery by Clostridium aceticum (Andreesenella acetica) could supply + reducing equivalents for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution + but does not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this + arrow does not assert a dependency between the two bacterial donors. + retained_edge_decisions: + - source: Proposed S. globosa to M. mazei DIET Syntrophy + target: Proposed M. mazei CO2 Reduction to Methane + rationale: HYPOTHESIZED - direct electron delivery by Sphaerochaeta globosa could supply reducing equivalents + for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution but does + not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this arrow does + not assert a dependency between the two bacterial donors. + - source: Proposed C. aceticum to M. mazei DIET Syntrophy + target: Proposed M. mazei CO2 Reduction to Methane + rationale: HYPOTHESIZED - direct electron delivery by Clostridium aceticum (Andreesenella acetica) could supply + reducing equivalents for the proposed M. mazei CO2-to-methane step. The available abstract proposes this contribution + but does not trace donor-specific electrons, establish the carrier, or selectively perturb that route; this + arrow does not assert a dependency between the two bacterial donors. + removed_edge_decisions: [] + references: + - PMID:42229598 + issues: + - 1370 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml + source_review: + PMID:42229598: + url: https://pubmed.ncbi.nlm.nih.gov/42229598/ + doi: 10.1016/j.biortech.2026.135043 + reviewed_scope: Complete independently retrieved primary abstract, with fresh official search confirming the + source. Direct DOI open failed and PubMed open was empty. Ignored-inclusive main references_cache/research + filename search found only the abstract Markdown cache for the exact record/identifier patterns. No complete + primary body, figure images or supplements read; no claim of an exhaustive PDF-content or whole-disk search. diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index c33baff81..63644c05a 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -126,11 +126,11 @@ kb/communities/Corynebacterium_glutamicum_Shewanella_oneidensis_Succinic_Acid_Co kb/communities/Coscinodiscus_Synthetic_Community.yaml CommunityMech:000020 96bf155c9e47de5f8934bbf367f392bfcee5073098125c841db171fd0b9dda1a 5 2 90.0 reports/causal_graph_review/decisions/20261005-two-records-batch25.yaml reviewed kb/communities/Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml CommunityMech:000293 5dc07af806fbaa10b2eb522c2e5221c404aabc6ff58ea1f9cec7062ba079f09e 3 2 90.0 reports/causal_graph_review/decisions/20261005-three-records-batch24.yaml reviewed kb/communities/Crystal_Geyser_CO2_Aquifer_CPR_Lipid_Community.yaml CommunityMech:000252 b219156340ab8170a318ed82b9bf47e7a5a5b67e490870d42fabb2c9a8e25051 3 2 93.3 reports/causal_graph_review/decisions/20261006-three-records-batch27.yaml reviewed -kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml CommunityMech:000366 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e 2 0 70.0 pending -kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml CommunityMech:000369 90f6ac24afc01d7d5b3d732f4c6d54a9cef8ed1df11e6fe63b8e9ebc8018e003 2 0 70.0 pending -kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml CommunityMech:000217 391aec875e774e78467f82dd8455b315ee3e2f0bacce673aa4e7b91665fec8a2 3 2 100.0 pending +kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml CommunityMech:000366 432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e 2 0 70.0 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed +kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml CommunityMech:000369 0ecd37ff8b4675764844c6d704c634832fecd8635b80e6f9c5759c217345595c 2 0 60.0 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed +kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml CommunityMech:000217 c914e6ebd91d24dbb0b18b48b2aff7979e6528900cc282824d40b8da8afb29c8 3 0 63.3 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed kb/communities/DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml CommunityMech:000410 f9b1a67fb3fcd903a1adcb16f0eb5279a3738ff6807ddc4cc9203553be36bc3a 3 0 73.3 reports/causal_graph_review/decisions/20261006-three-records-batch27.yaml needs_research -kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml CommunityMech:000297 50097ae1bdfd2b9d167b4997b15241b1ad1d3158586a05a38ad7d911100f94f7 3 2 100.0 pending +kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml CommunityMech:000297 41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be 3 2 96.7 reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml reviewed kb/communities/DVM_Triculture.yaml CommunityMech:000021 f266bb55b26a98251d9302e6a411526e3908eb775203bd87b4fa8b47fcb07743 4 2 100.0 pending kb/communities/Dairy_Wastewater_Algal_Cyanobacterial_Cultivation_Panel.yaml CommunityMech:000384 1eee347250881287de8d9d9be43dd5bba641e69001b46ea19e8048aeb1214bf6 0 0 0.0 pending kb/communities/Dangl_SynComm_35.yaml CommunityMech:000022 1308bd7106e991df960bd18afdc8bad9df6da33c9dd124cfb0f1e1a1e60e398b 7 2 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 8e31837b6..00c52ce87 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -3,13 +3,13 @@ "semantic_review_rule": "Structural checks and readiness scores do not establish causal support. Completed reviews must match the current record SHA-256, cover every node once with a rationale, and reproduce the current edge list.", "records": 460, "nodes": 1474, - "edges": 710, + "edges": 708, "records_without_nodes": 8, - "records_without_edges": 141, + "records_without_edges": 142, "review_status_counts": { "needs_research": 4, - "pending": 331, - "reviewed": 125 + "pending": 327, + "reviewed": 129 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261006-batch28.json b/reports/causal_graph_review/validation-20261006-batch28.json new file mode 100644 index 000000000..98ef42673 --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch28.json @@ -0,0 +1,790 @@ +{ + "base_commit": "d82bf3ed87f5166e7ae41d763f90ff4d2bd8cccc", + "scope": [ + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Cultivated_Meat_Contaminant_SynCom-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Cultivated_Meat_Contaminant_SynCom-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-strict.tsv", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-strict.log", + "log_sha256": "6968ed408028bdbc6a42da3837178b8735332282dbcde182cd6ed8f7200ef2cf", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch28/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-batch28/Cultivated_Meat_Contaminant_SynCom-strict.tsv\n" + }, + { + "check": "Cultivated_Meat_Contaminant_SynCom-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Cultivated_Meat_Contaminant_SynCom-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-references.log", + "log_sha256": "7d500456c1e657fd1761d07057ddbc4f5b1dbc642d2cae1da22be70fa21580bc", + "output_tail": "Validating kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Cultivated_Meat_Contaminant_SynCom-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-snippets.log", + "log_sha256": "872637a69e95b3997368edea80eba5db2a2155e0ac9344b758394dcf97491410", + "output_tail": "# 14 evidence snippets scanned across 1 files\n MATCH 14\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": "Cultivated_Meat_Contaminant_SynCom-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cultivated_Meat_Contaminant_SynCom-rank.log", + "log_sha256": "66cd320c29c90c0b5f154e16845a79fe12c89844565698efed102a0572bbf863", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000366\",\n \"name\": \"Cultivated Meat Contaminant SynCom\",\n \"score\": 70.0,\n \"taxonomy\": 1,\n \"connected_taxa\": 1,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 2,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\"\n ],\n \"path\": \"kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml\"\n }\n]\n" + }, + { + "check": "Cyantraniliprole_Fahmy_Consortium_T4-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Cyantraniliprole_Fahmy_Consortium_T4-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-strict.tsv", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-strict.log", + "log_sha256": "b9eaaaed6cfec6a98a92d179e3bdae3e05257cfbf2ba7df3341a2460fa50a9ee", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch28/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-batch28/Cyantraniliprole_Fahmy_Consortium_T4-strict.tsv\n" + }, + { + "check": "Cyantraniliprole_Fahmy_Consortium_T4-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Cyantraniliprole_Fahmy_Consortium_T4-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-references.log", + "log_sha256": "b74e9fc72fe011d499241cce2e596323d019aa96bdb9bd79ab1a8476d3c8a23d", + "output_tail": "Validating kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.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/Cyantraniliprole_Fahmy_Consortium_T4.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": "Cyantraniliprole_Fahmy_Consortium_T4-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-snippets.log", + "log_sha256": "2ffa6e242265b4c1c2eb555bd8bd14abb6cc63ed4d5a8a818da9b515db44daff", + "output_tail": "# 24 evidence snippets scanned across 1 files\n MATCH 24\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": "Cyantraniliprole_Fahmy_Consortium_T4-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-rank.log", + "log_sha256": "bacd97c9adf42a8ec49a8277bf00b289edb3257190b6af55136e06991d72e5b2", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000369\",\n \"name\": \"Cyantraniliprole Fahmy Consortium T4\",\n \"score\": 60.0,\n \"taxonomy\": 6,\n \"connected_taxa\": 6,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 2,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 2,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml\"\n }\n]\n" + }, + { + "check": "Cyantraniliprole_Fahmy_Consortium_T4-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Cyantraniliprole_Fahmy_Consortium_T4/2026-10-06T045256Z-codex-c09567.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyantraniliprole_Fahmy_Consortium_T4-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-strict.tsv", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-strict.log", + "log_sha256": "c3d030c16fc5eadd43d639e265f25caa4af596f3ce28878ebd2df1f7e766fb7a", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch28/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-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-strict.tsv\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-references.log", + "log_sha256": "09070e62b50e85adf4922b17a480857acf9743d49b4bb0415bf2b68910524560", + "output_tail": "Validating kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.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/Cyprus_Copper_Sulphide_Bioleaching_Consortium.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": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-snippets.log", + "log_sha256": "5f0e8a5be45b94195ee5599498c60e06ff8db089c85d0bf23969aa37351ca96e", + "output_tail": "# 17 evidence snippets scanned across 1 files\n MATCH 17\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-rank.log", + "log_sha256": "a32d00fd17a0bbac35b541d42a7925f025cbc2e3e5689ba94d82f570e2cd7959", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000217\",\n \"name\": \"Cyprus Copper Sulphide Bioleaching Consortium\",\n \"score\": 63.3,\n \"taxonomy\": 4,\n \"connected_taxa\": 4,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\",\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml\"\n }\n]\n" + }, + { + "check": "Cyprus_Copper_Sulphide_Bioleaching_Consortium-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Cyprus_Copper_Sulphide_Bioleaching_Consortium/2026-10-06T045256Z-codex-f71387.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/Cyprus_Copper_Sulphide_Bioleaching_Consortium-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-strict.tsv", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-strict.log", + "log_sha256": "7c6f252d44b34640547ac6da84a43eaa74ec3a30a0d7ca5a82c695dd77db11dc", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch28/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-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-strict.tsv\n" + }, + { + "check": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-references.log", + "log_sha256": "7279a86e742c847a1f42f9b41c712f6f0d44d00adc076de83c695e361ae2ea10", + "output_tail": "Validating kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.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/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.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": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-snippets.log", + "log_sha256": "aec1f2712a64b5cd549f668dd69d5e1ab54d6d5693d8f53bbce26317b755b383", + "output_tail": "# 11 evidence snippets scanned across 1 files\n MATCH 11\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": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-rank.log", + "log_sha256": "f228e9bac9663c27f970d40989d4403c971e513cccb98953b7d6bb04632dd9ea", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000297\",\n \"name\": \"DIET-based Simplified Lignocellulose-to-Methane Consortia (DIETsimp)\",\n \"score\": 96.7,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 4,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml\"\n }\n]\n" + }, + { + "check": "DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia/2026-10-06T045256Z-codex-a98f56.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia-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-batch28/inventory.log", + "log_sha256": "6d31a13c098bb85e0b1e086feeb9c28d81e1745ddd769178afcacb72ce450dfe", + "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\": 1474,\n \"edges\": 708,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 142,\n \"review_status_counts\": {\n \"needs_research\": 4,\n \"pending\": 327,\n \"reviewed\": 129\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-batch28/network.log", + "log_sha256": "1809e26154a0786ff23aa4219ed22e9f04aa23924f0308440d0df46ffcf7623a", + "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-batch28/rank-all.log", + "log_sha256": "ef5586e62468b92e3c732752fe868018c8917cab7d1e3c56e54507dfb085f006", + "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-batch28/render.log", + "log_sha256": "2b0a8e81d7451b7c6c7bd143809a415e22a679d1d553f7dded99079a7acdd859", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch28/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch28/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch28/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-batch28/render-repeat.log", + "log_sha256": "2b0a8e81d7451b7c6c7bd143809a415e22a679d1d553f7dded99079a7acdd859", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch28/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch28/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch28/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch28/docs/index.html\n" + }, + { + "check": "connectivity-survey", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-c", + "import json,runpy; print(json.dumps(runpy.run_path(\"tests/test_community_level_connectivity_credit.py\")[\"_survey\"](),sort_keys=True))" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/connectivity-survey.log", + "log_sha256": "a6a40c25ca30253ad0c4d3e620c70cf113605dddcef7e9a3a8655f19e6355970", + "output_tail": "{\"community_level_only\": 264, \"credited_solely_by_the_rule\": 1216, \"mixed\": 124, \"records\": 460, \"taxa\": 1496, \"with_community_level\": 388}\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_batch5.py", + "tests/test_causal_review_batch6.py", + "tests/test_causal_review_batch7.py", + "tests/test_causal_review_batch8.py", + "tests/test_causal_review_batch9.py", + "tests/test_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-batch28/regressions.log", + "log_sha256": "171b78f267b5f67686e7123351da2f48d5ad2963241c4bf7416a84d3ed102f0a", + "output_tail": "........................................................................ [ 21%]\n........................................................................ [ 42%]\n........................................................................ [ 64%]\n........................................................................ [ 85%]\n................................................ [100%]\n336 passed in 306.36s (0:05:06)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch28.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/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_batch28.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch28/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-batch28/diff-check.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + } + ], + "limitations": [ + "Four graph reviews: three changed and one unchanged. Ten existing nodes retained; two unsupported Cyprus arrows removed and two DIETsimp arrows qualified. No new graph structure or Edison spend.", + "Two complete primary main bodies and two complete primary abstracts reviewed. No figure images or supplementary files inspected; no new full text or PDF added to git.", + "Cultivated-meat and DIETsimp conclusions remain abstract-bounded, with exact-species/protocol and direct-transfer gaps left open respectively.", + "Non-graph blocks are preserved, not certified; three separate metadata follow-ups remain open.", + "Source-based self-adversarial review is not independent approval, protected CI success, or full-corpus completion.", + "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate." + ], + "snippet_counts_by_record": { + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml": { + "MATCH": 14, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml": { + "MATCH": 24, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml": { + "MATCH": 17, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml": { + "MATCH": 11, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 65, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "network_findings_unchanged": true, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1460, + "arrows": 700 + }, + "participant_census": { + "connectivity_before": { + "community_level_only": 265, + "credited_solely_by_the_rule": 1217, + "mixed": 124, + "records": 460, + "taxa": 1499, + "with_community_level": 389 + }, + "connectivity_after": { + "community_level_only": 264, + "credited_solely_by_the_rule": 1216, + "mixed": 124, + "records": 460, + "taxa": 1496, + "with_community_level": 388 + }, + "exact_change": "168 -> 170 users; only Fahmy T4 and Cyprus added", + "numeric_bounds_changed": false + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1474, + "edges": 708, + "records_without_nodes": 8, + "records_without_edges": 142, + "review_status_counts": { + "needs_research": 4, + "pending": 327, + "reviewed": 129 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml": "b6c1f9081c2d4a75c3db896187e3e20dffac6d339c7ad455c03e07719c17a29f", + "tests/test_causal_review_batch28.py": "6e0f1bf11083032868200230d907e72e43df4451cfe9773b98bc74df161939c9", + "tests/test_participating_taxa.py": "3f68fe32489b09369c902fc3355c21c4bb5eec21d10ce9c8700559003cc8a00d", + "kb/communities/Cultivated_Meat_Contaminant_SynCom.yaml": "432da24bbdadb8fb88ea3c7aec46d75743748ef94449b645a1a199bd651d047e", + "kb/communities/Cyantraniliprole_Fahmy_Consortium_T4.yaml": "0ecd37ff8b4675764844c6d704c634832fecd8635b80e6f9c5759c217345595c", + "kb/communities/Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml": "c914e6ebd91d24dbb0b18b48b2aff7979e6528900cc282824d40b8da8afb29c8", + "kb/communities/DIETsimp_Lignocellulose_to_Methane_DIET_Consortia.yaml": "41e06f6c3fa5433a002180badb92870c4664a3863c394d4c7d25acf38a23a3be" + }, + "status": "verified_four_completed_reviews_three_changed_records" +} diff --git a/tests/test_causal_review_batch28.py b/tests/test_causal_review_batch28.py new file mode 100644 index 000000000..6e4c13f97 --- /dev/null +++ b/tests/test_causal_review_batch28.py @@ -0,0 +1,155 @@ +"""Separate measured outcomes, predicted functions and proposed causal routes.""" + +import hashlib +from collections import Counter +from pathlib import Path + +import yaml + +ROOT = Path(__file__).resolve().parents[1] +LEDGER = ROOT / "reports/causal_graph_review/decisions/20261006-four-records-batch28.yaml" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + return ledger, [yaml.safe_load((ROOT / row["path"]).read_text()) for row in ledger["records"]] + + +def test_cultivated_meat_unchanged_review_does_not_invent_edit_history(): + ledger, docs = records() + row = ledger["records"][0] + assert row["status"] == "reviewed" and row["outcome"] == "unchanged" + assert row["original_sha256"] == row["record_sha256"] + assert not row["history_files"] and row["curation_events_added"] == 0 + assert not row["allowed_changed_fields"] + assert len(docs[0]["ecological_interactions"]) == 2 + assert not any(n.get("downstream") for n in docs[0]["ecological_interactions"]) + assert "No primary body" in row["source_review"]["PMID:42425643"]["reviewed_scope"] + + +def test_fahmy_preserves_prediction_and_positive_removal_without_mutualism(): + _, docs = records() + doc = docs[1] + prediction, removal = doc["ecological_interactions"] + for node in [prediction, removal]: + assert node["scope"] == "COMMUNITY_LEVEL" + assert len(node["participating_taxa"]) == 6 + assert not {"interaction_type", "source_taxon", "target_taxon", "downstream"} & node.keys() + assert prediction["evidence"][0]["evidence_source"] == "COMPUTATIONAL" + assert "predicted functions" in prediction["description"] + assert "four-strain design" in prediction["description"] + assert "not experimentally validated" in prediction["description"] + for phrase in [ + "57.79 mg/L", + "1.00 mg/L", + "98.27%", + "nominal 60 mg/L", + "native water microbiota", + ]: + assert phrase in removal["description"] + assert "does not establish complete mineralization" in removal["description"] + assert removal["evidence"][0]["supports"] == "SUPPORT" + assert "workflow arrow is not restored" in doc["discussions"][0]["rationale"] + + +def test_cyprus_removes_analysis_order_arrows_and_unmeasured_fitness_types(): + _, docs = records() + composition, repertoire, crispr = docs[2]["ecological_interactions"] + assert all( + "downstream" not in n and "interaction_type" not in n + for n in [composition, repertoire, crispr] + ) + assert len(composition["participating_taxa"]) == 4 + assert "do not isolate Fe" in composition["description"] + assert "pooled replicate" in composition["description"] + assert "biological_processes" not in composition + assert len(repertoire["participating_taxa"]) == 2 + assert "not every host or every listed function" in repertoire["description"] + assert "not assigned specifically" in repertoire["description"] + assert repertoire["evidence"][0]["evidence_source"] == "COMPUTATIONAL" + + +def test_cyprus_crispr_is_host_capability_not_taxon_competition(): + _, docs = records() + doc = docs[2] + crispr = doc["ecological_interactions"][2] + assert crispr["scope"] == "PAIRWISE" + assert crispr["source_taxon"]["term"] == doc["taxonomy"][0]["taxon_term"]["term"] + assert ( + not {"target_taxon", "participating_taxa", "interaction_type", "biological_processes"} + & crispr.keys() + ) + assert crispr["description"].startswith("HYPOTHESIZED -") + assert "two unbinned" in crispr["description"] + assert "do not demonstrate target cleavage" in crispr["description"] + assert crispr["evidence"][0]["supports"] == "PARTIAL" + + +def test_dietsimp_retains_two_parallel_hypotheses_and_intrinsic_methanogen(): + _, docs = records() + doc = docs[3] + first, second, reduction = doc["ecological_interactions"] + for donor in [first, second]: + assert donor["scope"] == "PAIRWISE" and donor["interaction_type"] == "SYNTROPHY" + assert donor["description"].startswith("HYPOTHESIZED -") + assert "does not assign every substrate" in donor["description"] + assert "hydrogen/formate" in donor["description"] + (arrow,) = donor["downstream"] + assert arrow["target"] == reduction["name"] + assert arrow["description"].startswith("HYPOTHESIZED -") + assert ( + "does not assert a dependency between the two bacterial donors" in arrow["description"] + ) + assert reduction["scope"] == "PAIRWISE" + assert reduction["source_taxon"]["term"] == doc["taxonomy"][0]["taxon_term"]["term"] + assert ( + not {"target_taxon", "participating_taxa", "interaction_type", "downstream"} + & reduction.keys() + ) + assert "positive community-level observations" in reduction["description"] + assert reduction["evidence"][-1]["evidence_source"] == "IN_VITRO" + assert all( + e["supports"] == "PARTIAL" for n in [first, second, reduction] for e in n["evidence"] + ) + (gap,) = doc["discussions"] + assert gap["discussion_id"] == "kg-dietsimp-proposed-diet-no-causal-edge" + assert "Both existing arrows are retained as hypotheses" in gap["rationale"] + + +def test_batch28_accounts_for_every_node_arrow_history_and_source_limit(): + ledger, docs = records() + rows = ledger["records"] + assert ledger["independent_approval"] is False + assert Counter(r["status"] for r in rows) == {"reviewed": 4} + assert sum(len(r["node_decisions"]) for r in rows) == 10 + assert sum(len(r["retained_edge_decisions"]) for r in rows) == 2 + assert sum(len(r["removed_edge_decisions"]) for r in rows) == 2 + assert sum(len(r["renamed_nodes"]) for r in rows) == 6 + assert sum(len(r["history_files"]) for r in rows) == 3 + for row, doc in zip(rows, docs, strict=True): + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + names = {n["name"] for n in doc["ecological_interactions"]} + assert Counter(d["node"] for d in row["node_decisions"]) == Counter(names) + arrows = [ + {"source": n["name"], **e} + for n in doc["ecological_interactions"] + for e in n.get("downstream", []) + ] + assert arrows == row["edges_after"] + renames = row["renamed_nodes"] + removed = {(e["source"], e["target"]) for e in row["removed_edge_decisions"]} + assert {(e["source"], e["target"]) for e in arrows} == { + (renames.get(e["source"], e["source"]), renames.get(e["target"], e["target"])) + for e in row["edges_before"] + if (e["source"], e["target"]) not in removed + } + assert all( + a.split("#", 1)[1] in names + for d in doc.get("discussions", []) + for a in d.get("attaches_to", []) + if a.startswith("ecological_interactions#") + ) + assert ledger["open_nongraph_followups"] == [1371, 1372, 1373] + assert len(ledger["reference_cache_original_hashes"]) == 5 + for path, expected in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py index 442032c97..531adfc82 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -228,6 +228,8 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "Coscinodiscus_Synthetic_Community.yaml", "Crucian_Carp_Gut_Disease_Resistance_SynCom.yaml", "Crystal_Geyser_CO2_Aquifer_CPR_Lipid_Community.yaml", + "Cyantraniliprole_Fahmy_Consortium_T4.yaml", + "Cyprus_Copper_Sulphide_Bioleaching_Consortium.yaml", "DCPP_DBS4_DCP4_DCP11d_Degradation_SynCom.yaml", "DVM_Triculture.yaml", "Defined_ThreeStrain_Organic_Nitrogen_Nitrifying_Community.yaml",