diff --git a/docs/communities/Cinnamate_Degradation_Consortium.html b/docs/communities/Cinnamate_Degradation_Consortium.html index 91ca54e39..3dcea44e1 100644 --- a/docs/communities/Cinnamate_Degradation_Consortium.html +++ b/docs/communities/Cinnamate_Degradation_Consortium.html @@ -601,7 +601,7 @@

Ecological Interactions

Ecological interaction network for Cinnamate β-Oxidation 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 (syntrophy, commensalism). + 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).
@@ -614,8 +614,8 @@

Ecological Interactions

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

Ecological Interactions

Cinnamate β-Oxidation to Benzoate

- COMMENSALISM
-

Papillibacter cinnamivorans initiates anaerobic cinnamate degradation by producing benzoate through beta-oxidation.

+

Papillibacter cinnamivorans converts cinnamate to benzoate, providing the intermediate for subsequent syntrophic degradation. Conversion still occurred with the methanogenesis inhibitor BESA. The authors propose beta-oxidation; the accessible abstract does not resolve its enzyme steps or establish a commensal fitness relationship.

Source Taxon: Papillibacter cinnamivorans

@@ -649,17 +648,6 @@

Cinnamate β-Oxidation to Benzoate

-

Biological Processes:

- -
@@ -667,7 +655,7 @@

Cinnamate β-Oxidation to Benzoate

→ Syntrophic Benzoate Degradation -

Benzoate produced from cinnamate becomes the substrate for downstream Syntrophus-methanogen degradation.

+

Benzoate formed by P. cinnamivorans supplies substrate for the Syntrophus-methanogen association. The reported stepwise conversion and BESA-associated arrest at benzoate support this substrate connection without resolving every enzyme step.

@@ -699,7 +687,7 @@

Evidence

Syntrophic Benzoate Degradation

SYNTROPHY
-

Syntrophus sp. syntrophically degrades the benzoate intermediate to acetate, H2, and CO2 with the hydrogen-scavenging methanogen.

+

Syntrophus sp. and the methanogen form the association reported to degrade benzoate to acetate, methane and carbon dioxide. Syntrophic interdependence is reported during growth on cinnamate. HYPOTHESIZED - H2 transfer is a candidate coupling mechanism, not an experimentally identified electron carrier in the accessible abstract.

Source Taxon: Syntrophus sp.

@@ -720,10 +708,6 @@

Syntrophic Benzoate Degradation

(CHEBI:30089), - hydrogen - (CHEBI:18276), - carbon dioxide (CHEBI:16526) @@ -750,7 +734,7 @@

Syntrophic Benzoate Degradation

→ Methanogenesis -

H2 and CO2 from benzoate degradation feed Methanobacterium methanogenesis.

+

HYPOTHESIZED - benzoate oxidation could supply H2 as reducing equivalents for CO2-reducing methanogenesis. The observed association and methane product support metabolic coupling, but the accessible abstract does not discriminate electron carriers or trace carbon and electron flux between partners.

@@ -782,7 +766,7 @@

Evidence

Methanogenesis

SYNTROPHY -

Methanobacterium formicicum consumes syntrophy-derived H2 and CO2 to produce methane during complete cinnamate mineralization.

+

PARTIAL - Methanobacterium formicicum replaced the original Methanobacterium isolate in the reconstituted consortium, and methane was reported among its degradation products. HYPOTHESIZED - consumption of partner-derived H2 with CO2 reduction explains a possible methanogenic route, but the accessible abstract does not resolve that transfer. Acetate remains among the reported products; complete mineralization of all cinnamate carbon is not established.

Source Taxon: Methanobacterium formicicum

@@ -793,10 +777,6 @@

Methanogenesis

Metabolites: - hydrogen - (CHEBI:18276), - carbon dioxide (CHEBI:16526), @@ -833,7 +813,7 @@

Evidence

PMID:12432464 - - SUPPORT (IN_VITRO) + - PARTIAL (IN_VITRO)
"In the presence of bromoethanesulfonic acid (BESA), cinnamate was transformed to benzoate, whereas under methanogenic conditions without BESA, cinnamate was first transformed to benzoate via beta-oxidation and subsequently completely degraded into acetate, CH(4), and CO(2)"
@@ -849,6 +829,25 @@

Evidence

+
+

Knowledge gaps & discussions (1)

+ +
+

+ KNOWLEDGE_GAP + OPEN + Which interspecies electron carrier and carbon balance support methanogenesis during cinnamate degradation? +

+

The primary abstract establishes benzoate formation, syntrophic benzoate degradation and acetate/methane/CO2 products, but not an experimentally resolved H2-versus-alternative carrier or full carbon mineralization. The subscription body was unavailable; exact-system gas/carrier measurements, partner perturbations and carbon balance are needed before promoting the proposed H2 route to demonstrated transfer. The supported benzoate substrate link remains intact.

+ +

Attaches to: ecological_interactions#Cinnamate β-Oxidation to Benzoate, ecological_interactions#Syntrophic Benzoate Degradation, ecological_interactions#Methanogenesis

+ + + + +
+ +
@@ -1059,7 +1058,7 @@

Evidence

