diff --git a/docs/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.html b/docs/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.html index 612e35067..84bb52511 100644 --- a/docs/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.html +++ b/docs/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.html @@ -583,7 +583,7 @@

Ecological Interactions

ΔargA-ΔmetJ methionine cross-feeding

CROSS_FEEDING -

The ΔargA-ΔmetJ member overproduces methionine that supports the methionine-requiring ΔmetA-ΔargR partner.

+

The delta-argA/delta-metJ mutant overproduces methionine supporting the methionine-requiring delta-metA/delta-argR partner under the tested amino-acid limitation. Both strains are E. coli K-12 MG1655 derivatives. Reciprocal growth dependence does not resolve the release route or single-cell export flux, and supplemented cultures need not remain obligately mutualistic.

Source Taxon: Escherichia coli K-12 MG1655 ΔargA-ΔmetJ

@@ -657,7 +657,7 @@

Evidence

ΔmetA-ΔargR arginine cross-feeding

CROSS_FEEDING -

The ΔmetA-ΔargR member overproduces arginine that supports the arginine-requiring ΔargA-ΔmetJ partner.

+

The delta-metA/delta-argR mutant supplies arginine supporting the arginine-requiring delta-argA/delta-metJ partner under the tested amino-acid limitation. The same canonical taxon ID represents distinct engineered genotypes, not one organism acting on itself. Supplementation can remove partner dependence; this is not universal obligate exchange across media.

Source Taxon: Escherichia coli K-12 MG1655 ΔmetA-ΔargR

@@ -731,7 +731,7 @@

Evidence

Arg-Met obligate mutualism increases cell noise

MUTUALISM -

The reciprocal Arg/Met exchange formed a two-way positive, obligate mutualistic cross-feeding system and increased single-cell fluorescence noise in each strain population relative to mono-cultures.

+

In the tested nutrient-limited Arg/Met coculture, reciprocal exchange was associated with higher single-cell fluorescent-reporter coefficient of variation than in supplemented monocultures. Mean amino-acid matching controls supported a heterogeneity interpretation. Reporter amino-acid sensitivity and experimental context matter: this is not a direct measurement of intrinsic transcriptional noise, a universal protein-noise effect or evidence that noise causes community collapse. MUTUALISM denotes the restricted reciprocal-growth model, not every supplementation condition.

@@ -760,17 +760,6 @@

Arg-Met obligate mutualism increases cell noise

-

Biological Processes:

- - @@ -814,7 +803,7 @@

Evidence

-

Knowledge gaps & discussions (2)

+

Knowledge gaps & discussions (3)

@@ -842,6 +831,21 @@

+

+ +
+

+ KNOWLEDGE_GAP + OPEN + How do nutrient heterogeneity and reporter sensitivity mediate the Arg/Met fluorescence response? +

+

Existing nodes are qualified, not an exhaustive mechanism graph. The primary main body supports assessing additional structure for reporter sensitivity and manipulated nutrient, strain-ratio and spatial heterogeneity. Mixed preincubations are not a direct spatial nutrient map, and modeled diffusion/uptake is not measured micro-scale flux. Intrinsic/extrinsic noise remains unresolved. Keep distinct Arg-Trp and BL21/environmental-isolate experiments outside this record. One-community Edison dry run is complete, but no provider job was submitted; expansion remains needs_research under #1436 pending specific spend authorization. Preserve the existing supplement/protocol and alternative-pair gaps.

+ +

Attaches to: ecological_interactions#ΔargA-ΔmetJ methionine cross-feeding, ecological_interactions#ΔmetA-ΔargR arginine cross-feeding, ecological_interactions#Arg-Met obligate mutualism increases cell noise

+ + + +
@@ -1369,10 +1373,6 @@

Evidence

