Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,9 @@ src/communitymech/
│ └── reference_validator.py # Validates evidence items in YAML files
└── cli.py # Entry point (not yet implemented)

kb/communities/ # 60 curated community YAML files
kb/communities/ # curated community YAML files (root class MicrobialCommunity)
kb/taxa/ # reusable per-taxon gene records (root class CommonTaxon);
# referenced from taxonomy[].common_taxon; `just validate-taxa`
conf/oak_config.yaml # OAK ontology adapter config (NCBITaxon, ENVO, CHEBI, GO)
references_cache/ # Cached PubMed abstracts (committed for reproducibility)
scripts/ # Utility scripts for curation (not part of package)
Expand Down
12 changes: 12 additions & 0 deletions conf/id_label_targets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,18 @@ targets:
- { id: "NCBITaxon:1807132", label: "Candidatus Phormidium alkaliphilum", reason: "absent from current OAK ncbitaxon snapshot and kg-microbe ncbitaxon TSV" }
- { id: "NCBITaxon:3050471", label: "Stenotrophomonas goyi", reason: "absent from current OAK ncbitaxon snapshot and kg-microbe ncbitaxon TSV" }

# data inputs (reusable per-taxon gene records) — taxon_term.term (NCBITaxon)
# and gene go_terms (GO) must be canonical. genome {id,label} are NCBI Assembly
# accessions (no CURIE prefix → benign SKIPPED_NO_ADAPTER) and the record's own
# CommunityMech:taxon:* id is an ignored prefix, so only the ontology terms are
# checked here.
- name: taxa_yaml
kind: yaml
glob: "kb/taxa/*.yaml"
policy: canonical
pairs:
- [id, label]

# data product: KGX node export carries (id, name) — canonical OR synonym
- name: kgx_nodes
kind: tabular
Expand Down
14 changes: 14 additions & 0 deletions justfile
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,20 @@ validate-all:
uv run linkml-validate -s src/communitymech/schema/communitymech.yaml "$file"
done

# Validate the reusable per-taxon gene records (kb/taxa/) against CommonTaxon.
# These files have CommonTaxon as their root, not MicrobialCommunity, so the
# target class must be given explicitly.
validate-taxa:
#!/usr/bin/env bash
set -uo pipefail
rc=0
for file in kb/taxa/*.yaml; do
echo "Validating $file..."
uv run linkml-validate -s src/communitymech/schema/communitymech.yaml \
--target-class CommonTaxon "$file" || rc=1
done
exit $rc

# Strict in-process validation in *closed* mode (rejects unknown fields).
# Emits reports/instance_validation_failures.tsv and exits 1 on any ERROR.
# Catches the same drift class that gave CultureMech 59k silent errors;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ taxonomy:
label: Shewanella oneidensis
notes: Exoelectrogenic proteobacterium in the defined anode biofilm community.
abundance_level: ABUNDANT
common_taxon: CommunityMech:taxon:000001
functional_role:
- SYNTROPHIC_PARTNER
- CROSS_FEEDER
Expand All @@ -73,6 +74,7 @@ taxonomy:
notes: Exoelectrogenic Geobacter member that was detected in the planktonic phase of mixed-culture
reactors as well as in the anode-associated community.
abundance_level: ABUNDANT
common_taxon: CommunityMech:taxon:000002
functional_role:
- SYNTROPHIC_PARTNER
- CROSS_FEEDER
Expand Down
57 changes: 57 additions & 0 deletions kb/taxa/Geobacter_sulfurreducens.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
id: CommunityMech:taxon:000002
taxon_term:
preferred_term: Geobacter sulfurreducens
term:
id: NCBITaxon:35554
label: Geobacter sulfurreducens
genomes:
- id: GCF_000007985.2
label: ASM798v2
notes: RefSeq reference assembly for Geobacter sulfurreducens PCA.
genes:
- gene_id: KEGG:gsu:GSU1496
gene_symbol: pilA
locus_tag: GSU1496
product: Type IV pilin; structural subunit of conductive (electrically conductive) pili / e-pili
genome: GCF_000007985.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Conductive pili (e-pili) mediate long-range extracellular and direct
interspecies electron transfer (DIET) to partner methanogens and to
Fe(III) oxides/electrodes.
- gene_id: KEGG:gsu:GSU2504
gene_symbol: omcS
locus_tag: GSU2504
product: Outer-surface hexaheme c-type cytochrome associated with conductive pili
genome: GCF_000007985.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Cytochrome filament/decoration required for extracellular electron transfer
to Fe(III) oxides and for direct interspecies electron transfer to partners.
- gene_id: KEGG:gsu:GSU2076
gene_symbol: omcZ
locus_tag: GSU2076
product: Outer-surface octaheme c-type cytochrome
genome: GCF_000007985.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Cytochrome essential for high-density current production at electrodes
(extracellular electron transfer to anodes).
notes: >
Reusable taxon record capturing the conductive-pili and multiheme-cytochrome
genes that underpin G. sulfurreducens' electron-transfer / syntrophic-partner
role in DIET cocultures, Fe(III)-reduction, and bioanode communities. Gene/role
claims are literature-standard; per-interaction EvidenceItems can be added
following the community-record evidence protocol.
67 changes: 67 additions & 0 deletions kb/taxa/Shewanella_oneidensis_MR1.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
id: CommunityMech:taxon:000001
taxon_term:
preferred_term: Shewanella oneidensis MR-1
term:
id: NCBITaxon:211586
label: Shewanella oneidensis MR-1
genomes:
- id: GCF_000146165.2
label: ASM14616v2
notes: RefSeq reference assembly for Shewanella oneidensis MR-1.
genes:
- gene_id: KEGG:son:SO_1778
gene_symbol: mtrC
locus_tag: SO_1778
product: Outer-membrane decaheme c-type cytochrome (terminal extracellular electron-transfer reductase)
genome: GCF_000146165.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Terminal reductase of the Mtr extracellular electron transfer pathway; transfers
electrons to extracellular acceptors (e.g. Fe(III)/Mn(IV) oxides, electrodes),
underpinning direct interspecies / electrode electron transfer interactions.
- gene_id: KEGG:son:SO_1776
gene_symbol: mtrB
locus_tag: SO_1776
product: Outer-membrane beta-barrel that embeds the MtrA/MtrC cytochrome module
genome: GCF_000146165.2
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Forms the outer-membrane conduit of the MtrCAB porin-cytochrome complex enabling
electron egress to extracellular acceptors.
- gene_id: KEGG:son:SO_1777
gene_symbol: mtrA
locus_tag: SO_1777
product: Periplasmic decaheme c-type cytochrome of the Mtr pathway
genome: GCF_000146165.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Conducts electrons across the outer membrane within the MtrCAB complex during
extracellular electron transfer.
- gene_id: KEGG:son:SO_4591
gene_symbol: cymA
locus_tag: SO_4591
product: Inner-membrane tetraheme c-type cytochrome (menaquinol oxidase) feeding the Mtr pathway
genome: GCF_000146165.2
go_terms:
- id: GO:0009055
label: electron transfer activity
supports_roles:
- SYNTROPHIC_PARTNER
supports_interaction: >
Branch point that delivers electrons from the menaquinone pool to periplasmic
and outer-membrane cytochromes for extracellular electron transfer.
notes: >
Reusable taxon record capturing the Mtr extracellular-electron-transfer pathway
genes that underpin S. oneidensis MR-1's electron-donor role in microbial fuel
cell, metal-reduction, and DIET-style communities. Gene/role claims are
literature-standard; per-interaction EvidenceItems can be added following the
community-record evidence protocol.
Loading
Loading