(function() { var intId = "interaction:0"; - var intType = "COMMENSALISM"; + var intType = "UNKNOWN"; var metabolites = []; @@ -1070,10 +1069,6 @@

Evidence

var processes = []; - - processes.push("fatty acid beta-oxidation"); - - var evidenceCount = 1; nodes.push({ @@ -1106,8 +1101,6 @@

Evidence

metabolites.push("acetate"); - metabolites.push("hydrogen"); - metabolites.push("carbon dioxide"); @@ -1150,8 +1143,6 @@

Evidence

var metabolites = []; - metabolites.push("hydrogen"); - metabolites.push("carbon dioxide"); metabolites.push("methane"); diff --git a/history/records/Cinnamate_Degradation_Consortium/2026-10-05T222800Z-codex-cd0f4a.yaml b/history/records/Cinnamate_Degradation_Consortium/2026-10-05T222800Z-codex-cd0f4a.yaml new file mode 100644 index 000000000..30fe67818 --- /dev/null +++ b/history/records/Cinnamate_Degradation_Consortium/2026-10-05T222800Z-codex-cd0f4a.yaml @@ -0,0 +1,30 @@ +history_version: 1 +target: + kind: record + path: kb/communities/Cinnamate_Degradation_Consortium.yaml + slug: Cinnamate_Degradation_Consortium +session: + id: 2026-10-05T222800Z-codex-cd0f4a + timestamp: '2026-10-05T22:28:00Z' + actors: + - type: ai_agent + name: codex + model: unspecified + agent_tool: codex +links: + issues: + - https://github.com/CultureBotAI/CommunityMech/issues/1313 +events: +- type: EDIT + outcome: changed + sections: + - interactions + - discussions + summary: Retain the supported benzoate substrate link and proposed beta-oxidation without + unsupported commensalism or fatty-acid process typing.; Retain measured syntrophic degradation + and mixed products; qualify the electron-carrier arrow and remove unqualified hydrogen + metabolite assertions.; Retain methane production with partial route evidence; distinguish + the reconstituted methanogen from the original isolate and avoid complete-mineralization + claims. + details: Source-based self-adversarial review, abstract-bounded mechanism repair, no new + structure. reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml diff --git a/kb/communities/Cinnamate_Degradation_Consortium.yaml b/kb/communities/Cinnamate_Degradation_Consortium.yaml index 41a0a2e63..001f2435e 100644 --- a/kb/communities/Cinnamate_Degradation_Consortium.yaml +++ b/kb/communities/Cinnamate_Degradation_Consortium.yaml @@ -97,9 +97,9 @@ taxonomy: was then replaced by a collection strain of Methanobacterium formicicum ecological_interactions: - name: Cinnamate β-Oxidation to Benzoate - description: Papillibacter cinnamivorans initiates anaerobic cinnamate degradation - by producing benzoate through beta-oxidation. - interaction_type: COMMENSALISM + description: Papillibacter cinnamivorans converts cinnamate to benzoate, providing the intermediate for subsequent + syntrophic degradation. Conversion still occurred with the methanogenesis inhibitor BESA. The authors propose + beta-oxidation; the accessible abstract does not resolve its enzyme steps or establish a commensal fitness relationship. scope: COMMUNITY_LEVEL source_taxon: preferred_term: Papillibacter cinnamivorans @@ -111,29 +111,30 @@ ecological_interactions: term: id: CHEBI:23252 label: cinnamic acids + notes: Class-level cinnamic-acids grounding retained; this does not identify a specific stereoisomer or demonstrate + fatty-acid metabolism. - preferred_term: benzoate term: id: CHEBI:30746 label: benzoic acid - biological_processes: - - preferred_term: fatty acid beta-oxidation - term: - id: GO:0006635 - label: fatty acid beta-oxidation downstream: - target: Syntrophic Benzoate Degradation - description: Benzoate produced from cinnamate becomes the substrate for - downstream Syntrophus-methanogen degradation. + description: Benzoate formed by P. cinnamivorans supplies substrate for the Syntrophus-methanogen association. + The reported stepwise conversion and BESA-associated arrest at benzoate support this substrate connection + without resolving every enzyme step. evidence: - reference: PMID:12432464 supports: SUPPORT evidence_source: IN_VITRO - snippet: In the presence of bromoethanesulfonic acid (BESA), cinnamate was transformed to benzoate, - whereas under methanogenic conditions without BESA, cinnamate was first transformed to benzoate - via beta-oxidation and subsequently completely degraded into acetate, CH(4), and CO(2) + snippet: In the presence of bromoethanesulfonic acid (BESA), cinnamate was transformed to benzoate, whereas + under methanogenic conditions without BESA, cinnamate was first transformed to benzoate via beta-oxidation + and subsequently completely degraded into acetate, CH(4), and CO(2) + explanation: Supports cinnamate-to-benzoate conversion and the inhibitor comparison. The abstract proposes beta-oxidation + but does not establish the fatty-acid GO process or a commensal relationship. - name: Syntrophic Benzoate Degradation - description: Syntrophus sp. syntrophically degrades the benzoate intermediate - to acetate, H2, and CO2 with the hydrogen-scavenging methanogen. + description: Syntrophus sp. and the methanogen form the association reported to degrade benzoate to acetate, methane + and carbon dioxide. Syntrophic interdependence is reported during growth on cinnamate. HYPOTHESIZED - H2 transfer + is a candidate coupling mechanism, not an experimentally identified electron carrier in the accessible abstract. interaction_type: SYNTROPHY scope: PAIRWISE source_taxon: @@ -155,10 +156,6 @@ ecological_interactions: term: id: CHEBI:30089 label: acetate - - preferred_term: hydrogen - term: - id: CHEBI:18276 - label: dihydrogen - preferred_term: carbon dioxide term: id: CHEBI:16526 @@ -170,18 +167,23 @@ ecological_interactions: label: benzoate metabolic process downstream: - target: Methanogenesis - description: H2 and CO2 from benzoate degradation feed Methanobacterium - methanogenesis. + description: HYPOTHESIZED - benzoate oxidation could supply H2 as reducing equivalents for CO2-reducing methanogenesis. + The observed association and methane product support metabolic coupling, but the accessible abstract does + not discriminate electron carriers or trace carbon and electron flux between partners. evidence: - reference: PMID:12432464 supports: SUPPORT evidence_source: IN_VITRO - snippet: Papillibacter cinnamivorans was responsible for benzoate production from cinnamate, whereas - a syntrophic association between Syntrophus sp. and the methanogen degraded benzoate to acetate, - CH(4), and CO(2) + snippet: Papillibacter cinnamivorans was responsible for benzoate production from cinnamate, whereas a syntrophic + association between Syntrophus sp. and the methanogen degraded benzoate to acetate, CH(4), and CO(2) + explanation: Supports the syntrophic association and its mixed end products, not partner-resolved H2 production + or consumption. Methane is a product of the association, not assigned to Syntrophus alone. - name: Methanogenesis - description: Methanobacterium formicicum consumes syntrophy-derived H2 and CO2 - to produce methane during complete cinnamate mineralization. + description: PARTIAL - Methanobacterium formicicum replaced the original Methanobacterium isolate in the reconstituted + consortium, and methane was reported among its degradation products. HYPOTHESIZED - consumption of partner-derived + H2 with CO2 reduction explains a possible methanogenic route, but the accessible abstract does not resolve that + transfer. Acetate remains among the reported products; complete mineralization of all cinnamate carbon is not + established. interaction_type: SYNTROPHY scope: COMMUNITY_LEVEL source_taxon: @@ -190,14 +192,12 @@ ecological_interactions: id: NCBITaxon:2162 label: Methanobacterium formicicum metabolites: - - preferred_term: hydrogen - term: - id: CHEBI:18276 - label: dihydrogen - preferred_term: carbon dioxide term: id: CHEBI:16526 label: carbon dioxide + notes: CO2 is reported among consortium products; its use in the proposed hydrogenotrophic route is not directly + traced in the accessible abstract. - preferred_term: methane term: id: CHEBI:16183 @@ -209,11 +209,14 @@ ecological_interactions: label: methanogenesis evidence: - reference: PMID:12432464 - supports: SUPPORT + supports: PARTIAL evidence_source: IN_VITRO - snippet: In the presence of bromoethanesulfonic acid (BESA), cinnamate was transformed to benzoate, - whereas under methanogenic conditions without BESA, cinnamate was first transformed to benzoate - via beta-oxidation and subsequently completely degraded into acetate, CH(4), and CO(2) + snippet: In the presence of bromoethanesulfonic acid (BESA), cinnamate was transformed to benzoate, whereas + under methanogenic conditions without BESA, cinnamate was first transformed to benzoate via beta-oxidation + and subsequently completely degraded into acetate, CH(4), and CO(2) + explanation: Supports methane among the consortium products and the BESA comparison. It does not demonstrate + a specific H2/CO2 transfer route or complete conversion of all carbon to inorganic products; acetate is also + reported. related_ingredients: - preferred_term: cinnamate chebi_term: @@ -326,3 +329,29 @@ growth_media: evidence_source: IN_VITRO snippet: "under methanogenic conditions without BESA, cinnamate was first transformed to benzoate via beta-oxidation" explanation: "Establishes anaerobic (methanogenic) cultivation conditions." +discussions: +- discussion_id: cinnamate_electron_carrier_and_carbon_balance + prompt: Which interspecies electron carrier and carbon balance support methanogenesis during cinnamate degradation? + kind: KNOWLEDGE_GAP + status: OPEN + attaches_to: + - ecological_interactions#Cinnamate β-Oxidation to Benzoate + - ecological_interactions#Syntrophic Benzoate Degradation + - ecological_interactions#Methanogenesis + rationale: The primary abstract establishes benzoate formation, syntrophic benzoate degradation and acetate/methane/CO2 + products, but not an experimentally resolved H2-versus-alternative carrier or full carbon mineralization. The + subscription body was unavailable; exact-system gas/carrier measurements, partner perturbations and carbon balance + are needed before promoting the proposed H2 route to demonstrated transfer. The supported benzoate substrate + link remains intact. + posed_by: codex + posed_date: '2026-10-05' +curation_history: +- timestamp: '2026-10-05T22:27:59Z' + curator: codex + action: REVIEW_CAUSAL_GRAPH + changes: 'Retain the supported benzoate substrate link and proposed beta-oxidation without unsupported commensalism + or fatty-acid process typing.; Retain measured syntrophic degradation and mixed products; qualify the electron-carrier + arrow and remove unqualified hydrogen metabolite assertions.; Retain methane production with partial route evidence; + distinguish the reconstituted methanogen from the original isolate and avoid complete-mineralization claims.; + issue #1313; reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml' + llm_assisted: true diff --git a/reports/causal_graph_review/adversarial-review-20261005-batch16.yaml b/reports/causal_graph_review/adversarial-review-20261005-batch16.yaml new file mode 100644 index 000000000..aeeb51b9c --- /dev/null +++ b/reports/causal_graph_review/adversarial-review-20261005-batch16.yaml @@ -0,0 +1,63 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: aa617f97b5d0ac79807d659856a8336880747559 +scope: +- kb/communities/Cinnamate_Degradation_Consortium.yaml +- kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml +findings: +- issue: 1313 + severity: P2 + finding: Mixed acetate/methane/CO2 products are not complete carbon mineralization; the abstract does not identify + the electron carrier or support commensalism/fatty-acid-process typing. + disposition: addressed_and_locally_verified +open_nongraph_followups: +- issue: 1314 + disposition: intentionally_not_closed_by_graph_only_patch + scope: Cinnamate environmental mineralization, abundance, metal relevance, sole-substrate and ingredient metadata. +adversarial_checks: +- Preserve observed syntrophic interdependence and both existing causal links; do not erase the supported benzoate + intermediate. +- Distinguish a proposed hydrogenotrophic route from directly measured interspecies hydrogen flux. +- Retain the mixed product list and distinguish original versus replacement methanogen. +- Do not mistake aromatic-side-chain beta oxidation for measured fatty-acid beta oxidation. +- Inspect isoDCA Figure 1 and sequential sterile spent-medium Methods; retain the valid existing interaction byte + unchanged. +- Do not imply direct cell contact, peer review, quantified transfer flux or newly verified supplementary images + for isoDCA. +- No new nodes/arrows or Edison spend. No change to participant/connectivity test registries. +- Primary PDF/text/images stay outside the repository; existing reference caches unchanged. +- Review counts include a hash-bound no-change decision, not a fabricated curation event. +verification: + status: local_validation_complete + checks: 22 + records: 460 + nodes: 1475 + edges: 718 + review_status_counts: + needs_research: 3 + pending: 358 + reviewed: 99 + structural_defects: 0 + network_errors: 0 + network_warnings: 25 + new_network_warnings: 0 + unchanged_raw_blocks: 29 + snippet_counts: + MATCH: 36 + RENDERING: 0 + ASSEMBLED: 0 + WEAK: 0 + MISMATCH: 0 + NOCONTENT: 0 + published_description_coverage: + pages: 456 + node_descriptions: 1461 + edge_descriptions: 710 + render_determinism: passed + regressions: 233 passed in 156.39s (0:02:36) + rights: 3 passed in 1.51s + rights_import_root_verified: true + caches_unchanged: true + primary_artifact_hashes_rechecked: true + participant_registry_and_connectivity_test_bytes_unchanged: true diff --git a/reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml b/reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml new file mode 100644 index 000000000..c5a8d9882 --- /dev/null +++ b/reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml @@ -0,0 +1,150 @@ +reviewer: codex +review_mode: source_based_self_adversarial_review +independent_approval: false +base_commit: aa617f97b5d0ac79807d659856a8336880747559 +issues: +- 1313 +open_nongraph_followups: +- 1314 +issue_deduplication: + count: 657 + scope: All-state issue titles/bodies plus ignored-inclusive local reports/history/research/tests; comments not + exhaustive. + relevant_closed: + - 974 + - 975 + prior_pr: 973 +reference_cache_original_hashes: + references_cache/PMID_12432464.md: 059b3f75280bdc1fb31af63d6b0996a12caa55b31471b63e07a1892296d1a617 + references_cache/doi_10.64898_2026.08.11.743107.md: f1965bd991762f8051a1012dee3556636b3fc7cc27fe49136b23499380ff87a8 +limitations: +- No new nodes/arrows; no Edison run or spend. +- Cinnamate primary subscription body unavailable; claims bounded to abstract. +- IsoDCA primary PDF relevant experiments and Figure 1 inspected, not every host result or supplemental figure. +- 'Issue #1314 is a separate non-graph metadata followup.' +- Protected merge requires all required checks; review is self-adversarial, not independent approval. +records: +- path: kb/communities/Cinnamate_Degradation_Consortium.yaml + id: CommunityMech:000018 + original_sha256: e0c1766f30e1d6225d8dede3b2944ca9193c45610ca6aaa194c07ecacec25edc + record_sha256: 6b8b4403e3b23932e5a7f59de1f2580dab061a5327e45f1d62cadd4d32c107d9 + status: reviewed + outcome: changed + review_file: reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml + scope: Whole record and every existing graph node/edge reviewed. Cinnamate is bounded to the accessible abstract; + isoDCA is an existing-graph no-change review, not exhaustive host-mechanism curation. + summary: Retain the supported benzoate substrate link and proposed beta-oxidation without unsupported commensalism + or fatty-acid process typing.; Retain measured syntrophic degradation and mixed products; qualify the electron-carrier + arrow and remove unqualified hydrogen metabolite assertions.; Retain methane production with partial route evidence; + distinguish the reconstituted methanogen from the original isolate and avoid complete-mineralization claims. + node_decisions: + - node: Cinnamate β-Oxidation to Benzoate + rationale: Retain the supported benzoate substrate link and proposed beta-oxidation without unsupported commensalism + or fatty-acid process typing. + - node: Syntrophic Benzoate Degradation + rationale: Retain measured syntrophic degradation and mixed products; qualify the electron-carrier arrow and + remove unqualified hydrogen metabolite assertions. + - node: Methanogenesis + rationale: Retain methane production with partial route evidence; distinguish the reconstituted methanogen from + the original isolate and avoid complete-mineralization claims. + edges_before: + - source: Cinnamate β-Oxidation to Benzoate + target: Syntrophic Benzoate Degradation + description: Benzoate produced from cinnamate becomes the substrate for downstream Syntrophus-methanogen degradation. + - source: Syntrophic Benzoate Degradation + target: Methanogenesis + description: H2 and CO2 from benzoate degradation feed Methanobacterium methanogenesis. + edges_after: + - source: Cinnamate β-Oxidation to Benzoate + target: Syntrophic Benzoate Degradation + description: Benzoate formed by P. cinnamivorans supplies substrate for the Syntrophus-methanogen association. + The reported stepwise conversion and BESA-associated arrest at benzoate support this substrate connection + without resolving every enzyme step. + - source: Syntrophic Benzoate Degradation + target: Methanogenesis + description: HYPOTHESIZED - benzoate oxidation could supply H2 as reducing equivalents for CO2-reducing methanogenesis. + The observed association and methane product support metabolic coupling, but the accessible abstract does + not discriminate electron carriers or trace carbon and electron flux between partners. + retained_edge_decisions: + - source: Cinnamate β-Oxidation to Benzoate + target: Syntrophic Benzoate Degradation + rationale: Benzoate formed by P. cinnamivorans supplies substrate for the Syntrophus-methanogen association. + The reported stepwise conversion and BESA-associated arrest at benzoate support this substrate connection + without resolving every enzyme step. + - source: Syntrophic Benzoate Degradation + target: Methanogenesis + rationale: HYPOTHESIZED - benzoate oxidation could supply H2 as reducing equivalents for CO2-reducing methanogenesis. + The observed association and methane product support metabolic coupling, but the accessible abstract does + not discriminate electron carriers or trace carbon and electron flux between partners. + removed_edge_decisions: [] + references: + - PMID:12432464 + history_files: + - history/records/Cinnamate_Degradation_Consortium/2026-10-05T222800Z-codex-cd0f4a.yaml + issues: + - 1313 + allowed_changed_fields: + - curation_history + - discussions + - ecological_interactions + curation_events_added: 1 + source_review: + primary_urls: + - https://pubmed.ncbi.nlm.nih.gov/12432464/ + - https://link.springer.com/article/10.1007/s00284-002-3759-9 + reading: Whole record, all cached reference text and fresh primary abstract read. Subscription main body unavailable + and not certified. + findings: + - Benzoate is the supported intermediate; BESA-associated arrest does not identify every enzyme or electron + carrier. + - The product list includes acetate, so complete mineralization is not demonstrated by the abstract. + - Three nodes and two existing arrows retained, one with qualified carrier mechanism. +- path: kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml + id: CommunityMech:000396 + original_sha256: bb785ba51ceecbd2b3eccdee982413f11baf5df7f5f33f180dc9a9a49ef4363d + record_sha256: bb785ba51ceecbd2b3eccdee982413f11baf5df7f5f33f180dc9a9a49ef4363d + status: reviewed + outcome: no_change + review_file: reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml + scope: Whole record and every existing graph node/edge reviewed. Cinnamate is bounded to the accessible abstract; + isoDCA is an existing-graph no-change review, not exhaustive host-mechanism curation. + summary: Retain the existing sequential bile-acid conversion interaction. Primary Figure 1 and the sterile spent-medium + Methods support P. hiranonis to R. gnavus WT conversion; no new host-response nodes or arrows are required to + repair this valid graph. + node_decisions: + - node: P. hiranonis and R. gnavus WT isoDCA production + rationale: Retain the existing sequential bile-acid conversion interaction. Primary Figure 1 and the sterile + spent-medium Methods support P. hiranonis to R. gnavus WT conversion; no new host-response nodes or arrows + are required to repair this valid graph. + edges_before: [] + edges_after: [] + retained_edge_decisions: [] + removed_edge_decisions: [] + references: + - doi:10.64898/2026.08.11.743107 + history_files: [] + issues: [] + allowed_changed_fields: [] + curation_events_added: 0 + source_review: + primary_urls: + - https://www.biorxiv.org/content/10.64898/2026.08.11.743107v1.full.pdf + - https://api.biorxiv.org/details/biorxiv/10.64898/2026.08.11.743107 + primary_file: /private/tmp/communitymech-batch16/isodca-primary.pdf + primary_sha256: 76e3b559b7711c63aef0ea1948384b6b2c4e5d27666f17b515652aa77cbdc97e + primary_pages: 39 + primary_license: All rights reserved; preprint not peer reviewed. PDF and extracted text stay outside the repository. + reading: Whole record and complete selected-snippet cache read. Primary PDF pages 1-8 and Methods pages 15-21 + read; Figure 1 caption on page 28 read and Figure 1 on page 36 visually inspected. + unavailable_or_unread: Remaining body, references and figures not exhaustively read; supplement not inspected. + No host-mechanism expansion or supplementary-image claim. + access_notes: Regular HTML/TXT failed (403/429); API-advertised JATS link returned 404. Public PDF succeeded. + PDF says August 15, metadata date August 18; both are version 1. + findings: + - Figure 1F and Methods use sequential P. hiranonis culture followed by R. gnavus in sterile filtered spent + medium, not direct-contact demonstration. + - WT produces isoDCA whereas rumgna_00694-disrupted KO does not; Results report complementation, but supplement + image was not inspected. + - Existing single pairwise conversion node is supported; keep its one-node/zero-arrow graph byte unchanged. + - Do not convert in-vivo receptor or colitis observations into new graph structure merely to increase edge count. + - Existing P. hiranonis strain-identity discussion remains open. diff --git a/reports/causal_graph_review/inventory.tsv b/reports/causal_graph_review/inventory.tsv index 3baef5e2b..88ce215b5 100644 --- a/reports/causal_graph_review/inventory.tsv +++ b/reports/causal_graph_review/inventory.tsv @@ -99,8 +99,8 @@ kb/communities/Chlorella_Vulgaris_Whey_Coculture.yaml CommunityMech:000422 a73b9 kb/communities/Chlorochromatium_Aggregatum_Phototrophic_Consortium.yaml CommunityMech:000141 9869c805629d42d823727e6e21363628909725dadd532b3759d2238a7f5ef48d 3 2 95.0 reports/causal_graph_review/decisions/20261005-three-records-batch15.yaml reviewed kb/communities/Choysum_SynLAV_DEHP_Rhizobacterial_SynCom.yaml CommunityMech:000403 23c898adcb069d4f4f36cc49783674e02fa33a814b11cdc8a3a7ed7f84f74239 2 1 75.0 reports/causal_graph_review/decisions/20261005-three-records-batch15.yaml reviewed kb/communities/Chromium_Sulfur_Reduction_Enrichment.yaml CommunityMech:000017 5be48eb0c799123a45f64ec1a3dc2e07d3fcd614110fa95c383edbdcd4ed4a87 3 2 96.7 reports/causal_graph_review/decisions/20261005-three-records-batch15.yaml reviewed -kb/communities/Cinnamate_Degradation_Consortium.yaml CommunityMech:000018 e0c1766f30e1d6225d8dede3b2944ca9193c45610ca6aaa194c07ecacec25edc 3 2 100.0 pending -kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml CommunityMech:000396 bb785ba51ceecbd2b3eccdee982413f11baf5df7f5f33f180dc9a9a49ef4363d 1 0 60.0 pending +kb/communities/Cinnamate_Degradation_Consortium.yaml CommunityMech:000018 6b8b4403e3b23932e5a7f59de1f2580dab061a5327e45f1d62cadd4d32c107d9 3 2 96.7 reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml reviewed +kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml CommunityMech:000396 bb785ba51ceecbd2b3eccdee982413f11baf5df7f5f33f180dc9a9a49ef4363d 1 0 60.0 reports/causal_graph_review/decisions/20261005-two-records-batch16.yaml reviewed kb/communities/Clostridium_Acetobutylicum_Ljungdahlii_Fusion_Coculture.yaml CommunityMech:000336 db4ee8d4be5d8027c88a35ea503475b9552d25a4dc991319142be92e31be5891 9 3 96.7 pending kb/communities/Clostridium_Autoethanogenum_Kluyveri_Syngas_Coculture.yaml CommunityMech:000172 5cb2019adbc5c0c390e928ea64b88219106a9c7892c6c107930c8f17d2a0521d 3 2 100.0 pending kb/communities/Clostridium_Caldicellulosiruptor_Minimal_Medium_Coculture.yaml CommunityMech:000193 912a98e500fa28504035f915fd6044c6ed55cbf5ab356932b5d28b2a135f958a 3 1 90.0 pending diff --git a/reports/causal_graph_review/summary.json b/reports/causal_graph_review/summary.json index bbbd6d569..402658650 100644 --- a/reports/causal_graph_review/summary.json +++ b/reports/causal_graph_review/summary.json @@ -8,8 +8,8 @@ "records_without_edges": 138, "review_status_counts": { "needs_research": 3, - "pending": 360, - "reviewed": 97 + "pending": 358, + "reviewed": 99 }, "structural_defects": [], "network_audit": [ diff --git a/reports/causal_graph_review/validation-20261005-batch16.json b/reports/causal_graph_review/validation-20261005-batch16.json new file mode 100644 index 000000000..c5c2832a4 --- /dev/null +++ b/reports/causal_graph_review/validation-20261005-batch16.json @@ -0,0 +1,406 @@ +{ + "base_commit": "aa617f97b5d0ac79807d659856a8336880747559", + "scope": [ + "kb/communities/Cinnamate_Degradation_Consortium.yaml", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml" + ], + "reference_validator_version": "0.1.7", + "results": [ + { + "check": "Cinnamate_Degradation_Consortium-schema", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Cinnamate_Degradation_Consortium.yaml" + ], + "output": "No issues found\n" + }, + { + "check": "Cinnamate_Degradation_Consortium-strict", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Cinnamate_Degradation_Consortium-strict.tsv", + "kb/communities/Cinnamate_Degradation_Consortium.yaml" + ], + "output": "Validating 1 files with 1 workers; schema=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: /Cinnamate_Degradation_Consortium-strict.tsv\n" + }, + { + "check": "Cinnamate_Degradation_Consortium-terms", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Cinnamate_Degradation_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Cinnamate_Degradation_Consortium-references-explained", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Cinnamate_Degradation_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "output": "Validating kb/communities/Cinnamate_Degradation_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": "Cinnamate_Degradation_Consortium-snippets", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Cinnamate_Degradation_Consortium.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "output": "# 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": "Cinnamate_Degradation_Consortium-rank", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Cinnamate_Degradation_Consortium.yaml", + "--format", + "json" + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000018\",\n \"name\": \"Cinnamate \\u03b2-Oxidation Consortium\",\n \"score\": 96.7,\n \"taxonomy\": 3,\n \"connected_taxa\": 3,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 3,\n \"downstream_edges\": 2,\n \"interaction_evidence\": 3,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"interaction_type\"\n ],\n \"path\": \"kb/communities/Cinnamate_Degradation_Consortium.yaml\"\n }\n]\n" + }, + { + "check": "Cinnamate_Degradation_Consortium-history-0", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/history.yaml", + "--target-class", + "HistoryRecord", + "history/records/Cinnamate_Degradation_Consortium/2026-10-05T222800Z-codex-cd0f4a.yaml" + ], + "output": "No issues found\n" + }, + { + "check": "Clostridial_isoDCA_Mini_Consortium-schema", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-validate", + "-s", + "src/communitymech/schema/communitymech.yaml", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml" + ], + "output": "No issues found\n" + }, + { + "check": "Clostridial_isoDCA_Mini_Consortium-strict", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/validate_strict.py", + "--workers", + "1", + "--out", + "/Clostridial_isoDCA_Mini_Consortium-strict.tsv", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml" + ], + "output": "Validating 1 files with 1 workers; schema=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: /Clostridial_isoDCA_Mini_Consortium-strict.tsv\n" + }, + { + "check": "Clostridial_isoDCA_Mini_Consortium-terms", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-term-validator", + "validate-data", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--labels" + ], + "output": "\u2705 Validation passed\n" + }, + { + "check": "Clostridial_isoDCA_Mini_Consortium-references-explained", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "linkml-reference-validator", + "validate", + "data", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml", + "-s", + "src/communitymech/schema/communitymech.yaml", + "--config", + "conf/reference_validator.yaml" + ], + "output": "Validating kb/communities/Clostridial_isoDCA_Mini_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": "Clostridial_isoDCA_Mini_Consortium-snippets", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/evidence_snippet_audit.py", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml", + "--list-mismatch", + "--list-nocontent", + "--list-rendering", + "--list-assembled" + ], + "output": "# 22 evidence snippets scanned across 1 files\n MATCH 22\n RENDERING 0\n ASSEMBLED 0\n WEAK 0\n MISMATCH 0\n NOCONTENT 0\n\n# Files with MISMATCH/WEAK (content present but snippet absent) \u2014 fabrication suspects\n\n# MISMATCH/WEAK detail\n\n# Files by RENDERING (faithful quote; differs from cache only by\n# punctuation/whitespace/Greek \u2014 this is what validate-references flags)\n\n# Top files by NOCONTENT (unverifiable; cache stub/missing)\n\n# ASSEMBLED (every part is in the source; the join is not \u2014\n# a table flattened into prose, or a quote welded from two places)\n" + }, + { + "check": "Clostridial_isoDCA_Mini_Consortium-rank", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "scripts/rank_causal_graph_readiness.py", + "kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml", + "--format", + "json" + ], + "output": "[\n {\n \"rank\": 1,\n \"id\": \"CommunityMech:000396\",\n \"name\": \"Clostridial isoDCA Mini Consortium\",\n \"score\": 60.0,\n \"taxonomy\": 2,\n \"connected_taxa\": 2,\n \"disconnected_taxa\": 0,\n \"ecological_interactions\": 1,\n \"downstream_edges\": 0,\n \"interaction_evidence\": 2,\n \"dangling_downstream\": 0,\n \"self_downstream\": 0,\n \"missing\": [\n \"additional_interactions\",\n \"downstream\",\n \"metabolites_or_biological_processes\"\n ],\n \"path\": \"kb/communities/Clostridial_isoDCA_Mini_Consortium.yaml\"\n }\n]\n" + }, + { + "check": "inventory", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "reports/causal_graph_review/build_inventory.py" + ], + "output": "{\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\": 1475,\n \"edges\": 718,\n \"records_without_nodes\": 8,\n \"records_without_edges\": 138,\n \"review_status_counts\": {\n \"needs_research\": 3,\n \"pending\": 358,\n \"reviewed\": 99\n },\n \"structural_defects\": []\n}\n" + }, + { + "check": "network", + "exit_code": 1, + "expected_exit_codes": [ + 1 + ], + "command": [ + "python3", + "-m", + "communitymech.cli", + "audit-network", + "--json" + ], + "output": "Pinus massoniana' not found in taxonomy section (community-level scope)\"\n },\n {\n \"type\": \"UNKNOWN_TARGET\",\n \"interaction\": \"Protective Enzyme and Resistance-Gene Activation\",\n \"interaction_index\": 2,\n \"taxon\": \"Pinus massoniana\",\n \"severity\": \"warning\",\n \"message\": \"Target taxon 'Pinus massoniana' not found in taxonomy section (community-level scope)\"\n }\n ],\n \"Brocadia_Low_Nitrogen_Anammox_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Ca. Kuenenia early-acclimation lineage\",\n \"taxon_id\": \"NCBITaxon:380738\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Ca. Kuenenia early-acclimation lineage\",\n \"term\": {\n \"id\": \"NCBITaxon:380738\",\n \"label\": \"Candidatus Kuenenia\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Ca. Kuenenia was resolved at genus level as an early-acclimation anammox lineage that was ultimately replaced by Ca. Brocadia.\"\n },\n \"functional_role\": [\n \"PRIMARY_PRODUCER\"\n ],\n \"evidence\": [\n {\n \"reference\": \"PMID:42323145\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"COMPUTATIONAL\",\n \"snippet\": \"During early acclimation, Ca. Kuenenia reduced the expression of costly biosynthetic pathways\",\n \"explanation\": \"Supports Ca. Kuenenia as the early-acclimation lineage tracked in the biofilter succession study.\"\n }\n ]\n },\n \"message\": \"Taxon 'Ca. Kuenenia early-acclimation lineage' has no interactions\"\n }\n ],\n \"Mangrove_Benzene_MFC_Bioanode_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pelobacter\",\n \"taxon_id\": \"NCBITaxon:18\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pelobacter\",\n \"term\": {\n \"id\": \"NCBITaxon:18\",\n \"label\": \"Pelobacter\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pelobacter was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 2.22,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pelobacter as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pelobacter' has no interactions\"\n },\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Pseudomonas\",\n \"taxon_id\": \"NCBITaxon:286\",\n \"taxon_data\": {\n \"taxon_term\": {\n \"preferred_term\": \"Pseudomonas\",\n \"term\": {\n \"id\": \"NCBITaxon:286\",\n \"label\": \"Pseudomonas\"\n },\n \"gtdb_grounding_status\": \"UNRESOLVED\",\n \"notes\": \"Pseudomonas was a lower-abundance genus in the benzene-fed 16S profile; no species-level identity or functional role was resolved.\\n\"\n },\n \"relative_abundance\": 0.87,\n \"relative_abundance_unit\": \"percent\",\n \"evidence\": [\n {\n \"reference\": \"PMID:41210787\",\n \"supports\": \"SUPPORT\",\n \"evidence_source\": \"IN_VITRO\",\n \"snippet\": \"Pelobacter, Desulfurumonas, and Pseudomonas were also identified at 2.22, 1.64, and 0.87%\",\n \"explanation\": \"Supports Pseudomonas as a minor detected genus in the benzene-fed MFC biofilm.\"\n }\n ]\n },\n \"message\": \"Taxon 'Pseudomonas' has no interactions\"\n }\n ],\n \"Nitrifying_Wastewater_Ammonia_Oxidizing_Consortium\": [\n {\n \"type\": \"DISCONNECTED\",\n \"taxon\": \"Legionella MAGs\",\n \"taxon_id\": \"NCBITaxon:445\",\n \"taxon_data\": {\n \"taxon_term\": {\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": "render", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "render-repeat", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "-m", + "communitymech.render" + ], + "output": "South_Bay_Salt_Pond_Methane_Restoration_Community.html\n \u2713 Soy_Sauce_Temporal_SevenSpecies_SynCom.yaml \u2192 docs/communities/Soy_Sauce_Temporal_SevenSpecies_SynCom.html\n \u2713 Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.yaml \u2192 docs/communities/Soybean_Chlorophyll_Selected_Biofertilizer_SynCom.html\n \u2713 Soybean_N_Fixation_sfSynCom.yaml \u2192 docs/communities/Soybean_N_Fixation_sfSynCom.html\n \u2713 Soymilk_Mixed_Starter_Metabolic_Division_SynCom.yaml \u2192 docs/communities/Soymilk_Mixed_Starter_Metabolic_Division_SynCom.html\n \u2713 Space_Habitat_SevenMember_Stress_Tolerance_SynCom.yaml \u2192 docs/communities/Space_Habitat_SevenMember_Stress_Tolerance_SynCom.html\n \u2713 Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.yaml \u2192 docs/communities/Sphingobium_Nitrososphaera_Phenanthrene_Carbon_SynCom.html\n \u2713 Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.yaml \u2192 docs/communities/Sphingobium_Rhodococcus_Lignin_Dimer_Valorization_Coculture.html\n \u2713 Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.yaml \u2192 docs/communities/Staged_Cattle_Manure_Ensifer_Bacillus_SynCom.html\n \u2713 Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.yaml \u2192 docs/communities/Staphylococcus_Candida_Context_Dependent_Biofilm_Coculture.html\n \u2713 Stordalen_Mire_Methylotrophic_Methanogenesis_Community.yaml \u2192 docs/communities/Stordalen_Mire_Methylotrophic_Methanogenesis_Community.html\n \u2713 Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.yaml \u2192 docs/communities/Streptomyces_A2_A5_A11_M7_Pesticide_Consortium.html\n \u2713 Subsurface_Carboxydocella_CO_Aquifer_Community.yaml \u2192 docs/communities/Subsurface_Carboxydocella_CO_Aquifer_Community.html\n \u2713 Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.yaml \u2192 docs/communities/Suillus_Bacillus_Thiamine_Ectomycorrhizal_SynCom.html\n \u2713 Sulfide_Spring_Autotrophic_CPR_Biofilm.yaml \u2192 docs/communities/Sulfide_Spring_Autotrophic_CPR_Biofilm.html\n \u2713 SynComBac10_Chicken_Intestinal_SynCom.yaml \u2192 docs/communities/SynComBac10_Chicken_Intestinal_SynCom.html\n \u2713 SynCom_ARC_Peanut_Aflatoxin_Nodulation.yaml \u2192 docs/communities/SynCom_ARC_Peanut_Aflatoxin_Nodulation.html\n \u2713 SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.yaml \u2192 docs/communities/SynCom_BsBv_Cigar_Tobacco_Leaf_Fermentation.html\n \u2713 SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.yaml \u2192 docs/communities/SynCom_Chlorella_sorokiniana_Biogas_Slurry_Coupling_System.html\n \u2713 SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.yaml \u2192 docs/communities/SynCom_MetG2_Rhizobacteria_Sugarcane_Stress_Resilience.html\n \u2713 SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.yaml \u2192 docs/communities/SynCom_Pseudomonas_Rahnella_Artemisia_Phytoremediation.html\n \u2713 SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.yaml \u2192 docs/communities/SynCom_Sesame_Flavor_Baijiu_Fuqu_13Genus.html\n \u2713 SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.yaml \u2192 docs/communities/SynCom_Y_Agrobacterium_Bacillus_Biofilm_Biocontrol_Coculture.html\n \u2713 Synechococcus_Azotobacter_Photoproduction_Mutualism.yaml \u2192 docs/communities/Synechococcus_Azotobacter_Photoproduction_Mutualism.html\n \u2713 Synechococcus_Bacillus_SPC.yaml \u2192 docs/communities/Synechococcus_Bacillus_SPC.html\n \u2713 Synechococcus_Ecoli_SPC.yaml \u2192 docs/communities/Synechococcus_Ecoli_SPC.html\n \u2713 Synechococcus_Halomonas_Light_Driven_PHB_Coculture.yaml \u2192 docs/communities/Synechococcus_Halomonas_Light_Driven_PHB_Coculture.html\n \u2713 Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.yaml \u2192 docs/communities/Synechococcus_Pseudomonas_PhotoPHA_DNT_Coculture.html\n \u2713 Synechococcus_Saccharomyces_SPC.yaml \u2192 docs/communities/Synechococcus_Saccharomyces_SPC.html\n \u2713 Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.yaml \u2192 docs/communities/Synechococcus_Shewanella_Dlactate_Biophotovoltaic_Consortium.html\n \u2713 Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.yaml \u2192 docs/communities/Synechocystis_Pseudomonas_Acetate_Butanol_Coculture.html\n \u2713 Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.yaml \u2192 docs/communities/Synthetic_Lichen_Synechococcus_Rhodotorula_Coculture.html\n \u2713 Synthetic_Periphyton_Freshwater_Biofilm.yaml \u2192 docs/communities/Synthetic_Periphyton_Freshwater_Biofilm.html\n \u2713 Syntrophobacter_Methanobacterium_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanobacterium_Syntrophy.html\n \u2713 Syntrophobacter_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophobacter_Methanospirillum_Syntrophy.html\n \u2713 Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.yaml \u2192 docs/communities/Syntrophomonas_Methanococcus_Butyrate_Growth_Coordination_Coculture.html\n \u2713 Syntrophomonas_Methanospirillum_Syntrophy.yaml \u2192 docs/communities/Syntrophomonas_Methanospirillum_Syntrophy.html\n \u2713 Syntrophus_Benzoate_Degrader.yaml \u2192 docs/communities/Syntrophus_Benzoate_Degrader.html\n \u2713 Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.yaml \u2192 docs/communities/Syntrophus_Methanospirillum_Gentianae_Benzoate_Coculture.html\n \u2713 TCP_NonDehalogenimonas_Groundwater_Consortium.yaml \u2192 docs/communities/TCP_NonDehalogenimonas_Groundwater_Consortium.html\n \u2713 THOR_Rhizosphere_Model_Community.yaml \u2192 docs/communities/THOR_Rhizosphere_Model_Community.html\n \u2713 TYQ1_Nematode_Biocontrol_SynCom.yaml \u2192 docs/communities/TYQ1_Nematode_Biocontrol_SynCom.html\n \u2713 Teosinte_Maize_Biofertilizer_SynCom7.yaml \u2192 docs/communities/Teosinte_Maize_Biofertilizer_SynCom7.html\n \u2713 Thalassiosira_Marinobacter_Marine_Snow_Coculture.yaml \u2192 docs/communities/Thalassiosira_Marinobacter_Marine_Snow_Coculture.html\n \u2713 Thalassiosira_Ruegeria_Phycosphere_Coculture.yaml \u2192 docs/communities/Thalassiosira_Ruegeria_Phycosphere_Coculture.html\n \u2713 Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.yaml \u2192 docs/communities/Thermacetogenium_Methanothermobacter_Acetate_Oxidation_Coculture.html\n \u2713 Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.yaml \u2192 docs/communities/Thermoleptolyngbya_Chelatococcus_Arsenic_Detoxification_Coculture.html\n \u2713 Thermophilic_ExSitu_Biomethanation_Mixed_Culture.yaml \u2192 docs/communities/Thermophilic_ExSitu_Biomethanation_Mixed_Culture.html\n \u2713 Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.yaml \u2192 docs/communities/Thermophilic_Lignocellulose_Composting_SynCom_Biosanitization.html\n \u2713 Thermophilic_Pyrite_QS_Consortium.yaml \u2192 docs/communities/Thermophilic_Pyrite_QS_Consortium.html\n \u2713 Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.yaml \u2192 docs/communities/Thermotoga_Methanocaldococcus_Hyperthermophilic_Syntrophy.html\n \u2713 Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.yaml \u2192 docs/communities/Thiocyanate_Afipia_Thiobacillus_Bioreactor_Community.html\n \u2713 Tinto_River_Iron_Cycling_Community.yaml \u2192 docs/communities/Tinto_River_Iron_Cycling_Community.html\n \u2713 Tobacco_Chemotactic_Biocontrol_SynCom.yaml \u2192 docs/communities/Tobacco_Chemotactic_Biocontrol_SynCom.html\n \u2713 Tomato_Oxylipin_SynCom3.yaml \u2192 docs/communities/Tomato_Oxylipin_SynCom3.html\n \u2713 Tribromophenol_Anaerobic_Bioremediation_SynCom.yaml \u2192 docs/communities/Tribromophenol_Anaerobic_Bioremediation_SynCom.html\n \u2713 Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.yaml \u2192 docs/communities/Trichococcus_Syntrophomonas_Methanospirillum_Butyrate_Coculture.html\n \u2713 Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.yaml \u2192 docs/communities/Trichoderma_Ecoli_Cellulosic_Isobutanol_Coculture.html\n \u2713 Trichoderma_Lactate_Platform.yaml \u2192 docs/communities/Trichoderma_Lactate_Platform.html\n \u2713 Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.yaml \u2192 docs/communities/Trichoderma_Streptomyces_Filamentous_Cellulose_Coculture.html\n \u2713 Trichodesmium_Alteromonas_Marine_Consortium.yaml \u2192 docs/communities/Trichodesmium_Alteromonas_Marine_Consortium.html\n \u2713 Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.yaml \u2192 docs/communities/Tropidoatractus_Magnetotacticus_Tripartite_Syntrophy.html\n \u2713 Urine_Nitrification_SynCom.yaml \u2192 docs/communities/Urine_Nitrification_SynCom.html\n \u2713 Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.yaml \u2192 docs/communities/Variovorax_Cryptococcus_Vitamin_Mutualism_Microcosm.html\n \u2713 Viili_Fungus_Bacterium_EPS_SynCom.yaml \u2192 docs/communities/Viili_Fungus_Bacterium_EPS_SynCom.html\n \u2713 Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.yaml \u2192 docs/communities/Waste_Sludge_Electrofermentation_Biofilm_Suspension_Community.html\n \u2713 Watermelon_Rhizosphere_Fusarium_SynCom8.yaml \u2192 docs/communities/Watermelon_Rhizosphere_Fusarium_SynCom8.html\n \u2713 Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.yaml \u2192 docs/communities/Wetland_Oxygen_Sulfate_GHG_Microcosm_Community.html\n \u2713 Wheat_Consortium_C1.yaml \u2192 docs/communities/Wheat_Consortium_C1.html\n \u2713 Wheat_Consortium_C6.yaml \u2192 docs/communities/Wheat_Consortium_C6.html\n \u2713 Wheat_CrownRot_SixStrain_CrossKingdom_SMC.yaml \u2192 docs/communities/Wheat_CrownRot_SixStrain_CrossKingdom_SMC.html\n \u2713 Wheat_CrownRot_TB_CrossKingdom_SynCom.yaml \u2192 docs/communities/Wheat_CrownRot_TB_CrossKingdom_SynCom.html\n \u2713 Wheat_DT_Rhizosphere_SynCom.yaml \u2192 docs/communities/Wheat_DT_Rhizosphere_SynCom.html\n \u2713 Wheat_Straw_Biogas_Pretreatment_SynCom.yaml \u2192 docs/communities/Wheat_Straw_Biogas_Pretreatment_SynCom.html\n \u2713 Wheat_SynCom_SASW01_Drought_Inoculant.yaml \u2192 docs/communities/Wheat_SynCom_SASW01_Drought_Inoculant.html\n \u2713 Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.yaml \u2192 docs/communities/Wine_Yeast_FiveSpecies_Strain_Substitution_Consortium.html\n \u2713 Wine_Yeast_ThreeSpecies_Contact_Consortium.yaml \u2192 docs/communities/Wine_Yeast_ThreeSpecies_Contact_Consortium.html\n \u2713 Wolffia_Mankai_Endosphere_Cobamide_Guild.yaml \u2192 docs/communities/Wolffia_Mankai_Endosphere_Cobamide_Guild.html\n \u2713 Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.yaml \u2192 docs/communities/Wollastonite_Ramichloridium_Talaromyces_Fungal_Consortium.html\n \u2713 Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.yaml \u2192 docs/communities/Yarrowia_lipolytica_Division_of_Labor_Lipid_Consortium.html\n \u2713 Yogurt_TwoSpecies_Starter_Culture.yaml \u2192 docs/communities/Yogurt_TwoSpecies_Starter_Culture.html\n \u2713 Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.yaml \u2192 docs/communities/Zymomonas_Ecoli_Exometabolomics_Obligate_Mutualism.html\n \u2713 hCom2_Complex_Gut_Microbiome.yaml \u2192 docs/communities/hCom2_Complex_Gut_Microbiome.html\n \u2713 mCAFEs_Brachypodium_RCC.yaml \u2192 docs/communities/mCAFEs_Brachypodium_RCC.html\n\n\u2705 Rendered 456 communities to docs/communities\n \u2713 Generated browser at docs/browser.html\n \u2713 Generated landing at docs/index.html\n" + }, + { + "check": "regressions", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "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_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_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" + ], + "output": "........................................................................ [ 30%]\n........................................................................ [ 61%]\n........................................................................ [ 92%]\n................. [100%]\n233 passed in 156.39s (0:02:36)\n" + }, + { + "check": "workspace-rights", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "python3", + "-m", + "pytest", + "-q", + "tests/test_no_paywalled_text_in_repo.py" + ], + "output": "... [100%]\n3 passed in 1.51s\n" + }, + { + "check": "black", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "black", + "--check", + "tests/test_causal_review_batch16.py" + ], + "output": "All done! \u2728 \ud83c\udf70 \u2728\n1 file would be left unchanged.\n" + }, + { + "check": "ruff", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "ruff", + "check", + "tests/test_causal_review_batch16.py" + ], + "output": "All checks passed!\n" + }, + { + "check": "diff-check", + "exit_code": 0, + "expected_exit_codes": [ + 0 + ], + "command": [ + "git", + "diff", + "--check" + ], + "output": "" + } + ], + "limitations": [ + "Source-based self-adversarial review, not independent approval or corpus completion.", + "Baseline just audit-network-json lacked its console entry point; exact repository CLI implementation used. No dependency changes.", + "All 657 prior issue titles/bodies and ignored-inclusive local reports/history/research/tests searched; comments not exhaustive.", + "Cinnamate subscription main body unavailable; graph claims bounded to primary abstract. IsoDCA relevant primary experiments and Figure 1 inspected, not exhaustive host-result or supplement review.", + "Four existing nodes and two arrows retained; no new graph structure or Edison spend.", + "Non-graph metadata followup #1314 remains open; unrelated YAML blocks and the entire isoDCA record are byte-preserved.", + "Generated data pages verified by deterministic rendering and parsed description coverage, not browser screenshots." + ], + "unchanged_raw_blocks": 29, + "reference_caches_unchanged": true, + "new_network_warnings": [], + "render_determinism": "passed", + "published_description_coverage": { + "pages": 456, + "node_descriptions": 1461, + "edge_descriptions": 710 + }, + "rights_import_root_verified": true, + "snippet_counts": { + "MATCH": 36, + "RENDERING": 0, + "ASSEMBLED": 0, + "WEAK": 0, + "MISMATCH": 0, + "NOCONTENT": 0 + }, + "corpus": { + "scope": "Every YAML under kb/communities and data/isolates; filesystem discovery includes hidden/ignored files.", + "records": 460, + "nodes": 1475, + "edges": 718, + "records_without_nodes": 8, + "records_without_edges": 138, + "review_status_counts": { + "needs_research": 3, + "pending": 358, + "reviewed": 99 + }, + "structural_defects": [] + }, + "network_warning_count": 25, + "status": "passed" +} diff --git a/tests/test_causal_review_batch16.py b/tests/test_causal_review_batch16.py new file mode 100644 index 000000000..bd68a7651 --- /dev/null +++ b/tests/test_causal_review_batch16.py @@ -0,0 +1,81 @@ +"""Keep cinnamate products bounded and preserve the supported isoDCA graph.""" + +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/20261005-two-records-batch16.yaml" + + +def cinnamate(): + return yaml.safe_load( + (ROOT / "kb/communities/Cinnamate_Degradation_Consortium.yaml").read_text() + ) + + +def test_benzoate_connection_survives_without_unsupported_fatty_acid_typing(): + first, benzoate, methane = cinnamate()["ecological_interactions"] + assert "interaction_type" not in first + assert "biological_processes" not in first + assert "BESA" in first["description"] + assert first["downstream"][0]["target"] == benzoate["name"] + assert "supplies substrate" in first["downstream"][0]["description"] + assert benzoate["interaction_type"] == "SYNTROPHY" + assert benzoate["downstream"][0]["target"] == methane["name"] + + +def test_hydrogen_route_is_not_promoted_to_measured_transfer(): + _, benzoate, methane = cinnamate()["ecological_interactions"] + assert "HYPOTHESIZED" in benzoate["description"] + assert benzoate["downstream"][0]["description"].startswith("HYPOTHESIZED") + assert "HYPOTHESIZED" in methane["description"] + assert methane["evidence"][0]["supports"] == "PARTIAL" + assert all( + m["term"]["id"] != "CHEBI:18276" for n in (benzoate, methane) for m in n["metabolites"] + ) + assert "Acetate remains" in methane["description"] + assert ( + "complete mineralization of all cinnamate carbon is not established" + in methane["description"] + ) + + +def test_carrier_gap_has_valid_anchors_and_methanogen_provenance(): + doc = cinnamate() + names = {n["name"] for n in doc["ecological_interactions"]} + assert "replaced the original" in doc["ecological_interactions"][2]["description"] + gap = doc["discussions"][0] + assert gap["kind"] == "KNOWLEDGE_GAP" + assert gap["status"] == "OPEN" + assert {a.split("#", 1)[1] for a in gap["attaches_to"]} == names + + +def test_batch16_ledger_covers_all_structure_and_unchanged_isodca(): + ledger = yaml.safe_load(LEDGER.read_text()) + assert ledger["independent_approval"] is False + assert ledger["issues"] == [1313] + assert ledger["open_nongraph_followups"] == [1314] + changed, unchanged = ledger["records"] + assert changed["curation_events_added"] == 1 + assert len(changed["history_files"]) == 1 + assert len(changed["edges_after"]) == 2 + assert unchanged["outcome"] == "no_change" + assert unchanged["record_sha256"] == unchanged["original_sha256"] + assert unchanged["history_files"] == [] + assert unchanged["allowed_changed_fields"] == [] + assert unchanged["edges_after"] == [] + for row in ledger["records"]: + raw = (ROOT / row["path"]).read_bytes() + assert hashlib.sha256(raw).hexdigest() == row["record_sha256"] + doc = yaml.safe_load(raw) + assert Counter(d["node"] for d in row["node_decisions"]) == Counter( + n["name"] for n in doc["ecological_interactions"] + ) + before = {(e["source"], e["target"]) for e in row["edges_before"]} + after = {(e["source"], e["target"]) for e in row["edges_after"]} + assert before == after + for path, expected in ledger["reference_cache_original_hashes"].items(): + assert hashlib.sha256((ROOT / path).read_bytes()).hexdigest() == expected