var processes = []; - - processes.push("biological process involved in interspecies interaction between organisms"); - - var evidenceCount = 2; nodes.push({ diff --git a/docs/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.html b/docs/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.html index 5e9909b4c..de41b98c1 100644 --- a/docs/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.html +++ b/docs/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.html @@ -606,7 +606,7 @@

Ecological Interactions

Ecological interaction network for Electrostimulated Mixotrophic VFA-producing Enrichment 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 (cross-feeding, syntrophy, niche partitioning). + Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction.
@@ -614,18 +614,8 @@

Ecological Interactions

Cross-feeding -
-
- Syntrophy -
-
- Niche partitioning + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -634,13 +624,21 @@

Ecological Interactions

HRT-Driven Mixotrophic Consortium Enrichment

- NICHE_PARTITIONING
-

A continuous bioreactor held at 300 mV under progressively shorter hydraulic retention times used HRT to enrich a specialized mixotrophic consortium for inorganic-carbon utilization and acetate production. -

+

A single electrostimulated reactor underwent sequential HRT phases and intervening batch assays. Its changing composition and outputs support an operational association, not an independently replicated HRT-only effect. Participants are representative genera, not the complete enrichment roster.

+ + +

Participating Taxa: + Enterococcus, + + Clostridium, + + Desulfovibrio + +

@@ -665,8 +663,7 @@

HRT-Driven Mixotrophic Consortium Enrichment

→ Planktonic and Electrode-Biofilm Spatial Partitioning -

HRT-driven enrichment yielded a community partitioned between the planktonic phase and electrode biofilm. -

+

PARTIAL - altered residence time may select community composition, but sequential operation and batch interruptions do not isolate its contribution to the endpoint compartment difference.

@@ -722,44 +719,34 @@

Evidence

Planktonic and Electrode-Biofilm Spatial Partitioning

- NICHE_PARTITIONING
-

The enriched consortium separated into planktonic Enterococcus/Clostridium and electrode-biofilm Desulfovibrio/Enterococcus populations, creating a spatial organization associated with downstream carbon-flux changes. -

+

Endpoint planktonic and electrode-biofilm profiles differed. Relative abundance does not demonstrate taxon-specific flux, physiological niche exclusion or required partner exchange.

+

Participating Taxa: + Enterococcus, + Clostridium, + + Desulfovibrio + +

-

Biological Processes:

-
Downstream Effects: -
- → Electrode-Biofilm Carbon-Fixation Pathway Enrichment -

Spatial enrichment at the electrode biofilm was the context in which predicted carbon-fixation pathways and reducing-equivalent generation were concentrated. -

-
-
→ Biomass-Specific Inorganic Carbon Removal Increase -

The organized planktonic and electrode-biofilm consortium exhibited higher biomass-specific inorganic carbon removal. -

+

HYPOTHESIZED - compartment-associated exchange of reducing equivalents could support carbon uptake. Composition and bulk chemistry do not selectively establish that architecture as the cause of IC removal.

@@ -789,13 +776,21 @@

Evidence

Electrode-Biofilm Carbon-Fixation Pathway Enrichment

- SYNTROPHY
-

Functional predictions placed enriched carbon-fixation pathways in the electrode-associated biofilm, suggesting that electrode-associated taxa generated reducing equivalents that supported autotrophic CO2/HCO3- fixation. -

+

PICRUSt2 inferred carbon-fixation potential from amplicon composition. This is not measured gene expression, electron transfer, hydrogen production or pathway flux; the prediction is not itself a causal actor.

+ +

Participating Taxa: + + Enterococcus, + + Clostridium, + + Desulfovibrio + +

@@ -813,29 +808,7 @@

Electrode-Biofilm Carbon-Fixation Pathway Enrichment

-

Biological Processes:

- - - - -
- Downstream Effects: -
- → Acetate-Directed Carbon Flux -

Predicted biofilm carbon fixation supplied autotrophic metabolism consistent with the observed excess acetate beyond heterotrophic stoichiometry. -

-
- -
@@ -861,7 +834,7 @@

Evidence

doi:10.21203/rs.3.rs-9518331/v1 - - SUPPORT (COMPUTATIONAL) + - PARTIAL (COMPUTATIONAL)
"electrode-associated taxa contributed to the generation of reducing equivalents and supported autotrophic metabolism"
@@ -875,13 +848,21 @@

Evidence

Biomass-Specific Inorganic Carbon Removal Increase

- SYNTROPHY
-

The spatially organized mixotrophic consortium raised biomass-specific inorganic carbon removal 2.6-fold and thereby routed more inorganic carbon into the electrostimulated reactor's downstream acetogenic metabolism. -

+

Biomass-specific inlet/outlet inorganic-carbon removal increased 2.6-fold. This bulk endpoint does not identify assimilation, product fate or a responsible taxon, and is not an independently established cause of acetate output.

+ + + + +

Participating Taxa: + + Enterococcus, + Clostridium, + Desulfovibrio +

@@ -905,17 +886,6 @@

Biomass-Specific Inorganic Carbon Removal Increase

-
- Downstream Effects: - -
- → Acetate-Directed Carbon Flux -

Increased inorganic-carbon utilization was coupled to selective acetate production at the shortest hydraulic retention time. -

-
- -
-

Evidence

@@ -927,7 +897,7 @@

Evidence

doi:10.21203/rs.3.rs-9518331/v1 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"This syntrophic organization enhanced biomass-specific IC removal by 2.6-fold"
@@ -941,13 +911,21 @@

Evidence

Acetate-Directed Carbon Flux

- CROSS_FEEDING
-

At the 14 h HRT, the enriched electrostimulated consortium selectively redirected carbon flux toward acetate, reached 1470 mg/L acetate, and showed acetate formation beyond heterotrophic stoichiometry consistent with additional CO2/HCO3- fixation. -

+

Acetate accumulated during reactor operation. Excess over the chosen heterotrophic stoichiometric model is consistent with additional routes, not a measured autotrophic fraction or demonstrated donor-to-recipient cross-feeding.

+ + + + +

Participating Taxa: + + Enterococcus, + Clostridium, + Desulfovibrio +

@@ -969,17 +947,6 @@

Acetate-Directed Carbon Flux

-

Biological Processes:

- - @@ -1019,7 +986,7 @@

Evidence

doi:10.21203/rs.3.rs-9518331/v1 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"the acetate exceeded heterotrophic stoichiometry, indicating additional CO"
@@ -1035,6 +1002,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which exchanges and carbon sources causally account for the reactor endpoints? +

+

Retain two qualified links; remove composition-to-prediction, prediction-to-acetate and IC-removal-to-acetate arrows. Derived annotations and correlated endpoints do not establish mediation. Resolve carbon accounting and selective perturbations before assigning member fluxes. The primary preprint body was read from a public mirror, not separate supplements or visual figures. Non-graph protocol and role claims remain #1434; the recurrent Enterococcus_B grounding is tracked by reopened #373. Canonical NCBI participants are preserved without endorsing GTDB metadata.

+ +

Attaches to: ecological_interactions#HRT-Driven Mixotrophic Consortium Enrichment, ecological_interactions#Planktonic and Electrode-Biofilm Spatial Partitioning, ecological_interactions#Electrode-Biofilm Carbon-Fixation Pathway Enrichment, ecological_interactions#Biomass-Specific Inorganic Carbon Removal Increase, ecological_interactions#Acetate-Directed Carbon Flux

+ + + + +
+ +
@@ -1138,7 +1124,7 @@

Evidence

(function() { var intId = "interaction:0"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1164,19 +1150,30 @@

Evidence

+ var participantKeys = [ + + "Enterococcus", + + "Clostridium", + + "Desulfovibrio" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:1"; - var intType = "NICHE_PARTITIONING"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; - - processes.push("biological process involved in interspecies interaction between organisms"); - - var evidenceCount = 1; nodes.push({ @@ -1192,11 +1189,26 @@

Evidence

+ var participantKeys = [ + + "Enterococcus", + + "Clostridium", + + "Desulfovibrio" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:2"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1207,10 +1219,6 @@

Evidence

var processes = []; - - processes.push("carbon fixation"); - - var evidenceCount = 2; nodes.push({ @@ -1226,11 +1234,26 @@

Evidence

+ var participantKeys = [ + + "Enterococcus", + + "Clostridium", + + "Desulfovibrio" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:3"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1258,11 +1281,26 @@

Evidence

+ var participantKeys = [ + + "Enterococcus", + + "Clostridium", + + "Desulfovibrio" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); (function() { var intId = "interaction:4"; - var intType = "CROSS_FEEDING"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1275,10 +1313,6 @@

Evidence

var processes = []; - - processes.push("carbon fixation"); - - var evidenceCount = 3; nodes.push({ @@ -1294,6 +1328,21 @@

Evidence

+ var participantKeys = [ + + "Enterococcus", + + "Clostridium", + + "Desulfovibrio" + + ]; + participantKeys.forEach(function(key) { + if (taxonNodeIds[key]) { + links.push({ source: taxonNodeIds[key], target: intId }); + } + }); + })(); diff --git a/docs/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.html b/docs/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.html index 76c79c32b..5d8f3a3a5 100644 --- a/docs/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.html +++ b/docs/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.html @@ -768,7 +768,7 @@

Ecological Interactions

Ecological interaction network for Electrostimulated Toluene Methanogenic Microbiota - Bipartite graph where circle nodes represent taxa and each ecological interaction is drawn as a distinct non-circular symbol, with colour repeating the same distinction (syntrophy). + 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.
@@ -776,8 +776,8 @@

Ecological Interactions

Syntrophy + aria-hidden="true" data-symbol="symbolTriangle2" + data-color="#929caa"> Other
@@ -786,9 +786,8 @@

Ecological Interactions

Non-electrostimulated toluene degrader to acetoclastic methanogens

- SYNTROPHY
-

In non-electro-stimulated microbiota, Syntrophobacteraceae MAG116 was inferred as a toluene degrader proposed to establish electron syntrophy with acetoclastic Methanosarcina spp. or Methanothrix sp. through e-pili or shared acetate.

+

HYPOTHESIZED - the abstract proposes MAG116-mediated toluene conversion linked to Methanosarcina OR Methanothrix through e-pili OR acetate. These are alternative partners and routes, not a demonstrated three-member assembly or resolved direct-electron-transfer flux. The non-electrostimulated model must remain distinct from electrode-associated hypotheses.

@@ -823,17 +822,6 @@

Non-electrostimulated toluene degrader to acetoclastic methanogens

-

Biological Processes:

- - @@ -861,9 +849,8 @@

Evidence

Anode-linked Desulfoprunum and Syntrophobacteraceae electron transfer

- SYNTROPHY
-

In electro-stimulated microbiota, anode-recruited Desulfoprunum MAG10 was inferred to participate in interspecies electron transfer with Syntrophobacteraceae MAG116 and the anode, potentially mediated by c-type cytochromes.

+

HYPOTHESIZED - anode-associated Desulfoprunum MAG10 may exchange electrons with MAG116 and the electrode. The abstract does not resolve donor-to-recipient direction between the MAGs or demonstrate a necessary transfer protein. Electrode enrichment does not independently establish syntrophic flux.

@@ -896,7 +883,7 @@

Evidence

- PARTIAL (COMPUTATIONAL)
-
"facilitated by c-type cytochromes"
+
"MAG10 engaged in interspecies electron transfer with both syntroph f_Syntrophobacteraceae MAG116 and the anode"
@@ -907,9 +894,8 @@

Evidence

Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium

- SYNTROPHY
-

Electrotrophic Aminidesulfovibrio MAG60 was inferred to capture electrons from the external circuit and share electrons and hydrogen with the hydrogenotrophic methanogen Methanobacterium MAG74.

+

HYPOTHESIZED - MAG60 could supply electrons or hydrogen to Methanobacterium MAG74. The directed pair encodes the proposed route, not a measured exchange rate, demonstrated obligate cooperation or resolved direct versus hydrogen-mediated transfer. Hydrogenase gene content alone does not demonstrate that flux.

Source Taxon: Aminidesulfovibrio sp. MAG60

@@ -934,17 +920,6 @@

Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium

-

Biological Processes:

- - @@ -975,7 +950,7 @@

Evidence

-

Knowledge gaps & discussions (1)

+

Knowledge gaps & discussions (2)

@@ -1010,6 +985,21 @@

+

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which candidate MAG routes are established by selective perturbation and primary reactor data? +

+

The three abstract-supported mechanisms remain HYPOTHESIZED with PARTIAL computational evidence and zero downstream arrows. A common electrical treatment does not establish a chain among control, anode and cathode mechanisms. Preserve the alternate methanogen evidence from #1121 and recruitment evidence from #1120. Distinct MAG116 and MAG60 labels must not collapse because both use NCBITaxon:2. Full primary Methods/Results and supplements were not acquired; publisher requests failed and the ResearchGate entry requires a full-text request. This is an access limitation, not proof that full text does not exist. Non-graph roles and reactor metadata remain #1435.

+ +

Attaches to: ecological_interactions#Non-electrostimulated toluene degrader to acetoclastic methanogens, ecological_interactions#Anode-linked Desulfoprunum and Syntrophobacteraceae electron transfer, ecological_interactions#Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium

+ + + +
@@ -1345,7 +1335,7 @@

Evidence

(function() { var intId = "interaction:0"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1358,10 +1348,6 @@

Evidence

var processes = []; - - processes.push("methanogenesis"); - - var evidenceCount = 1; nodes.push({ @@ -1396,7 +1382,7 @@

Evidence

(function() { var intId = "interaction:1"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; var processes = []; @@ -1433,7 +1419,7 @@

Evidence

(function() { var intId = "interaction:2"; - var intType = "SYNTROPHY"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1444,10 +1430,6 @@

Evidence

var processes = []; - - processes.push("methanogenesis"); - - var evidenceCount = 1; nodes.push({ diff --git a/history/records/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture/2026-10-06T084910Z-codex-6ae26b.yaml b/history/records/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture/2026-10-06T084910Z-codex-6ae26b.yaml new file mode 100644 index 000000000..2af301263 --- /dev/null +++ b/history/records/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture/2026-10-06T084910Z-codex-6ae26b.yaml @@ -0,0 +1,28 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml + slug: Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture +session: + id: 2026-10-06T084910Z-codex-6ae26b + timestamp: '2026-10-06T08:49:10Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1431 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain genotype-specific methionine support under tested nutrient limitation.; + Retain reverse arginine support without collapsing same-species engineered strains.; Qualify + the fluorescence CV endpoint and remove interspecies GO grounding; mechanism expansion + remains pending. + details: Eleven existing nodes retained; three arrows removed and two qualified. Arg/Met + mechanism expansion remains pending. reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml diff --git a/history/records/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium/2026-10-06T084910Z-codex-0245f9.yaml b/history/records/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium/2026-10-06T084910Z-codex-0245f9.yaml new file mode 100644 index 000000000..fc67b4b75 --- /dev/null +++ b/history/records/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium/2026-10-06T084910Z-codex-0245f9.yaml @@ -0,0 +1,29 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml + slug: Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium +session: + id: 2026-10-06T084910Z-codex-0245f9 + timestamp: '2026-10-06T08:49:10Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1432 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the sequential operational context without a clean HRT-only causal claim.; + Retain compartment composition and only a hypothesized contribution to IC removal.; Retain + computational potential without treating prediction as biological flux.; Retain bulk IC + removal without a causal product-fate claim.; Retain acetate output without proven cross-feeding + or an autotrophic fraction. + details: Eleven existing nodes retained; three arrows removed and two qualified. Arg/Met + mechanism expansion remains pending. reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml diff --git a/history/records/Electrostimulated_Toluene_Methanogenic_Microbiota/2026-10-06T084910Z-codex-af5821.yaml b/history/records/Electrostimulated_Toluene_Methanogenic_Microbiota/2026-10-06T084910Z-codex-af5821.yaml new file mode 100644 index 000000000..1909882ab --- /dev/null +++ b/history/records/Electrostimulated_Toluene_Methanogenic_Microbiota/2026-10-06T084910Z-codex-af5821.yaml @@ -0,0 +1,27 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml + slug: Electrostimulated_Toluene_Methanogenic_Microbiota +session: + id: 2026-10-06T084910Z-codex-af5821 + timestamp: '2026-10-06T08:49:10Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1433 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain alternate control-system candidates without confirmed syntrophic flux.; + Retain the undirected anode/MAG hypothesis with MAG-specific evidence.; Retain the proposed + MAG60-to-MAG74 route without confirmed hydrogen or electron sharing. + details: Eleven existing nodes retained; three arrows removed and two qualified. Arg/Met + mechanism expansion remains pending. reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml diff --git a/kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml b/kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml index 86b4f0a1f..52444f545 100644 --- a/kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml +++ b/kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml @@ -110,7 +110,10 @@ taxonomy: explanation: Identifies the methionine-auxotrophic, arginine-overproducing member. ecological_interactions: - name: ΔargA-ΔmetJ methionine cross-feeding - description: The ΔargA-ΔmetJ member overproduces methionine that supports the methionine-requiring ΔmetA-ΔargR partner. + description: The delta-argA/delta-metJ mutant overproduces methionine supporting the methionine-requiring delta-metA/delta-argR + partner under the tested amino-acid limitation. Both strains are E. coli K-12 MG1655 derivatives. Reciprocal + growth dependence does not resolve the release route or single-cell export flux, and supplemented cultures need + not remain obligately mutualistic. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -138,14 +141,18 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: ΔargA-ΔmetJ required arginine (Arg) to grow but overproduced methionine (Met) - explanation: Supports methionine overproduction by the ΔargA-ΔmetJ member and arginine auxotrophy in that same member. + explanation: Supports methionine overproduction by the ΔargA-ΔmetJ member and arginine auxotrophy in that same + member. - reference: PMID:42592155 supports: SUPPORT evidence_source: IN_VITRO snippet: cooperated by exchanging two essential AAs (Met and Arg) explanation: Supports reciprocal amino-acid exchange in the engineered pair. - name: ΔmetA-ΔargR arginine cross-feeding - description: The ΔmetA-ΔargR member overproduces arginine that supports the arginine-requiring ΔargA-ΔmetJ partner. + description: The delta-metA/delta-argR mutant supplies arginine supporting the arginine-requiring delta-argA/delta-metJ + partner under the tested amino-acid limitation. The same canonical taxon ID represents distinct engineered genotypes, + not one organism acting on itself. Supplementation can remove partner dependence; this is not universal obligate + exchange across media. interaction_type: CROSS_FEEDING scope: PAIRWISE source_taxon: @@ -173,15 +180,20 @@ ecological_interactions: supports: SUPPORT evidence_source: IN_VITRO snippet: ΔmetA-ΔargR needed Met but overproduced Arg - explanation: Supports arginine overproduction by the ΔmetA-ΔargR member and methionine auxotrophy in that same member. + explanation: Supports arginine overproduction by the ΔmetA-ΔargR member and methionine auxotrophy in that same + member. - reference: PMID:42592155 supports: SUPPORT evidence_source: IN_VITRO snippet: cooperated by exchanging two essential AAs (Met and Arg) explanation: Supports reciprocal amino-acid exchange in the engineered pair. - name: Arg-Met obligate mutualism increases cell noise - description: The reciprocal Arg/Met exchange formed a two-way positive, obligate mutualistic cross-feeding system and increased - single-cell fluorescence noise in each strain population relative to mono-cultures. + description: 'In the tested nutrient-limited Arg/Met coculture, reciprocal exchange was associated with higher + single-cell fluorescent-reporter coefficient of variation than in supplemented monocultures. Mean amino-acid + matching controls supported a heterogeneity interpretation. Reporter amino-acid sensitivity and experimental + context matter: this is not a direct measurement of intrinsic transcriptional noise, a universal protein-noise + effect or evidence that noise causes community collapse. MUTUALISM denotes the restricted reciprocal-growth + model, not every supplementation condition.' interaction_type: MUTUALISM scope: COMMUNITY_LEVEL participating_taxa: @@ -202,22 +214,19 @@ ecological_interactions: term: id: CHEBI:29016 label: arginine - 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 evidence: - reference: PMID:42592155 supports: SUPPORT evidence_source: IN_VITRO snippet: forming an obligate mutualistic relationship through exchanging essential AAs with each other - explanation: Supports the two-way obligate mutualism created by reciprocal amino-acid exchange. + explanation: Supports reciprocal obligation under the tested nutrient limitation; supplementation changes the + interaction. - reference: PMID:42592155 supports: SUPPORT evidence_source: IN_VITRO snippet: cross-feeding consistently increased cell noise of two populations - explanation: Supports increased cell noise as an emergent result of the Arg/Met cross-feeding pair. + explanation: Supports the fluorescent-reporter CV endpoint in the tested Arg/Met system, not all reporters or + resolved intrinsic transcriptional noise. environmental_factors: - name: Arginine and methionine reciprocal auxotrophy value: ΔargA-ΔmetJ requires Arg and overproduces Met; ΔmetA-ΔargR requires Met and overproduces Arg @@ -369,28 +378,45 @@ external_resources: explanation: Lists the PubMed Central identifier for the open full text. discussions: - discussion_id: arg_met_supplementary_protocol_details - prompt: What exact M9-glucose recipe, antibiotic and IPTG concentrations, amino-acid omission/addition conditions, inoculum - density, and culture volumes were used for each Arg/Met co-culture experiment? + prompt: What exact M9-glucose recipe, antibiotic and IPTG concentrations, amino-acid omission/addition conditions, + inoculum density, and culture volumes were used for each Arg/Met co-culture experiment? kind: KNOWLEDGE_GAP status: OPEN attaches_to: - growth_media#LB or M9-glucose E. coli aerobic culture media - cultivation_setup - rationale: The primary full text supports LB or M9-glucose aerobic culture at 37 C and 200 rpm and says that detailed information - for Experiments 1-8 was presented in Supplementary data, so condition-specific recipes should be resolved from the supplement - before asserting exact amino-acid supplementation or inoculum sizes. + rationale: The primary full text supports LB or M9-glucose aerobic culture at 37 C and 200 rpm and says that detailed + information for Experiments 1-8 was presented in Supplementary data, so condition-specific recipes should be + resolved from the supplement before asserting exact amino-acid supplementation or inoculum sizes. posed_by: codex posed_date: '2026-09-27' - discussion_id: additional_pair_and_environmental_isolate_scope - prompt: Should the ΔargA-ΔtrpR/ΔtrpC-ΔargR pair and BL21-GFP environmental-isolate co-cultures be curated as separate variant - records? + prompt: Should the ΔargA-ΔtrpR/ΔtrpC-ΔargR pair and BL21-GFP environmental-isolate co-cultures be curated as separate + variant records? kind: KNOWLEDGE_GAP status: OPEN - rationale: The main text reports a second K-12 MG1655 auxotrophic pair and synthetic environmental communities, but this - record intentionally covers the primary ΔargA-ΔmetJ/ΔmetA-ΔargR arginine-methionine system rather than grouping all variant - co-cultures under one biological identity. + rationale: The main text reports a second K-12 MG1655 auxotrophic pair and synthetic environmental communities, + but this record intentionally covers the primary ΔargA-ΔmetJ/ΔmetA-ΔargR arginine-methionine system rather than + grouping all variant co-cultures under one biological identity. posed_by: codex posed_date: '2026-09-27' +- discussion_id: argmet_noise_mechanism_expansion + prompt: How do nutrient heterogeneity and reporter sensitivity mediate the Arg/Met fluorescence response? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#ΔargA-ΔmetJ methionine cross-feeding + - ecological_interactions#ΔmetA-ΔargR arginine cross-feeding + - ecological_interactions#Arg-Met obligate mutualism increases cell noise + rationale: 'Existing nodes are qualified, not an exhaustive mechanism graph. The primary main body supports assessing + additional structure for reporter sensitivity and manipulated nutrient, strain-ratio and spatial heterogeneity. + Mixed preincubations are not a direct spatial nutrient map, and modeled diffusion/uptake is not measured micro-scale + flux. Intrinsic/extrinsic noise remains unresolved. Keep distinct Arg-Trp and BL21/environmental-isolate experiments + outside this record. One-community Edison dry run is complete, but no provider job was submitted; expansion + remains needs_research under #1436 pending specific spend authorization. Preserve the existing supplement/protocol + and alternative-pair gaps.' + posed_by: codex + posed_date: '2026-10-06' metals_present: [] rare_earth_elements_present: [] metal_relevance: NOT_APPLICABLE @@ -401,6 +427,13 @@ curation_history: curator: codex action: CREATE_COMMUNITY_RECORD changes: Created CommunityMech:000455 for the two-member E. coli K-12 MG1655 DeltaargA-DeltametJ plus DeltametA-DeltaargR - Arg/Met cross-feeding coculture from PMID:42592155, with exact-member taxonomy, reciprocal amino-acid cross-feeding interactions, - culture conditions, PubMed/DOI/PMCID resources, and supplement-scoped knowledge gaps. + Arg/Met cross-feeding coculture from PMID:42592155, with exact-member taxonomy, reciprocal amino-acid cross-feeding + interactions, culture conditions, PubMed/DOI/PMCID resources, and supplement-scoped knowledge gaps. + llm_assisted: true +- timestamp: '2026-10-06T08:49:09Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain genotype-specific methionine support under tested nutrient limitation.; Retain reverse arginine + support without collapsing same-species engineered strains.; Qualify the fluorescence CV endpoint and remove + interspecies GO grounding; mechanism expansion remains pending. Issue #1431; reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml' llm_assisted: true diff --git a/kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml b/kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml index 5bace0e6f..8c2ab1ce8 100644 --- a/kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml +++ b/kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml @@ -145,11 +145,9 @@ taxonomy: explanation: Identifies Desulfovibrio as a member enriched in the electrode biofilm. ecological_interactions: - name: HRT-Driven Mixotrophic Consortium Enrichment - description: > - A continuous bioreactor held at 300 mV under progressively shorter - hydraulic retention times used HRT to enrich a specialized mixotrophic - consortium for inorganic-carbon utilization and acetate production. - interaction_type: NICHE_PARTITIONING + description: A single electrostimulated reactor underwent sequential HRT phases and intervening batch assays. + Its changing composition and outputs support an operational association, not an independently replicated HRT-only + effect. Participants are representative genera, not the complete enrichment roster. scope: COMMUNITY_LEVEL metabolites: - preferred_term: carbon dioxide @@ -162,70 +160,79 @@ ecological_interactions: label: acetate downstream: - target: Planktonic and Electrode-Biofilm Spatial Partitioning - description: > - HRT-driven enrichment yielded a community partitioned between the - planktonic phase and electrode biofilm. + description: PARTIAL - altered residence time may select community composition, but sequential operation and + batch interruptions do not isolate its contribution to the endpoint compartment difference. evidence: - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO - snippet: A continuous electrostimulated bioreactor was operated at a constant potential of - 300 mV for approximately 1200 h under three HRTs - explanation: > - Defines the 300 mV continuous reactor and hydraulic-retention-time series - that selected the enrichment consortium. + snippet: A continuous electrostimulated bioreactor was operated at a constant potential of 300 mV for approximately + 1200 h under three HRTs + explanation: 'Defines the 300 mV continuous reactor and hydraulic-retention-time series that selected the enrichment + consortium. + + ' - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO snippet: Decreasing HRT promoted the enrichment of a specialized mixotrophic consortium - explanation: > - Directly supports the reduced-HRT enrichment of a specialized mixotrophic - community. + explanation: 'Directly supports the reduced-HRT enrichment of a specialized mixotrophic community. + + ' - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO - snippet: Reducing HRT enhanced inorganic carbon utilization and selectively increased acetate - production - explanation: > - Supports the connection between HRT reduction, inorganic-carbon use, and - acetate-selective production. + snippet: Reducing HRT enhanced inorganic carbon utilization and selectively increased acetate production + explanation: 'Supports the connection between HRT reduction, inorganic-carbon use, and acetate-selective production. + + ' + participating_taxa: + - preferred_term: Enterococcus + term: + id: NCBITaxon:1350 + label: Enterococcus + - preferred_term: Clostridium + term: + id: NCBITaxon:1485 + label: Clostridium + - preferred_term: Desulfovibrio + term: + id: NCBITaxon:872 + label: Desulfovibrio - name: Planktonic and Electrode-Biofilm Spatial Partitioning - description: > - The enriched consortium separated into planktonic Enterococcus/Clostridium and - electrode-biofilm Desulfovibrio/Enterococcus populations, creating a spatial - organization associated with downstream carbon-flux changes. - interaction_type: NICHE_PARTITIONING + description: Endpoint planktonic and electrode-biofilm profiles differed. Relative abundance does not demonstrate + taxon-specific flux, physiological niche exclusion or required partner exchange. scope: COMMUNITY_LEVEL - 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: Electrode-Biofilm Carbon-Fixation Pathway Enrichment - description: > - Spatial enrichment at the electrode biofilm was the context in which - predicted carbon-fixation pathways and reducing-equivalent generation were - concentrated. - target: Biomass-Specific Inorganic Carbon Removal Increase - description: > - The organized planktonic and electrode-biofilm consortium exhibited higher - biomass-specific inorganic carbon removal. + description: HYPOTHESIZED - compartment-associated exchange of reducing equivalents could support carbon uptake. + Composition and bulk chemistry do not selectively establish that architecture as the cause of IC removal. evidence: - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO - snippet: Enterococcus and Clostridium dominating the planktonic phase and Desulfovibrio and - Enterococcus enriched in the electrode biofilm - explanation: > - Identifies the taxa that dominated the planktonic phase and the electrode - biofilm of the reduced-HRT enrichment. + snippet: Enterococcus and Clostridium dominating the planktonic phase and Desulfovibrio and Enterococcus enriched + in the electrode biofilm + explanation: 'Identifies the taxa that dominated the planktonic phase and the electrode biofilm of the reduced-HRT + enrichment. + + ' + participating_taxa: + - preferred_term: Enterococcus + term: + id: NCBITaxon:1350 + label: Enterococcus + - preferred_term: Clostridium + term: + id: NCBITaxon:1485 + label: Clostridium + - preferred_term: Desulfovibrio + term: + id: NCBITaxon:872 + label: Desulfovibrio - name: Electrode-Biofilm Carbon-Fixation Pathway Enrichment - description: > - Functional predictions placed enriched carbon-fixation pathways in the - electrode-associated biofilm, suggesting that electrode-associated taxa - generated reducing equivalents that supported autotrophic CO2/HCO3- fixation. - interaction_type: SYNTROPHY + description: PICRUSt2 inferred carbon-fixation potential from amplicon composition. This is not measured gene + expression, electron transfer, hydrogen production or pathway flux; the prediction is not itself a causal actor. scope: COMMUNITY_LEVEL metabolites: - preferred_term: carbon dioxide @@ -236,38 +243,36 @@ ecological_interactions: term: id: CHEBI:17544 label: hydrogencarbonate - biological_processes: - - preferred_term: carbon fixation - term: - id: GO:0015977 - label: carbon fixation - downstream: - - target: Acetate-Directed Carbon Flux - description: > - Predicted biofilm carbon fixation supplied autotrophic metabolism consistent - with the observed excess acetate beyond heterotrophic stoichiometry. evidence: - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: COMPUTATIONAL - snippet: Functional predictions further revealed the enrichment of carbon fixation pathways, - particularly in the electrode-associated biofilm - explanation: > - Supports predicted electrode-biofilm enrichment of carbon-fixation pathways. + snippet: Functional predictions further revealed the enrichment of carbon fixation pathways, particularly in + the electrode-associated biofilm + explanation: Supports predicted potential, not demonstrated carbon-fixation activity. - reference: doi:10.21203/rs.3.rs-9518331/v1 - supports: SUPPORT + supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: electrode-associated taxa contributed to the generation of reducing equivalents and - supported autotrophic metabolism - explanation: > - Supports the predicted biofilm role in supplying reducing power for - autotrophic carbon fixation. + snippet: electrode-associated taxa contributed to the generation of reducing equivalents and supported autotrophic + metabolism + explanation: A proposed mechanism, not directly measured donor activity. + participating_taxa: + - preferred_term: Enterococcus + term: + id: NCBITaxon:1350 + label: Enterococcus + - preferred_term: Clostridium + term: + id: NCBITaxon:1485 + label: Clostridium + - preferred_term: Desulfovibrio + term: + id: NCBITaxon:872 + label: Desulfovibrio - name: Biomass-Specific Inorganic Carbon Removal Increase - description: > - The spatially organized mixotrophic consortium raised biomass-specific - inorganic carbon removal 2.6-fold and thereby routed more inorganic carbon - into the electrostimulated reactor's downstream acetogenic metabolism. - interaction_type: SYNTROPHY + description: Biomass-specific inlet/outlet inorganic-carbon removal increased 2.6-fold. This bulk endpoint does + not identify assimilation, product fate or a responsible taxon, and is not an independently established cause + of acetate output. scope: COMMUNITY_LEVEL metabolites: - preferred_term: carbon dioxide @@ -282,26 +287,29 @@ ecological_interactions: term: id: CHEBI:30089 label: acetate - downstream: - - target: Acetate-Directed Carbon Flux - description: > - Increased inorganic-carbon utilization was coupled to selective acetate - production at the shortest hydraulic retention time. evidence: - reference: doi:10.21203/rs.3.rs-9518331/v1 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: This syntrophic organization enhanced biomass-specific IC removal by 2.6-fold - explanation: > - Quantifies the inorganic-carbon removal increase linked to the spatially - organized consortium. + explanation: Supports the reported bulk change; attribution to syntrophic organization is not selectively established. + participating_taxa: + - preferred_term: Enterococcus + term: + id: NCBITaxon:1350 + label: Enterococcus + - preferred_term: Clostridium + term: + id: NCBITaxon:1485 + label: Clostridium + - preferred_term: Desulfovibrio + term: + id: NCBITaxon:872 + label: Desulfovibrio - name: Acetate-Directed Carbon Flux - description: > - At the 14 h HRT, the enriched electrostimulated consortium selectively - redirected carbon flux toward acetate, reached 1470 mg/L acetate, and showed - acetate formation beyond heterotrophic stoichiometry consistent with - additional CO2/HCO3- fixation. - interaction_type: CROSS_FEEDING + description: Acetate accumulated during reactor operation. Excess over the chosen heterotrophic stoichiometric + model is consistent with additional routes, not a measured autotrophic fraction or demonstrated donor-to-recipient + cross-feeding. scope: COMMUNITY_LEVEL metabolites: - preferred_term: carbon dioxide @@ -316,32 +324,39 @@ ecological_interactions: term: id: CHEBI:30089 label: acetate - biological_processes: - - preferred_term: carbon fixation - term: - id: GO:0015977 - label: carbon fixation evidence: - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO snippet: redirected carbon flux toward acetate, a key product of acetogenic pathways - explanation: > - Identifies acetate as the main product toward which carbon flux was - redirected in the enrichment. + explanation: 'Identifies acetate as the main product toward which carbon flux was redirected in the enrichment. + + ' - reference: doi:10.21203/rs.3.rs-9518331/v1 supports: SUPPORT evidence_source: IN_VITRO snippet: Acetate reached 1470 mg L - explanation: > - Supports the peak acetate accumulation reported for the 14 h HRT condition. + explanation: 'Supports the peak acetate accumulation reported for the 14 h HRT condition. + + ' - reference: doi:10.21203/rs.3.rs-9518331/v1 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO snippet: the acetate exceeded heterotrophic stoichiometry, indicating additional CO - explanation: > - Supports additional inorganic-carbon fixation contributing to the measured - acetate pool. + explanation: Model-dependent inference, not isotope-resolved inorganic-carbon incorporation. + participating_taxa: + - preferred_term: Enterococcus + term: + id: NCBITaxon:1350 + label: Enterococcus + - preferred_term: Clostridium + term: + id: NCBITaxon:1485 + label: Clostridium + - preferred_term: Desulfovibrio + term: + id: NCBITaxon:872 + label: Desulfovibrio cultivation_setup: - cultivation_mode: CONTINUOUS system_type: BIOELECTROCHEMICAL_SYSTEM @@ -357,3 +372,30 @@ cultivation_setup: evidence_source: IN_VITRO snippet: A continuous electrostimulated bioreactor was operated at a constant potential of 300 mV for approximately 1200 h under three HRTs (33, 19, and 14 h). explanation: Names the continuous bioelectrochemical reactor, 300 mV applied potential, and HRT operation. +discussions: +- discussion_id: vfa_prediction_flux_and_operational_confounding + prompt: Which exchanges and carbon sources causally account for the reactor endpoints? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#HRT-Driven Mixotrophic Consortium Enrichment + - ecological_interactions#Planktonic and Electrode-Biofilm Spatial Partitioning + - ecological_interactions#Electrode-Biofilm Carbon-Fixation Pathway Enrichment + - ecological_interactions#Biomass-Specific Inorganic Carbon Removal Increase + - ecological_interactions#Acetate-Directed Carbon Flux + rationale: 'Retain two qualified links; remove composition-to-prediction, prediction-to-acetate and IC-removal-to-acetate + arrows. Derived annotations and correlated endpoints do not establish mediation. Resolve carbon accounting and + selective perturbations before assigning member fluxes. The primary preprint body was read from a public mirror, + not separate supplements or visual figures. Non-graph protocol and role claims remain #1434; the recurrent Enterococcus_B + grounding is tracked by reopened #373. Canonical NCBI participants are preserved without endorsing GTDB metadata.' + posed_by: codex + posed_date: '2026-10-06' +curation_history: +- timestamp: '2026-10-06T08:49:09Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the sequential operational context without a clean HRT-only causal claim.; Retain compartment + composition and only a hypothesized contribution to IC removal.; Retain computational potential without treating + prediction as biological flux.; Retain bulk IC removal without a causal product-fate claim.; Retain acetate + output without proven cross-feeding or an autotrophic fraction. Issue #1432; reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml' + llm_assisted: true diff --git a/kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml b/kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml index b1ba89146..477bf00a3 100644 --- a/kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml +++ b/kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml @@ -191,9 +191,10 @@ taxonomy: explanation: Supports MAG60 as an inferred electrotroph and hydrogen producer. ecological_interactions: - name: Non-electrostimulated toluene degrader to acetoclastic methanogens - description: In non-electro-stimulated microbiota, Syntrophobacteraceae MAG116 was inferred as a toluene degrader proposed - to establish electron syntrophy with acetoclastic Methanosarcina spp. or Methanothrix sp. through e-pili or shared acetate. - interaction_type: SYNTROPHY + description: HYPOTHESIZED - the abstract proposes MAG116-mediated toluene conversion linked to Methanosarcina + OR Methanothrix through e-pili OR acetate. These are alternative partners and routes, not a demonstrated three-member + assembly or resolved direct-electron-transfer flux. The non-electrostimulated model must remain distinct from + electrode-associated hypotheses. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Syntrophobacteraceae MAG116 @@ -221,23 +222,18 @@ ecological_interactions: term: id: CHEBI:16183 label: methane - biological_processes: - - preferred_term: methanogenesis - term: - id: GO:0015948 - label: methanogenesis evidence: - reference: PMID:38865893 supports: PARTIAL evidence_source: COMPUTATIONAL snippet: proposed to establish electron syntrophy with the acetoclastic methanogen Methanosarcina spp. (or Methanothrix sp.) through e-pili or shared acetate - explanation: Supports the candidate non-electrostimulated electron-syntrophy route, while preserving the abstract's proposed - status and alternate methanogen assignment. + explanation: Supports the candidate non-electrostimulated electron-syntrophy route, while preserving the abstract's + proposed status and alternate methanogen assignment. - name: Anode-linked Desulfoprunum and Syntrophobacteraceae electron transfer - description: In electro-stimulated microbiota, anode-recruited Desulfoprunum MAG10 was inferred to participate in interspecies - electron transfer with Syntrophobacteraceae MAG116 and the anode, potentially mediated by c-type cytochromes. - interaction_type: SYNTROPHY + description: HYPOTHESIZED - anode-associated Desulfoprunum MAG10 may exchange electrons with MAG116 and the electrode. + The abstract does not resolve donor-to-recipient direction between the MAGs or demonstrate a necessary transfer + protein. Electrode enrichment does not independently establish syntrophic flux. scope: COMMUNITY_LEVEL participating_taxa: - preferred_term: Desulfoprunum sp. MAG10 @@ -252,13 +248,14 @@ ecological_interactions: - reference: PMID:38865893 supports: PARTIAL evidence_source: COMPUTATIONAL - snippet: facilitated by c-type cytochromes - explanation: Supports an inferred anode-linked electron-transfer mechanism for MAG10 rather than a directly tested pairwise - edge. + snippet: MAG10 engaged in interspecies electron transfer with both syntroph f_Syntrophobacteraceae MAG116 and + the anode + explanation: Identifies the proposed MAG-specific route; the abstract qualifies its molecular mechanism, without + selectively testing it. - name: Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium - description: Electrotrophic Aminidesulfovibrio MAG60 was inferred to capture electrons from the external circuit and share - electrons and hydrogen with the hydrogenotrophic methanogen Methanobacterium MAG74. - interaction_type: SYNTROPHY + description: HYPOTHESIZED - MAG60 could supply electrons or hydrogen to Methanobacterium MAG74. The directed pair + encodes the proposed route, not a measured exchange rate, demonstrated obligate cooperation or resolved direct + versus hydrogen-mediated transfer. Hydrogenase gene content alone does not demonstrate that flux. scope: PAIRWISE source_taxon: preferred_term: Aminidesulfovibrio sp. MAG60 @@ -279,17 +276,13 @@ ecological_interactions: term: id: CHEBI:16183 label: methane - biological_processes: - - preferred_term: methanogenesis - term: - id: GO:0015948 - label: methanogenesis evidence: - reference: PMID:38865893 supports: PARTIAL evidence_source: COMPUTATIONAL snippet: could share electrons and hydrogen with the methanogen Methanobacterium sp. MAG74 - explanation: Supports the inferred electron- and hydrogen-sharing syntrophy between MAG60 and MAG74. + explanation: Supports the abstract-level candidate donor/recipient model, not direct proof of electron or hydrogen + sharing. environmental_factors: - name: 800 mV electro-stimulation value: 800 mV @@ -363,8 +356,8 @@ metal_relevance: NOT_APPLICABLE metal_notes: No metal or rare-earth element processing role is reported for the methanogenic toluene-degrading microbiota. discussions: - discussion_id: full_text_bioelectrochemical_toluene_mag_details - prompt: Curate the full text before adding medium composition, inoculum source, electrode material, reference electrode, - MAG bin-quality metrics, exact MAG relative abundances, and public metagenome accessions. + prompt: Curate the full text before adding medium composition, inoculum source, electrode material, reference + electrode, MAG bin-quality metrics, exact MAG relative abundances, and public metagenome accessions. kind: CURATION_TODO status: OPEN attaches_to: @@ -372,30 +365,48 @@ discussions: - growth_media - cultivation_setup - ecological_interactions - rationale: The PubMed abstract supports 800 mV electro-stimulation, named MAG or genus labels, and the proposed electron-transfer - model, but it omits the reactor geometry, reference electrode, culture medium, source inoculum, and full MAG taxonomy - needed to refine this abstract-level record. + rationale: The PubMed abstract supports 800 mV electro-stimulation, named MAG or genus labels, and the proposed + electron-transfer model, but it omits the reactor geometry, reference electrode, culture medium, source inoculum, + and full MAG taxonomy needed to refine this abstract-level record. evidence: - reference: PMID:38865893 supports: SUPPORT evidence_source: COMPUTATIONAL snippet: metagenomic sequencing analyses revealed - explanation: Shows that the cached abstract summarizes genome-resolved analyses without exposing the underlying MAG table. + explanation: Shows that the cached abstract summarizes genome-resolved analyses without exposing the underlying + MAG table. posed_by: codex posed_date: '2026-09-26' +- discussion_id: toluene_mag_routes_and_primary_access + prompt: Which candidate MAG routes are established by selective perturbation and primary reactor data? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Non-electrostimulated toluene degrader to acetoclastic methanogens + - ecological_interactions#Anode-linked Desulfoprunum and Syntrophobacteraceae electron transfer + - ecological_interactions#Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium + rationale: 'The three abstract-supported mechanisms remain HYPOTHESIZED with PARTIAL computational evidence and + zero downstream arrows. A common electrical treatment does not establish a chain among control, anode and cathode + mechanisms. Preserve the alternate methanogen evidence from #1121 and recruitment evidence from #1120. Distinct + MAG116 and MAG60 labels must not collapse because both use NCBITaxon:2. Full primary Methods/Results and supplements + were not acquired; publisher requests failed and the ResearchGate entry requires a full-text request. This is + an access limitation, not proof that full text does not exist. Non-graph roles and reactor metadata remain #1435.' + posed_by: codex + posed_date: '2026-10-06' curation_history: - timestamp: '2026-09-26T18:38:36Z' curator: codex action: CREATE_ELECTROSTIMULATED_TOLUENE_METHANOGENIC_MICROBIOTA - changes: Created CommunityMech:000440 from PMID:38865893 with electro-stimulated methanogenic toluene microbiota membership, - proposed MAG-resolved syntrophic electron-transfer interactions, 800 mV bioelectrochemical context, PubMed/DOI resources, - and an abstract-level full-text curation todo. + changes: Created CommunityMech:000440 from PMID:38865893 with electro-stimulated methanogenic toluene microbiota + membership, proposed MAG-resolved syntrophic electron-transfer interactions, 800 mV bioelectrochemical context, + PubMed/DOI resources, and an abstract-level full-text curation todo. llm_assisted: true - timestamp: '2026-09-26T18:47:57Z' curator: codex action: FIX_ELECTROSTIMULATED_TOLUENE_REVIEW_ISSUES - changes: 'Addressed adversarial review issues #1120 and #1121 by adding explicit Desulfoprunum MAG10 anode-recruitment evidence - and by broadening the MAG116 acetoclastic-methanogen syntrophy snippet to include the Methanothrix alternate.' + changes: 'Addressed adversarial review issues #1120 and #1121 by adding explicit Desulfoprunum MAG10 anode-recruitment + evidence and by broadening the MAG116 acetoclastic-methanogen syntrophy snippet to include the Methanothrix + alternate.' llm_assisted: true - timestamp: '2026-09-26T18:59:02Z' curator: codex @@ -403,3 +414,10 @@ curation_history: changes: Updated NCBITaxon:2629275 labels from Desulfoprunum to unclassified Desulfoprunum to match the canonical NCBI Taxonomy label required by the ID-label correspondence gate. llm_assisted: true +- timestamp: '2026-10-06T08:49:09Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain alternate control-system candidates without confirmed syntrophic flux.; Retain the undirected + anode/MAG hypothesis with MAG-specific evidence.; Retain the proposed MAG60-to-MAG74 route without confirmed + hydrogen or electron sharing. Issue #1433; reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261006-batch37.yaml b/reports/causal_graph_review/adversarial-review-20261006-batch37.yaml new file mode 100644 index 000000000..a20e6f1ac --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261006-batch37.yaml @@ -0,0 +1,154 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: a691e1d3b93d8eb91b24f0b0cfad5072f7b7d0f8 +scope: +- kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml +- kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml +- kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml +decision_ledger: reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml +validation_report: reports/causal_graph_review/validation-20261006-batch37.json +findings: +- issue: 1431 + severity: P2 + status: addressed_in_this_change + finding: 'Arg-Met graph: scope obligate exchange and fluorescence noise to the tested reporter conditions' + disposition: Existing graph corrected; close only after protected main merge. +- issue: 1432 + severity: P2 + status: addressed_in_this_change + finding: 'Electrostimulated VFA graph: separate observed outputs from predicted carbon-fixation mechanisms' + disposition: Existing graph corrected; close only after protected main merge. +- issue: 1433 + severity: P2 + status: addressed_in_this_change + finding: 'Toluene graph: keep MAG exchange routes hypothetical and preserve alternate partners' + disposition: Existing graph corrected; close only after protected main merge. +- issue: 1434 + severity: P2 + status: open_nongraph_followup + finding: 'Electrostimulated VFA metadata: reconcile reactor protocol and inferred functional roles' + disposition: Non-graph fields preserved, not certified. Remains open. +- issue: 1435 + severity: P2 + status: open_nongraph_followup + finding: 'Toluene metadata: qualify inferred MAG roles and obtain primary reactor methods' + disposition: Non-graph fields preserved, not certified. Remains open. +- issue: 1436 + severity: P2 + status: open_graph_research + finding: 'Arg-Met causal expansion: resolve heterogeneity and reporter-sensitivity mechanisms' + disposition: Expansion remains needs_research; no provider job submitted. +- issue: 373 + severity: P2 + status: reopened_existing_nongraph_followup + finding: Live Enterococcus_B genus-grounding recurrence verified. + disposition: Existing issue reused and reopened, not duplicated or claimed fixed. Taxonomy block preserved. +adversarial_checks: +- Whole-record and complete graph diffs checked against primary sources at the recorded access scope. + Eleven existing nodes retained, three arrows removed and two qualified; every original node and arrow + has a disposition. No new connectivity. +- Arg/Met reciprocal genotypes retain distinct preferred labels despite NCBITaxon:511145. Growth dependence + is conditional on nutrient limitation; fluorescence CV is not intrinsic transcriptional noise or a universal + reporter effect. Same-species interaction loses interspecies GO annotation. +- 'Arg/Met expansion is not silently omitted: source-backed heterogeneity and reporter-sensitivity structure + remains under #1436. Dry-run provenance recorded, no new provider job or spend; status remains needs_research. + Different Arg-Trp and BL21/environmental-isolate systems are excluded.' +- VFA evidence does not justify a prediction-as-cause chain. Remove annotation-workflow and bulk-endpoint + mediation arrows. Retain operational selection as PARTIAL and proposed architecture contribution as + HYPOTHESIZED; do not imply selective proof of member exchange or autotrophic product fraction. +- 'Three canonical VFA participants identify a representative subset, not a complete roster or required + contributors. Remove categorical interaction/process annotations. Non-graph protocol and role claims + remain #1434; existing live grounding issue #373 reopened.' +- 'Toluene is abstract-only: preserve alternative methanogens and e-pili/acetate routes, MAG-specific + evidence and zero arrows. Do not import unstated transfer direction or equate gene content and electrode + enrichment with measured flux. All three mechanisms HYPOTHESIZED/PARTIAL, not categorical syntrophy.' +- 'Preserve #1120 recruitment and #1121 alternate evidence, distinct MAG116/MAG60 labels despite shared + NCBITaxon:2, and corrected Desulfoprunum ID/label. No inaccessible full-text Methods/Results claimed; + #1435 remains open.' +- VFA body was read from a public primary-preprint mirror; canonical retrieval failed. No visual figures, + separate supplements or raw data reviewed. No source cache changed and no publisher body restored. +- Guarded writes, append-only history and llm-assisted events; old history/discussions semantically preserved, + all non-graph raw blocks, 457 other records and 920 cache files byte-preserved. Seven new tests cover + endpoint scope, identity, hypotheses, pending expansion, anchors and full disposition accounting. +- 'Participant registry changes only by the VFA record: 183 to 184 users. Connectivity census and numeric + bounds unchanged. Exact baseline network comparison retains 33 warnings with zero errors, without invented + links.' +- Repeat renders deterministic and all published descriptions checked by parser. Reference-validator 0.1.7 + exits 0 but performs zero checks; no-op disclosed. Independent textual MATCH is not scientific validation. + Actual validation output tails and digests, including pre-research baseline, are committed. +- Deduplication searched 754 all-state issue titles/bodies and ignored/hidden-inclusive local files, not + every comment. No independent reviewer, protected merge or full-corpus completion claimed. +verification: + combined_regressions: 399 passed in 179.40s (0:02:59) + new_regression_tests: 7 + schema_strict_terms_history: passed; actual output tails and digests retained + snippet_counts_by_record: + kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml: + MATCH: 25 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml: + MATCH: 14 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml: + MATCH: 20 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + network: Zero errors; 33 baseline warnings exactly preserved, none added. + black_ruff_diff: passed + tested_file_sha256: + reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml: 363b8d16d8cedae28dbbc6a5699ae9dd2de614364c305e68631891531a32e74e + tests/test_causal_review_batch37.py: cfd0ecaf6335ea5b2ec9df7b75dcf3cb97e026b766b20a32d20aef07afe4af80 + tests/test_participating_taxa.py: f6d46148b7a533783a6a23bfe835b3bf906ecb08d78579fe1b8d71b649160d33 + kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml: 2a72a54518f0a8635f1d599a91b7f750f94349c2f1c7a002159170a8f5be9c4c + kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml: 39dd44074408cc2e990576c6b8c40c18e2faf74c862881e9643865b69da8e0e1 + kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml: 6d55992d0ce9ba8a4398c071862cc167ca334085174ed5c7f04aed80829588c2 + post_commit_docs_current: Separate publication gate; not asserted in pre-commit record. + protected_ci_and_merge: Eligible exact-head protected checks and queue still required. +participant_census: + connectivity_before: + community_level_only: 264 + credited_solely_by_the_rule: 1221 + mixed: 123 + records: 460 + taxa: 1494 + with_community_level: 387 + connectivity_after: + community_level_only: 264 + credited_solely_by_the_rule: 1221 + mixed: 123 + records: 460 + taxa: 1494 + with_community_level: 387 + exact_change: VFA representative participants added to the registry, 183 to 184 users. Arg/Met and toluene + already registered. Canonical terms, scopes and connectivity census unchanged; no numeric-bound changes. + numeric_bounds_changed: false +corpus: + records: 460 + nodes: 1469 + edges: 692 + review_status_counts: + needs_research: 8 + pending: 300 + reviewed: 152 +limitations: +- Eleven existing nodes retained; three unsupported arrows removed; two qualified VFA arrows retained. + No added connectivity. +- Two completed existing-graph reviews; Arg/Met remains needs_research for source-backed mechanism expansion, + not omitted for convenience. +- Primary main-body access for Arg/Met and mirrored VFA preprint; toluene abstract only. No visual figures, + separate supplements or raw data reviewed. All source caches unchanged. +- 'Non-graph raw blocks and canonical terms preserved, not certified. #373, #1434 and #1435 remain open.' +- Self-adversarial review is not independent approval, protected main merge or full-corpus completion. + Textual snippet matching is not scientific validation. diff --git a/reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml b/reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml new file mode 100644 index 000000000..388aa5d0b --- /dev/null +++ b/reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml @@ -0,0 +1,248 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: a691e1d3b93d8eb91b24f0b0cfad5072f7b7d0f8 +baseline_commit: a691e1d3b93d8eb91b24f0b0cfad5072f7b7d0f8 +base_tree: 2d768412771a01f162425275107046bb75a2e95c +issues: +- 1431 +- 1432 +- 1433 +open_nongraph_followups: +- 373 +- 1434 +- 1435 +open_graph_research: +- 1436 +issue_deduplication: + all_state_issue_titles_bodies: 754 + ignored_hidden_local_files_included: true + comments_exhaustive: false + relevant_issues_read: + - 1164 + - 373 + - 1120 + - 1121 + finding: 'No exact duplicate of new graph findings in searched scope; existing #373 reopened for live grounding + recurrence.' +reference_cache_original_hashes: + references_cache/PMID_42592155.txt: 1a6ef1962b96d963213a15999cc601ddeb2f1dd77d94189ae1d25c4d6dbc89b3 + references_cache/doi_10.21203_rs.3.rs-9518331_v1.md: fa3f006ff07e345f4e7721d70646431623335d31ce83cdc720fbfe815de92b5e + references_cache/PMID_38865893.txt: e801f5d665ea8d807869572afb4ac348fa92b31d007b7819fd9c79b38723300b +edison: + status: dry_run_only_no_provider_job_or_charge + community: CommunityMech:000455 + prompt_characters: 11543 + prompt_sha256: 3436fd32f7df6cafd047bdeeebc44771d16606e56aca932689f3325786b001b5 + receipt: + command: + - just + - research-community-causal + - Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture + - --dry-run + exit_code: 0 + log: /private/tmp/communitymech-batch37/argmet-edison-dryrun.log + sha256: d625151da7e2e8d85c6d718fabc959c8541d4bdb6de95de17eaa431df95fab3d + bytes: 1081 + actual_provider_job: false + limitation: Specific spend authorization requested; no actual provider job. LiteLLM remote pricing-map fetch failed + and used local fallback. +limitations: +- Eleven existing nodes retained; three unsupported arrows removed; two qualified VFA arrows retained. No added + connectivity. +- Two completed existing-graph reviews; Arg/Met remains needs_research for source-backed mechanism expansion, not + omitted for convenience. +- Primary main-body access for Arg/Met and mirrored VFA preprint; toluene abstract only. No visual figures, separate + supplements or raw data reviewed. All source caches unchanged. +- 'Non-graph raw blocks and canonical terms preserved, not certified. #373, #1434 and #1435 remain open.' +- Self-adversarial review is not independent approval, protected main merge or full-corpus completion. Textual snippet + matching is not scientific validation. +records: +- path: kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml + id: CommunityMech:000455 + original_sha256: 73a13f3ab90537e4f60c32b4ea2124dd2937999f86a5cca2bd0bc5af4dad4d14 + record_sha256: 2a72a54518f0a8635f1d599a91b7f750f94349c2f1c7a002159170a8f5be9c4c + status: needs_research + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml + scope: Whole record and every existing node/arrow assessed at recorded primary access scope. Arg/Met expansion + remains pending; non-graph fields preserved, not certified. + summary: Retain genotype-specific methionine support under tested nutrient limitation.; Retain reverse arginine + support without collapsing same-species engineered strains.; Qualify the fluorescence CV endpoint and remove + interspecies GO grounding; mechanism expansion remains pending. + renamed_nodes: {} + node_decisions: + - node: ΔargA-ΔmetJ methionine cross-feeding + rationale: Retain genotype-specific methionine support under tested nutrient limitation. + - node: ΔmetA-ΔargR arginine cross-feeding + rationale: Retain reverse arginine support without collapsing same-species engineered strains. + - node: Arg-Met obligate mutualism increases cell noise + rationale: Qualify the fluorescence CV endpoint and remove interspecies GO grounding; mechanism expansion remains + pending. + removed_node_decisions: [] + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:42592155 + issues: + - 1431 + - 1436 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture/2026-10-06T084910Z-codex-6ae26b.yaml + source_review: + PMID:42592155: + url: https://doi.org/10.1093/nsr/nwag357 + scope: Cached primary main body through Methods and acknowledgements, including figure captions. No visual + figures, separate supplements or raw data. +- path: kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml + id: CommunityMech:000287 + original_sha256: 2839d3714e549d6affa0c5994e9670311e21d2648e427381ae2eaee513de0448 + record_sha256: 39dd44074408cc2e990576c6b8c40c18e2faf74c862881e9643865b69da8e0e1 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml + scope: Whole record and every existing node/arrow assessed at recorded primary access scope. Arg/Met expansion + remains pending; non-graph fields preserved, not certified. + summary: Retain the sequential operational context without a clean HRT-only causal claim.; Retain compartment + composition and only a hypothesized contribution to IC removal.; Retain computational potential without treating + prediction as biological flux.; Retain bulk IC removal without a causal product-fate claim.; Retain acetate + output without proven cross-feeding or an autotrophic fraction. + renamed_nodes: {} + node_decisions: + - node: HRT-Driven Mixotrophic Consortium Enrichment + rationale: Retain the sequential operational context without a clean HRT-only causal claim. + - node: Planktonic and Electrode-Biofilm Spatial Partitioning + rationale: Retain compartment composition and only a hypothesized contribution to IC removal. + - node: Electrode-Biofilm Carbon-Fixation Pathway Enrichment + rationale: Retain computational potential without treating prediction as biological flux. + - node: Biomass-Specific Inorganic Carbon Removal Increase + rationale: Retain bulk IC removal without a causal product-fate claim. + - node: Acetate-Directed Carbon Flux + rationale: Retain acetate output without proven cross-feeding or an autotrophic fraction. + removed_node_decisions: [] + edges_before: + - source: HRT-Driven Mixotrophic Consortium Enrichment + target: Planktonic and Electrode-Biofilm Spatial Partitioning + description: 'HRT-driven enrichment yielded a community partitioned between the planktonic phase and electrode + biofilm. + + ' + - source: Planktonic and Electrode-Biofilm Spatial Partitioning + target: Electrode-Biofilm Carbon-Fixation Pathway Enrichment + description: 'Spatial enrichment at the electrode biofilm was the context in which predicted carbon-fixation + pathways and reducing-equivalent generation were concentrated. + + ' + - source: Planktonic and Electrode-Biofilm Spatial Partitioning + target: Biomass-Specific Inorganic Carbon Removal Increase + description: 'The organized planktonic and electrode-biofilm consortium exhibited higher biomass-specific inorganic + carbon removal. + + ' + - source: Electrode-Biofilm Carbon-Fixation Pathway Enrichment + target: Acetate-Directed Carbon Flux + description: 'Predicted biofilm carbon fixation supplied autotrophic metabolism consistent with the observed + excess acetate beyond heterotrophic stoichiometry. + + ' + - source: Biomass-Specific Inorganic Carbon Removal Increase + target: Acetate-Directed Carbon Flux + description: 'Increased inorganic-carbon utilization was coupled to selective acetate production at the shortest + hydraulic retention time. + + ' + edges_after: + - source: HRT-Driven Mixotrophic Consortium Enrichment + target: Planktonic and Electrode-Biofilm Spatial Partitioning + description: PARTIAL - altered residence time may select community composition, but sequential operation and + batch interruptions do not isolate its contribution to the endpoint compartment difference. + - source: Planktonic and Electrode-Biofilm Spatial Partitioning + target: Biomass-Specific Inorganic Carbon Removal Increase + description: HYPOTHESIZED - compartment-associated exchange of reducing equivalents could support carbon uptake. + Composition and bulk chemistry do not selectively establish that architecture as the cause of IC removal. + retained_edge_decisions: + - source: HRT-Driven Mixotrophic Consortium Enrichment + target: Planktonic and Electrode-Biofilm Spatial Partitioning + rationale: PARTIAL - altered residence time may select community composition, but sequential operation and batch + interruptions do not isolate its contribution to the endpoint compartment difference. + - source: Planktonic and Electrode-Biofilm Spatial Partitioning + target: Biomass-Specific Inorganic Carbon Removal Increase + rationale: HYPOTHESIZED - compartment-associated exchange of reducing equivalents could support carbon uptake. + Composition and bulk chemistry do not selectively establish that architecture as the cause of IC removal. + removed_edge_decisions: + - source: Planktonic and Electrode-Biofilm Spatial Partitioning + target: Electrode-Biofilm Carbon-Fixation Pathway Enrichment + rationale: Pathway prediction is derived from composition; an annotation workflow is not an independent biological + causal relation. + - source: Electrode-Biofilm Carbon-Fixation Pathway Enrichment + target: Acetate-Directed Carbon Flux + rationale: Predicted potential cannot itself cause measured acetate production; activity and flux were not resolved. + - source: Biomass-Specific Inorganic Carbon Removal Increase + target: Acetate-Directed Carbon Flux + rationale: IC removal and acetate are bulk endpoints; their association does not establish product fate or mediation. + references: + - doi:10.21203/rs.3.rs-9518331/v1 + issues: + - 1432 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium/2026-10-06T084910Z-codex-0245f9.yaml + source_review: + doi:10.21203/rs.3.rs-9518331/v1: + url: https://www.researchgate.net/publication/404868953_Hydraulic_Retention_Time_and_Electric_Stimuli_as_Key_Levers_for_Tailoring_Mixotrophic_Consortia_Toward_Enhanced_Volatile_Fatty_Acid_Production_and_Carbon_Capture + scope: Cached abstract plus primary preprint main body, Methods through Conclusions and Declarations, read + via public ResearchGate mirror. Canonical Research Square retrieval returned 403. No visual figures, separate + supplements or raw data. Preprint, not peer-reviewed; no new body stored in cache. +- path: kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml + id: CommunityMech:000440 + original_sha256: e2fb839f390a646f5dc997bdd7766dec1fc25b53535b2860d0f378ec5f0d70ac + record_sha256: 6d55992d0ce9ba8a4398c071862cc167ca334085174ed5c7f04aed80829588c2 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml + scope: Whole record and every existing node/arrow assessed at recorded primary access scope. Arg/Met expansion + remains pending; non-graph fields preserved, not certified. + summary: Retain alternate control-system candidates without confirmed syntrophic flux.; Retain the undirected + anode/MAG hypothesis with MAG-specific evidence.; Retain the proposed MAG60-to-MAG74 route without confirmed + hydrogen or electron sharing. + renamed_nodes: {} + node_decisions: + - node: Non-electrostimulated toluene degrader to acetoclastic methanogens + rationale: Retain alternate control-system candidates without confirmed syntrophic flux. + - node: Anode-linked Desulfoprunum and Syntrophobacteraceae electron transfer + rationale: Retain the undirected anode/MAG hypothesis with MAG-specific evidence. + - node: Aminidesulfovibrio electron and hydrogen sharing with Methanobacterium + rationale: Retain the proposed MAG60-to-MAG74 route without confirmed hydrogen or electron sharing. + removed_node_decisions: [] + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - PMID:38865893 + issues: + - 1433 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + history_files: + - history/records/Electrostimulated_Toluene_Methanogenic_Microbiota/2026-10-06T084910Z-codex-af5821.yaml + source_review: + PMID:38865893: + url: https://pubmed.ncbi.nlm.nih.gov/38865893/ + scope: Cached primary abstract only. ScienceDirect full page returned 403; other publisher/API tool retrievals + failed. ResearchGate entry offers a request, not acquired full text. Primary Methods/Results and supplements + not reviewed. diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 5cc50897f..a60003a1c 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -158,9 +158,9 @@ kb/communities/East_River_Hillslope_Riparian_Transect_Community.yaml CommunityMe kb/communities/EcoFAB_Ring_Trial_SynCom17.yaml CommunityMech:000025 2e0f6da3387904e4f33283c5117df14ab55c80a1ec7d7290fe00343f69569f1d 5 4 87.0 reports/causal_graph_review/decisions/20261006-three-records-batch36.yaml reviewed kb/communities/Ecoli_Bifidobacterium_bifidum_Infant_gut_HMO_Mutualism_Coculture.yaml CommunityMech:000296 31e420e8e1553817b77ff5bde0d4229ee09eca2cbf62e5d6524a275801475627 3 2 100.0 reports/causal_graph_review/decisions/20261006-three-records-batch36.yaml reviewed kb/communities/Ecoli_GL10_XL12_D_Lactate_Mixed_Sugar_SynCom.yaml CommunityMech:000357 5d5c7c4e2d853489be775ef1cc44ec611af78b2dff902287c1bf2f18bfa9ad4d 1 0 65.0 reports/causal_graph_review/decisions/20261006-three-records-batch36.yaml reviewed -kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml CommunityMech:000455 73a13f3ab90537e4f60c32b4ea2124dd2937999f86a5cca2bd0bc5af4dad4d14 3 0 75.0 pending -kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml CommunityMech:000287 2839d3714e549d6affa0c5994e9670311e21d2648e427381ae2eaee513de0448 5 5 100.0 pending -kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml CommunityMech:000440 e2fb839f390a646f5dc997bdd7766dec1fc25b53535b2860d0f378ec5f0d70ac 3 0 73.3 pending +kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml CommunityMech:000455 2a72a54518f0a8635f1d599a91b7f750f94349c2f1c7a002159170a8f5be9c4c 3 0 75.0 reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml needs_research +kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml CommunityMech:000287 39dd44074408cc2e990576c6b8c40c18e2faf74c862881e9643865b69da8e0e1 5 2 89.0 reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml reviewed +kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml CommunityMech:000440 6d55992d0ce9ba8a4398c071862cc167ca334085174ed5c7f04aed80829588c2 3 0 63.3 reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml reviewed kb/communities/Electrosynthetic_Consortia_Shewanella_Clostridium_Acetobacterium_Acetate.yaml CommunityMech:000298 d225c991b8b826dc63bb56b8094e9bc5420e5c9da7f6c2e6be693fc7dc56e9e2 3 2 100.0 pending kb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml CommunityMech:000143 e0a94fe128d5babfb6c76a3f161d32dd8a1f1ed58a5204d55a632c28283c702b 3 2 100.0 pending kb/communities/Engineered_Gut_Amino_Acid_CrossFeeding_Consortium.yaml CommunityMech:000151 b29aa03e39e670a5d61b55306119f11c3459c7fb5c6cf5e8fb58a92d040a8cf0 3 2 100.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index 0d6874916..36ef54e2c 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": 1469, - "edges": 695, + "edges": 692, "records_without_nodes": 8, "records_without_edges": 146, "review_status_counts": { - "needs_research": 7, - "pending": 303, - "reviewed": 150 + "needs_research": 8, + "pending": 300, + "reviewed": 152 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261006-batch37.json b/reports/causal_graph_review/validation-20261006-batch37.json new file mode 100644 index 000000000..ac4f895a9 --- /dev/null +++ b/reports/causal_graph_review/validation-20261006-batch37.json @@ -0,0 +1,752 @@ +{ + "base_commit": "a691e1d3b93d8eb91b24f0b0cfad5072f7b7d0f8", + "scope": [ + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-strict.tsv", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-strict.log", + "log_sha256": "4871d2a82f57b3a8b8fa368f514fd1e04f3d7e0991682034f02f6bc8ff7f6045", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch37/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-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-strict.tsv\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-references.log", + "log_sha256": "3efcc77190c7dab75396de6914fcfde5a018f1be8dd082dafc73711f0f312039", + "output_tail": "Validating kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-snippets.log", + "log_sha256": "f261f4401991124875d6e69fbc7c75c05d38b3868788199bef07a85e404ac32e", + "output_tail": "# 25 evidence snippets scanned across 1 files\n MATCH 25\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-rank.log", + "log_sha256": "8b3d4d48e0c2315931a6c9967317152261e6d0f519fee61cfc55cae4f5144df1", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000455\",\n \"name\": \"E. coli K-12 MG1655 Arg-Met Cross-Feeding Coculture\",\n \"score\": 75.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 6,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"downstream\"\n ],\n \"path\": \"kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml\"\n }\n]\n" + }, + { + "check": "Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture/2026-10-06T084910Z-codex-6ae26b.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-strict.tsv", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-strict.log", + "log_sha256": "ed96ce69efc6c68a9801c512e31a7b40ade709083d17913856b07a72c0a8302b", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch37/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-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-strict.tsv\n" + }, + { + "check": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-references.log", + "log_sha256": "b03aad0e192a110ac613e28758e58c413fa4001222de18aa24bc211ebca50c47", + "output_tail": "Validating kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_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/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_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": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-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": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-rank.log", + "log_sha256": "1a5e4a3ff5e5fae8f8a58fd5906fcfc32cd755bc2fcac1bd1d048e27de5cf703", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000287\",\n \"name\": \"Electrostimulated Mixotrophic VFA-producing Enrichment Consortium\",\n \"score\": 89.0,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 5,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 10,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"metabolites_or_biological_processes\",\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml\"\n }\n]\n" + }, + { + "check": "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_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/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium/2026-10-06T084910Z-codex-0245f9.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-schema", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-schema.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-strict", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-strict.tsv", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-strict.log", + "log_sha256": "f8bbe1b886b7770cd15fa5791a8a97877de271dffc6034bcaa3d7a3736bc93d7", + "output_tail": "Validating 1 files with 1 workers; schema=/private/tmp/communitymech-causal-batch37/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-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-strict.tsv\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-terms", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/neDBQyZXv0RYv8B1GH0dI/bin/linkml-term-validator", + "validate-data", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-terms.log", + "log_sha256": "23acda1c1d3194d12bc947d897d07de83f4a076a9d93c135148885108530e018", + "output_tail": "\u2705 Validation passed\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-references", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-reference-validator", + "validate", + "data", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-references.log", + "log_sha256": "f7fc9ab3bda128e2b2467e6383f763b24325e1b4790b7978ab9f11e881527b73", + "output_tail": "Validating kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n", + "explained_output_tail": "Validating kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml against schema src/communitymech/schema/communitymech.yaml\nCache directory: references_cache\n\nValidation Summary:\n Total checks: 0\n All validations passed!\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-snippets", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-snippets.log", + "log_sha256": "32d5c17677a000100a0b22db07734e7af95b7e2b40f82a74ed21b581b1a6d4f5", + "output_tail": "# 20 evidence snippets scanned across 1 files\n MATCH 20\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": "Electrostimulated_Toluene_Methanogenic_Microbiota-rank", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml", + "--format", + "json" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-rank.log", + "log_sha256": "42f1ac0863a02a380e931c8fd7acb47bc6d7f60ab2708d1390687c0edb2599f2", + "output_tail": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000440\",\n \"name\": \"Electrostimulated Toluene Methanogenic Microbiota\",\n \"score\": 63.3,\n \"taxonomy\": 6,\n \"connected_taxa\": 6,\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/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml\"\n }\n]\n" + }, + { + "check": "Electrostimulated_Toluene_Methanogenic_Microbiota-history-0", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Electrostimulated_Toluene_Methanogenic_Microbiota/2026-10-06T084910Z-codex-af5821.yaml" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/Electrostimulated_Toluene_Methanogenic_Microbiota-history-0.log", + "log_sha256": "de6087f4be8c0adc015333597cd864406ad889bbde42d9ee20db0df5932bb2de", + "output_tail": "No issues found\n" + }, + { + "check": "inventory", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "reports/causal_graph_review/build_inventory.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/inventory.log", + "log_sha256": "9250e05499fc560a12a4b9dbfc6999701e3ba3aa993092a4e5c5588caf7a46d4", + "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\": 1469,\n \"edges\": 692,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 146,\n \"review_status_counts\": {\n \"needs_research\": 8,\n \"pending\": 300,\n \"reviewed\": 152\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-batch37/network.log", + "log_sha256": "c035fe6ed0bbf90371ab58d6557716c51eea79ac628e204173d70075f9efaa26", + "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-batch37/rank-all.log", + "log_sha256": "a4d0530632319f6557098fa585b9b29649e5230108fe69721246d8017742b83e", + "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-batch37/render.log", + "log_sha256": "63464defab964a043e0fe75a2cf3a40cfc153569a63415d55091b1940100608f", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch37/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch37/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch37/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-batch37/render-repeat.log", + "log_sha256": "63464defab964a043e0fe75a2cf3a40cfc153569a63415d55091b1940100608f", + "output_tail": "sm.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 /private/tmp/communitymech-causal-batch37/docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to /private/tmp/communitymech-causal-batch37/docs/communities\n \u2713 Generated browser at /private/tmp/communitymech-causal-batch37/docs/browser.html\n \u2713 Generated landing at /private/tmp/communitymech-causal-batch37/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-batch37/connectivity-survey.log", + "log_sha256": "fa6c1a2c91592fb466c7966fc012c6de0b6ef57d278225d99b361d47a58993a9", + "output_tail": "{\"community_level_only\": 264, \"credited_solely_by_the_rule\": 1221, \"mixed\": 123, \"records\": 460, \"taxa\": 1494, \"with_community_level\": 387}\n" + }, + { + "check": "regressions", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "pytest", + "-q", + "tests/test_causal_review_batch10.py", + "tests/test_causal_review_batch11.py", + "tests/test_causal_review_batch12.py", + "tests/test_causal_review_batch13.py", + "tests/test_causal_review_batch14.py", + "tests/test_causal_review_batch15.py", + "tests/test_causal_review_batch16.py", + "tests/test_causal_review_batch17.py", + "tests/test_causal_review_batch18.py", + "tests/test_causal_review_batch19.py", + "tests/test_causal_review_batch20.py", + "tests/test_causal_review_batch21.py", + "tests/test_causal_review_batch22.py", + "tests/test_causal_review_batch23.py", + "tests/test_causal_review_batch24.py", + "tests/test_causal_review_batch25.py", + "tests/test_causal_review_batch27.py", + "tests/test_causal_review_batch28.py", + "tests/test_causal_review_batch29.py", + "tests/test_causal_review_batch30.py", + "tests/test_causal_review_batch31.py", + "tests/test_causal_review_batch32.py", + "tests/test_causal_review_batch33.py", + "tests/test_causal_review_batch34.py", + "tests/test_causal_review_batch35.py", + "tests/test_causal_review_batch36.py", + "tests/test_causal_review_batch37.py", + "tests/test_causal_review_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-batch37/regressions.log", + "log_sha256": "9009edd6a2cdfe590ae65636cb34166c60d5c5c63afe09be2d7d54e8999a26fa", + "output_tail": "........................................................................ [ 18%]\n........................................................................ [ 36%]\n........................................................................ [ 54%]\n........................................................................ [ 72%]\n........................................................................ [ 90%]\n....................................... [100%]\n399 passed in 179.40s (0:02:59)\n" + }, + { + "check": "black", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/3Q_kifQtLB624D5bBWGIf/bin/black", + "--check", + "tests/test_causal_review_batch37.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/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_batch37.py", + "tests/test_participating_taxa.py" + ], + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "log": "/private/tmp/communitymech-batch37/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-batch37/diff-check.log", + "log_sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", + "output_tail": "" + } + ], + "limitations": [ + "Eleven existing nodes retained; three unsupported arrows removed; two qualified VFA arrows retained. No added connectivity.", + "Two completed existing-graph reviews; Arg/Met remains needs_research for source-backed mechanism expansion, not omitted for convenience.", + "Primary main-body access for Arg/Met and mirrored VFA preprint; toluene abstract only. No visual figures, separate supplements or raw data reviewed. All source caches unchanged.", + "Non-graph raw blocks and canonical terms preserved, not certified. #373, #1434 and #1435 remain open.", + "Self-adversarial review is not independent approval, protected main merge or full-corpus completion. Textual snippet matching is not scientific validation.", + "HTML descriptions checked by exact parser and repeat renders, not browser screenshots. Post-commit docs-current is a separate publication gate.", + "All three reference-validator commands exit 0 with Total checks: 0. This is a no-op, not evidence validation. Independent snippet counts and primary-source review are separate." + ], + "snippet_counts_by_record": { + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml": { + "MATCH": 25, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml": { + "MATCH": 14, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml": { + "MATCH": 20, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + } + }, + "unchanged_raw_blocks": 42, + "unchanged_record_files": 457, + "unchanged_cache_files": 920, + "network_delta": { + "existing_findings_preserved": 33, + "new_disconnected": 0, + "added_findings": {}, + "rationale": "All baseline warnings exactly preserved; no invented graph links to suppress warnings." + }, + "render_determinism": true, + "published_description_coverage": { + "pages": 456, + "nodes": 1455, + "arrows": 684 + }, + "participant_census": { + "connectivity_before": { + "community_level_only": 264, + "credited_solely_by_the_rule": 1221, + "mixed": 123, + "records": 460, + "taxa": 1494, + "with_community_level": 387 + }, + "connectivity_after": { + "community_level_only": 264, + "credited_solely_by_the_rule": 1221, + "mixed": 123, + "records": 460, + "taxa": 1494, + "with_community_level": 387 + }, + "exact_change": "VFA representative participants added to the registry, 183 to 184 users. Arg/Met and toluene already registered. Canonical terms, scopes and connectivity census unchanged; no numeric-bound changes.", + "numeric_bounds_changed": false + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1469, + "edges": 692, + "records_without_nodes": 8, + "records_without_edges": 146, + "review_status_counts": { + "needs_research": 8, + "pending": 300, + "reviewed": 152 + }, + "structural_defects": [] + }, + "tested_file_sha256": { + "reports/causal_graph_review/decisions/20261006-three-records-batch37.yaml": "363b8d16d8cedae28dbbc6a5699ae9dd2de614364c305e68631891531a32e74e", + "tests/test_causal_review_batch37.py": "cfd0ecaf6335ea5b2ec9df7b75dcf3cb97e026b766b20a32d20aef07afe4af80", + "tests/test_participating_taxa.py": "f6d46148b7a533783a6a23bfe835b3bf906ecb08d78579fe1b8d71b649160d33", + "kb/communities/Ecoli_K12_MG1655_Arg_Met_CrossFeeding_Coculture.yaml": "2a72a54518f0a8635f1d599a91b7f750f94349c2f1c7a002159170a8f5be9c4c", + "kb/communities/Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml": "39dd44074408cc2e990576c6b8c40c18e2faf74c862881e9643865b69da8e0e1", + "kb/communities/Electrostimulated_Toluene_Methanogenic_Microbiota.yaml": "6d55992d0ce9ba8a4398c071862cc167ca334085174ed5c7f04aed80829588c2" + }, + "status": "verified_two_completed_reviews_and_one_pending_expansion", + "reference_validator_effective_checks": 0, + "reference_validator_caveat": "All three reference-validator commands exit 0 with Total checks: 0. This is a no-op, not evidence validation. Independent snippet counts and primary-source review are separate.", + "pre_research_baseline": { + "base_commit": "a691e1d3b93d8eb91b24f0b0cfad5072f7b7d0f8", + "base_tree": "2d768412771a01f162425275107046bb75a2e95c", + "research_worktree": "/private/tmp/communitymech-causal-batch36", + "checks": [ + { + "name": "rank", + "command": [ + "just", + "rank-causal-graphs" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch37/baseline-rank.log", + "sha256": "c964453ef2b07c9a9d1d9bbba7b2d6927b92864f84c6c4bb22a9b449b269d329", + "output_tail": "nol_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" + }, + { + "name": "just-network", + "command": [ + "just", + "audit-network-json" + ], + "exit_code": 2, + "expected_exit_code": 2, + "log": "/private/tmp/communitymech-batch37/baseline-just-network.log", + "sha256": "8595db43420d3f0a01c57acd6ad733a531a72e962486d20b4e1c2840dda55bff", + "output_tail": "uv run communitymech audit-network --json\nerror: Failed to spawn: `communitymech`\n Caused by: No such file or directory (os error 2)\nerror: recipe `audit-network-json` failed on line 574 with exit code 2\n" + }, + { + "name": "network", + "command": [ + "/Users/marcin/.cache/uv/archive-v0/l58VlyFvdmnkl0CcAx5Gk/bin/python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "exit_code": 1, + "expected_exit_code": 1, + "log": "/private/tmp/communitymech-batch37/baseline-network.log", + "sha256": "c035fe6ed0bbf90371ab58d6557716c51eea79ac628e204173d70075f9efaa26", + "output_tail": " 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" + }, + { + "name": "downstream", + "command": [ + "rg", + "--no-ignore", + "--hidden", + "-n", + "downstream:", + "kb/communities", + "data/isolates", + "--glob", + "*.yaml" + ], + "exit_code": 0, + "expected_exit_code": 0, + "log": "/private/tmp/communitymech-batch37/baseline-downstream.log", + "sha256": "b1d54ebc096869aef2f581b62d9a91a8d4c0623acaf8ed8f1462e4ea9504d4f2", + "output_tail": ":\nkb/communities/Geobacter_Pseudomonas_Formate_Fumarate_Electroactive_Coculture.yaml:189: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:123: downstream:\nkb/communities/Pepper_Phytophthora_SynCom5.yaml:146: downstream:\nkb/communities/PMI_Variovorax_Thermotolerance_Collection.yaml:330: downstream:\nkb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml:107: downstream:\nkb/communities/Emiliania_Phaeobacter_Dynamic_Interaction.yaml:147: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:311: downstream:\nkb/communities/Chlamydomonas_Bacterial_H2_Consortium.yaml:365: downstream:\nkb/communities/High_Ammonia_Biogas_0B_Butyrate_Oxidizing_Enrichment.yaml:233: downstream:\nkb/communities/Engineered_Gut_Amino_Acid_CrossFeeding_Consortium.yaml:159: downstream:\nkb/communities/Engineered_Gut_Amino_Acid_CrossFeeding_Consortium.yaml:186: downstream:\nkb/communities/SO3_BS3_Lithium_Battery_Bioleaching_Consortium.yaml:141: downstream:\nkb/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml:223: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:138: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:182: downstream:\nkb/communities/Desulfovibrio_Methanococcus_Syntrophy.yaml:232: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:65: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:98: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:131: downstream:\nkb/communities/Populus_Salt_Tolerant_SynComs.yaml:155: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:135: downstream:\nkb/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml:177: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:268: downstream:\nkb/communities/Methylacidiphilum_Galdieria_Thermoacidophilic_Coculture.yaml:315: downstream:\nkb/communities/At_RSPHERE_SynCom.yaml:207: downstream:\nkb/communities/At_RSPHERE_SynCom.yaml:249: downstream:\nkb/communities/Ferroplasma_Leptospirillum_Syntrophy.yaml:153: downstream:\nkb/communities/Ferroplasma_Leptospirillum_Syntrophy.yaml:200: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:281: downstream:\nkb/communities/Polaromonas_Vanadium_Reduction_Community.yaml:401: downstream:\nkb/communities/Chromium_Sulfur_Reduction_Enrichment.yaml:159: downstream:\nkb/communities/Chromium_Sulfur_Reduction_Enrichment.yaml:200: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:134: downstream:\nkb/communities/Dual_Bacillus_coagulans_Pseudomonas_putida_Lactic_Acid_Coculture.yaml:189: downstream:\nkb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml:285: downstream:\nkb/communities/Lunar_Simulant_Phosphate_Solubilizing_Bacteria_Nicotiana.yaml:324: downstream:\nkb/communities/BioModels_MODEL2204300001_Kefir_Community_Model.yaml:203: downstream:\n" + } + ] + } +} diff --git a/tests/test_causal_review_batch37.py b/tests/test_causal_review_batch37.py new file mode 100644 index 000000000..2473b9115 --- /dev/null +++ b/tests/test_causal_review_batch37.py @@ -0,0 +1,161 @@ +"""Guard measured endpoints, alternative routes and unresolved graph expansion.""" + +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-three-records-batch37.yaml" + + +def records(): + ledger = yaml.safe_load(LEDGER.read_text()) + return ledger, [yaml.safe_load((ROOT / r["path"]).read_text()) for r in ledger["records"]] + + +def test_argmet_preserves_distinct_genotypes_and_conditional_reciprocity(): + _, docs = records() + met, arg, noise = docs[0]["ecological_interactions"] + assert met["source_taxon"] == arg["target_taxon"] + assert met["target_taxon"] == arg["source_taxon"] + assert met["source_taxon"]["term"] == met["target_taxon"]["term"] + assert met["source_taxon"]["preferred_term"] != met["target_taxon"]["preferred_term"] + assert [n["interaction_type"] for n in [met, arg, noise]] == [ + "CROSS_FEEDING", + "CROSS_FEEDING", + "MUTUALISM", + ] + assert "supplemented cultures" in met["description"] + assert "Supplementation" in arg["description"] + assert "coefficient of variation" in noise["description"] + assert "not a direct measurement of intrinsic transcriptional noise" in noise["description"] + assert "biological_processes" not in noise + assert all("downstream" not in n for n in [met, arg, noise]) + + +def test_argmet_expansion_is_not_counted_complete(): + ledger, docs = records() + assert ledger["records"][0]["status"] == "needs_research" + assert ledger["open_graph_research"] == [1436] + assert ledger["edison"]["status"] == "dry_run_only_no_provider_job_or_charge" + assert ledger["edison"]["prompt_characters"] == 11543 + assert ledger["edison"]["receipt"]["exit_code"] == 0 + assert ledger["edison"]["receipt"]["actual_provider_job"] is False + assert "modeled diffusion/uptake" in docs[0]["discussions"][-1]["rationale"] + assert "BL21/environmental-isolate" in docs[0]["discussions"][-1]["rationale"] + assert len(docs[0]["discussions"]) == 3 + + +def test_vfa_has_two_qualified_links_not_a_prediction_to_flux_chain(): + _, docs = records() + hrt, spatial, prediction, removal, acetate = docs[1]["ecological_interactions"] + assert [e["target"] for e in hrt["downstream"]] == [spatial["name"]] + assert hrt["downstream"][0]["description"].startswith("PARTIAL -") + assert [e["target"] for e in spatial["downstream"]] == [removal["name"]] + assert spatial["downstream"][0]["description"].startswith("HYPOTHESIZED -") + assert all("downstream" not in n for n in [prediction, removal, acetate]) + for node in [hrt, spatial, prediction, removal, acetate]: + assert node["scope"] == "COMMUNITY_LEVEL" + assert len(node["participating_taxa"]) == 3 + assert not {"interaction_type", "biological_processes"} & node.keys() + assert "sequential HRT phases" in hrt["description"] + assert "representative genera" in hrt["description"] + assert "PICRUSt2" in prediction["description"] + assert "not itself a causal actor" in prediction["description"] + assert prediction["evidence"][1]["supports"] == "PARTIAL" + assert removal["evidence"][0]["supports"] == "PARTIAL" + assert acetate["evidence"][2]["supports"] == "PARTIAL" + + +def test_toluene_preserves_alternatives_and_distinct_mag_labels(): + _, docs = records() + control, anode, cathode = docs[2]["ecological_interactions"] + for node in [control, anode, cathode]: + assert node["description"].startswith("HYPOTHESIZED -") + assert not {"downstream", "interaction_type", "biological_processes"} & node.keys() + assert all(e["supports"] == "PARTIAL" for e in node["evidence"]) + assert all(e["evidence_source"] == "COMPUTATIONAL" for e in node["evidence"]) + assert "Methanosarcina OR Methanothrix" in control["description"] + assert "e-pili OR acetate" in control["description"] + assert "(or Methanothrix" in control["evidence"][0]["snippet"] + assert "MAG10 engaged" in anode["evidence"][0]["snippet"] + assert "MAG116 and the anode" in anode["evidence"][0]["snippet"] + assert "does not resolve donor-to-recipient direction" in anode["description"] + assert cathode["scope"] == "PAIRWISE" + assert cathode["source_taxon"]["preferred_term"] == "Aminidesulfovibrio sp. MAG60" + assert control["participating_taxa"][0]["preferred_term"] == "Syntrophobacteraceae MAG116" + assert control["participating_taxa"][0]["term"] == cathode["source_taxon"]["term"] + assert cathode["target_taxon"]["preferred_term"] == "Methanobacterium sp. MAG74" + + +def test_batch37_canonical_participants_history_and_hashes(): + ledger, docs = records() + for row, doc in zip(ledger["records"], docs, strict=True): + canonical = { + (t["taxon_term"]["term"]["id"], t["taxon_term"]["preferred_term"]): t["taxon_term"] + for t in doc["taxonomy"] + } + names = {n["name"] for n in doc["ecological_interactions"]} + for node in doc["ecological_interactions"]: + terms = node.get("participating_taxa", []) + [ + node[k] for k in ["source_taxon", "target_taxon"] if k in node + ] + for term in terms: + assert ( + term["term"] == canonical[(term["term"]["id"], term["preferred_term"])]["term"] + ) + assert all( + e["target"] in names and e["target"] != node["name"] + for e in node.get("downstream", []) + ) + assert doc["discussions"][-1]["kind"] == "KNOWLEDGE_GAP" + assert doc["discussions"][-1]["status"] == "OPEN" + for gap in doc["discussions"]: + assert all( + anchor.split("#", 1)[1] in names + for anchor in gap.get("attaches_to", []) + if anchor.startswith("ecological_interactions#") + ) + assert row["curation_events_added"] == 1 and len(row["history_files"]) == 1 + assert doc["curation_history"][-1]["llm_assisted"] is True + assert hashlib.sha256((ROOT / row["path"]).read_bytes()).hexdigest() == row["record_sha256"] + + +def test_batch37_all_existing_nodes_and_arrows_have_dispositions(): + ledger, docs = records() + assert ledger["independent_approval"] is False and ledger["issues"] == [1431, 1432, 1433] + assert sum(len(r["node_decisions"]) for r in ledger["records"]) == 11 + assert all(not r["removed_node_decisions"] for r in ledger["records"]) + assert sum(len(r["retained_edge_decisions"]) for r in ledger["records"]) == 2 + assert sum(len(r["removed_edge_decisions"]) for r in ledger["records"]) == 3 + for row, doc in zip(ledger["records"], docs, strict=True): + assert not row["renamed_nodes"] + assert Counter(d["node"] for d in row["node_decisions"]) == Counter( + n["name"] for n in doc["ecological_interactions"] + ) + assert {(e["source"], e["target"]) for e in row["edges_before"]} == { + (e["source"], e["target"]) for e in row["edges_after"] + row["removed_edge_decisions"] + } + for path, digest in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == digest + + +def test_batch37_access_limits_and_nongraph_followups_are_explicit(): + ledger, docs = records() + assert ledger["open_nongraph_followups"] == [373, 1434, 1435] + assert "abstract only" in ledger["records"][2]["source_review"]["PMID:38865893"]["scope"] + vfa_source = ledger["records"][1]["source_review"]["doi:10.21203/rs.3.rs-9518331/v1"] + assert "ResearchGate mirror" in vfa_source["scope"] + assert "not peer-reviewed" in vfa_source["scope"] + assert ( + docs[1]["taxonomy"][0]["taxon_term"]["gtdb_classification"]["gtdb_id"] + == "GTDB:g__Enterococcus_B" + ) + assert docs[2]["taxonomy"][3]["taxon_term"]["term"] == { + "id": "NCBITaxon:2629275", + "label": "unclassified Desulfoprunum", + } + assert ledger["issue_deduplication"]["ignored_hidden_local_files_included"] is True + assert ledger["issue_deduplication"]["comments_exhaustive"] is False diff --git a/tests/test_participating_taxa.py b/tests/test_participating_taxa.py index 411175cb8..97d71dd71 100644 --- a/tests/test_participating_taxa.py +++ b/tests/test_participating_taxa.py @@ -249,6 +249,7 @@ def test_a_curie_is_ambiguous_where_members_share_an_id(example): "East_River_Floodplain_Core_Microbiome.yaml", "East_River_Hillslope_Riparian_Transect_Community.yaml", "EcoFAB_Ring_Trial_SynCom17.yaml", + "Electrostimulated_Mixotrophic_VFA_Producing_Enrichment_Consortium.yaml", "Electrostimulated_Toluene_Methanogenic_Microbiota.yaml", "Ecoli_Bifidobacterium_bifidum_Infant_gut_HMO_Mutualism_Coculture.yaml", "Ecoli_GL10_XL12_D_Lactate_Mixed_Sugar_SynCom.yaml",