diff --git a/conf/causal_graph_audit_baseline.tsv b/conf/causal_graph_audit_baseline.tsv
index 1a5db78e..156f7496 100644
--- a/conf/causal_graph_audit_baseline.tsv
+++ b/conf/causal_graph_audit_baseline.tsv
@@ -224,7 +224,6 @@ data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline UNREACHABLE_FROM_TRAIT WARN node_id='hypersaline_environment' label='hypersaline environment' type=ENVIRONMENTAL_FACTOR — in an island with no path to nacl_delta_high_trait/nacl_delta
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline UNREACHABLE_FROM_TRAIT WARN node_id='halophilic_osmoadaptation' label='halophilic osmoadaptation strategies' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_high_trait/nacl_delta
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline FRAGMENTED_GRAPH WARN components=6 of 14 node(s) (sizes: 3, 3, 2, 2, 2, 2) — one record, several unrelated mechanisms
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline DISPOSITION_MISTYPED WARN node_id='salt_tolerance_breadth' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='osmotic_upshift' label='osmotic upshift' type=ENVIRONMENTAL_FACTOR — in an island with no path to nacl_delta_mid1_trait/nacl_delta
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='k_import' label='potassium import' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_mid1_trait/nacl_delta
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='compatible_solute_accumulation' label='compatible solute accumulation' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_mid1_trait/nacl_delta
@@ -326,38 +325,27 @@ data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phe
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor UNREACHABLE_FROM_TRAIT WARN node_id='amino_acid_decarboxylation' label='amino-acid decarboxylation' type=BIOLOGICAL_PROCESS — in an island with no path to optimum_phenotype_trait/nacl_optimum/ph_optimum/temperature_optimum
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor UNREACHABLE_FROM_TRAIT WARN node_id='proton_motive_force' label='proton motive force' type=BIOLOGICAL_PROCESS — in an island with no path to optimum_phenotype_trait/nacl_optimum/ph_optimum/temperature_optimum
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor FRAGMENTED_GRAPH WARN components=4 of 14 node(s) (sizes: 5, 5, 2, 2) — one record, several unrelated mechanisms
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='reactive_oxygen_species_stress' label='oxygen / reactive oxygen species stress' type=ENVIRONMENTAL_FACTOR — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='detoxifying_enzyme_expression' label='detoxifying-enzyme gene expression' type=BIOLOGICAL_PROCESS — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='catalase' label='catalase' type=GENE_OR_PROTEIN — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='hydrogen_peroxide' label='hydrogen peroxide' type=CHEMICAL — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='superoxide_dismutase' label='superoxide dismutase' type=GENE_OR_PROTEIN — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='oxygen_tolerance' label='oxygen tolerance' type=CAPACITY — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis DISPOSITION_MISTYPED WARN node_id='oxygen_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis FRAGMENTED_GRAPH WARN components=3 of 14 node(s) (sizes: 8, 4, 2) — one record, several unrelated mechanisms
+data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 11, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='membrane_lipid_remodeling' label='saturated membrane fatty acid remodeling' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_trait
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='proton_permeability' label='membrane proton permeability' type=QUALITY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='amino_acid_decarboxylase_acid_resistance' label='amino-acid decarboxylase acid-resistance system' type=PATHWAY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='low_ph_tolerance' label='low-pH tolerance' type=CAPACITY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility DISPOSITION_MISTYPED WARN node_id='low_ph_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility FRAGMENTED_GRAPH WARN components=3 of 12 node(s) (sizes: 8, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility FRAGMENTED_GRAPH WARN components=2 of 11 node(s) (sizes: 9, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_ph_homeostasis' label='cytoplasmic pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='respiratory_proton_pumps' label='respiratory proton-pumping enzymes' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_buffering_capacity' label='cytoplasmic buffering capacity' type=CAPACITY — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='membrane_lipid_porin_changes' label='membrane lipid/porin composition changes' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='inward_proton_leakage' label='inward proton leakage' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
-data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth DUPLICATE_GROUNDING WARN nodes=2;grounding=METPO:1000478 (growth_external_ph_5_5_9, ph_delta_high_trait)
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth FRAGMENTED_GRAPH WARN components=4 of 14 node(s) (sizes: 7, 3, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='external_ph_stress' label='external pH stress' type=ENVIRONMENTAL_FACTOR — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_ph_homeostasis' label='cytoplasmic pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='pmf_architecture' label='proton motive force architecture' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='ph_homeostasis_capacity' label='pH homeostasis capacity' type=CAPACITY — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='weak_organic_acids' label='weak organic acids' type=CHEMICAL — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='delta_ph' label='delta pH / cytoplasmic pH' type=STATE — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='electrogenic_na_h_antiport' label='electrogenic Na+/H+ antiport' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='alkaline_ph_homeostasis' label='alkaline pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='f1fo_atpase' label='F1Fo-ATPase' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_low_trait/ph_delta
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth DISPOSITION_MISTYPED WARN node_id='ph_homeostasis_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth FRAGMENTED_GRAPH WARN components=5 of 12 node(s) (sizes: 3, 3, 2, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth FRAGMENTED_GRAPH WARN components=4 of 11 node(s) (sizes: 4, 3, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='gln_glu_decarboxylation_pathway' label='glutamine/glutamate decarboxylation pathway' type=PATHWAY — in an island with no path to ph_delta_mid1_trait/ph_delta
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='intracellular_proton' label='intracellular proton (H+)' type=CHEMICAL — in an island with no path to ph_delta_mid1_trait/ph_delta
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='ybas_glutaminase' label='YbaS glutaminase' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_mid1_trait/ph_delta
@@ -503,8 +491,7 @@ data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_ad
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='protein_membrane_stability' label='protein and membrane stability under cold stress' type=QUALITY — in an island with no path to psychrotolerant_trait
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='extracellular_polymeric_substances' label='extracellular polymeric substances (EPS)' type=CHEMICAL — in an island with no path to psychrotolerant_trait
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='freeze_thaw_cryoprotection' label='cryoprotection against freeze-thaw cycles' type=BIOLOGICAL_PROCESS — in an island with no path to psychrotolerant_trait
-data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation DISPOSITION_MISTYPED WARN node_id='growth_at_4c' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation FRAGMENTED_GRAPH WARN components=3 of 12 node(s) (sizes: 8, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation FRAGMENTED_GRAPH WARN components=3 of 11 node(s) (sizes: 7, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='intracellular_osmotic_balance' label='intracellular osmotic balance across salinity' type=BIOLOGICAL_PROCESS — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='salt_out_compatible_solute_strategy' label='compatible-solute (salt-out) strategy' type=PATHWAY — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='salt_in_strategy' label='salt-in strategy' type=PATHWAY — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
@@ -512,8 +499,7 @@ data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_p
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 9, 4) — one record, several unrelated mechanisms
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation UNREACHABLE_FROM_TRAIT WARN node_id='ion_homeostasis' label='ion homeostasis during salt stress' type=BIOLOGICAL_PROCESS — in an island with no path to slightly_halophilic_trait
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation UNREACHABLE_FROM_TRAIT WARN node_id='na_k_transcription' label='Na+/K+ transcriptional induction' type=BIOLOGICAL_PROCESS — in an island with no path to slightly_halophilic_trait
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation DISPOSITION_MISTYPED WARN node_id='salt_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation FRAGMENTED_GRAPH WARN components=2 of 11 node(s) (sizes: 9, 2) — one record, several unrelated mechanisms
+data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation FRAGMENTED_GRAPH WARN components=2 of 10 node(s) (sizes: 8, 2) — one record, several unrelated mechanisms
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='c_di_amp' label='cyclic di-AMP' type=CHEMICAL — in an island with no path to stenohaline_trait
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='k_import_systems' label='K+ import systems' type=GENE_OR_PROTEIN — in an island with no path to stenohaline_trait
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='opua_importer' label='compatible-solute importer OpuA' type=GENE_OR_PROTEIN — in an island with no path to stenohaline_trait
@@ -1212,7 +1198,6 @@ data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNR
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNREACHABLE_FROM_TRAIT WARN node_id='ftsz_z_ladders' label='FtsZ Z-ladder arrays' type=GENE_OR_PROTEIN — in an island with no path to mycelial_growth_trait
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNREACHABLE_FROM_TRAIT WARN node_id='sporulation_septation' label='sporulation septation and spore-chain formation' type=BIOLOGICAL_PROCESS — in an island with no path to mycelial_growth_trait
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth FRAGMENTED_GRAPH WARN components=4 of 13 node(s) (sizes: 5, 4, 2, 2) — one record, several unrelated mechanisms
-data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade DISPOSITION_MISTYPED WARN node_id='loss_sporulation_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='crt_y_lycopene_cyclase' label='lycopene beta-cyclase (CrtY)' type=GENE_OR_PROTEIN — in an island with no path to orange_pigmented_trait
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='lycopene' label='lycopene' type=CHEMICAL — in an island with no path to orange_pigmented_trait
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='beta_carotene' label='beta-carotene' type=CHEMICAL — in an island with no path to orange_pigmented_trait
@@ -1285,7 +1270,6 @@ data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_pac
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet UNREACHABLE_FROM_TRAIT WARN node_id='peripheral_pg_bridge' label='peripheral peptidoglycan bridge' type=CELLULAR_LOCALIZATION — in an island with no path to sarcina_trait
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet UNREACHABLE_FROM_TRAIT WARN node_id='daughter_cell_separation' label='daughter-cell separation' type=BIOLOGICAL_PROCESS — in an island with no path to sarcina_trait
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet FRAGMENTED_GRAPH WARN components=5 of 14 node(s) (sizes: 4, 3, 3, 2, 2) — one record, several unrelated mechanisms
-data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan DISPOSITION_MISTYPED WARN node_id='elongation_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIID' label='SpoIID' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIIM' label='SpoIIM' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIIP' label='SpoIIP' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
@@ -1366,7 +1350,6 @@ data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREA
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREACHABLE_FROM_TRAIT WARN node_id='coo_operon' label='coo operon' type=GENE_OR_PROTEIN — in an island with no path to carboxydotrophic_trait
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREACHABLE_FROM_TRAIT WARN node_id='cooa_regulator' label='CooA' type=GENE_OR_PROTEIN — in an island with no path to carboxydotrophic_trait
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation FRAGMENTED_GRAPH WARN components=2 of 18 node(s) (sizes: 14, 4) — one record, several unrelated mechanisms
-data/traits/physiology/catalase_activity.yaml catalase_activity_h2o2_detoxification DUPLICATE_GROUNDING WARN nodes=2;grounding=GO:0004096 (catalase, catalase_function)
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon UNREACHABLE_FROM_TRAIT WARN node_id='mannitol_pts' label='PEP-dependent phosphotransferase system (mannitol PTS)' type=GENE_OR_PROTEIN — in an island with no path to chemoheterotrophic_trait
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon UNREACHABLE_FROM_TRAIT WARN node_id='mannitol' label='mannitol' type=CHEMICAL — in an island with no path to chemoheterotrophic_trait
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon FRAGMENTED_GRAPH WARN components=2 of 14 node(s) (sizes: 12, 2) — one record, several unrelated mechanisms
@@ -1519,7 +1502,6 @@ data/traits/physiology/photoorganoheterotrophic.yaml photoorganoheterotrophic_li
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture UNREACHABLE_FROM_TRAIT WARN node_id='rhodopsin' label='rhodopsin' type=GENE_OR_PROTEIN — in an island with no path to phototrophic_trait
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture UNREACHABLE_FROM_TRAIT WARN node_id='ion_transport' label='ion transport across membrane' type=BIOLOGICAL_PROCESS — in an island with no path to phototrophic_trait
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 11, 2) — one record, several unrelated mechanisms
-data/traits/physiology/urease_activity.yaml urease_activity_urea_hydrolysis DUPLICATE_GROUNDING WARN nodes=2;grounding=GO:0009039 (urease, urease_function)
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='rpos' label='RpoS sigma factor' type=GENE_OR_PROTEIN — in an island with no path to vbnc_trait
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='resuscitation' label='resuscitation from VBNC' type=BIOLOGICAL_PROCESS — in an island with no path to vbnc_trait
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='atp' label='ATP' type=CHEMICAL — in an island with no path to vbnc_trait
diff --git a/conf/evidence_snippet_baseline.tsv b/conf/evidence_snippet_baseline.tsv
index 3279d770..796c103b 100644
--- a/conf/evidence_snippet_baseline.tsv
+++ b/conf/evidence_snippet_baseline.tsv
@@ -499,11 +499,10 @@ data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline:
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline:salinity_transition->proteome_reorganization[0] MISSING_SNIPPET WARN reference=DOI:10.1126/sciadv.adg2059 has no snippet
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline:salt_in_osmoadaptation->acidic_proteome[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s41559-024-02505-6 has no snippet
data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:compatible_solute_transporters->limited_osmoadaptive_flexibility[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00145-24 has no snippet
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:ectoine_biosynthesis->salt_tolerance_breadth[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:intracellular_proline->salt_tolerance_breadth[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01195-24 has no snippet
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:nhac_antiporter->salt_tolerance_breadth[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00145-24 has no snippet
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:salt_tolerance_breadth->nacl_delta[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuy009 has no snippet
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:trkh_k_uptake->salt_tolerance_breadth[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00145-24 has no snippet
+data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:ectoine_biosynthesis->nacl_delta[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
+data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:intracellular_proline->nacl_delta[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01195-24 has no snippet
+data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:nhac_antiporter->nacl_delta[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00145-24 has no snippet
+data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline:trkh_k_uptake->nacl_delta[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00145-24 has no snippet
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth:c_di_amp->k_import[0] MISSING_SNIPPET WARN reference=DOI:10.1128/MMBR.00181-23 has no snippet
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth:c_di_amp->organic_osmolyte_influx_biosynthesis[0] MISSING_SNIPPET WARN reference=DOI:10.1128/JB.00190-24 has no snippet
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth:compatible_solute_accumulation->osmoadaptation_under_nacl[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuaf020 has no snippet
@@ -632,12 +631,12 @@ data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phe
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor:opua_transporter->intracellular_glycine_betaine[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuad033 has no snippet
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:aerobic_phenotype->oxygen_preference_trait[0] ELLIPTICAL_SNIPPET ERROR non-contiguous quote: 'aerobic ... respiration capacities'
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:catalase->hydrogen_peroxide[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s43705-023-00251-7 has no snippet
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:detoxifying_enzyme_expression->oxygen_tolerance[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00606-23 has no snippet
+data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:detoxifying_enzyme_expression->oxygen_preference_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00606-23 has no snippet
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:molecular_oxygen->oxygen_terminal_electron_acceptor[0] MISSING_SNIPPET WARN reference=DOI:10.1371/journal.ppat.1012084 has no snippet
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:oxygen_terminal_electron_acceptor->aerobic_phenotype[0] MISSING_SNIPPET WARN reference=DOI:10.1371/journal.ppat.1012084 has no snippet
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:reactive_oxygen_species_stress->detoxifying_enzyme_expression[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.00606-23 has no snippet
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:superoxide_dismutase->oxygen_tolerance[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s43705-023-00251-7 has no snippet
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility:amino_acid_decarboxylase_acid_resistance->low_ph_tolerance[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms12091774 has no snippet
+data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis:superoxide_dismutase->oxygen_preference_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s43705-023-00251-7 has no snippet
+data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility:amino_acid_decarboxylase_acid_resistance->ph_delta_trait[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms12091774 has no snippet
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility:cation_proton_antiporter_activity->ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1128/AEM.00569-24 has no snippet
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility:f0f1_atpase_activity->ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuad033 has no snippet
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility:membrane_lipid_remodeling->proton_permeability[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2022.1034164 has no snippet
@@ -655,7 +654,7 @@ data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth:resp
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:electrogenic_na_h_antiport->alkaline_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:external_ph_stress->cytoplasmic_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:f1fo_atpase->cytoplasmic_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:pmf_architecture->ph_homeostasis_capacity[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
+data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:pmf_architecture->cytoplasmic_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth:weak_organic_acids->delta_ph[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro2549 has no snippet
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth:cytoplasmic_ph_homeostasis->moderate_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms12091774 has no snippet
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth:f0f1_atpase->cytoplasmic_ph_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms12091774 has no snippet
@@ -828,7 +827,6 @@ data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_ad
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation:extracellular_polymeric_substances->freeze_thaw_cryoprotection[0] MISSING_SNIPPET WARN reference=DOI:10.37256/amtt.5220244537 has no snippet
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation:low_temperature->membrane_rigidification[0] MISSING_SNIPPET WARN reference=DOI:10.1128/spectrum.03925-23 has no snippet
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation:low_temperature->unsaturated_hopanoids[0] MISSING_SNIPPET WARN reference=DOI:10.1007/s42770-023-01057-4 has no snippet
-data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation:psychrotolerant_trait->growth_at_4c[0] MISSING_SNIPPET WARN reference=DOI:10.1007/s42770-023-01057-4 has no snippet
data/traits/environment/radiotolerant.yaml radiotolerance_repair_antioxidant:carotenoid_pigments->reactive_oxygen_species[0] MISSING_SNIPPET WARN reference=DOI:10.3390/su17177864 has no snippet
data/traits/environment/radiotolerant.yaml radiotolerance_repair_antioxidant:dna_damage_repair->radiotolerant_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1101/cshperspect.a012765 has no snippet
data/traits/environment/radiotolerant.yaml radiotolerance_repair_antioxidant:fe2_ion->reactive_oxygen_species[0] MISSING_SNIPPET WARN reference=DOI:10.1128/spectrum.03838-23 has no snippet
@@ -848,10 +846,10 @@ data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_p
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis:salt_out_compatible_solute_strategy->intracellular_osmotic_balance[0] MISSING_SNIPPET WARN reference=DOI:10.3389/frmbi.2023.1329925 has no snippet
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis:water_activity->salinity_phenotype_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s41559-024-02505-6 has no snippet
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:ect_gene_cluster->ectoine_biosynthesis[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:ectoine->salt_tolerance[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
+data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:ectoine->slightly_halophilic_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:ectoine_biosynthesis->ectoine[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01905-23 has no snippet
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:na_k_transcription->ion_homeostasis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s42003-022-04319-3 has no snippet
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:osmoprotectant_transport->salt_tolerance[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuy026 has no snippet
+data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation:osmoprotectant_transport->slightly_halophilic_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1093/femsre/fuy026 has no snippet
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance:aquaporin_water_channel->facilitated_water_diffusion[0] MISSING_SNIPPET WARN reference=DOI:10.1186/s40168-024-01817-w has no snippet
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance:c_di_amp->k_import_systems[0] MISSING_SNIPPET WARN reference=DOI:10.1128/mmbr.00181-23 has no snippet
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance:c_di_amp->opua_importer[0] MISSING_SNIPPET WARN reference=DOI:10.1128/mmbr.00181-23 has no snippet
@@ -2095,9 +2093,8 @@ data/traits/morphology/non_motile.yaml non_motile_absent_motility_apparatus:flhd
data/traits/morphology/non_motile.yaml non_motile_absent_motility_apparatus:reduced_motility_state->non_motile_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01548-23 has no snippet
data/traits/morphology/non_motile.yaml non_motile_absent_motility_apparatus:wspr_dgc->c_di_gmp_high[0] MISSING_SNIPPET WARN reference=DOI:10.1128/aem.01548-23 has no snippet
data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:absent_spo0a_gene->non_spore_forming_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1128/jb.00079-22 has no snippet
-data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:loss_sporulation_capacity->non_spore_forming_trait[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2021.630573 has no snippet
data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:loss_sporulation_genes->non_spore_forming_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1111/1462-2920.16145 has no snippet
-data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:low_spo0a_activity->loss_sporulation_capacity[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2021.630573 has no snippet
+data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:low_spo0a_activity->non_spore_forming_trait[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2021.630573 has no snippet
data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:no_sporulation_entry->non_spore_forming_trait[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms11081928 has no snippet
data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:phosphorelay_disruption->no_sporulation_entry[0] MISSING_SNIPPET WARN reference=DOI:10.3390/microorganisms11081928 has no snippet
data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade:rap_phosphatases->spo0f_dephosphorylation[0] MISSING_SNIPPET WARN reference=DOI:10.1038/s41522-024-00594-6 has no snippet
@@ -2226,12 +2223,11 @@ data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_pac
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet:pg_hydrolases->peripheral_pg_bridge[0] MISSING_SNIPPET WARN reference=DOI:10.1002/mbo3.1338 has no snippet
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet:pg_synthetases_hydrolases->septal_pg_remodeling[0] MISSING_SNIPPET WARN reference=DOI:10.1002/mbo3.1338 has no snippet
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet:three_plane_perpendicular_division->sarcina_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1038/ncomms4842 has no snippet
-data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:elongation_capacity->sphere_shaped_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:ftsW_flippase->lipid_ii[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:ftsZ_division_ring->divisome_pbps[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:ftsZ_treadmilling->septal_peptidoglycan_synthesis[0] MISSING_SNIPPET WARN reference=DOI:10.1042/bsr20221664 has no snippet
data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:lipid_ii->septal_peptidoglycan_synthesis[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
-data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:mreB_elongation_machinery->elongation_capacity[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
+data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:mreB_elongation_machinery->lateral_elongation[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan:septal_peptidoglycan_synthesis->sphere_shaped_trait[0] MISSING_SNIPPET WARN reference=DOI:10.1038/nrmicro3088 has no snippet
data/traits/morphology/spindle_shaped.yaml spindle_shaped_symmetric_taper:localized_pg_insertion->non_spherical_morphology[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2017.01264 has no snippet
data/traits/morphology/spindle_shaped.yaml spindle_shaped_symmetric_taper:localized_pg_insertion->symmetric_polar_pg[0] MISSING_SNIPPET WARN reference=DOI:10.3389/fmicb.2017.01264 has no snippet
diff --git a/data/traits/environment/nacl_delta_low.yaml b/data/traits/environment/nacl_delta_low.yaml
index a5a06e84..504efeff 100644
--- a/data/traits/environment/nacl_delta_low.yaml
+++ b/data/traits/environment/nacl_delta_low.yaml
@@ -63,10 +63,6 @@ causal_graphs:
node_type: CHEMICAL
description: Accumulation of proline as a compatible solute supporting growth
at higher NaCl.
- - node_id: salt_tolerance_breadth
- label: salt-tolerance breadth
- node_type: CAPACITY
- description: Capacity to grow across a range of ambient NaCl concentrations.
edges:
- subject: limited_osmoadaptive_flexibility
predicate: confers
@@ -89,7 +85,7 @@ causal_graphs:
predicate_id: rdfs:subClassOf
- subject: ectoine_biosynthesis
predicate: supports
- object: salt_tolerance_breadth
+ object: nacl_delta
description: Ectoine biosynthesis capacity broadens NaCl tolerance; its loss narrows
the growth range.
evidence:
@@ -108,7 +104,7 @@ causal_graphs:
(opuAC, proX/proV/proW) supporting osmoadaptation.
- subject: trkh_k_uptake
predicate: supports
- object: salt_tolerance_breadth
+ object: nacl_delta
description: TrkH K+ uptake supports intracellular K+ homeostasis enabling salt
tolerance; its absence may contribute to narrow breadth.
evidence:
@@ -117,7 +113,7 @@ causal_graphs:
of compatible solutes and K+ supports salt adaptation.
- subject: nhac_antiporter
predicate: supports
- object: salt_tolerance_breadth
+ object: nacl_delta
description: NhaC Na+/H+ antiporters support ion homeostasis under salt stress;
a candidate breadth-expanding mechanism whose absence may contribute to NaCl
delta low.
@@ -127,7 +123,7 @@ causal_graphs:
(~3.27 and 3.22-fold).
- subject: intracellular_proline
predicate: supports
- object: salt_tolerance_breadth
+ object: nacl_delta
description: Increased intracellular proline as a compatible solute supports growth
at higher NaCl, broadening tolerance.
evidence:
@@ -135,16 +131,6 @@ causal_graphs:
notes: Engineered proline biosynthesis with blocked catabolism increased intracellular
proline and restored growth at 8% NaCl; supports osmolyte role of proline
in salt-tolerance breadth.
- - subject: salt_tolerance_breadth
- predicate: is a
- object: nacl_delta
- description: Salt-tolerance breadth is the capacity quantified by the NaCl-delta
- phenotype.
- evidence:
- - reference: DOI:10.1093/femsre/fuy009
- notes: Osmoadaptation review frames salinity tolerance breadth as the basis
- of the NaCl-delta (stenohaline vs euryhaline) distinction.
- predicate_id: rdfs:subClassOf
curation_history:
- timestamp: '2026-05-05T01:35:46.840753+00:00'
curator: seed_from_metpo
@@ -188,3 +174,17 @@ curation_history:
or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8
and v9 and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: 'Merged node salt_tolerance_breadth into nacl_delta and repointed its edges.
+ Issue 352. A FIFTH restatement, caught in review (#360). ''Capacity to grow across
+ a range of ambient NaCl concentrations'' against nacl_delta''s ''Breadth of the
+ growth-supporting NaCl range'' -- the same claim, and nacl_delta is in the same
+ graph already TRAIT and already grounded METPO:1000335. I had retyped it and grounded
+ it METPO:1000622 (halotolerant), which is a DEGREE of tolerance, not a breadth:
+ 1000622 is a halophily preference (sub 1000629) while 1000335 is a delta (sub
+ 1000532/1000534), so the node''s existing `is a -> nacl_delta` edge asserted halotolerant
+ sub NaCl delta, a subsumption METPO does not have. The absolute-vs-breadth distinction
+ this migration insists on for pH, missed for salt.'
+ llm_assisted: true
diff --git a/data/traits/environment/oxygen_preference.yaml b/data/traits/environment/oxygen_preference.yaml
index 0f475816..596ddb19 100644
--- a/data/traits/environment/oxygen_preference.yaml
+++ b/data/traits/environment/oxygen_preference.yaml
@@ -96,10 +96,6 @@ causal_graphs:
node_type: GENE_OR_PROTEIN
description: Enzyme that dismutates superoxide; key oxidative-stress defense.
grounding: GO:0004784
- - node_id: oxygen_tolerance
- label: oxygen tolerance
- node_type: CAPACITY
- description: Capacity of a cell to survive exposure to molecular oxygen.
edges:
- subject: ambient_oxygen
predicate: defines
@@ -180,7 +176,7 @@ causal_graphs:
to O2 or H2O2 stress.
- subject: detoxifying_enzyme_expression
predicate: increases
- object: oxygen_tolerance
+ object: oxygen_preference_trait
description: A larger detoxifying-enzyme repertoire increases survival under oxygen
exposure.
evidence:
@@ -199,7 +195,7 @@ causal_graphs:
predicate_id: METPO:2007809
- subject: superoxide_dismutase
predicate: increases
- object: oxygen_tolerance
+ object: oxygen_preference_trait
description: Higher superoxide dismutase activity is associated with higher oxygen
tolerance.
evidence:
@@ -300,3 +296,19 @@ curation_history:
proposed in proposals/metpo_traitmech_v9 and are placeholder ids until METPO mints
them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: 'Merged node oxygen_tolerance into oxygen_preference_trait and repointed
+ its edges. Issue 352. A SIXTH restatement (#360). METPO:1000601''s own definition
+ is ''an organism''s oxygen requirements OR TOLERANCE for growth'', so ''capacity
+ of a cell to survive exposure to molecular oxygen'' is part of what the anchor
+ already says. I had grounded it METPO:1000609 (aerotolerant), which METPO defines
+ as ''does NOT USE O2 for growth but tolerates its presence'' -- the aerotolerant-anaerobe
+ phenotype, false of the obligate aerobes this node also covers -- and which is
+ itself sub METPO:1000601, making it a sixth child phenotype in a graph that wires
+ the other four in with `is a` and left this one unlinked. aerotolerant.yaml, the
+ record FOR 1000609, has no such node at all: it models the same biology as detoxification
+ processes. Merging attaches the ROS-defence island to the trait, which unlike
+ a retype is a real connectivity gain.'
+ llm_assisted: true
diff --git a/data/traits/environment/ph_delta.yaml b/data/traits/environment/ph_delta.yaml
index 40f2e30b..1cf29ad2 100644
--- a/data/traits/environment/ph_delta.yaml
+++ b/data/traits/environment/ph_delta.yaml
@@ -70,10 +70,6 @@ causal_graphs:
node_type: PATHWAY
description: Decarboxylase systems that consume intracellular protons and export
amines under acid stress.
- - node_id: low_ph_tolerance
- label: low-pH tolerance
- node_type: CAPACITY
- description: Capacity to grow and survive under acidic external pH.
- node_id: oxidative_phosphorylation
label: oxidative phosphorylation
node_type: BIOLOGICAL_PROCESS
@@ -148,7 +144,7 @@ causal_graphs:
predicate_id: RO:0002212
- subject: amino_acid_decarboxylase_acid_resistance
predicate: increases
- object: low_ph_tolerance
+ object: ph_delta_trait
description: Amino-acid decarboxylase acid-resistance systems increase low-pH
tolerance.
evidence:
@@ -216,3 +212,17 @@ curation_history:
is-a BiologicalProcessOrActivity. The replacements are proposed in proposals/metpo_traitmech_v8
and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: 'Merged node low_ph_tolerance into ph_delta_trait and repointed its edges.
+ Issue 352. An EIGHTH restatement (#360). I had grounded it METPO:1003008 (acidotolerant)
+ and claimed ''no collision'' with the record''s METPO:1000232 (pH delta). No collision,
+ but the wrong SCOPE: 1003008 is defined as tolerating acid ''WHILE MAINTAINING
+ OPTIMAL GROWTH NEAR NEUTRAL pH'', which excludes the acidophiles this generic
+ pH-delta record covers. A grounding narrower than the node it labels is a false
+ claim about every organism in the excluded part. Also a pure sink. Merging repoints
+ amino_acid_decarboxylase_acid_resistance onto ph_delta_trait, which reads correctly:
+ an acid-resistance system widens the growth-supporting pH range, and a pH delta
+ IS that range.'
+ llm_assisted: true
diff --git a/data/traits/environment/ph_delta_high.yaml b/data/traits/environment/ph_delta_high.yaml
index bfefa5b1..dea530fd 100644
--- a/data/traits/environment/ph_delta_high.yaml
+++ b/data/traits/environment/ph_delta_high.yaml
@@ -78,7 +78,7 @@ causal_graphs:
- node_id: growth_external_ph_5_5_9
label: growth across external pH 5.5-9.0
node_type: TRAIT
- grounding: METPO:1000478
+ grounding: METPO:1000332
description: Growth supported across the neutralophile external pH range ~5.5-9.0.
- node_id: constant_pmf
label: constant proton motive force
@@ -286,3 +286,12 @@ curation_history:
this record''s own ph_delta_high_trait, so it takes the same METPO:1000478; merging
the two nodes is tracked in issue 352.'
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: REGROUND_CAUSAL_NODE
+ changes: 'Regrounded node growth_external_ph_5_5_9 from METPO:1000478 to METPO:1000332.
+ Issue 352. Shared METPO:1000478 with ph_delta_high_trait, but the two say different
+ things: this node is an ABSOLUTE external range (''~5.5-9.0''), while ph_delta_high_trait
+ is a BREADTH (''approximately 5-9 pH units''), which is what a pH DELTA is. 1000478
+ belongs to the delta; this is a pH range (METPO:1000332).'
+ llm_assisted: true
diff --git a/data/traits/environment/ph_delta_low.yaml b/data/traits/environment/ph_delta_low.yaml
index 11d2752e..597faf48 100644
--- a/data/traits/environment/ph_delta_low.yaml
+++ b/data/traits/environment/ph_delta_low.yaml
@@ -54,10 +54,6 @@ causal_graphs:
node_type: BIOLOGICAL_PROCESS
description: Tuning of Delta-psi and Delta-pH components of the proton motive
force.
- - node_id: ph_homeostasis_capacity
- label: pH homeostasis capacity
- node_type: CAPACITY
- description: Capacity to balance and maintain cytoplasmic pH under pH stress.
- node_id: weak_organic_acids
label: weak organic acids
node_type: CHEMICAL
@@ -114,7 +110,7 @@ causal_graphs:
predicate_id: METPO:2007406
- subject: pmf_architecture
predicate: determines
- object: ph_homeostasis_capacity
+ object: cytoplasmic_ph_homeostasis
description: PMF architecture (Delta-psi and Delta-pH balancing) determines pH
homeostasis capacity.
evidence:
@@ -198,3 +194,12 @@ curation_history:
or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8
and v9 and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: Merged node ph_homeostasis_capacity into cytoplasmic_ph_homeostasis and
+ repointed its edges. Issue 352. 'Capacity to balance and maintain cytoplasmic
+ pH under pH stress' is cytoplasmic_ph_homeostasis, which is IN THE SAME GRAPH
+ already typed BIOLOGICAL_PROCESS and grounded GO:0051453. Grounding the capacity
+ node to GO:0051453 would have produced a DUPLICATE_GROUNDING against it.
+ llm_assisted: true
diff --git a/data/traits/environment/psychrotolerant.yaml b/data/traits/environment/psychrotolerant.yaml
index c953c5c0..58133222 100644
--- a/data/traits/environment/psychrotolerant.yaml
+++ b/data/traits/environment/psychrotolerant.yaml
@@ -85,10 +85,6 @@ causal_graphs:
label: cryoprotection against freeze-thaw cycles
node_type: BIOLOGICAL_PROCESS
description: Protection of cells from damage during freeze-thaw cycling.
- - node_id: growth_at_4c
- label: growth at 4 degrees C
- node_type: CAPACITY
- description: Ability to grow at refrigeration-range low temperature (4 C).
edges:
- subject: low_temperature
predicate: decreases
@@ -169,15 +165,6 @@ causal_graphs:
- reference: DOI:10.37256/amtt.5220244537
notes: EPS surrounding cells play a critical role in cold adaptation by providing
protection against freeze-thaw cycles and acting as cryoprotectants.
- - subject: psychrotolerant_trait
- predicate: has capability
- object: growth_at_4c
- description: The psychrotolerant trait entails the capacity to grow at low temperatures
- such as 4 C while retaining higher optimal temperatures.
- evidence:
- - reference: DOI:10.1007/s42770-023-01057-4
- notes: Psychrotolerant/psychrotroph microbes can grow at 4 C and have optimal
- growth temperatures above 20 C.
curation_history:
- timestamp: '2026-05-05T01:35:46.859611+00:00'
curator: seed_from_metpo
@@ -282,3 +269,13 @@ curation_history:
is-a BiologicalProcessOrActivity. The replacements are proposed in proposals/metpo_traitmech_v8
and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: DROP_CAUSAL_NODE
+ changes: Dropped node growth_at_4c and its edges. Issue 352. 'Ability to grow at
+ refrigeration-range low temperature (4 C)' IS METPO:1000618 (psychrotolerant),
+ the record's own term and the grounding of psychrotolerant_trait, which is the
+ node it hangs off. A leaf restating its own parent. The parent keeps two other
+ in-edges (cold_shock_response confers, facultative_lipid_remodeling manifests
+ as), so nothing is stranded.
+ llm_assisted: true
diff --git a/data/traits/environment/slightly_halophilic.yaml b/data/traits/environment/slightly_halophilic.yaml
index 73f20bc0..9667f92a 100644
--- a/data/traits/environment/slightly_halophilic.yaml
+++ b/data/traits/environment/slightly_halophilic.yaml
@@ -43,10 +43,6 @@ causal_graphs:
label: osmoprotectant transport
node_type: MOLECULAR_FUNCTION
description: Uptake of compatible solutes such as glycine betaine.
- - node_id: salt_tolerance
- label: salt tolerance
- node_type: CAPACITY
- description: Capacity to grow and survive under elevated salinity / salt stress.
- node_id: ectoine_biosynthesis
label: ectoine biosynthesis
node_type: BIOLOGICAL_PROCESS
@@ -131,7 +127,7 @@ causal_graphs:
predicate_id: RO:0002234
- subject: ectoine
predicate: increases
- object: salt_tolerance
+ object: slightly_halophilic_trait
description: Accumulation of ectoine as a compatible solute increases salt tolerance.
evidence:
- reference: DOI:10.1128/aem.01905-23
@@ -140,7 +136,7 @@ causal_graphs:
predicate_id: RO:0002213
- subject: osmoprotectant_transport
predicate: increases
- object: salt_tolerance
+ object: slightly_halophilic_trait
description: Uptake of compatible solutes is a general salt-out osmoadaptation
strategy that raises salt tolerance.
evidence:
@@ -274,3 +270,23 @@ curation_history:
proposed in proposals/metpo_traitmech_v9 and are placeholder ids until METPO mints
them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: 'Merged node salt_tolerance into slightly_halophilic_trait and repointed
+ its edges. Issue 352. A SEVENTH restatement, caught in the third review round
+ (#360). I had grounded it METPO:1000622 (halotolerant), reasoning that the record
+ is METPO:1000625 (slightly halophilic) so the term is ''distinct''. It is distinct
+ in the worst way: 1000622 and 1000625 are DIRECT SIBLINGS under 1000629 (halophily
+ preference), and 1000622 means ''tolerates high salt but DOES NOT REQUIRE it for
+ growth'' while 1000625 means the organism ''REQUIRES low to moderate salt for
+ optimal growth''. So the node asserted of this record the negation of what the
+ record''s own term says. Distinct is not the test; compatible is. NO CONNECTIVITY
+ CLAIM HERE: the node was already in the trait''s component via osmoprotectant_transport
+ -> compatible_solutes -> osmotic_stress, so merging leaves the graph at 2 components
+ and is a correctness fix, not a structural one. METPO has no generic salt-tolerance
+ disposition to reground to: halotolerant and acidotolerant are the only candidate
+ labels and each already anchors its own record. Recorded as issue #364, which
+ proposes a tolerance axis distinct from the preference axis; nothing under proposals/
+ yet.'
+ llm_assisted: true
diff --git a/data/traits/morphology/non_spore_forming.yaml b/data/traits/morphology/non_spore_forming.yaml
index ed481ef5..cc68661a 100644
--- a/data/traits/morphology/non_spore_forming.yaml
+++ b/data/traits/morphology/non_spore_forming.yaml
@@ -70,10 +70,6 @@ causal_graphs:
node_type: MOLECULAR_FUNCTION
description: Reduced or absent activity of the Spo0A master regulator of endospore
formation.
- - node_id: loss_sporulation_capacity
- label: loss of sporulation capacity
- node_type: CAPACITY
- description: Loss of the capacity to undergo sporulation.
- node_id: rap_phosphatases
label: Rap phosphatases
node_type: GENE_OR_PROTEIN
@@ -143,22 +139,13 @@ causal_graphs:
predicate_id: biolink:causes
- subject: low_spo0a_activity
predicate: causes
- object: loss_sporulation_capacity
+ object: non_spore_forming_trait
description: Low or absent Spo0A activity abolishes sporulation capacity.
evidence:
- reference: DOI:10.3389/fmicb.2021.630573
notes: Spo0A is the master regulator of endospore formation; elevated Spo0A~P
is required to trigger sporulation.
predicate_id: biolink:causes
- - subject: loss_sporulation_capacity
- predicate: manifests as
- object: non_spore_forming_trait
- description: Loss of sporulation capacity manifests the non-spore-forming phenotype.
- evidence:
- - reference: DOI:10.3389/fmicb.2021.630573
- notes: Failure to produce/activate Spo0A prevents sporulation, yielding the
- non-spore-forming trait.
- predicate_id: METPO:2007400
- subject: rap_phosphatases
predicate: dephosphorylates
object: spo0f_dephosphorylation
@@ -235,3 +222,13 @@ curation_history:
changes: Grounded 5 causal-edge predicate_id field(s) via mappings/predicate_grounding.tsv
(biolink:causes×2, METPO:2007400×2, RO:0002212×1).
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: Merged node loss_sporulation_capacity into non_spore_forming_trait and
+ repointed its edges. Issue 352. 'Loss of the capacity to undergo sporulation'
+ IS the record's own trait (METPO:1000872, non-spore forming), so the only correct
+ grounding duplicates the anchor. Collapsing leaves low_spo0a_activity -causes->
+ non_spore_forming_trait, which is the shape loss_sporulation_genes already uses
+ in this graph.
+ llm_assisted: true
diff --git a/data/traits/morphology/sphere_shaped.yaml b/data/traits/morphology/sphere_shaped.yaml
index b535b499..baafc056 100644
--- a/data/traits/morphology/sphere_shaped.yaml
+++ b/data/traits/morphology/sphere_shaped.yaml
@@ -62,10 +62,6 @@ causal_graphs:
label: MreB-mediated elongation machinery
node_type: GENE_OR_PROTEIN
description: Actin-like MreB cytoskeleton directing lateral (rod) elongation.
- - node_id: elongation_capacity
- label: elongation capacity
- node_type: CAPACITY
- description: Capacity of a cell to elongate into a rod via sidewall growth.
- node_id: divisome_pbps
label: divisome and PBPs
node_type: GENE_OR_PROTEIN
@@ -133,21 +129,13 @@ causal_graphs:
predicate_id: RO:0002326
- subject: mreB_elongation_machinery
predicate: causally upstream of
- object: elongation_capacity
+ object: lateral_elongation
description: Loss of the MreB cytoskeleton removes the elongation capacity that
lengthens rods.
evidence:
- reference: DOI:10.1038/nrmicro3088
notes: loss of the MreB cytoskeleton is the main factor that prevents cocci
from elongating into rods
- - subject: elongation_capacity
- predicate: reduced in
- object: sphere_shaped_trait
- description: Loss of elongation capacity prevents cocci from elongating into rods,
- favoring a sphere.
- evidence:
- - reference: DOI:10.1038/nrmicro3088
- notes: prevents cocci from elongating into rods
- subject: ftsZ_division_ring
predicate: recruits
object: divisome_pbps
@@ -255,3 +243,11 @@ curation_history:
not enablement. Needs GENE_OR_PROTEIN added to `transports`'' subject_types, which
is a deliberate widening recorded there.'
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: MERGE_CAUSAL_NODE
+ changes: Merged node elongation_capacity into lateral_elongation and repointed its
+ edges. Issue 352. 'Capacity of a cell to elongate into a rod via sidewall growth'
+ against lateral_elongation's 'Sidewall growth mode that lengthens rods' -- the
+ same claim twice, and both already carried `reduced in -> sphere_shaped_trait`.
+ llm_assisted: true
diff --git a/data/traits/physiology/catalase_activity.yaml b/data/traits/physiology/catalase_activity.yaml
index b84a2fe2..4909857a 100644
--- a/data/traits/physiology/catalase_activity.yaml
+++ b/data/traits/physiology/catalase_activity.yaml
@@ -44,7 +44,6 @@ causal_graphs:
label: catalase
node_type: GENE_OR_PROTEIN
description: Heme enzyme that dismutates hydrogen peroxide.
- grounding: GO:0004096
- node_id: catalase_function
label: catalase activity
node_type: MOLECULAR_FUNCTION
@@ -264,3 +263,11 @@ curation_history:
or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8
and v9 and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: UNGROUND_CAUSAL_NODE
+ changes: 'Dropped the grounding GO:0004096 from node catalase. Issue 352. GO:0004096
+ is ''catalase ACTIVITY'' -- a molecular function, which is what catalase_function
+ is. A protein is not its activity, and the graph already says so correctly: catalase
+ -enables-> catalase_function. Dropped from the protein, kept on the function.'
+ llm_assisted: true
diff --git a/data/traits/physiology/urease_activity.yaml b/data/traits/physiology/urease_activity.yaml
index 181157cc..86e2b7a1 100644
--- a/data/traits/physiology/urease_activity.yaml
+++ b/data/traits/physiology/urease_activity.yaml
@@ -40,7 +40,6 @@ causal_graphs:
label: urease
node_type: GENE_OR_PROTEIN
description: Nickel metalloenzyme hydrolyzing urea.
- grounding: GO:0009039
- node_id: urease_function
label: urease activity
node_type: MOLECULAR_FUNCTION
@@ -244,3 +243,10 @@ curation_history:
or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8
and v9 and are placeholder ids until METPO mints them.
llm_assisted: true
+- timestamp: '2026-08-08T05:00:00Z'
+ curator: claude
+ action: UNGROUND_CAUSAL_NODE
+ changes: 'Dropped the grounding GO:0009039 from node urease. Issue 352. GO:0009039
+ is ''urease ACTIVITY''. Same as catalase: kept on urease_function, dropped from
+ the protein that enables it.'
+ llm_assisted: true
diff --git a/docs/CURATION_PLAYBOOK.md b/docs/CURATION_PLAYBOOK.md
index 940b93c3..84b9cf80 100644
--- a/docs/CURATION_PLAYBOOK.md
+++ b/docs/CURATION_PLAYBOOK.md
@@ -147,6 +147,62 @@ it actually admits. The count is **0** and the audit hard-fails on a new
one, so this section describes a mistake the tooling now prevents rather
than a backlog to work around.
+### `CAPACITY` holds two senses — only one of them is a trait
+
+`audit-graphs` flags `DISPOSITION_MISTYPED` when a `CAPACITY` or `STATE`
+node's **description** reads as an organism disposition. The count is at
+**zero** (#352), so a new one fails `just qc`.
+
+The distinction is not "does the word *capacity* appear". Of the corpus's
+24 `CAPACITY` nodes, #352 merged 8 and deliberately left 16:
+
+| sense | examples | what to do |
+|---|---|---|
+| an organism's **disposition** — what it can do | every one of #352's eight: *"Capacity of a cell to survive exposure to molecular oxygen"*, *"Ability to grow at 4 C"*, *"Capacity to grow and survive under elevated salinity"* | **try to ground it — then see below** |
+| a **reservoir or quantity** | `reducing_power` (a pool of reductants), `cytoplasmic_buffering_capacity` (*"Capacity of cytoplasmic buffers to absorb pH fluctuations"*), `swimming_velocity`, `metabolic_versatility` | **leave it `CAPACITY`** |
+
+The left column decides only whether the node is *a candidate*. Note that none
+of the disposition examples above still exists: all three were merged or
+dropped by #352, because none of them survived the grounding step. A
+disposition reading is necessary for a retype and nowhere near sufficient.
+
+A buffer has a capacity; so does a battery. Neither is something an
+organism *can do*. That is why the check is organism-scoped — *capacity of
+a cell / organism / bacterium / strain to …* — rather than matching bare
+*capacity to*.
+
+**Ground it, and ground it to something the graph does not already have.**
+Every `TRAIT` node in the corpus is grounded, so a retype owes a grounding.
+Requiring one is also the test that catches the commonest mistake here, and
+it caught **all eight** of #352's: every one of them needed a grounding that
+either restated the record, contradicted it, or was narrower than the node.
+#352 retyped **nothing** in the end; all eight were merged.
+
+Note what the test is NOT. "Is this term distinct from the record's own?"
+passed four nodes that later failed — `salt_tolerance` was grounded
+`METPO:1000622`, a *direct sibling* of its record's `METPO:1000625` under
+`METPO:1000629`, which is maximally distinct and asserts the negation of the
+record ("does not require salt" against "requires salt"). Ask instead whether
+the term is **compatible** with the record and **no narrower** than the node.
+
+**Do not read a fall in `UNREACHABLE_FROM_TRAIT` as connectivity.** A
+retype creates a new anchor, so every node in that island stops being
+reported while the island stays exactly as disconnected as before. #352
+moved it 1303 → 1296, and moved it there **identically** whether its nodes
+were retyped or merged — which is what proves the count cannot see the
+difference.
+
+`FRAGMENTED_GRAPH`'s *count* cannot either: it reports one finding per split
+graph however many pieces that graph is in, so it sat flat at 218 through all
+of it. What separates them is component **structure**: retyping changed it in
+**zero** of #352's eight graphs, while merging improved three
+(`oxygen_preference` 3 components → 2, `ph_delta` 3 → 2, `ph_delta_low`
+5 → 4) and left five unchanged as pure deduplication.
+
+Those numbers came from measuring the graphs by hand. #359 makes it routine —
+`reports/causal_graph_connectivity.tsv`, one row per graph, arriving with
+**#363**. Once it lands, quote that table rather than the finding counts.
+
### `enables` needs a process-or-activity object
Separately from the domain rule above, `enables` (`RO:0002327`) has a
diff --git a/history/infrastructure/disposition-typing-burndown/2026-08-08T014114Z-claude-code-5d4383.yaml b/history/infrastructure/disposition-typing-burndown/2026-08-08T014114Z-claude-code-5d4383.yaml
new file mode 100644
index 00000000..12cc0f47
--- /dev/null
+++ b/history/infrastructure/disposition-typing-burndown/2026-08-08T014114Z-claude-code-5d4383.yaml
@@ -0,0 +1,37 @@
+history_version: 1
+target:
+ kind: infrastructure
+ path: scripts/migrate_disposition_typing.py
+ slug: disposition-typing-burndown
+session:
+ id: 2026-08-08T014114Z-claude-code-5d4383
+ timestamp: '2026-08-08T01:41:14Z'
+ actors:
+ - type: ai_agent
+ name: claude-code
+ model: claude-opus-5
+ agent_tool: claude-code
+links:
+ issues:
+ - https://github.com/CultureBotAI/TraitMech/issues/352
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - causal_graphs
+ - grounding
+ summary: Burn down the 11 baselined DISPOSITION_MISTYPED and DUPLICATE_GROUNDING findings
+ details: 'Resolved 11 findings across 11 trait records. Only 4 were retypes: CAPACITY nodes
+ whose descriptions are organism dispositions, retyped to TRAIT and grounded to METPO:1000622/1000609/1003008
+ - terms distinct from the records'' own. The other 4 flagged nodes were RESTATEMENTS,
+ not mistypes: the only correct grounding for each was the term its own record already
+ carries, and for three of them the node being restated sat in the same graph already correctly
+ typed, so they were merged (ph_homeostasis_capacity into cytoplasmic_ph_homeostasis, elongation_capacity
+ into lateral_elongation, loss_sporulation_capacity collapsed onto non_spore_forming_trait)
+ and one leaf dropped (growth_at_4c). The 3 DUPLICATE_GROUNDING cases: growth_external_ph_5_5_9
+ regrounded METPO:1000478 to METPO:1000332 (it states an absolute range, not a delta),
+ and catalase/urease had their GO ACTIVITY terms removed from the protein node and kept
+ on the function node they enable. Verified by re-running audit-graphs (both classes 8+3
+ to 0) and audit-predicate-domains (stays 0). NOT an improvement in connectivity: UNREACHABLE_FROM_TRAIT
+ fell 1303 to 1296 purely because retyping added anchors inside existing islands, with
+ FRAGMENTED_GRAPH flat at 218 - filed as issue 359.'
diff --git a/history/infrastructure/disposition-typing-burndown/2026-08-08T030032Z-claude-code-d72d86.yaml b/history/infrastructure/disposition-typing-burndown/2026-08-08T030032Z-claude-code-d72d86.yaml
new file mode 100644
index 00000000..48cd4861
--- /dev/null
+++ b/history/infrastructure/disposition-typing-burndown/2026-08-08T030032Z-claude-code-d72d86.yaml
@@ -0,0 +1,44 @@
+history_version: 1
+target:
+ kind: infrastructure
+ path: scripts/migrate_disposition_typing.py
+ slug: disposition-typing-burndown
+session:
+ id: 2026-08-08T030032Z-claude-code-d72d86
+ timestamp: '2026-08-08T03:00:32Z'
+ actors:
+ - type: ai_agent
+ name: claude-code
+links:
+ issues:
+ - https://github.com/CultureBotAI/TraitMech/issues/352
+ prs:
+ - https://github.com/CultureBotAI/TraitMech/pull/360
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - causal_graphs
+ - grounding
+ summary: Correct two of the four claimed retypes to merges after review (#360)
+ details: 'Review of the first burn-down pass found that 2 of the 4 nodes it retyped were
+ restatements, by the same test the other restatements failed: the grounding chosen for
+ each contradicted an edge or definition the graph already had. salt_tolerance_breadth
+ was retyped and grounded METPO:1000622 (halotolerant) while keeping its ''is a -> nacl_delta''
+ edge, and nacl_delta is METPO:1000335 (a delta, sub 1000532/1000534) whereas 1000622 is
+ a halophily preference (sub 1000629), so the graph asserted halotolerant sub NaCl-delta,
+ a subsumption METPO does not have. It is the absolute-vs-breadth distinction this migration
+ already insists on for pH, missed for salt; merged into nacl_delta. oxygen_tolerance was
+ grounded METPO:1000609 (aerotolerant), which METPO defines as ''does not use O2 for growth
+ but tolerates its presence'' - false of the obligate aerobes the node also covers - and
+ which is itself sub METPO:1000601, making it a sixth child phenotype in a graph that wires
+ the other four in with ''is a'' and left this one unlinked; merged into oxygen_preference_trait.
+ The migration is now 2 retypes, 6 merges, 3 regroundings. Unlike the retype, the merge
+ is a real connectivity gain: oxygen_preference FRAGMENTED_GRAPH goes components=3 of 14
+ (sizes 8,4,2) to components=2 of 13 (sizes 11,2), because the ROS-defence island now attaches
+ to the trait instead of merely sitting beside a new anchor. UNREACHABLE_FROM_TRAIT is
+ 1296 either way, which is why the count alone could not tell the two apart (issue 359).
+ Also fixed the audit trail itself: the first pass logged all 11 events as RETYPE_CAUSAL_NODE
+ including the 7 merges and regroundings, so the script now emits MERGE/DROP/REGROUND/UNGROUND_CAUSAL_NODE
+ and appends the curation_history entry itself rather than leaving it to be hand-written.
+ 519 tests pass; audit-graphs and audit-snippets both 0 new.'
diff --git a/history/infrastructure/disposition-typing-burndown/2026-08-08T060908Z-claude-code-f802c8.yaml b/history/infrastructure/disposition-typing-burndown/2026-08-08T060908Z-claude-code-f802c8.yaml
new file mode 100644
index 00000000..85950200
--- /dev/null
+++ b/history/infrastructure/disposition-typing-burndown/2026-08-08T060908Z-claude-code-f802c8.yaml
@@ -0,0 +1,47 @@
+history_version: 1
+target:
+ kind: infrastructure
+ path: scripts/migrate_disposition_typing.py
+ slug: disposition-typing-burndown
+session:
+ id: 2026-08-08T060908Z-claude-code-f802c8
+ timestamp: '2026-08-08T06:09:08Z'
+ actors:
+ - type: ai_agent
+ name: claude-code
+links:
+ issues:
+ - https://github.com/CultureBotAI/TraitMech/issues/352
+ prs:
+ - https://github.com/CultureBotAI/TraitMech/pull/360
+events:
+- type: EDIT
+ outcome: changed
+ sections:
+ - causal_graphs
+ - grounding
+ summary: 'Third review round takes the retype count to zero: all eight were restatements'
+ details: 'Review found the last two retypes mis-grounded as well, so the migration is now
+ 0 retypes, 8 merges, 3 regroundings. salt_tolerance had been grounded METPO:1000622 (halotolerant)
+ on the reasoning that the record''s own METPO:1000625 (slightly halophilic) makes it distinct;
+ verified against data/raw/metpo.owl, 1000622 and 1000625 are DIRECT SIBLINGS under 1000629,
+ and 1000622 means tolerates high salt but does not require it while 1000625 means requires
+ low to moderate salt for optimal growth - so the node asserted of the record the negation
+ of the record''s own term. Distinct is not the test, compatible is, and that wrong test
+ passed all four nodes that later failed. Merged into slightly_halophilic_trait. low_ph_tolerance
+ had been grounded METPO:1003008 (acidotolerant), whose definition is tolerating acid WHILE
+ MAINTAINING OPTIMAL GROWTH NEAR NEUTRAL pH, which excludes the acidophiles the generic
+ pH-delta record covers; a grounding narrower than the node it labels is a false claim
+ about every organism in the excluded part. Merged into ph_delta_trait. Corrected an overclaim
+ of my own in the same pass: I had written that merging salt_tolerance attaches the ectoine
+ island, and measurement showed the node was already in the trait''s component via osmoprotectant_transport
+ to compatible_solutes to osmotic_stress, so that merge is a correctness fix with no structural
+ effect. Measured all eight rather than asserting: retyping changed component structure
+ in ZERO of the eight graphs; merging improves three (oxygen_preference 3 components to
+ 2, ph_delta 3 to 2, ph_delta_low 5 to 4) and leaves five unchanged as pure deduplication.
+ UNREACHABLE_FROM_TRAIT reads 1296 under either fix, which is why issue 359 exists and
+ why the playbook now points at reports/causal_graph_connectivity.tsv instead of the finding
+ counts. Playbook updated: its canonical disposition example was salt_tolerance''s own
+ description, which this pass merges away. RETYPE table kept but empty, because we looked
+ and found none is a different claim from we never modelled retypes. 519 tests pass, qc
+ green.'
diff --git a/pages/browse.html b/pages/browse.html
index a4722725..faf6b13d 100644
--- a/pages/browse.html
+++ b/pages/browse.html
@@ -103,7 +103,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/ecology.html b/pages/category/ecology.html
index 6f77cc59..b92e2d5f 100644
--- a/pages/category/ecology.html
+++ b/pages/category/ecology.html
@@ -256,7 +256,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/environment.html b/pages/category/environment.html
index dedbb2b5..c1f55033 100644
--- a/pages/category/environment.html
+++ b/pages/category/environment.html
@@ -1016,7 +1016,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/genomics.html b/pages/category/genomics.html
index 97d93349..f4ee952d 100644
--- a/pages/category/genomics.html
+++ b/pages/category/genomics.html
@@ -200,7 +200,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/metabolism.html b/pages/category/metabolism.html
index 7a0cc080..ecee7ff3 100644
--- a/pages/category/metabolism.html
+++ b/pages/category/metabolism.html
@@ -1192,7 +1192,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/morphology.html b/pages/category/morphology.html
index 9ba5f9d3..ba02e326 100644
--- a/pages/category/morphology.html
+++ b/pages/category/morphology.html
@@ -752,7 +752,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/observation.html b/pages/category/observation.html
index bf07ff6f..caa72157 100644
--- a/pages/category/observation.html
+++ b/pages/category/observation.html
@@ -208,7 +208,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/physiology.html b/pages/category/physiology.html
index fac54ec6..19d2d759 100644
--- a/pages/category/physiology.html
+++ b/pages/category/physiology.html
@@ -408,7 +408,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/quantitative_property.html b/pages/category/quantitative_property.html
index 485dd014..6bf431f5 100644
--- a/pages/category/quantitative_property.html
+++ b/pages/category/quantitative_property.html
@@ -104,7 +104,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/category/upper.html b/pages/category/upper.html
index 46161b1e..abb4734c 100644
--- a/pages/category/upper.html
+++ b/pages/category/upper.html
@@ -112,7 +112,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/graph.html b/pages/graph.html
index c6f82ded..8b7f2afe 100644
--- a/pages/graph.html
+++ b/pages/graph.html
@@ -239,7 +239,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/nacl_delta_low.html b/pages/traits/environment/nacl_delta_low.html
index 42ea47c5..63af97b0 100644
--- a/pages/traits/environment/nacl_delta_low.html
+++ b/pages/traits/environment/nacl_delta_low.html
@@ -93,7 +93,7 @@
NhaC Na+/H+ antiporters support ion homeostasis under salt stress; a candidate breadth-expanding mechanism whose absence may contribute to NaCl delta low.
Increased intracellular proline as a compatible solute supports growth at higher NaCl, broadening tolerance.
@@ -175,23 +175,6 @@
Edge evidence
-
- salt-tolerance breadth
- is a
- NaCl delta
- rdfs:subClassOf
-
Salt-tolerance breadth is the capacity quantified by the NaCl-delta phenotype.
-
-
-
- DOI:10.1093/femsre/fuy009
-
- Osmoadaptation review frames salinity tolerance breadth as the basis of the NaCl-delta (stenohaline vs euryhaline) distinction.
-
-
-
-
-
@@ -437,6 +420,12 @@
Curation history
Re-grounded 1 causal edge(s) off microbe-domain METPO predicates (1 to confers), issue 301. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Edge directions are unchanged - this pass only relabels and re-grounds. RO:0002234 (has output) is used where the subject is an activity, since biolink gives it the domain 'biological process or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8 and v9 and are placeholder ids until METPO mints them.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node salt_tolerance_breadth into nacl_delta and repointed its edges. Issue 352. A FIFTH restatement, caught in review (#360). 'Capacity to grow across a range of ambient NaCl concentrations' against nacl_delta's 'Breadth of the growth-supporting NaCl range' -- the same claim, and nacl_delta is in the same graph already TRAIT and already grounded METPO:1000335. I had retyped it and grounded it METPO:1000622 (halotolerant), which is a DEGREE of tolerance, not a breadth: 1000622 is a halophily preference (sub 1000629) while 1000335 is a delta (sub 1000532/1000534), so the node's existing `is a -> nacl_delta` edge asserted halotolerant sub NaCl delta, a subsumption METPO does not have. The absolute-vs-breadth distinction this migration insists on for pH, missed for salt.
+
+
@@ -794,7 +783,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking limited osmoadaptive flexibility to a narrow NaCl growth breadth (\u2264 ~1% w/v).", "edges": [{"description": "Limited osmoadaptive flexibility yields a narrow NaCl-delta breadth.", "evidence": [{"notes": "Supports limited osmoadaptive flexibility as the basis of stenohaline breadth.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited_osmoadaptive_flexibility", "target": "nacl_delta_low_trait"}, {"description": "NaCl delta low is a quantitative bin of the NaCl-delta phenotype.", "evidence": [{"notes": "Supports a narrow breadth as a value within the NaCl-delta distribution.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "nacl_delta_low_trait", "target": "nacl_delta"}, {"description": "Ectoine biosynthesis capacity broadens NaCl tolerance; its loss narrows the growth range.", "evidence": [{"notes": "Wild-type H. elongata synthesizes ectoine as a major osmolyte, whereas ectoine-deficient strains become salt sensitive; supports general role of ectoine pathway in broadening NaCl tolerance.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-3", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "ectoine_biosynthesis", "target": "salt_tolerance_breadth"}, {"description": "Salinity-induced Opu/ProU compatible-solute transporters underlie osmoadaptive flexibility; limited capacity contributes to narrow breadth.", "evidence": [{"notes": "Proteomics showed salinity-linked increases in compatible-solute transporters (opuAC, proX/proV/proW) supporting osmoadaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-4", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "compatible_solute_transporters", "target": "limited_osmoadaptive_flexibility"}, {"description": "TrkH K+ uptake supports intracellular K+ homeostasis enabling salt tolerance; its absence may contribute to narrow breadth.", "evidence": [{"notes": "TrkH listed among salinity-responsive proteins; simultaneous accumulation of compatible solutes and K+ supports salt adaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-5", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "trkh_k_uptake", "target": "salt_tolerance_breadth"}, {"description": "NhaC Na+/H+ antiporters support ion homeostasis under salt stress; a candidate breadth-expanding mechanism whose absence may contribute to NaCl delta low.", "evidence": [{"notes": "Proteomics show strong salinity-linked increases for NhaC-family antiporters (~3.27 and 3.22-fold).", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "nhac_antiporter", "target": "salt_tolerance_breadth"}, {"description": "Increased intracellular proline as a compatible solute supports growth at higher NaCl, broadening tolerance.", "evidence": [{"notes": "Engineered proline biosynthesis with blocked catabolism increased intracellular proline and restored growth at 8% NaCl; supports osmolyte role of proline in salt-tolerance breadth.", "reference": "DOI:10.1128/aem.01195-24"}], "id": "edge-7", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "intracellular_proline", "target": "salt_tolerance_breadth"}, {"description": "Salt-tolerance breadth is the capacity quantified by the NaCl-delta phenotype.", "evidence": [{"notes": "Osmoadaptation review frames salinity tolerance breadth as the basis of the NaCl-delta (stenohaline vs euryhaline) distinction.", "reference": "DOI:10.1093/femsre/fuy009"}], "id": "edge-8", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "salt_tolerance_breadth", "target": "nacl_delta"}], "evidence_rows": [{"description": "Limited osmoadaptive flexibility yields a narrow NaCl-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports limited osmoadaptive flexibility as the basis of stenohaline breadth.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited osmoadaptive flexibility", "target": "NaCl delta low"}, {"description": "NaCl delta low is a quantitative bin of the NaCl-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports a narrow breadth as a value within the NaCl-delta distribution.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "NaCl delta low", "target": "NaCl delta"}, {"description": "Ectoine biosynthesis capacity broadens NaCl tolerance; its loss narrows the growth range.", "edge_id": "edge-3", "evidence": [{"notes": "Wild-type H. elongata synthesizes ectoine as a major osmolyte, whereas ectoine-deficient strains become salt sensitive; supports general role of ectoine pathway in broadening NaCl tolerance.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "supports", "predicate_id": null, "source": "ectoine biosynthesis capacity", "target": "salt-tolerance breadth"}, {"description": "Salinity-induced Opu/ProU compatible-solute transporters underlie osmoadaptive flexibility; limited capacity contributes to narrow breadth.", "edge_id": "edge-4", "evidence": [{"notes": "Proteomics showed salinity-linked increases in compatible-solute transporters (opuAC, proX/proV/proW) supporting osmoadaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "compatible-solute transporters (Opu/ProU)", "target": "limited osmoadaptive flexibility"}, {"description": "TrkH K+ uptake supports intracellular K+ homeostasis enabling salt tolerance; its absence may contribute to narrow breadth.", "edge_id": "edge-5", "evidence": [{"notes": "TrkH listed among salinity-responsive proteins; simultaneous accumulation of compatible solutes and K+ supports salt adaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "TrkH potassium uptake system", "target": "salt-tolerance breadth"}, {"description": "NhaC Na+/H+ antiporters support ion homeostasis under salt stress; a candidate breadth-expanding mechanism whose absence may contribute to NaCl delta low.", "edge_id": "edge-6", "evidence": [{"notes": "Proteomics show strong salinity-linked increases for NhaC-family antiporters (~3.27 and 3.22-fold).", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "NhaC-family Na+/H+ antiporter", "target": "salt-tolerance breadth"}, {"description": "Increased intracellular proline as a compatible solute supports growth at higher NaCl, broadening tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Engineered proline biosynthesis with blocked catabolism increased intracellular proline and restored growth at 8% NaCl; supports osmolyte role of proline in salt-tolerance breadth.", "reference": "DOI:10.1128/aem.01195-24"}], "predicate": "supports", "predicate_id": null, "source": "intracellular proline accumulation", "target": "salt-tolerance breadth"}, {"description": "Salt-tolerance breadth is the capacity quantified by the NaCl-delta phenotype.", "edge_id": "edge-8", "evidence": [{"notes": "Osmoadaptation review frames salinity tolerance breadth as the basis of the NaCl-delta (stenohaline vs euryhaline) distinction.", "reference": "DOI:10.1093/femsre/fuy009"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "salt-tolerance breadth", "target": "NaCl delta"}], "graph_id": "nacl_delta_low_stenohaline", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Opu/ProU-family uptake systems importing compatible solutes during osmoadaptation.", "grounding": null, "id": "compatible_solute_transporters", "is_orphan": false, "label": "compatible-solute transporters (Opu/ProU)", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Capacity to synthesize ectoine as a major compatible solute under salt stress.", "grounding": null, "id": "ectoine_biosynthesis", "is_orphan": false, "label": "ectoine biosynthesis capacity", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Accumulation of proline as a compatible solute supporting growth at higher NaCl.", "grounding": null, "id": "intracellular_proline", "is_orphan": false, "label": "intracellular proline accumulation", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Narrow capacity to remodel osmolyte pools and ion transport across ambient salinities.", "grounding": null, "id": "limited_osmoadaptive_flexibility", "is_orphan": false, "label": "limited osmoadaptive flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting NaCl range.", "grounding": "METPO:1000335", "id": "nacl_delta", "is_orphan": false, "label": "NaCl delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "NaCl growth-supporting breadth \u2264 ~1% w/v.", "grounding": "METPO:1000479", "id": "nacl_delta_low_trait", "is_orphan": false, "label": "NaCl delta low", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "NhaC-family Na+/H+ antiporters mediating ion homeostasis under salt stress.", "grounding": null, "id": "nhac_antiporter", "is_orphan": false, "label": "NhaC-family Na+/H+ antiporter", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity to grow across a range of ambient NaCl concentrations.", "grounding": null, "id": "salt_tolerance_breadth", "is_orphan": false, "label": "salt-tolerance breadth", "node_type": "CAPACITY", "xrefs": []}, {"color": "#f3e8ff", "description": "TrkH-type K+ uptake transporter supporting intracellular potassium homeostasis under salt stress.", "grounding": null, "id": "trkh_k_uptake", "is_orphan": false, "label": "TrkH potassium uptake system", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "NaCl-delta-low stenohaline breadth"}];
+ var graphs = [{"description": "DOI-backed graph linking limited osmoadaptive flexibility to a narrow NaCl growth breadth (\u2264 ~1% w/v).", "edges": [{"description": "Limited osmoadaptive flexibility yields a narrow NaCl-delta breadth.", "evidence": [{"notes": "Supports limited osmoadaptive flexibility as the basis of stenohaline breadth.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited_osmoadaptive_flexibility", "target": "nacl_delta_low_trait"}, {"description": "NaCl delta low is a quantitative bin of the NaCl-delta phenotype.", "evidence": [{"notes": "Supports a narrow breadth as a value within the NaCl-delta distribution.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "nacl_delta_low_trait", "target": "nacl_delta"}, {"description": "Ectoine biosynthesis capacity broadens NaCl tolerance; its loss narrows the growth range.", "evidence": [{"notes": "Wild-type H. elongata synthesizes ectoine as a major osmolyte, whereas ectoine-deficient strains become salt sensitive; supports general role of ectoine pathway in broadening NaCl tolerance.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-3", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "ectoine_biosynthesis", "target": "nacl_delta"}, {"description": "Salinity-induced Opu/ProU compatible-solute transporters underlie osmoadaptive flexibility; limited capacity contributes to narrow breadth.", "evidence": [{"notes": "Proteomics showed salinity-linked increases in compatible-solute transporters (opuAC, proX/proV/proW) supporting osmoadaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-4", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "compatible_solute_transporters", "target": "limited_osmoadaptive_flexibility"}, {"description": "TrkH K+ uptake supports intracellular K+ homeostasis enabling salt tolerance; its absence may contribute to narrow breadth.", "evidence": [{"notes": "TrkH listed among salinity-responsive proteins; simultaneous accumulation of compatible solutes and K+ supports salt adaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-5", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "trkh_k_uptake", "target": "nacl_delta"}, {"description": "NhaC Na+/H+ antiporters support ion homeostasis under salt stress; a candidate breadth-expanding mechanism whose absence may contribute to NaCl delta low.", "evidence": [{"notes": "Proteomics show strong salinity-linked increases for NhaC-family antiporters (~3.27 and 3.22-fold).", "reference": "DOI:10.1128/aem.00145-24"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "nhac_antiporter", "target": "nacl_delta"}, {"description": "Increased intracellular proline as a compatible solute supports growth at higher NaCl, broadening tolerance.", "evidence": [{"notes": "Engineered proline biosynthesis with blocked catabolism increased intracellular proline and restored growth at 8% NaCl; supports osmolyte role of proline in salt-tolerance breadth.", "reference": "DOI:10.1128/aem.01195-24"}], "id": "edge-7", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "intracellular_proline", "target": "nacl_delta"}], "evidence_rows": [{"description": "Limited osmoadaptive flexibility yields a narrow NaCl-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports limited osmoadaptive flexibility as the basis of stenohaline breadth.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited osmoadaptive flexibility", "target": "NaCl delta low"}, {"description": "NaCl delta low is a quantitative bin of the NaCl-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports a narrow breadth as a value within the NaCl-delta distribution.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "salinity range"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "NaCl delta low", "target": "NaCl delta"}, {"description": "Ectoine biosynthesis capacity broadens NaCl tolerance; its loss narrows the growth range.", "edge_id": "edge-3", "evidence": [{"notes": "Wild-type H. elongata synthesizes ectoine as a major osmolyte, whereas ectoine-deficient strains become salt sensitive; supports general role of ectoine pathway in broadening NaCl tolerance.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "supports", "predicate_id": null, "source": "ectoine biosynthesis capacity", "target": "NaCl delta"}, {"description": "Salinity-induced Opu/ProU compatible-solute transporters underlie osmoadaptive flexibility; limited capacity contributes to narrow breadth.", "edge_id": "edge-4", "evidence": [{"notes": "Proteomics showed salinity-linked increases in compatible-solute transporters (opuAC, proX/proV/proW) supporting osmoadaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "compatible-solute transporters (Opu/ProU)", "target": "limited osmoadaptive flexibility"}, {"description": "TrkH K+ uptake supports intracellular K+ homeostasis enabling salt tolerance; its absence may contribute to narrow breadth.", "edge_id": "edge-5", "evidence": [{"notes": "TrkH listed among salinity-responsive proteins; simultaneous accumulation of compatible solutes and K+ supports salt adaptation.", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "TrkH potassium uptake system", "target": "NaCl delta"}, {"description": "NhaC Na+/H+ antiporters support ion homeostasis under salt stress; a candidate breadth-expanding mechanism whose absence may contribute to NaCl delta low.", "edge_id": "edge-6", "evidence": [{"notes": "Proteomics show strong salinity-linked increases for NhaC-family antiporters (~3.27 and 3.22-fold).", "reference": "DOI:10.1128/aem.00145-24"}], "predicate": "supports", "predicate_id": null, "source": "NhaC-family Na+/H+ antiporter", "target": "NaCl delta"}, {"description": "Increased intracellular proline as a compatible solute supports growth at higher NaCl, broadening tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Engineered proline biosynthesis with blocked catabolism increased intracellular proline and restored growth at 8% NaCl; supports osmolyte role of proline in salt-tolerance breadth.", "reference": "DOI:10.1128/aem.01195-24"}], "predicate": "supports", "predicate_id": null, "source": "intracellular proline accumulation", "target": "NaCl delta"}], "graph_id": "nacl_delta_low_stenohaline", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Opu/ProU-family uptake systems importing compatible solutes during osmoadaptation.", "grounding": null, "id": "compatible_solute_transporters", "is_orphan": false, "label": "compatible-solute transporters (Opu/ProU)", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Capacity to synthesize ectoine as a major compatible solute under salt stress.", "grounding": null, "id": "ectoine_biosynthesis", "is_orphan": false, "label": "ectoine biosynthesis capacity", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Accumulation of proline as a compatible solute supporting growth at higher NaCl.", "grounding": null, "id": "intracellular_proline", "is_orphan": false, "label": "intracellular proline accumulation", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Narrow capacity to remodel osmolyte pools and ion transport across ambient salinities.", "grounding": null, "id": "limited_osmoadaptive_flexibility", "is_orphan": false, "label": "limited osmoadaptive flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting NaCl range.", "grounding": "METPO:1000335", "id": "nacl_delta", "is_orphan": false, "label": "NaCl delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "NaCl growth-supporting breadth \u2264 ~1% w/v.", "grounding": "METPO:1000479", "id": "nacl_delta_low_trait", "is_orphan": false, "label": "NaCl delta low", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "NhaC-family Na+/H+ antiporters mediating ion homeostasis under salt stress.", "grounding": null, "id": "nhac_antiporter", "is_orphan": false, "label": "NhaC-family Na+/H+ antiporter", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3e8ff", "description": "TrkH-type K+ uptake transporter supporting intracellular potassium homeostasis under salt stress.", "grounding": null, "id": "trkh_k_uptake", "is_orphan": false, "label": "TrkH potassium uptake system", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "NaCl-delta-low stenohaline breadth"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -817,7 +806,7 @@
- Record as of 2026-08-06 01:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/oxygen_preference.html b/pages/traits/environment/oxygen_preference.html
index 94b08624..81ef10f7 100644
--- a/pages/traits/environment/oxygen_preference.html
+++ b/pages/traits/environment/oxygen_preference.html
@@ -195,7 +195,7 @@
Higher superoxide dismutase activity is associated with higher oxygen tolerance.
@@ -565,6 +565,12 @@
Curation history
Re-grounded 1 causal edge(s) off microbe-domain METPO predicates onto their causal-graph counterparts (1 to degrades), issue 301 part 2. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Each replacement is a 1:1 mirror of its source predicate that changes only the domain, so the claim each edge makes is unchanged and directions are unchanged. The replacements are proposed in proposals/metpo_traitmech_v9 and are placeholder ids until METPO mints them.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node oxygen_tolerance into oxygen_preference_trait and repointed its edges. Issue 352. A SIXTH restatement (#360). METPO:1000601's own definition is 'an organism's oxygen requirements OR TOLERANCE for growth', so 'capacity of a cell to survive exposure to molecular oxygen' is part of what the anchor already says. I had grounded it METPO:1000609 (aerotolerant), which METPO defines as 'does NOT USE O2 for growth but tolerates its presence' -- the aerotolerant-anaerobe phenotype, false of the obligate aerobes this node also covers -- and which is itself sub METPO:1000601, making it a sixth child phenotype in a graph that wires the other four in with `is a` and left this one unlinked. aerotolerant.yaml, the record FOR 1000609, has no such node at all: it models the same biology as detoxification processes. Merging attaches the ROS-defence island to the trait, which unlike a retype is a real connectivity gain.
+
+
@@ -922,7 +928,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking ambient molecular-oxygen availability to the four child oxygen-preference phenotypes (aerobic, anaerobic, microaerophilic, facultative) that classify how organisms use or tolerate O2.", "edges": [{"description": "Ambient molecular-oxygen concentration is the quantitative axis defining oxygen-preference phenotypes.", "evidence": [{"notes": "Supports molecular oxygen utilization as the classification axis for oxygen-preference phenotypes.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "various capacities in their utilization of molecular oxygen"}], "id": "edge-1", "is_orphan": false, "predicate": "defines", "predicate_id": "METPO:2007500", "source": "ambient_oxygen", "target": "oxygen_preference_trait"}, {"description": "Aerobic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports aerobic as an oxygen-use phenotype within oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic ... respiration capacities"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "aerobic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Anaerobic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports anaerobic as a distinct oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic, microaerobic, and anaerobic reductases"}], "id": "edge-3", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "anaerobic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Microaerophilic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports microaerophilic as a low-O2 setting on the oxygen-preference axis.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerophilic, microaerophilic, or anaerobic"}], "id": "edge-4", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "microaerophilic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Facultative oxygen preference is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports facultative organisms as a mixed-O2 setting on the oxygen-preference axis, switching between aerobic and anaerobic metabolism.", "reference": "DOI:10.1111/cmi.13338", "snippet": "cope with changing oxygen levels"}], "id": "edge-5", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "facultative_phenotype", "target": "oxygen_preference_trait"}, {"description": "Obligate aerobic growth depends on molecular oxygen as terminal electron acceptor.", "evidence": [{"notes": "Obligate aerobes use only oxygen as the terminal electron acceptor, defining aerobic oxygen-preference.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "id": "edge-6", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "oxygen_terminal_electron_acceptor", "target": "aerobic_phenotype"}, {"description": "Molecular oxygen functions as the terminal electron acceptor in aerobic respiration.", "evidence": [{"notes": "Oxygen is used as the terminal electron acceptor of the aerobic respiratory chain.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "id": "edge-7", "is_orphan": false, "predicate": "serves as", "predicate_id": null, "source": "molecular_oxygen", "target": "oxygen_terminal_electron_acceptor"}, {"description": "O2 or H2O2 stress upregulates detoxifying-enzyme genes.", "evidence": [{"notes": "Expression of genes encoding detoxifying enzymes was upregulated in response to O2 or H2O2 stress.", "reference": "DOI:10.1128/aem.00606-23"}], "id": "edge-8", "is_orphan": false, "predicate": "upregulates", "predicate_id": null, "source": "reactive_oxygen_species_stress", "target": "detoxifying_enzyme_expression"}, {"description": "A larger detoxifying-enzyme repertoire increases survival under oxygen exposure.", "evidence": [{"notes": "Cells with more detoxifying genes survived longer than those with few scavenging enzymes.", "reference": "DOI:10.1128/aem.00606-23"}], "id": "edge-9", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "detoxifying_enzyme_expression", "target": "oxygen_tolerance"}, {"description": "Catalase rapidly degrades hydrogen peroxide, a reactive oxygen species.", "evidence": [{"notes": "Catalase is the most prominent enzyme for H2O2 degradation at higher concentrations.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "id": "edge-10", "is_orphan": false, "predicate": "degrades", "predicate_id": "METPO:2007809", "source": "catalase", "target": "hydrogen_peroxide"}, {"description": "Higher superoxide dismutase activity is associated with higher oxygen tolerance.", "evidence": [{"notes": "Higher Sod activity corresponded to higher oxygen tolerance.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "id": "edge-11", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "superoxide_dismutase", "target": "oxygen_tolerance"}], "evidence_rows": [{"description": "Ambient molecular-oxygen concentration is the quantitative axis defining oxygen-preference phenotypes.", "edge_id": "edge-1", "evidence": [{"notes": "Supports molecular oxygen utilization as the classification axis for oxygen-preference phenotypes.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "various capacities in their utilization of molecular oxygen"}], "predicate": "defines", "predicate_id": "METPO:2007500", "source": "ambient molecular oxygen", "target": "oxygen preference"}, {"description": "Aerobic is a child oxygen-preference phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports aerobic as an oxygen-use phenotype within oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic ... respiration capacities"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "aerobic", "target": "oxygen preference"}, {"description": "Anaerobic is a child oxygen-preference phenotype.", "edge_id": "edge-3", "evidence": [{"notes": "Supports anaerobic as a distinct oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic, microaerobic, and anaerobic reductases"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "anaerobic", "target": "oxygen preference"}, {"description": "Microaerophilic is a child oxygen-preference phenotype.", "edge_id": "edge-4", "evidence": [{"notes": "Supports microaerophilic as a low-O2 setting on the oxygen-preference axis.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerophilic, microaerophilic, or anaerobic"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "microaerophilic", "target": "oxygen preference"}, {"description": "Facultative oxygen preference is a child oxygen-preference phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Supports facultative organisms as a mixed-O2 setting on the oxygen-preference axis, switching between aerobic and anaerobic metabolism.", "reference": "DOI:10.1111/cmi.13338", "snippet": "cope with changing oxygen levels"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "facultative oxygen preference", "target": "oxygen preference"}, {"description": "Obligate aerobic growth depends on molecular oxygen as terminal electron acceptor.", "edge_id": "edge-6", "evidence": [{"notes": "Obligate aerobes use only oxygen as the terminal electron acceptor, defining aerobic oxygen-preference.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "O2 as terminal electron acceptor", "target": "aerobic"}, {"description": "Molecular oxygen functions as the terminal electron acceptor in aerobic respiration.", "edge_id": "edge-7", "evidence": [{"notes": "Oxygen is used as the terminal electron acceptor of the aerobic respiratory chain.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "predicate": "serves as", "predicate_id": null, "source": "molecular oxygen", "target": "O2 as terminal electron acceptor"}, {"description": "O2 or H2O2 stress upregulates detoxifying-enzyme genes.", "edge_id": "edge-8", "evidence": [{"notes": "Expression of genes encoding detoxifying enzymes was upregulated in response to O2 or H2O2 stress.", "reference": "DOI:10.1128/aem.00606-23"}], "predicate": "upregulates", "predicate_id": null, "source": "oxygen / reactive oxygen species stress", "target": "detoxifying-enzyme gene expression"}, {"description": "A larger detoxifying-enzyme repertoire increases survival under oxygen exposure.", "edge_id": "edge-9", "evidence": [{"notes": "Cells with more detoxifying genes survived longer than those with few scavenging enzymes.", "reference": "DOI:10.1128/aem.00606-23"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "detoxifying-enzyme gene expression", "target": "oxygen tolerance"}, {"description": "Catalase rapidly degrades hydrogen peroxide, a reactive oxygen species.", "edge_id": "edge-10", "evidence": [{"notes": "Catalase is the most prominent enzyme for H2O2 degradation at higher concentrations.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "predicate": "degrades", "predicate_id": "METPO:2007809", "source": "catalase", "target": "hydrogen peroxide"}, {"description": "Higher superoxide dismutase activity is associated with higher oxygen tolerance.", "edge_id": "edge-11", "evidence": [{"notes": "Higher Sod activity corresponded to higher oxygen tolerance.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "superoxide dismutase", "target": "oxygen tolerance"}], "graph_id": "oxygen_preference_o2_availability_axis", "issues": [], "nodes": [{"color": "#dbeafe", "description": "Growth in the presence of molecular oxygen using O2 as terminal electron acceptor.", "grounding": "METPO:1000602", "id": "aerobic_phenotype", "is_orphan": false, "label": "aerobic", "node_type": "TRAIT", "xrefs": []}, {"color": "#dcfce7", "description": "Ambient O2 concentration imposed on the cell.", "grounding": null, "id": "ambient_oxygen", "is_orphan": false, "label": "ambient molecular oxygen", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#dbeafe", "description": "Growth in the absence of molecular oxygen.", "grounding": "METPO:1000603", "id": "anaerobic_phenotype", "is_orphan": false, "label": "anaerobic", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "Enzyme that degrades hydrogen peroxide to water and oxygen.", "grounding": "GO:0004096", "id": "catalase", "is_orphan": false, "label": "catalase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Upregulation of genes encoding oxidative-stress detoxifying enzymes.", "grounding": null, "id": "detoxifying_enzyme_expression", "is_orphan": false, "label": "detoxifying-enzyme gene expression", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Growth across a range of oxygen availabilities, switching between aerobic and anaerobic metabolism.", "grounding": "METPO:1000612", "id": "facultative_phenotype", "is_orphan": false, "label": "facultative oxygen preference", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "Reactive oxygen species produced during aerobic metabolism.", "grounding": "CHEBI:16240", "id": "hydrogen_peroxide", "is_orphan": false, "label": "hydrogen peroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#dbeafe", "description": "Growth at low molecular-oxygen concentrations.", "grounding": "METPO:1000604", "id": "microaerophilic_phenotype", "is_orphan": false, "label": "microaerophilic", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "O2 used as a terminal electron acceptor in aerobic respiration.", "grounding": "CHEBI:15379", "id": "molecular_oxygen", "is_orphan": false, "label": "molecular oxygen", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#dbeafe", "description": "Classification of an organism\u0027s oxygen requirements or tolerance for growth.", "grounding": "METPO:1000601", "id": "oxygen_preference_trait", "is_orphan": false, "label": "oxygen preference", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Use of molecular oxygen as the terminal electron acceptor of the respiratory chain.", "grounding": null, "id": "oxygen_terminal_electron_acceptor", "is_orphan": false, "label": "O2 as terminal electron acceptor", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity of a cell to survive exposure to molecular oxygen.", "grounding": null, "id": "oxygen_tolerance", "is_orphan": false, "label": "oxygen tolerance", "node_type": "CAPACITY", "xrefs": []}, {"color": "#dcfce7", "description": "Exposure to O2 and reactive oxygen species such as hydrogen peroxide.", "grounding": null, "id": "reactive_oxygen_species_stress", "is_orphan": false, "label": "oxygen / reactive oxygen species stress", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3e8ff", "description": "Enzyme that dismutates superoxide; key oxidative-stress defense.", "grounding": "GO:0004784", "id": "superoxide_dismutase", "is_orphan": false, "label": "superoxide dismutase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "Oxygen-preference O2-availability axis"}];
+ var graphs = [{"description": "DOI-backed graph linking ambient molecular-oxygen availability to the four child oxygen-preference phenotypes (aerobic, anaerobic, microaerophilic, facultative) that classify how organisms use or tolerate O2.", "edges": [{"description": "Ambient molecular-oxygen concentration is the quantitative axis defining oxygen-preference phenotypes.", "evidence": [{"notes": "Supports molecular oxygen utilization as the classification axis for oxygen-preference phenotypes.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "various capacities in their utilization of molecular oxygen"}], "id": "edge-1", "is_orphan": false, "predicate": "defines", "predicate_id": "METPO:2007500", "source": "ambient_oxygen", "target": "oxygen_preference_trait"}, {"description": "Aerobic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports aerobic as an oxygen-use phenotype within oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic ... respiration capacities"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "aerobic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Anaerobic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports anaerobic as a distinct oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic, microaerobic, and anaerobic reductases"}], "id": "edge-3", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "anaerobic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Microaerophilic is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports microaerophilic as a low-O2 setting on the oxygen-preference axis.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerophilic, microaerophilic, or anaerobic"}], "id": "edge-4", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "microaerophilic_phenotype", "target": "oxygen_preference_trait"}, {"description": "Facultative oxygen preference is a child oxygen-preference phenotype.", "evidence": [{"notes": "Supports facultative organisms as a mixed-O2 setting on the oxygen-preference axis, switching between aerobic and anaerobic metabolism.", "reference": "DOI:10.1111/cmi.13338", "snippet": "cope with changing oxygen levels"}], "id": "edge-5", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "facultative_phenotype", "target": "oxygen_preference_trait"}, {"description": "Obligate aerobic growth depends on molecular oxygen as terminal electron acceptor.", "evidence": [{"notes": "Obligate aerobes use only oxygen as the terminal electron acceptor, defining aerobic oxygen-preference.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "id": "edge-6", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "oxygen_terminal_electron_acceptor", "target": "aerobic_phenotype"}, {"description": "Molecular oxygen functions as the terminal electron acceptor in aerobic respiration.", "evidence": [{"notes": "Oxygen is used as the terminal electron acceptor of the aerobic respiratory chain.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "id": "edge-7", "is_orphan": false, "predicate": "serves as", "predicate_id": null, "source": "molecular_oxygen", "target": "oxygen_terminal_electron_acceptor"}, {"description": "O2 or H2O2 stress upregulates detoxifying-enzyme genes.", "evidence": [{"notes": "Expression of genes encoding detoxifying enzymes was upregulated in response to O2 or H2O2 stress.", "reference": "DOI:10.1128/aem.00606-23"}], "id": "edge-8", "is_orphan": false, "predicate": "upregulates", "predicate_id": null, "source": "reactive_oxygen_species_stress", "target": "detoxifying_enzyme_expression"}, {"description": "A larger detoxifying-enzyme repertoire increases survival under oxygen exposure.", "evidence": [{"notes": "Cells with more detoxifying genes survived longer than those with few scavenging enzymes.", "reference": "DOI:10.1128/aem.00606-23"}], "id": "edge-9", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "detoxifying_enzyme_expression", "target": "oxygen_preference_trait"}, {"description": "Catalase rapidly degrades hydrogen peroxide, a reactive oxygen species.", "evidence": [{"notes": "Catalase is the most prominent enzyme for H2O2 degradation at higher concentrations.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "id": "edge-10", "is_orphan": false, "predicate": "degrades", "predicate_id": "METPO:2007809", "source": "catalase", "target": "hydrogen_peroxide"}, {"description": "Higher superoxide dismutase activity is associated with higher oxygen tolerance.", "evidence": [{"notes": "Higher Sod activity corresponded to higher oxygen tolerance.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "id": "edge-11", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "superoxide_dismutase", "target": "oxygen_preference_trait"}], "evidence_rows": [{"description": "Ambient molecular-oxygen concentration is the quantitative axis defining oxygen-preference phenotypes.", "edge_id": "edge-1", "evidence": [{"notes": "Supports molecular oxygen utilization as the classification axis for oxygen-preference phenotypes.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "various capacities in their utilization of molecular oxygen"}], "predicate": "defines", "predicate_id": "METPO:2007500", "source": "ambient molecular oxygen", "target": "oxygen preference"}, {"description": "Aerobic is a child oxygen-preference phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports aerobic as an oxygen-use phenotype within oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic ... respiration capacities"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "aerobic", "target": "oxygen preference"}, {"description": "Anaerobic is a child oxygen-preference phenotype.", "edge_id": "edge-3", "evidence": [{"notes": "Supports anaerobic as a distinct oxygen-preference classification.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerobic, microaerobic, and anaerobic reductases"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "anaerobic", "target": "oxygen preference"}, {"description": "Microaerophilic is a child oxygen-preference phenotype.", "edge_id": "edge-4", "evidence": [{"notes": "Supports microaerophilic as a low-O2 setting on the oxygen-preference axis.", "reference": "DOI:10.3389/fmicb.2014.00674", "snippet": "aerophilic, microaerophilic, or anaerobic"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "microaerophilic", "target": "oxygen preference"}, {"description": "Facultative oxygen preference is a child oxygen-preference phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Supports facultative organisms as a mixed-O2 setting on the oxygen-preference axis, switching between aerobic and anaerobic metabolism.", "reference": "DOI:10.1111/cmi.13338", "snippet": "cope with changing oxygen levels"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "facultative oxygen preference", "target": "oxygen preference"}, {"description": "Obligate aerobic growth depends on molecular oxygen as terminal electron acceptor.", "edge_id": "edge-6", "evidence": [{"notes": "Obligate aerobes use only oxygen as the terminal electron acceptor, defining aerobic oxygen-preference.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "O2 as terminal electron acceptor", "target": "aerobic"}, {"description": "Molecular oxygen functions as the terminal electron acceptor in aerobic respiration.", "edge_id": "edge-7", "evidence": [{"notes": "Oxygen is used as the terminal electron acceptor of the aerobic respiratory chain.", "reference": "DOI:10.1371/journal.ppat.1012084"}], "predicate": "serves as", "predicate_id": null, "source": "molecular oxygen", "target": "O2 as terminal electron acceptor"}, {"description": "O2 or H2O2 stress upregulates detoxifying-enzyme genes.", "edge_id": "edge-8", "evidence": [{"notes": "Expression of genes encoding detoxifying enzymes was upregulated in response to O2 or H2O2 stress.", "reference": "DOI:10.1128/aem.00606-23"}], "predicate": "upregulates", "predicate_id": null, "source": "oxygen / reactive oxygen species stress", "target": "detoxifying-enzyme gene expression"}, {"description": "A larger detoxifying-enzyme repertoire increases survival under oxygen exposure.", "edge_id": "edge-9", "evidence": [{"notes": "Cells with more detoxifying genes survived longer than those with few scavenging enzymes.", "reference": "DOI:10.1128/aem.00606-23"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "detoxifying-enzyme gene expression", "target": "oxygen preference"}, {"description": "Catalase rapidly degrades hydrogen peroxide, a reactive oxygen species.", "edge_id": "edge-10", "evidence": [{"notes": "Catalase is the most prominent enzyme for H2O2 degradation at higher concentrations.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "predicate": "degrades", "predicate_id": "METPO:2007809", "source": "catalase", "target": "hydrogen peroxide"}, {"description": "Higher superoxide dismutase activity is associated with higher oxygen tolerance.", "edge_id": "edge-11", "evidence": [{"notes": "Higher Sod activity corresponded to higher oxygen tolerance.", "reference": "DOI:10.1038/s43705-023-00251-7"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "superoxide dismutase", "target": "oxygen preference"}], "graph_id": "oxygen_preference_o2_availability_axis", "issues": [], "nodes": [{"color": "#dbeafe", "description": "Growth in the presence of molecular oxygen using O2 as terminal electron acceptor.", "grounding": "METPO:1000602", "id": "aerobic_phenotype", "is_orphan": false, "label": "aerobic", "node_type": "TRAIT", "xrefs": []}, {"color": "#dcfce7", "description": "Ambient O2 concentration imposed on the cell.", "grounding": null, "id": "ambient_oxygen", "is_orphan": false, "label": "ambient molecular oxygen", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#dbeafe", "description": "Growth in the absence of molecular oxygen.", "grounding": "METPO:1000603", "id": "anaerobic_phenotype", "is_orphan": false, "label": "anaerobic", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "Enzyme that degrades hydrogen peroxide to water and oxygen.", "grounding": "GO:0004096", "id": "catalase", "is_orphan": false, "label": "catalase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Upregulation of genes encoding oxidative-stress detoxifying enzymes.", "grounding": null, "id": "detoxifying_enzyme_expression", "is_orphan": false, "label": "detoxifying-enzyme gene expression", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Growth across a range of oxygen availabilities, switching between aerobic and anaerobic metabolism.", "grounding": "METPO:1000612", "id": "facultative_phenotype", "is_orphan": false, "label": "facultative oxygen preference", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "Reactive oxygen species produced during aerobic metabolism.", "grounding": "CHEBI:16240", "id": "hydrogen_peroxide", "is_orphan": false, "label": "hydrogen peroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#dbeafe", "description": "Growth at low molecular-oxygen concentrations.", "grounding": "METPO:1000604", "id": "microaerophilic_phenotype", "is_orphan": false, "label": "microaerophilic", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "O2 used as a terminal electron acceptor in aerobic respiration.", "grounding": "CHEBI:15379", "id": "molecular_oxygen", "is_orphan": false, "label": "molecular oxygen", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#dbeafe", "description": "Classification of an organism\u0027s oxygen requirements or tolerance for growth.", "grounding": "METPO:1000601", "id": "oxygen_preference_trait", "is_orphan": false, "label": "oxygen preference", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Use of molecular oxygen as the terminal electron acceptor of the respiratory chain.", "grounding": null, "id": "oxygen_terminal_electron_acceptor", "is_orphan": false, "label": "O2 as terminal electron acceptor", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#dcfce7", "description": "Exposure to O2 and reactive oxygen species such as hydrogen peroxide.", "grounding": null, "id": "reactive_oxygen_species_stress", "is_orphan": false, "label": "oxygen / reactive oxygen species stress", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3e8ff", "description": "Enzyme that dismutates superoxide; key oxidative-stress defense.", "grounding": "GO:0004784", "id": "superoxide_dismutase", "is_orphan": false, "label": "superoxide dismutase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "Oxygen-preference O2-availability axis"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -945,7 +951,7 @@
- Record as of 2026-08-06 02:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/ph_delta.html b/pages/traits/environment/ph_delta.html
index 0a246967..458a8a18 100644
--- a/pages/traits/environment/ph_delta.html
+++ b/pages/traits/environment/ph_delta.html
@@ -178,7 +178,7 @@
Amino-acid decarboxylase acid-resistance systems increase low-pH tolerance.
@@ -478,6 +478,12 @@
Curation history
Migrated 1 causal edge(s) off enables/RO:0002327 with a TRAIT object (1 to confers), issue 302. RO:0002327 has range 'biological process or activity', which a trait (a disposition) cannot satisfy, so the previous form entailed trait is-a BiologicalProcessOrActivity. The replacements are proposed in proposals/metpo_traitmech_v8 and are placeholder ids until METPO mints them.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node low_ph_tolerance into ph_delta_trait and repointed its edges. Issue 352. An EIGHTH restatement (#360). I had grounded it METPO:1003008 (acidotolerant) and claimed 'no collision' with the record's METPO:1000232 (pH delta). No collision, but the wrong SCOPE: 1003008 is defined as tolerating acid 'WHILE MAINTAINING OPTIMAL GROWTH NEAR NEUTRAL pH', which excludes the acidophiles this generic pH-delta record covers. A grounding narrower than the node it labels is a false claim about every organism in the excluded part. Also a pure sink. Merging repoints amino_acid_decarboxylase_acid_resistance onto ph_delta_trait, which reads correctly: an acid-resistance system widens the growth-supporting pH range, and a pH delta IS that range.
+
+
@@ -835,7 +841,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking the flexibility of pH-homeostasis machinery to the breadth of the pH growth range (delta = max \u2212 min).", "edges": [{"description": "pH-homeostasis flexibility enables broad pH tolerance.", "evidence": [{"notes": "Supports the breadth of pH homeostasis as the basis of broad pH tolerance.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ph_homeostasis_flexibility", "target": "tolerance_breadth"}, {"description": "The breadth between minimum and maximum growth-supporting external pH manifests the pH-delta phenotype.", "evidence": [{"notes": "Supports the bounded proton motive force as the determinant of the pH tolerance breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-2", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "tolerance_breadth", "target": "ph_delta_trait"}, {"description": "External pH homeostasis enables a broader external pH growth breadth.", "evidence": [{"notes": "Na+/H+ and K+/H+ antiporters and proton-pumping systems prevent internal pH from becoming too low, underpinning growth across pH (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-3", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "ph_homeostasis", "target": "ph_delta_trait"}, {"description": "Proton motive force generation supports external pH homeostasis.", "evidence": [{"notes": "PMF-linked systems regulate internal pH; decarboxylation can store free energy as PMF (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-4", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "proton_motive_force_generation", "target": "ph_homeostasis"}, {"description": "F0F1-ATPase activity supports external pH homeostasis.", "evidence": [{"notes": "F0F1-ATPase uses 3-5 protons per ATP and is among systems that prevent internal pH from becoming too low (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-5", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "f0f1_atpase_activity", "target": "ph_homeostasis"}, {"description": "Monovalent cation:H+ antiporter activity supports pH homeostasis under alkaline conditions.", "evidence": [{"notes": "Monovalent antiporters exchange Na+/K+ to facilitate proton entry for alkali tolerance (generic transporter class).", "reference": "DOI:10.1128/AEM.00569-24"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "cation_proton_antiporter_activity", "target": "ph_homeostasis"}, {"description": "Saturated membrane fatty acid remodeling decreases membrane proton permeability.", "evidence": [{"notes": "Membranes enriched in saturated fatty acids reduce proton permeability, minimizing proton influx in acidic environments (generalizable low-pH mechanism).", "reference": "DOI:10.3389/fmicb.2022.1034164"}], "id": "edge-7", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane_lipid_remodeling", "target": "proton_permeability"}, {"description": "Amino-acid decarboxylase acid-resistance systems increase low-pH tolerance.", "evidence": [{"notes": "Amino-acid decarboxylase systems consume protons and export corresponding amines as a key acid-resistance mechanism (authoritative review).", "reference": "DOI:10.3390/microorganisms12091774"}], "id": "edge-8", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "amino_acid_decarboxylase_acid_resistance", "target": "low_ph_tolerance"}, {"description": "Oxidative phosphorylation upregulation supports proton export and resistance to cytoplasmic acidification.", "evidence": [{"notes": "Increased oxidative phosphorylation generates PMF and a higher proton export rate, causally helping cells resist decreases in cytoplasmic pH.", "reference": "DOI:10.3390/microorganisms12081565"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "oxidative_phosphorylation", "target": "ph_homeostasis"}], "evidence_rows": [{"description": "pH-homeostasis flexibility enables broad pH tolerance.", "edge_id": "edge-1", "evidence": [{"notes": "Supports the breadth of pH homeostasis as the basis of broad pH tolerance.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "pH-homeostasis flexibility", "target": "pH tolerance breadth"}, {"description": "The breadth between minimum and maximum growth-supporting external pH manifests the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the bounded proton motive force as the determinant of the pH tolerance breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "pH tolerance breadth", "target": "pH delta"}, {"description": "External pH homeostasis enables a broader external pH growth breadth.", "edge_id": "edge-3", "evidence": [{"notes": "Na+/H+ and K+/H+ antiporters and proton-pumping systems prevent internal pH from becoming too low, underpinning growth across pH (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "external pH homeostasis", "target": "pH delta"}, {"description": "Proton motive force generation supports external pH homeostasis.", "edge_id": "edge-4", "evidence": [{"notes": "PMF-linked systems regulate internal pH; decarboxylation can store free energy as PMF (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "proton motive force generation", "target": "external pH homeostasis"}, {"description": "F0F1-ATPase activity supports external pH homeostasis.", "edge_id": "edge-5", "evidence": [{"notes": "F0F1-ATPase uses 3-5 protons per ATP and is among systems that prevent internal pH from becoming too low (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "F0F1-ATPase activity", "target": "external pH homeostasis"}, {"description": "Monovalent cation:H+ antiporter activity supports pH homeostasis under alkaline conditions.", "edge_id": "edge-6", "evidence": [{"notes": "Monovalent antiporters exchange Na+/K+ to facilitate proton entry for alkali tolerance (generic transporter class).", "reference": "DOI:10.1128/AEM.00569-24"}], "predicate": "supports", "predicate_id": null, "source": "monovalent cation:H+ antiporter activity", "target": "external pH homeostasis"}, {"description": "Saturated membrane fatty acid remodeling decreases membrane proton permeability.", "edge_id": "edge-7", "evidence": [{"notes": "Membranes enriched in saturated fatty acids reduce proton permeability, minimizing proton influx in acidic environments (generalizable low-pH mechanism).", "reference": "DOI:10.3389/fmicb.2022.1034164"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "saturated membrane fatty acid remodeling", "target": "membrane proton permeability"}, {"description": "Amino-acid decarboxylase acid-resistance systems increase low-pH tolerance.", "edge_id": "edge-8", "evidence": [{"notes": "Amino-acid decarboxylase systems consume protons and export corresponding amines as a key acid-resistance mechanism (authoritative review).", "reference": "DOI:10.3390/microorganisms12091774"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "amino-acid decarboxylase acid-resistance system", "target": "low-pH tolerance"}, {"description": "Oxidative phosphorylation upregulation supports proton export and resistance to cytoplasmic acidification.", "edge_id": "edge-9", "evidence": [{"notes": "Increased oxidative phosphorylation generates PMF and a higher proton export rate, causally helping cells resist decreases in cytoplasmic pH.", "reference": "DOI:10.3390/microorganisms12081565"}], "predicate": "supports", "predicate_id": null, "source": "oxidative phosphorylation", "target": "external pH homeostasis"}], "graph_id": "ph_delta_homeostasis_flexibility", "issues": [], "nodes": [{"color": "#e0e7ff", "description": "Decarboxylase systems that consume intracellular protons and export amines under acid stress.", "grounding": null, "id": "amino_acid_decarboxylase_acid_resistance", "is_orphan": false, "label": "amino-acid decarboxylase acid-resistance system", "node_type": "PATHWAY", "xrefs": []}, {"color": "#cffafe", "description": "Exchange of Na+/K+ for H+ to support pH homeostasis, notably under alkaline conditions.", "grounding": null, "id": "cation_proton_antiporter_activity", "is_orphan": false, "label": "monovalent cation:H+ antiporter activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#cffafe", "description": "F-type H+-transporting ATPase coupling proton flux to ATP synthesis/hydrolysis.", "grounding": null, "id": "f0f1_atpase_activity", "is_orphan": false, "label": "F0F1-ATPase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity to grow and survive under acidic external pH.", "grounding": null, "id": "low_ph_tolerance", "is_orphan": false, "label": "low-pH tolerance", "node_type": "CAPACITY", "xrefs": []}, {"color": "#ecfccb", "description": "Enrichment of saturated membrane fatty acids that reduces membrane proton permeability.", "grounding": null, "id": "membrane_lipid_remodeling", "is_orphan": false, "label": "saturated membrane fatty acid remodeling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Respiratory generation of PMF and proton export contributing to cytoplasmic pH defense.", "grounding": "GO:0006119", "id": "oxidative_phosphorylation", "is_orphan": false, "label": "oxidative phosphorylation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta_trait", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of intracellular pH within viable bounds across external pH variation.", "grounding": null, "id": "ph_homeostasis", "is_orphan": false, "label": "external pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Capacity to remodel proton extrusion, K+/H+ antiport, and envelope buffering across a wide span of external pH.", "grounding": null, "id": "ph_homeostasis_flexibility", "is_orphan": false, "label": "pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Establishment of the transmembrane electrochemical proton gradient.", "grounding": null, "id": "proton_motive_force_generation", "is_orphan": false, "label": "proton motive force generation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Passive permeability of the cell membrane to protons.", "grounding": null, "id": "proton_permeability", "is_orphan": false, "label": "membrane proton permeability", "node_type": "QUALITY", "xrefs": []}, {"color": "#ecfccb", "description": "Span between the minimum and maximum growth-supporting external pH.", "grounding": null, "id": "tolerance_breadth", "is_orphan": false, "label": "pH tolerance breadth", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}], "title": "pH-delta homeostasis flexibility"}];
+ var graphs = [{"description": "DOI-backed graph linking the flexibility of pH-homeostasis machinery to the breadth of the pH growth range (delta = max \u2212 min).", "edges": [{"description": "pH-homeostasis flexibility enables broad pH tolerance.", "evidence": [{"notes": "Supports the breadth of pH homeostasis as the basis of broad pH tolerance.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ph_homeostasis_flexibility", "target": "tolerance_breadth"}, {"description": "The breadth between minimum and maximum growth-supporting external pH manifests the pH-delta phenotype.", "evidence": [{"notes": "Supports the bounded proton motive force as the determinant of the pH tolerance breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-2", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "tolerance_breadth", "target": "ph_delta_trait"}, {"description": "External pH homeostasis enables a broader external pH growth breadth.", "evidence": [{"notes": "Na+/H+ and K+/H+ antiporters and proton-pumping systems prevent internal pH from becoming too low, underpinning growth across pH (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-3", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "ph_homeostasis", "target": "ph_delta_trait"}, {"description": "Proton motive force generation supports external pH homeostasis.", "evidence": [{"notes": "PMF-linked systems regulate internal pH; decarboxylation can store free energy as PMF (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-4", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "proton_motive_force_generation", "target": "ph_homeostasis"}, {"description": "F0F1-ATPase activity supports external pH homeostasis.", "evidence": [{"notes": "F0F1-ATPase uses 3-5 protons per ATP and is among systems that prevent internal pH from becoming too low (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-5", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "f0f1_atpase_activity", "target": "ph_homeostasis"}, {"description": "Monovalent cation:H+ antiporter activity supports pH homeostasis under alkaline conditions.", "evidence": [{"notes": "Monovalent antiporters exchange Na+/K+ to facilitate proton entry for alkali tolerance (generic transporter class).", "reference": "DOI:10.1128/AEM.00569-24"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "cation_proton_antiporter_activity", "target": "ph_homeostasis"}, {"description": "Saturated membrane fatty acid remodeling decreases membrane proton permeability.", "evidence": [{"notes": "Membranes enriched in saturated fatty acids reduce proton permeability, minimizing proton influx in acidic environments (generalizable low-pH mechanism).", "reference": "DOI:10.3389/fmicb.2022.1034164"}], "id": "edge-7", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane_lipid_remodeling", "target": "proton_permeability"}, {"description": "Amino-acid decarboxylase acid-resistance systems increase low-pH tolerance.", "evidence": [{"notes": "Amino-acid decarboxylase systems consume protons and export corresponding amines as a key acid-resistance mechanism (authoritative review).", "reference": "DOI:10.3390/microorganisms12091774"}], "id": "edge-8", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "amino_acid_decarboxylase_acid_resistance", "target": "ph_delta_trait"}, {"description": "Oxidative phosphorylation upregulation supports proton export and resistance to cytoplasmic acidification.", "evidence": [{"notes": "Increased oxidative phosphorylation generates PMF and a higher proton export rate, causally helping cells resist decreases in cytoplasmic pH.", "reference": "DOI:10.3390/microorganisms12081565"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "oxidative_phosphorylation", "target": "ph_homeostasis"}], "evidence_rows": [{"description": "pH-homeostasis flexibility enables broad pH tolerance.", "edge_id": "edge-1", "evidence": [{"notes": "Supports the breadth of pH homeostasis as the basis of broad pH tolerance.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "pH-homeostasis flexibility", "target": "pH tolerance breadth"}, {"description": "The breadth between minimum and maximum growth-supporting external pH manifests the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the bounded proton motive force as the determinant of the pH tolerance breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "pH tolerance breadth", "target": "pH delta"}, {"description": "External pH homeostasis enables a broader external pH growth breadth.", "edge_id": "edge-3", "evidence": [{"notes": "Na+/H+ and K+/H+ antiporters and proton-pumping systems prevent internal pH from becoming too low, underpinning growth across pH (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "external pH homeostasis", "target": "pH delta"}, {"description": "Proton motive force generation supports external pH homeostasis.", "edge_id": "edge-4", "evidence": [{"notes": "PMF-linked systems regulate internal pH; decarboxylation can store free energy as PMF (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "proton motive force generation", "target": "external pH homeostasis"}, {"description": "F0F1-ATPase activity supports external pH homeostasis.", "edge_id": "edge-5", "evidence": [{"notes": "F0F1-ATPase uses 3-5 protons per ATP and is among systems that prevent internal pH from becoming too low (general bacteria, review).", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "F0F1-ATPase activity", "target": "external pH homeostasis"}, {"description": "Monovalent cation:H+ antiporter activity supports pH homeostasis under alkaline conditions.", "edge_id": "edge-6", "evidence": [{"notes": "Monovalent antiporters exchange Na+/K+ to facilitate proton entry for alkali tolerance (generic transporter class).", "reference": "DOI:10.1128/AEM.00569-24"}], "predicate": "supports", "predicate_id": null, "source": "monovalent cation:H+ antiporter activity", "target": "external pH homeostasis"}, {"description": "Saturated membrane fatty acid remodeling decreases membrane proton permeability.", "edge_id": "edge-7", "evidence": [{"notes": "Membranes enriched in saturated fatty acids reduce proton permeability, minimizing proton influx in acidic environments (generalizable low-pH mechanism).", "reference": "DOI:10.3389/fmicb.2022.1034164"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "saturated membrane fatty acid remodeling", "target": "membrane proton permeability"}, {"description": "Amino-acid decarboxylase acid-resistance systems increase low-pH tolerance.", "edge_id": "edge-8", "evidence": [{"notes": "Amino-acid decarboxylase systems consume protons and export corresponding amines as a key acid-resistance mechanism (authoritative review).", "reference": "DOI:10.3390/microorganisms12091774"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "amino-acid decarboxylase acid-resistance system", "target": "pH delta"}, {"description": "Oxidative phosphorylation upregulation supports proton export and resistance to cytoplasmic acidification.", "edge_id": "edge-9", "evidence": [{"notes": "Increased oxidative phosphorylation generates PMF and a higher proton export rate, causally helping cells resist decreases in cytoplasmic pH.", "reference": "DOI:10.3390/microorganisms12081565"}], "predicate": "supports", "predicate_id": null, "source": "oxidative phosphorylation", "target": "external pH homeostasis"}], "graph_id": "ph_delta_homeostasis_flexibility", "issues": [], "nodes": [{"color": "#e0e7ff", "description": "Decarboxylase systems that consume intracellular protons and export amines under acid stress.", "grounding": null, "id": "amino_acid_decarboxylase_acid_resistance", "is_orphan": false, "label": "amino-acid decarboxylase acid-resistance system", "node_type": "PATHWAY", "xrefs": []}, {"color": "#cffafe", "description": "Exchange of Na+/K+ for H+ to support pH homeostasis, notably under alkaline conditions.", "grounding": null, "id": "cation_proton_antiporter_activity", "is_orphan": false, "label": "monovalent cation:H+ antiporter activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#cffafe", "description": "F-type H+-transporting ATPase coupling proton flux to ATP synthesis/hydrolysis.", "grounding": null, "id": "f0f1_atpase_activity", "is_orphan": false, "label": "F0F1-ATPase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Enrichment of saturated membrane fatty acids that reduces membrane proton permeability.", "grounding": null, "id": "membrane_lipid_remodeling", "is_orphan": false, "label": "saturated membrane fatty acid remodeling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Respiratory generation of PMF and proton export contributing to cytoplasmic pH defense.", "grounding": "GO:0006119", "id": "oxidative_phosphorylation", "is_orphan": false, "label": "oxidative phosphorylation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta_trait", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of intracellular pH within viable bounds across external pH variation.", "grounding": null, "id": "ph_homeostasis", "is_orphan": false, "label": "external pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Capacity to remodel proton extrusion, K+/H+ antiport, and envelope buffering across a wide span of external pH.", "grounding": null, "id": "ph_homeostasis_flexibility", "is_orphan": false, "label": "pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Establishment of the transmembrane electrochemical proton gradient.", "grounding": null, "id": "proton_motive_force_generation", "is_orphan": false, "label": "proton motive force generation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Passive permeability of the cell membrane to protons.", "grounding": null, "id": "proton_permeability", "is_orphan": false, "label": "membrane proton permeability", "node_type": "QUALITY", "xrefs": []}, {"color": "#ecfccb", "description": "Span between the minimum and maximum growth-supporting external pH.", "grounding": null, "id": "tolerance_breadth", "is_orphan": false, "label": "pH tolerance breadth", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}], "title": "pH-delta homeostasis flexibility"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -858,7 +864,7 @@
- Record as of 2026-08-06 00:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/ph_delta_high.html b/pages/traits/environment/ph_delta_high.html
index 023a1504..49db39da 100644
--- a/pages/traits/environment/ph_delta_high.html
+++ b/pages/traits/environment/ph_delta_high.html
@@ -501,6 +501,12 @@
Curation history
Grounded the retyped TRAIT node, issue 334 review. docs/CURATION_PLAYBOOK.md requires every TRAIT row to carry a grounding, and 462 of 482 TRAIT nodes in the corpus do, so leaving a newly retyped one ungrounded was the exception rather than the norm. It also mattered more than hygiene: an ungrounded TRAIT node still counts as a reachability anchor for audit-graphs, so it made UNREACHABLE_FROM_TRAIT fall on this graph without any edge changing -- the island is unchanged and FRAGMENTED_GRAPH still reports it. Grounding it makes the duplication legible instead of leaving two unrelated-looking anchors. growth_external_ph_5_5_9 is the same concept as this record's own ph_delta_high_trait, so it takes the same METPO:1000478; merging the two nodes is tracked in issue 352.
+
+ ·
+ REGROUND_CAUSAL_NODE · claude
+
Regrounded node growth_external_ph_5_5_9 from METPO:1000478 to METPO:1000332. Issue 352. Shared METPO:1000478 with ph_delta_high_trait, but the two say different things: this node is an ABSOLUTE external range ('~5.5-9.0'), while ph_delta_high_trait is a BREADTH ('approximately 5-9 pH units'), which is what a pH DELTA is. 1000478 belongs to the delta; this is a pH range (METPO:1000332).
+
+
@@ -858,7 +864,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking maximal pH-homeostasis flexibility to a pH growth breadth of approximately 5\u20139 pH units.", "edges": [{"description": "Maximal pH-homeostasis flexibility yields an extreme pH-delta breadth.", "evidence": [{"notes": "Supports maximal pH-homeostasis flexibility as the basis of euryphilic breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "maximal_ph_homeostasis", "target": "ph_delta_high_trait"}, {"description": "pH delta high is a quantitative bin of the pH-delta phenotype.", "evidence": [{"notes": "Supports the 5\u20139 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "ph_delta_high_trait", "target": "ph_delta"}, {"description": "Na+/H+ antiport is a core regulator of cytoplasmic pH across changing external pH.", "evidence": [{"notes": "Key regulators of bacterial pH homeostasis are Na+/H+ and K+/H+ antiporters.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-3", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "na_h_antiporters", "target": "ph_delta_high_trait"}, {"description": "Electron-transport proton pumps counteract pH stress by controlling proton flux.", "evidence": [{"notes": "Proton-pumping enzymes (electron transport components) are major homeostasis regulators.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-4", "is_orphan": false, "predicate": "helps maintain", "predicate_id": null, "source": "respiratory_proton_pumps", "target": "cytoplasmic_ph_homeostasis"}, {"description": "F0F1-ATPase participates in pH homeostasis via proton extrusion or uptake.", "evidence": [{"notes": "F0F1-ATPase is named among key regulators of bacterial pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-5", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "f0f1_atpase", "target": "ph_delta_high_trait"}, {"description": "Proton-consuming decarboxylation pathways support broad pH tolerance.", "evidence": [{"notes": "Metabolite decarboxylation pathways are key regulators of pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-6", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "metabolite_decarboxylation", "target": "ph_delta_high_trait"}, {"description": "High buffering capacity limits pH swings, enabling broader pH tolerance.", "evidence": [{"notes": "Internal pH kept ~7.0-7.5 as buffers absorb fluctuations.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-7", "is_orphan": false, "predicate": "stabilizes", "predicate_id": null, "source": "cytoplasmic_buffering_capacity", "target": "cytoplasmic_ph_homeostasis"}, {"description": "Neutralophiles maintain narrow internal pH while growing over a broad external range.", "evidence": [{"notes": "Neutralophiles grow at external pH ~5.5-9.0 while maintaining cytoplasmic pH ~7.5-7.7.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-8", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "near_neutral_cytoplasmic_ph", "target": "growth_external_ph_5_5_9"}, {"description": "A relatively constant PMF across external pH is a hallmark of broad pH tolerance.", "evidence": [{"notes": "PMF of neutralophilic bacteria kept relatively constant over pH 5 to 8.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "constant_pmf", "target": "ph_delta_high_trait"}, {"description": "Membrane/porin composition changes lower proton leak during acid stress.", "evidence": [{"notes": "Membrane lipid and porin composition changes minimize inward proton leakage during acid stress.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-10", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane_lipid_porin_changes", "target": "inward_proton_leakage"}], "evidence_rows": [{"description": "Maximal pH-homeostasis flexibility yields an extreme pH-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports maximal pH-homeostasis flexibility as the basis of euryphilic breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "maximal pH-homeostasis flexibility", "target": "pH delta high"}, {"description": "pH delta high is a quantitative bin of the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the 5\u20139 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "pH delta high", "target": "pH delta"}, {"description": "Na+/H+ antiport is a core regulator of cytoplasmic pH across changing external pH.", "edge_id": "edge-3", "evidence": [{"notes": "Key regulators of bacterial pH homeostasis are Na+/H+ and K+/H+ antiporters.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "Na+/H+ antiporters", "target": "pH delta high"}, {"description": "Electron-transport proton pumps counteract pH stress by controlling proton flux.", "edge_id": "edge-4", "evidence": [{"notes": "Proton-pumping enzymes (electron transport components) are major homeostasis regulators.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "helps maintain", "predicate_id": null, "source": "respiratory proton-pumping enzymes", "target": "cytoplasmic pH homeostasis"}, {"description": "F0F1-ATPase participates in pH homeostasis via proton extrusion or uptake.", "edge_id": "edge-5", "evidence": [{"notes": "F0F1-ATPase is named among key regulators of bacterial pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "F0F1-ATPase", "target": "pH delta high"}, {"description": "Proton-consuming decarboxylation pathways support broad pH tolerance.", "edge_id": "edge-6", "evidence": [{"notes": "Metabolite decarboxylation pathways are key regulators of pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "metabolite decarboxylation pathways", "target": "pH delta high"}, {"description": "High buffering capacity limits pH swings, enabling broader pH tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Internal pH kept ~7.0-7.5 as buffers absorb fluctuations.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "stabilizes", "predicate_id": null, "source": "cytoplasmic buffering capacity", "target": "cytoplasmic pH homeostasis"}, {"description": "Neutralophiles maintain narrow internal pH while growing over a broad external range.", "edge_id": "edge-8", "evidence": [{"notes": "Neutralophiles grow at external pH ~5.5-9.0 while maintaining cytoplasmic pH ~7.5-7.7.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "near-neutral cytoplasmic pH", "target": "growth across external pH 5.5-9.0"}, {"description": "A relatively constant PMF across external pH is a hallmark of broad pH tolerance.", "edge_id": "edge-9", "evidence": [{"notes": "PMF of neutralophilic bacteria kept relatively constant over pH 5 to 8.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "constant proton motive force", "target": "pH delta high"}, {"description": "Membrane/porin composition changes lower proton leak during acid stress.", "edge_id": "edge-10", "evidence": [{"notes": "Membrane lipid and porin composition changes minimize inward proton leakage during acid stress.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane lipid/porin composition changes", "target": "inward proton leakage"}], "graph_id": "ph_delta_high_euryphilic_breadth", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Relatively constant PMF maintained across external pH changes.", "grounding": null, "id": "constant_pmf", "is_orphan": false, "label": "constant proton motive force", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Intracellular buffering that limits pH swings in the bacterial cytoplasm.", "grounding": null, "id": "cytoplasmic_buffering_capacity", "is_orphan": false, "label": "cytoplasmic buffering capacity", "node_type": "CAPACITY", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of near-neutral internal pH despite external pH variation.", "grounding": "GO:0051453", "id": "cytoplasmic_ph_homeostasis", "is_orphan": false, "label": "cytoplasmic pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Proton-translocating ATP synthase contributing to proton extrusion/uptake in pH homeostasis.", "grounding": null, "id": "f0f1_atpase", "is_orphan": false, "label": "F0F1-ATPase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Growth supported across the neutralophile external pH range ~5.5-9.0.", "grounding": "METPO:1000478", "id": "growth_external_ph_5_5_9", "is_orphan": false, "label": "growth across external pH 5.5-9.0", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Passive inward flux of protons that acidifies the cytoplasm.", "grounding": null, "id": "inward_proton_leakage", "is_orphan": false, "label": "inward proton leakage", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Combined proton-extrusion and Na+/H+ antiport flexibility supporting growth across an extreme pH span.", "grounding": null, "id": "maximal_ph_homeostasis", "is_orphan": false, "label": "maximal pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Structural changes in membrane lipids and porins during pH stress.", "grounding": null, "id": "membrane_lipid_porin_changes", "is_orphan": false, "label": "membrane lipid/porin composition changes", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#e0e7ff", "description": "Proton-consuming decarboxylation pathways that reduce intracellular acidification.", "grounding": null, "id": "metabolite_decarboxylation", "is_orphan": false, "label": "metabolite decarboxylation pathways", "node_type": "PATHWAY", "xrefs": []}, {"color": "#f3e8ff", "description": "Sodium:proton antiporters, core regulators of cytoplasmic pH across changing external pH.", "grounding": null, "id": "na_h_antiporters", "is_orphan": false, "label": "Na+/H+ antiporters", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3f4f6", "description": "Internal pH maintained near 7.5 while external pH varies.", "grounding": null, "id": "near_neutral_cytoplasmic_ph", "is_orphan": false, "label": "near-neutral cytoplasmic pH", "node_type": "QUALITY", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "pH growth-supporting breadth approximately 5\u20139 pH units.", "grounding": "METPO:1000478", "id": "ph_delta_high_trait", "is_orphan": false, "label": "pH delta high", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "Electron-transport-chain proton pumps that control proton flux during pH stress.", "grounding": null, "id": "respiratory_proton_pumps", "is_orphan": false, "label": "respiratory proton-pumping enzymes", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "pH-delta-high euryphilic breadth"}];
+ var graphs = [{"description": "DOI-backed graph linking maximal pH-homeostasis flexibility to a pH growth breadth of approximately 5\u20139 pH units.", "edges": [{"description": "Maximal pH-homeostasis flexibility yields an extreme pH-delta breadth.", "evidence": [{"notes": "Supports maximal pH-homeostasis flexibility as the basis of euryphilic breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "maximal_ph_homeostasis", "target": "ph_delta_high_trait"}, {"description": "pH delta high is a quantitative bin of the pH-delta phenotype.", "evidence": [{"notes": "Supports the 5\u20139 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "ph_delta_high_trait", "target": "ph_delta"}, {"description": "Na+/H+ antiport is a core regulator of cytoplasmic pH across changing external pH.", "evidence": [{"notes": "Key regulators of bacterial pH homeostasis are Na+/H+ and K+/H+ antiporters.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-3", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "na_h_antiporters", "target": "ph_delta_high_trait"}, {"description": "Electron-transport proton pumps counteract pH stress by controlling proton flux.", "evidence": [{"notes": "Proton-pumping enzymes (electron transport components) are major homeostasis regulators.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-4", "is_orphan": false, "predicate": "helps maintain", "predicate_id": null, "source": "respiratory_proton_pumps", "target": "cytoplasmic_ph_homeostasis"}, {"description": "F0F1-ATPase participates in pH homeostasis via proton extrusion or uptake.", "evidence": [{"notes": "F0F1-ATPase is named among key regulators of bacterial pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-5", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "f0f1_atpase", "target": "ph_delta_high_trait"}, {"description": "Proton-consuming decarboxylation pathways support broad pH tolerance.", "evidence": [{"notes": "Metabolite decarboxylation pathways are key regulators of pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-6", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "metabolite_decarboxylation", "target": "ph_delta_high_trait"}, {"description": "High buffering capacity limits pH swings, enabling broader pH tolerance.", "evidence": [{"notes": "Internal pH kept ~7.0-7.5 as buffers absorb fluctuations.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-7", "is_orphan": false, "predicate": "stabilizes", "predicate_id": null, "source": "cytoplasmic_buffering_capacity", "target": "cytoplasmic_ph_homeostasis"}, {"description": "Neutralophiles maintain narrow internal pH while growing over a broad external range.", "evidence": [{"notes": "Neutralophiles grow at external pH ~5.5-9.0 while maintaining cytoplasmic pH ~7.5-7.7.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-8", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "near_neutral_cytoplasmic_ph", "target": "growth_external_ph_5_5_9"}, {"description": "A relatively constant PMF across external pH is a hallmark of broad pH tolerance.", "evidence": [{"notes": "PMF of neutralophilic bacteria kept relatively constant over pH 5 to 8.", "reference": "DOI:10.1093/femsre/fuad033"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "constant_pmf", "target": "ph_delta_high_trait"}, {"description": "Membrane/porin composition changes lower proton leak during acid stress.", "evidence": [{"notes": "Membrane lipid and porin composition changes minimize inward proton leakage during acid stress.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-10", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane_lipid_porin_changes", "target": "inward_proton_leakage"}], "evidence_rows": [{"description": "Maximal pH-homeostasis flexibility yields an extreme pH-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports maximal pH-homeostasis flexibility as the basis of euryphilic breadth.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "maximal pH-homeostasis flexibility", "target": "pH delta high"}, {"description": "pH delta high is a quantitative bin of the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the 5\u20139 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "pH delta high", "target": "pH delta"}, {"description": "Na+/H+ antiport is a core regulator of cytoplasmic pH across changing external pH.", "edge_id": "edge-3", "evidence": [{"notes": "Key regulators of bacterial pH homeostasis are Na+/H+ and K+/H+ antiporters.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "Na+/H+ antiporters", "target": "pH delta high"}, {"description": "Electron-transport proton pumps counteract pH stress by controlling proton flux.", "edge_id": "edge-4", "evidence": [{"notes": "Proton-pumping enzymes (electron transport components) are major homeostasis regulators.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "helps maintain", "predicate_id": null, "source": "respiratory proton-pumping enzymes", "target": "cytoplasmic pH homeostasis"}, {"description": "F0F1-ATPase participates in pH homeostasis via proton extrusion or uptake.", "edge_id": "edge-5", "evidence": [{"notes": "F0F1-ATPase is named among key regulators of bacterial pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "F0F1-ATPase", "target": "pH delta high"}, {"description": "Proton-consuming decarboxylation pathways support broad pH tolerance.", "edge_id": "edge-6", "evidence": [{"notes": "Metabolite decarboxylation pathways are key regulators of pH homeostasis.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "metabolite decarboxylation pathways", "target": "pH delta high"}, {"description": "High buffering capacity limits pH swings, enabling broader pH tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Internal pH kept ~7.0-7.5 as buffers absorb fluctuations.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "stabilizes", "predicate_id": null, "source": "cytoplasmic buffering capacity", "target": "cytoplasmic pH homeostasis"}, {"description": "Neutralophiles maintain narrow internal pH while growing over a broad external range.", "edge_id": "edge-8", "evidence": [{"notes": "Neutralophiles grow at external pH ~5.5-9.0 while maintaining cytoplasmic pH ~7.5-7.7.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "near-neutral cytoplasmic pH", "target": "growth across external pH 5.5-9.0"}, {"description": "A relatively constant PMF across external pH is a hallmark of broad pH tolerance.", "edge_id": "edge-9", "evidence": [{"notes": "PMF of neutralophilic bacteria kept relatively constant over pH 5 to 8.", "reference": "DOI:10.1093/femsre/fuad033"}], "predicate": "supports", "predicate_id": null, "source": "constant proton motive force", "target": "pH delta high"}, {"description": "Membrane/porin composition changes lower proton leak during acid stress.", "edge_id": "edge-10", "evidence": [{"notes": "Membrane lipid and porin composition changes minimize inward proton leakage during acid stress.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "membrane lipid/porin composition changes", "target": "inward proton leakage"}], "graph_id": "ph_delta_high_euryphilic_breadth", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Relatively constant PMF maintained across external pH changes.", "grounding": null, "id": "constant_pmf", "is_orphan": false, "label": "constant proton motive force", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Intracellular buffering that limits pH swings in the bacterial cytoplasm.", "grounding": null, "id": "cytoplasmic_buffering_capacity", "is_orphan": false, "label": "cytoplasmic buffering capacity", "node_type": "CAPACITY", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of near-neutral internal pH despite external pH variation.", "grounding": "GO:0051453", "id": "cytoplasmic_ph_homeostasis", "is_orphan": false, "label": "cytoplasmic pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Proton-translocating ATP synthase contributing to proton extrusion/uptake in pH homeostasis.", "grounding": null, "id": "f0f1_atpase", "is_orphan": false, "label": "F0F1-ATPase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Growth supported across the neutralophile external pH range ~5.5-9.0.", "grounding": "METPO:1000332", "id": "growth_external_ph_5_5_9", "is_orphan": false, "label": "growth across external pH 5.5-9.0", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Passive inward flux of protons that acidifies the cytoplasm.", "grounding": null, "id": "inward_proton_leakage", "is_orphan": false, "label": "inward proton leakage", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Combined proton-extrusion and Na+/H+ antiport flexibility supporting growth across an extreme pH span.", "grounding": null, "id": "maximal_ph_homeostasis", "is_orphan": false, "label": "maximal pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Structural changes in membrane lipids and porins during pH stress.", "grounding": null, "id": "membrane_lipid_porin_changes", "is_orphan": false, "label": "membrane lipid/porin composition changes", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#e0e7ff", "description": "Proton-consuming decarboxylation pathways that reduce intracellular acidification.", "grounding": null, "id": "metabolite_decarboxylation", "is_orphan": false, "label": "metabolite decarboxylation pathways", "node_type": "PATHWAY", "xrefs": []}, {"color": "#f3e8ff", "description": "Sodium:proton antiporters, core regulators of cytoplasmic pH across changing external pH.", "grounding": null, "id": "na_h_antiporters", "is_orphan": false, "label": "Na+/H+ antiporters", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3f4f6", "description": "Internal pH maintained near 7.5 while external pH varies.", "grounding": null, "id": "near_neutral_cytoplasmic_ph", "is_orphan": false, "label": "near-neutral cytoplasmic pH", "node_type": "QUALITY", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "pH growth-supporting breadth approximately 5\u20139 pH units.", "grounding": "METPO:1000478", "id": "ph_delta_high_trait", "is_orphan": false, "label": "pH delta high", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3e8ff", "description": "Electron-transport-chain proton pumps that control proton flux during pH stress.", "grounding": null, "id": "respiratory_proton_pumps", "is_orphan": false, "label": "respiratory proton-pumping enzymes", "node_type": "GENE_OR_PROTEIN", "xrefs": []}], "title": "pH-delta-high euryphilic breadth"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -881,7 +887,7 @@
- Record as of 2026-08-07 06:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/ph_delta_low.html b/pages/traits/environment/ph_delta_low.html
index 47f7840c..b2915ec6 100644
--- a/pages/traits/environment/ph_delta_low.html
+++ b/pages/traits/environment/ph_delta_low.html
@@ -110,7 +110,7 @@
PMF architecture (Delta-psi and Delta-pH balancing) determines pH homeostasis capacity.
@@ -426,6 +426,12 @@
Curation history
Re-grounded 1 causal edge(s) off microbe-domain METPO predicates (1 to confers), issue 301. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Edge directions are unchanged - this pass only relabels and re-grounds. RO:0002234 (has output) is used where the subject is an activity, since biolink gives it the domain 'biological process or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8 and v9 and are placeholder ids until METPO mints them.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node ph_homeostasis_capacity into cytoplasmic_ph_homeostasis and repointed its edges. Issue 352. 'Capacity to balance and maintain cytoplasmic pH under pH stress' is cytoplasmic_ph_homeostasis, which is IN THE SAME GRAPH already typed BIOLOGICAL_PROCESS and grounded GO:0051453. Grounding the capacity node to GO:0051453 would have produced a DUPLICATE_GROUNDING against it.
+
+
@@ -783,7 +789,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking limited pH-homeostasis flexibility to a pH growth breadth of approximately 1\u20132 pH units.", "edges": [{"description": "Limited pH-homeostasis flexibility yields a 1\u20132 pH-unit pH-delta breadth.", "evidence": [{"notes": "Supports limited pH-homeostasis flexibility as the basis of narrow breadth.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited_ph_homeostasis", "target": "ph_delta_low_trait"}, {"description": "pH delta low is a quantitative bin of the pH-delta phenotype.", "evidence": [{"notes": "Supports the 1\u20132 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "ph_delta_low_trait", "target": "ph_delta"}, {"description": "External pH outside the maintainable cytoplasmic range challenges pH homeostasis.", "evidence": [{"notes": "Diverse mechanisms for pH sensing and cytoplasmic pH homeostasis enable most bacteria to tolerate external pH outside the cytoplasmic range; general across bacteria.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-3", "is_orphan": false, "predicate": "challenges", "predicate_id": "METPO:2007406", "source": "external_ph_stress", "target": "cytoplasmic_ph_homeostasis"}, {"description": "PMF architecture (Delta-psi and Delta-pH balancing) determines pH homeostasis capacity.", "evidence": [{"notes": "Bacteria tune and even reverse the relative magnitudes of Delta-psi and Delta-pH under pH stress; strong general mechanistic edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-4", "is_orphan": false, "predicate": "determines", "predicate_id": null, "source": "pmf_architecture", "target": "ph_homeostasis_capacity"}, {"description": "Weak organic acids cross the membrane and perturb the proton gradient / cytoplasmic pH.", "evidence": [{"notes": "Uncharged weak-acid forms cross membranes and become trapped when charged, perturbing Delta-pH; general chemical-factor edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-5", "is_orphan": false, "predicate": "perturbs", "predicate_id": null, "source": "weak_organic_acids", "target": "delta_ph"}, {"description": "Electrogenic Na+/H+ antiport supports cytoplasmic pH homeostasis under alkaline stress.", "evidence": [{"notes": "Under alkaline stress, inward proton transport through cation/proton antiporters is crucial; strong general transporter-mediated edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "electrogenic_na_h_antiport", "target": "alkaline_ph_homeostasis"}, {"description": "F1Fo-ATPase contributes to cytoplasmic pH homeostasis by expelling or importing H+.", "evidence": [{"notes": "Respiratory complexes and proton-coupled ATPases use or generate PMF to expel or import H+; general higher-level edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-7", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "f1fo_atpase", "target": "cytoplasmic_ph_homeostasis"}], "evidence_rows": [{"description": "Limited pH-homeostasis flexibility yields a 1\u20132 pH-unit pH-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports limited pH-homeostasis flexibility as the basis of narrow breadth.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited pH-homeostasis flexibility", "target": "pH delta low"}, {"description": "pH delta low is a quantitative bin of the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the 1\u20132 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "pH delta low", "target": "pH delta"}, {"description": "External pH outside the maintainable cytoplasmic range challenges pH homeostasis.", "edge_id": "edge-3", "evidence": [{"notes": "Diverse mechanisms for pH sensing and cytoplasmic pH homeostasis enable most bacteria to tolerate external pH outside the cytoplasmic range; general across bacteria.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "challenges", "predicate_id": "METPO:2007406", "source": "external pH stress", "target": "cytoplasmic pH homeostasis"}, {"description": "PMF architecture (Delta-psi and Delta-pH balancing) determines pH homeostasis capacity.", "edge_id": "edge-4", "evidence": [{"notes": "Bacteria tune and even reverse the relative magnitudes of Delta-psi and Delta-pH under pH stress; strong general mechanistic edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "determines", "predicate_id": null, "source": "proton motive force architecture", "target": "pH homeostasis capacity"}, {"description": "Weak organic acids cross the membrane and perturb the proton gradient / cytoplasmic pH.", "edge_id": "edge-5", "evidence": [{"notes": "Uncharged weak-acid forms cross membranes and become trapped when charged, perturbing Delta-pH; general chemical-factor edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "perturbs", "predicate_id": null, "source": "weak organic acids", "target": "delta pH / cytoplasmic pH"}, {"description": "Electrogenic Na+/H+ antiport supports cytoplasmic pH homeostasis under alkaline stress.", "edge_id": "edge-6", "evidence": [{"notes": "Under alkaline stress, inward proton transport through cation/proton antiporters is crucial; strong general transporter-mediated edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "supports", "predicate_id": null, "source": "electrogenic Na+/H+ antiport", "target": "alkaline pH homeostasis"}, {"description": "F1Fo-ATPase contributes to cytoplasmic pH homeostasis by expelling or importing H+.", "edge_id": "edge-7", "evidence": [{"notes": "Respiratory complexes and proton-coupled ATPases use or generate PMF to expel or import H+; general higher-level edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "F1Fo-ATPase", "target": "cytoplasmic pH homeostasis"}], "graph_id": "ph_delta_low_limited_breadth", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Maintenance of cytoplasmic pH under alkaline external conditions.", "grounding": null, "id": "alkaline_ph_homeostasis", "is_orphan": false, "label": "alkaline pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of growth-permissive intracellular pH across external pH change.", "grounding": "GO:0051453", "id": "cytoplasmic_ph_homeostasis", "is_orphan": false, "label": "cytoplasmic pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Trans-membrane proton gradient and resulting cytoplasmic pH.", "grounding": null, "id": "delta_ph", "is_orphan": false, "label": "delta pH / cytoplasmic pH", "node_type": "STATE", "xrefs": []}, {"color": "#ecfccb", "description": "Inward proton transport via cation/proton antiport driven by membrane potential.", "grounding": null, "id": "electrogenic_na_h_antiport", "is_orphan": false, "label": "electrogenic Na+/H+ antiport", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dcfce7", "description": "External pH values outside the range maintainable as cytoplasmic pH.", "grounding": null, "id": "external_ph_stress", "is_orphan": false, "label": "external pH stress", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3e8ff", "description": "Proton-coupled ATPase that expels or imports H+ using or generating PMF.", "grounding": null, "id": "f1fo_atpase", "is_orphan": false, "label": "F1Fo-ATPase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Modest capacity to remodel proton extrusion and envelope buffering across small pH shifts.", "grounding": null, "id": "limited_ph_homeostasis", "is_orphan": false, "label": "limited pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "pH growth-supporting breadth approximately 1\u20132 pH units.", "grounding": "METPO:1000474", "id": "ph_delta_low_trait", "is_orphan": false, "label": "pH delta low", "node_type": "TRAIT", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity to balance and maintain cytoplasmic pH under pH stress.", "grounding": null, "id": "ph_homeostasis_capacity", "is_orphan": false, "label": "pH homeostasis capacity", "node_type": "CAPACITY", "xrefs": []}, {"color": "#ecfccb", "description": "Tuning of Delta-psi and Delta-pH components of the proton motive force.", "grounding": null, "id": "pmf_architecture", "is_orphan": false, "label": "proton motive force architecture", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Uncharged weak acids that cross membranes and perturb the proton gradient.", "grounding": null, "id": "weak_organic_acids", "is_orphan": false, "label": "weak organic acids", "node_type": "CHEMICAL", "xrefs": []}], "title": "pH-delta-low limited-breadth pH homeostasis"}];
+ var graphs = [{"description": "DOI-backed graph linking limited pH-homeostasis flexibility to a pH growth breadth of approximately 1\u20132 pH units.", "edges": [{"description": "Limited pH-homeostasis flexibility yields a 1\u20132 pH-unit pH-delta breadth.", "evidence": [{"notes": "Supports limited pH-homeostasis flexibility as the basis of narrow breadth.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited_ph_homeostasis", "target": "ph_delta_low_trait"}, {"description": "pH delta low is a quantitative bin of the pH-delta phenotype.", "evidence": [{"notes": "Supports the 1\u20132 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "id": "edge-2", "is_orphan": false, "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "ph_delta_low_trait", "target": "ph_delta"}, {"description": "External pH outside the maintainable cytoplasmic range challenges pH homeostasis.", "evidence": [{"notes": "Diverse mechanisms for pH sensing and cytoplasmic pH homeostasis enable most bacteria to tolerate external pH outside the cytoplasmic range; general across bacteria.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-3", "is_orphan": false, "predicate": "challenges", "predicate_id": "METPO:2007406", "source": "external_ph_stress", "target": "cytoplasmic_ph_homeostasis"}, {"description": "PMF architecture (Delta-psi and Delta-pH balancing) determines pH homeostasis capacity.", "evidence": [{"notes": "Bacteria tune and even reverse the relative magnitudes of Delta-psi and Delta-pH under pH stress; strong general mechanistic edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-4", "is_orphan": false, "predicate": "determines", "predicate_id": null, "source": "pmf_architecture", "target": "cytoplasmic_ph_homeostasis"}, {"description": "Weak organic acids cross the membrane and perturb the proton gradient / cytoplasmic pH.", "evidence": [{"notes": "Uncharged weak-acid forms cross membranes and become trapped when charged, perturbing Delta-pH; general chemical-factor edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-5", "is_orphan": false, "predicate": "perturbs", "predicate_id": null, "source": "weak_organic_acids", "target": "delta_ph"}, {"description": "Electrogenic Na+/H+ antiport supports cytoplasmic pH homeostasis under alkaline stress.", "evidence": [{"notes": "Under alkaline stress, inward proton transport through cation/proton antiporters is crucial; strong general transporter-mediated edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-6", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "electrogenic_na_h_antiport", "target": "alkaline_ph_homeostasis"}, {"description": "F1Fo-ATPase contributes to cytoplasmic pH homeostasis by expelling or importing H+.", "evidence": [{"notes": "Respiratory complexes and proton-coupled ATPases use or generate PMF to expel or import H+; general higher-level edge.", "reference": "DOI:10.1038/nrmicro2549"}], "id": "edge-7", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "f1fo_atpase", "target": "cytoplasmic_ph_homeostasis"}], "evidence_rows": [{"description": "Limited pH-homeostasis flexibility yields a 1\u20132 pH-unit pH-delta breadth.", "edge_id": "edge-1", "evidence": [{"notes": "Supports limited pH-homeostasis flexibility as the basis of narrow breadth.", "reference": "DOI:10.1038/nrmicro2549", "snippet": "pH homeostasis"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "limited pH-homeostasis flexibility", "target": "pH delta low"}, {"description": "pH delta low is a quantitative bin of the pH-delta phenotype.", "edge_id": "edge-2", "evidence": [{"notes": "Supports the 1\u20132 unit breadth as a value within the pH-delta distribution.", "reference": "DOI:10.1016/j.tim.2007.02.005", "snippet": "proton motive force"}], "predicate": "is a", "predicate_id": "rdfs:subClassOf", "source": "pH delta low", "target": "pH delta"}, {"description": "External pH outside the maintainable cytoplasmic range challenges pH homeostasis.", "edge_id": "edge-3", "evidence": [{"notes": "Diverse mechanisms for pH sensing and cytoplasmic pH homeostasis enable most bacteria to tolerate external pH outside the cytoplasmic range; general across bacteria.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "challenges", "predicate_id": "METPO:2007406", "source": "external pH stress", "target": "cytoplasmic pH homeostasis"}, {"description": "PMF architecture (Delta-psi and Delta-pH balancing) determines pH homeostasis capacity.", "edge_id": "edge-4", "evidence": [{"notes": "Bacteria tune and even reverse the relative magnitudes of Delta-psi and Delta-pH under pH stress; strong general mechanistic edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "determines", "predicate_id": null, "source": "proton motive force architecture", "target": "cytoplasmic pH homeostasis"}, {"description": "Weak organic acids cross the membrane and perturb the proton gradient / cytoplasmic pH.", "edge_id": "edge-5", "evidence": [{"notes": "Uncharged weak-acid forms cross membranes and become trapped when charged, perturbing Delta-pH; general chemical-factor edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "perturbs", "predicate_id": null, "source": "weak organic acids", "target": "delta pH / cytoplasmic pH"}, {"description": "Electrogenic Na+/H+ antiport supports cytoplasmic pH homeostasis under alkaline stress.", "edge_id": "edge-6", "evidence": [{"notes": "Under alkaline stress, inward proton transport through cation/proton antiporters is crucial; strong general transporter-mediated edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "supports", "predicate_id": null, "source": "electrogenic Na+/H+ antiport", "target": "alkaline pH homeostasis"}, {"description": "F1Fo-ATPase contributes to cytoplasmic pH homeostasis by expelling or importing H+.", "edge_id": "edge-7", "evidence": [{"notes": "Respiratory complexes and proton-coupled ATPases use or generate PMF to expel or import H+; general higher-level edge.", "reference": "DOI:10.1038/nrmicro2549"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "F1Fo-ATPase", "target": "cytoplasmic pH homeostasis"}], "graph_id": "ph_delta_low_limited_breadth", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Maintenance of cytoplasmic pH under alkaline external conditions.", "grounding": null, "id": "alkaline_ph_homeostasis", "is_orphan": false, "label": "alkaline pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of growth-permissive intracellular pH across external pH change.", "grounding": "GO:0051453", "id": "cytoplasmic_ph_homeostasis", "is_orphan": false, "label": "cytoplasmic pH homeostasis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Trans-membrane proton gradient and resulting cytoplasmic pH.", "grounding": null, "id": "delta_ph", "is_orphan": false, "label": "delta pH / cytoplasmic pH", "node_type": "STATE", "xrefs": []}, {"color": "#ecfccb", "description": "Inward proton transport via cation/proton antiport driven by membrane potential.", "grounding": null, "id": "electrogenic_na_h_antiport", "is_orphan": false, "label": "electrogenic Na+/H+ antiport", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dcfce7", "description": "External pH values outside the range maintainable as cytoplasmic pH.", "grounding": null, "id": "external_ph_stress", "is_orphan": false, "label": "external pH stress", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3e8ff", "description": "Proton-coupled ATPase that expels or imports H+ using or generating PMF.", "grounding": null, "id": "f1fo_atpase", "is_orphan": false, "label": "F1Fo-ATPase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Modest capacity to remodel proton extrusion and envelope buffering across small pH shifts.", "grounding": null, "id": "limited_ph_homeostasis", "is_orphan": false, "label": "limited pH-homeostasis flexibility", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Breadth of the growth-supporting external pH range.", "grounding": "METPO:1000232", "id": "ph_delta", "is_orphan": false, "label": "pH delta", "node_type": "TRAIT", "xrefs": []}, {"color": "#dbeafe", "description": "pH growth-supporting breadth approximately 1\u20132 pH units.", "grounding": "METPO:1000474", "id": "ph_delta_low_trait", "is_orphan": false, "label": "pH delta low", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Tuning of Delta-psi and Delta-pH components of the proton motive force.", "grounding": null, "id": "pmf_architecture", "is_orphan": false, "label": "proton motive force architecture", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Uncharged weak acids that cross membranes and perturb the proton gradient.", "grounding": null, "id": "weak_organic_acids", "is_orphan": false, "label": "weak organic acids", "node_type": "CHEMICAL", "xrefs": []}], "title": "pH-delta-low limited-breadth pH homeostasis"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -806,7 +812,7 @@
- Record as of 2026-08-06 01:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/psychrotolerant.html b/pages/traits/environment/psychrotolerant.html
index 21492f52..d2f13245 100644
--- a/pages/traits/environment/psychrotolerant.html
+++ b/pages/traits/environment/psychrotolerant.html
@@ -192,23 +192,6 @@
Edge evidence
-
- psychrotolerant
- has capability
- growth at 4 degrees C
-
-
The psychrotolerant trait entails the capacity to grow at low temperatures such as 4 C while retaining higher optimal temperatures.
-
-
-
- DOI:10.1007/s42770-023-01057-4
-
- Psychrotolerant/psychrotroph microbes can grow at 4 C and have optimal growth temperatures above 20 C.
-
-
-
-
-
@@ -511,6 +494,12 @@
Curation history
Migrated 1 causal edge(s) off enables/RO:0002327 with a TRAIT object (1 to confers), issue 302. RO:0002327 has range 'biological process or activity', which a trait (a disposition) cannot satisfy, so the previous form entailed trait is-a BiologicalProcessOrActivity. The replacements are proposed in proposals/metpo_traitmech_v8 and are placeholder ids until METPO mints them.
+
+ ·
+ DROP_CAUSAL_NODE · claude
+
Dropped node growth_at_4c and its edges. Issue 352. 'Ability to grow at refrigeration-range low temperature (4 C)' IS METPO:1000618 (psychrotolerant), the record's own term and the grounding of psychrotolerant_trait, which is the node it hangs off. A leaf restating its own parent. The parent keeps two other in-edges (cold_shock_response confers, facultative_lipid_remodeling manifests as), so nothing is stranded.
+
+
@@ -868,7 +857,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking psychrotolerance to low-temperature membrane and enzyme acclimation that does not preclude growth at moderate ambient temperatures.", "edges": [{"description": "Low temperature reduces membrane fluidity, requiring compensation.", "evidence": [{"notes": "Supports cold-end membrane stress as the physical challenge for psychrotolerant growth.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "decreased membrane fluidity"}], "id": "edge-1", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "low_temperature", "target": "membrane_fluidity"}, {"description": "Facultative lipid remodeling maintains workable membrane fluidity at low temperature.", "evidence": [{"notes": "Supports homoviscous adaptation as the mechanism employed under cold exposure.", "reference": "DOI:10.1146/annurev-micro-091313-103612", "snippet": "more unsaturated fatty acids"}], "id": "edge-2", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "facultative_lipid_remodeling", "target": "membrane_fluidity"}, {"description": "The cold-shock response enables acclimation to low temperature without obligate cold dedication.", "evidence": [{"notes": "Supports cold-shock proteins as a hallmark facultative-cold adaptation.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "Cold-shock proteins have also been described"}], "id": "edge-3", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "cold_shock_response", "target": "psychrotolerant_trait"}, {"description": "Facultative lipid remodeling at low temperature manifests the psychrotolerant trait in representative organisms.", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1099/ijs.0.65141-0", "snippet": "Pseudomonas guineae sp. nov., a novel psychrotolerant bacterium"}], "id": "edge-4", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "facultative_lipid_remodeling", "target": "psychrotolerant_trait"}, {"description": "A low-temperature shift causes membrane rigidification and thickening toward a gel-phase transition.", "evidence": [{"notes": "Cold shock causes membrane rigidification and concomitant thickening, potentially culminating in a gel-phase transition.", "reference": "DOI:10.1128/spectrum.03925-23"}], "id": "edge-5", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_temperature", "target": "membrane_rigidification"}, {"description": "Decreasing growth temperature increases the unsaturated hopanoid fraction as a compositional cold adaptation.", "evidence": [{"notes": "As the growth temperature decreased from 20 to 4 C, the total percent of unsaturated hopanoids increased from 27 to 49%.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "id": "edge-6", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "low_temperature", "target": "unsaturated_hopanoids"}, {"description": "Compatible solute accumulation stabilizes proteins and membranes during low-temperature stress.", "evidence": [{"notes": "Compatible solutes depress freezing point, stabilize proteins and membranes, scavenge radicals, and act as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "id": "edge-7", "is_orphan": false, "predicate": "protects", "predicate_id": null, "source": "compatible_solute_accumulation", "target": "protein_membrane_stability"}, {"description": "EPS surrounding cells provide cryoprotection against freeze-thaw cycles.", "evidence": [{"notes": "EPS surrounding cells play a critical role in cold adaptation by providing protection against freeze-thaw cycles and acting as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "id": "edge-8", "is_orphan": false, "predicate": "provides", "predicate_id": null, "source": "extracellular_polymeric_substances", "target": "freeze_thaw_cryoprotection"}, {"description": "The psychrotolerant trait entails the capacity to grow at low temperatures such as 4 C while retaining higher optimal temperatures.", "evidence": [{"notes": "Psychrotolerant/psychrotroph microbes can grow at 4 C and have optimal growth temperatures above 20 C.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "id": "edge-9", "is_orphan": false, "predicate": "has capability", "predicate_id": null, "source": "psychrotolerant_trait", "target": "growth_at_4c"}], "evidence_rows": [{"description": "Low temperature reduces membrane fluidity, requiring compensation.", "edge_id": "edge-1", "evidence": [{"notes": "Supports cold-end membrane stress as the physical challenge for psychrotolerant growth.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "decreased membrane fluidity"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "low temperature", "target": "membrane fluidity"}, {"description": "Facultative lipid remodeling maintains workable membrane fluidity at low temperature.", "edge_id": "edge-2", "evidence": [{"notes": "Supports homoviscous adaptation as the mechanism employed under cold exposure.", "reference": "DOI:10.1146/annurev-micro-091313-103612", "snippet": "more unsaturated fatty acids"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "facultative lipid remodeling", "target": "membrane fluidity"}, {"description": "The cold-shock response enables acclimation to low temperature without obligate cold dedication.", "edge_id": "edge-3", "evidence": [{"notes": "Supports cold-shock proteins as a hallmark facultative-cold adaptation.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "Cold-shock proteins have also been described"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "cold-shock response", "target": "psychrotolerant"}, {"description": "Facultative lipid remodeling at low temperature manifests the psychrotolerant trait in representative organisms.", "edge_id": "edge-4", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1099/ijs.0.65141-0", "snippet": "Pseudomonas guineae sp. nov., a novel psychrotolerant bacterium"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "facultative lipid remodeling", "target": "psychrotolerant"}, {"description": "A low-temperature shift causes membrane rigidification and thickening toward a gel-phase transition.", "edge_id": "edge-5", "evidence": [{"notes": "Cold shock causes membrane rigidification and concomitant thickening, potentially culminating in a gel-phase transition.", "reference": "DOI:10.1128/spectrum.03925-23"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low temperature", "target": "membrane rigidification and thickening"}, {"description": "Decreasing growth temperature increases the unsaturated hopanoid fraction as a compositional cold adaptation.", "edge_id": "edge-6", "evidence": [{"notes": "As the growth temperature decreased from 20 to 4 C, the total percent of unsaturated hopanoids increased from 27 to 49%.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "low temperature", "target": "unsaturated hopanoids"}, {"description": "Compatible solute accumulation stabilizes proteins and membranes during low-temperature stress.", "edge_id": "edge-7", "evidence": [{"notes": "Compatible solutes depress freezing point, stabilize proteins and membranes, scavenge radicals, and act as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "predicate": "protects", "predicate_id": null, "source": "compatible solute accumulation", "target": "protein and membrane stability under cold stress"}, {"description": "EPS surrounding cells provide cryoprotection against freeze-thaw cycles.", "edge_id": "edge-8", "evidence": [{"notes": "EPS surrounding cells play a critical role in cold adaptation by providing protection against freeze-thaw cycles and acting as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "predicate": "provides", "predicate_id": null, "source": "extracellular polymeric substances (EPS)", "target": "cryoprotection against freeze-thaw cycles"}, {"description": "The psychrotolerant trait entails the capacity to grow at low temperatures such as 4 C while retaining higher optimal temperatures.", "edge_id": "edge-9", "evidence": [{"notes": "Psychrotolerant/psychrotroph microbes can grow at 4 C and have optimal growth temperatures above 20 C.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "predicate": "has capability", "predicate_id": null, "source": "psychrotolerant", "target": "growth at 4 degrees C"}], "graph_id": "psychrotolerant_facultative_cold_adaptation", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Cold-shock-protein induction supporting transient low-temperature acclimation.", "grounding": null, "id": "cold_shock_response", "is_orphan": false, "label": "cold-shock response", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Accumulation of compatible solutes that stabilize proteins and membranes under cold stress.", "grounding": null, "id": "compatible_solute_accumulation", "is_orphan": false, "label": "compatible solute accumulation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Secreted polymeric matrix surrounding cells that acts as a cryoprotectant.", "grounding": null, "id": "extracellular_polymeric_substances", "is_orphan": false, "label": "extracellular polymeric substances (EPS)", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Cold-induced shifts in lipid composition without obligate low-temperature specialization.", "grounding": null, "id": "facultative_lipid_remodeling", "is_orphan": false, "label": "facultative lipid remodeling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Protection of cells from damage during freeze-thaw cycling.", "grounding": null, "id": "freeze_thaw_cryoprotection", "is_orphan": false, "label": "cryoprotection against freeze-thaw cycles", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Ability to grow at refrigeration-range low temperature (4 C).", "grounding": null, "id": "growth_at_4c", "is_orphan": false, "label": "growth at 4 degrees C", "node_type": "CAPACITY", "xrefs": []}, {"color": "#dcfce7", "description": "Ambient temperature below the mesophile optimum range.", "grounding": "PATO:0001306", "id": "low_temperature", "is_orphan": false, "label": "low temperature", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3f4f6", "description": "Physical state of the cytoplasmic membrane supporting transport and bioenergetics.", "grounding": "METPO:1007505", "id": "membrane_fluidity", "is_orphan": false, "label": "membrane fluidity", "node_type": "QUALITY", "xrefs": []}, {"color": "#f3f4f6", "description": "Cold-induced increase in membrane order and bilayer thickness approaching a gel-phase transition.", "grounding": null, "id": "membrane_rigidification", "is_orphan": false, "label": "membrane rigidification and thickening", "node_type": "QUALITY", "xrefs": []}, {"color": "#f3f4f6", "description": "Maintained integrity of proteins and membranes during low-temperature stress.", "grounding": null, "id": "protein_membrane_stability", "is_orphan": false, "label": "protein and membrane stability under cold stress", "node_type": "QUALITY", "xrefs": []}, {"color": "#dbeafe", "description": "Growth at low temperatures without an obligate low-temperature preference.", "grounding": "METPO:1000618", "id": "psychrotolerant_trait", "is_orphan": false, "label": "psychrotolerant", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "Hopanoid lipids whose unsaturation rises at low temperature, aiding membrane homeostasis.", "grounding": null, "id": "unsaturated_hopanoids", "is_orphan": false, "label": "unsaturated hopanoids", "node_type": "CHEMICAL", "xrefs": []}], "title": "Psychrotolerant facultative cold-adaptation mechanism"}];
+ var graphs = [{"description": "DOI-backed graph linking psychrotolerance to low-temperature membrane and enzyme acclimation that does not preclude growth at moderate ambient temperatures.", "edges": [{"description": "Low temperature reduces membrane fluidity, requiring compensation.", "evidence": [{"notes": "Supports cold-end membrane stress as the physical challenge for psychrotolerant growth.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "decreased membrane fluidity"}], "id": "edge-1", "is_orphan": false, "predicate": "decreases", "predicate_id": "RO:0002212", "source": "low_temperature", "target": "membrane_fluidity"}, {"description": "Facultative lipid remodeling maintains workable membrane fluidity at low temperature.", "evidence": [{"notes": "Supports homoviscous adaptation as the mechanism employed under cold exposure.", "reference": "DOI:10.1146/annurev-micro-091313-103612", "snippet": "more unsaturated fatty acids"}], "id": "edge-2", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "facultative_lipid_remodeling", "target": "membrane_fluidity"}, {"description": "The cold-shock response enables acclimation to low temperature without obligate cold dedication.", "evidence": [{"notes": "Supports cold-shock proteins as a hallmark facultative-cold adaptation.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "Cold-shock proteins have also been described"}], "id": "edge-3", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "cold_shock_response", "target": "psychrotolerant_trait"}, {"description": "Facultative lipid remodeling at low temperature manifests the psychrotolerant trait in representative organisms.", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1099/ijs.0.65141-0", "snippet": "Pseudomonas guineae sp. nov., a novel psychrotolerant bacterium"}], "id": "edge-4", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "facultative_lipid_remodeling", "target": "psychrotolerant_trait"}, {"description": "A low-temperature shift causes membrane rigidification and thickening toward a gel-phase transition.", "evidence": [{"notes": "Cold shock causes membrane rigidification and concomitant thickening, potentially culminating in a gel-phase transition.", "reference": "DOI:10.1128/spectrum.03925-23"}], "id": "edge-5", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_temperature", "target": "membrane_rigidification"}, {"description": "Decreasing growth temperature increases the unsaturated hopanoid fraction as a compositional cold adaptation.", "evidence": [{"notes": "As the growth temperature decreased from 20 to 4 C, the total percent of unsaturated hopanoids increased from 27 to 49%.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "id": "edge-6", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "low_temperature", "target": "unsaturated_hopanoids"}, {"description": "Compatible solute accumulation stabilizes proteins and membranes during low-temperature stress.", "evidence": [{"notes": "Compatible solutes depress freezing point, stabilize proteins and membranes, scavenge radicals, and act as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "id": "edge-7", "is_orphan": false, "predicate": "protects", "predicate_id": null, "source": "compatible_solute_accumulation", "target": "protein_membrane_stability"}, {"description": "EPS surrounding cells provide cryoprotection against freeze-thaw cycles.", "evidence": [{"notes": "EPS surrounding cells play a critical role in cold adaptation by providing protection against freeze-thaw cycles and acting as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "id": "edge-8", "is_orphan": false, "predicate": "provides", "predicate_id": null, "source": "extracellular_polymeric_substances", "target": "freeze_thaw_cryoprotection"}], "evidence_rows": [{"description": "Low temperature reduces membrane fluidity, requiring compensation.", "edge_id": "edge-1", "evidence": [{"notes": "Supports cold-end membrane stress as the physical challenge for psychrotolerant growth.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "decreased membrane fluidity"}], "predicate": "decreases", "predicate_id": "RO:0002212", "source": "low temperature", "target": "membrane fluidity"}, {"description": "Facultative lipid remodeling maintains workable membrane fluidity at low temperature.", "edge_id": "edge-2", "evidence": [{"notes": "Supports homoviscous adaptation as the mechanism employed under cold exposure.", "reference": "DOI:10.1146/annurev-micro-091313-103612", "snippet": "more unsaturated fatty acids"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "facultative lipid remodeling", "target": "membrane fluidity"}, {"description": "The cold-shock response enables acclimation to low temperature without obligate cold dedication.", "edge_id": "edge-3", "evidence": [{"notes": "Supports cold-shock proteins as a hallmark facultative-cold adaptation.", "reference": "DOI:10.1038/sj.embor.7400662", "snippet": "Cold-shock proteins have also been described"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "cold-shock response", "target": "psychrotolerant"}, {"description": "Facultative lipid remodeling at low temperature manifests the psychrotolerant trait in representative organisms.", "edge_id": "edge-4", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1099/ijs.0.65141-0", "snippet": "Pseudomonas guineae sp. nov., a novel psychrotolerant bacterium"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "facultative lipid remodeling", "target": "psychrotolerant"}, {"description": "A low-temperature shift causes membrane rigidification and thickening toward a gel-phase transition.", "edge_id": "edge-5", "evidence": [{"notes": "Cold shock causes membrane rigidification and concomitant thickening, potentially culminating in a gel-phase transition.", "reference": "DOI:10.1128/spectrum.03925-23"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low temperature", "target": "membrane rigidification and thickening"}, {"description": "Decreasing growth temperature increases the unsaturated hopanoid fraction as a compositional cold adaptation.", "edge_id": "edge-6", "evidence": [{"notes": "As the growth temperature decreased from 20 to 4 C, the total percent of unsaturated hopanoids increased from 27 to 49%.", "reference": "DOI:10.1007/s42770-023-01057-4"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "low temperature", "target": "unsaturated hopanoids"}, {"description": "Compatible solute accumulation stabilizes proteins and membranes during low-temperature stress.", "edge_id": "edge-7", "evidence": [{"notes": "Compatible solutes depress freezing point, stabilize proteins and membranes, scavenge radicals, and act as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "predicate": "protects", "predicate_id": null, "source": "compatible solute accumulation", "target": "protein and membrane stability under cold stress"}, {"description": "EPS surrounding cells provide cryoprotection against freeze-thaw cycles.", "edge_id": "edge-8", "evidence": [{"notes": "EPS surrounding cells play a critical role in cold adaptation by providing protection against freeze-thaw cycles and acting as cryoprotectants.", "reference": "DOI:10.37256/amtt.5220244537"}], "predicate": "provides", "predicate_id": null, "source": "extracellular polymeric substances (EPS)", "target": "cryoprotection against freeze-thaw cycles"}], "graph_id": "psychrotolerant_facultative_cold_adaptation", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Cold-shock-protein induction supporting transient low-temperature acclimation.", "grounding": null, "id": "cold_shock_response", "is_orphan": false, "label": "cold-shock response", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Accumulation of compatible solutes that stabilize proteins and membranes under cold stress.", "grounding": null, "id": "compatible_solute_accumulation", "is_orphan": false, "label": "compatible solute accumulation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Secreted polymeric matrix surrounding cells that acts as a cryoprotectant.", "grounding": null, "id": "extracellular_polymeric_substances", "is_orphan": false, "label": "extracellular polymeric substances (EPS)", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Cold-induced shifts in lipid composition without obligate low-temperature specialization.", "grounding": null, "id": "facultative_lipid_remodeling", "is_orphan": false, "label": "facultative lipid remodeling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Protection of cells from damage during freeze-thaw cycling.", "grounding": null, "id": "freeze_thaw_cryoprotection", "is_orphan": false, "label": "cryoprotection against freeze-thaw cycles", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dcfce7", "description": "Ambient temperature below the mesophile optimum range.", "grounding": "PATO:0001306", "id": "low_temperature", "is_orphan": false, "label": "low temperature", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#f3f4f6", "description": "Physical state of the cytoplasmic membrane supporting transport and bioenergetics.", "grounding": "METPO:1007505", "id": "membrane_fluidity", "is_orphan": false, "label": "membrane fluidity", "node_type": "QUALITY", "xrefs": []}, {"color": "#f3f4f6", "description": "Cold-induced increase in membrane order and bilayer thickness approaching a gel-phase transition.", "grounding": null, "id": "membrane_rigidification", "is_orphan": false, "label": "membrane rigidification and thickening", "node_type": "QUALITY", "xrefs": []}, {"color": "#f3f4f6", "description": "Maintained integrity of proteins and membranes during low-temperature stress.", "grounding": null, "id": "protein_membrane_stability", "is_orphan": false, "label": "protein and membrane stability under cold stress", "node_type": "QUALITY", "xrefs": []}, {"color": "#dbeafe", "description": "Growth at low temperatures without an obligate low-temperature preference.", "grounding": "METPO:1000618", "id": "psychrotolerant_trait", "is_orphan": false, "label": "psychrotolerant", "node_type": "TRAIT", "xrefs": []}, {"color": "#fef3c7", "description": "Hopanoid lipids whose unsaturation rises at low temperature, aiding membrane homeostasis.", "grounding": null, "id": "unsaturated_hopanoids", "is_orphan": false, "label": "unsaturated hopanoids", "node_type": "CHEMICAL", "xrefs": []}], "title": "Psychrotolerant facultative cold-adaptation mechanism"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -891,7 +880,7 @@
- Record as of 2026-08-06 00:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/environment/slightly_halophilic.html b/pages/traits/environment/slightly_halophilic.html
index 0a48d358..724960c7 100644
--- a/pages/traits/environment/slightly_halophilic.html
+++ b/pages/traits/environment/slightly_halophilic.html
@@ -161,7 +161,7 @@
Edge evidence
ectoineincreases
- salt tolerance
+ slightly halophilicRO:0002213
Accumulation of ectoine as a compatible solute increases salt tolerance.
@@ -178,7 +178,7 @@
Edge evidence
osmoprotectant transportincreases
- salt tolerance
+ slightly halophilicRO:0002213
Uptake of compatible solutes is a general salt-out osmoadaptation strategy that raises salt tolerance.
@@ -511,6 +511,12 @@
Curation history
Re-grounded 1 causal edge(s) off microbe-domain METPO predicates onto their causal-graph counterparts (1 to accumulates), issue 301 part 2. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Each replacement is a 1:1 mirror of its source predicate that changes only the domain, so the claim each edge makes is unchanged and directions are unchanged. The replacements are proposed in proposals/metpo_traitmech_v9 and are placeholder ids until METPO mints them.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node salt_tolerance into slightly_halophilic_trait and repointed its edges. Issue 352. A SEVENTH restatement, caught in the third review round (#360). I had grounded it METPO:1000622 (halotolerant), reasoning that the record is METPO:1000625 (slightly halophilic) so the term is 'distinct'. It is distinct in the worst way: 1000622 and 1000625 are DIRECT SIBLINGS under 1000629 (halophily preference), and 1000622 means 'tolerates high salt but DOES NOT REQUIRE it for growth' while 1000625 means the organism 'REQUIRES low to moderate salt for optimal growth'. So the node asserted of this record the negation of what the record's own term says. Distinct is not the test; compatible is. NO CONNECTIVITY CLAIM HERE: the node was already in the trait's component via osmoprotectant_transport -> compatible_solutes -> osmotic_stress, so merging leaves the graph at 2 components and is a correctness fix, not a structural one. METPO has no generic salt-tolerance disposition to reground to: halotolerant and acidotolerant are the only candidate labels and each already anchors its own record. Recorded as issue #364, which proposes a tolerance axis distinct from the preference axis; nothing under proposals/ yet.
+
+
@@ -868,7 +874,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "Evidence-backed causal sketch linking slight halophily to low or moderate NaCl and compatible-solute osmoprotection.", "edges": [{"description": "Slight halophily is a salt-growth preference at lower salinity than moderate or extreme halophily.", "evidence": [{"notes": "Review supports halophily as a continuum of salt growth requirements.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "minimum salt concentration required for growth"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "low_moderate_nacl", "target": "slightly_halophilic_trait"}, {"description": "Even lower salinity preferences involve osmotic adjustment to environmental salt.", "evidence": [{"notes": "Review describes growth in relation to minimum, optimum, and upper salt limits.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "salt relationships"}], "id": "edge-2", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_moderate_nacl", "target": "osmotic_stress"}, {"description": "Compatible solutes provide osmotic balance without disrupting metabolism.", "evidence": [{"notes": "Supports compatible solutes as non-disruptive osmoprotectants.", "reference": "DOI:10.1371/journal.pone.0168818", "snippet": "do not disturb the cell\u0027s metabolism"}], "id": "edge-3", "is_orphan": false, "predicate": "mitigates", "predicate_id": "METPO:2007407", "source": "compatible_solutes", "target": "osmotic_stress"}, {"description": "Uptake systems can accumulate compatible solutes for salt adaptation.", "evidence": [{"notes": "Review supports accumulation of organic osmotic solutes in bacterial osmoadaptation.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "organic osmotic solutes"}], "id": "edge-4", "is_orphan": false, "predicate": "accumulates", "predicate_id": "METPO:2007810", "source": "osmoprotectant_transport", "target": "compatible_solutes"}, {"description": "The ect gene cluster encodes the enzymes that carry out ectoine biosynthesis.", "evidence": [{"notes": "ectoine biosynthesis genes are denoted by ectABC; ectBACD up-regulated as an osmoadaptation system.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-5", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ect_gene_cluster", "target": "ectoine_biosynthesis"}, {"description": "Ectoine biosynthesis produces the compatible solute ectoine.", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte via the ectABC pathway.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-6", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "ectoine_biosynthesis", "target": "ectoine"}, {"description": "Accumulation of ectoine as a compatible solute increases salt tolerance.", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte while the ectABC-deleted strain is salt-sensitive.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-7", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "ectoine", "target": "salt_tolerance"}, {"description": "Uptake of compatible solutes is a general salt-out osmoadaptation strategy that raises salt tolerance.", "evidence": [{"notes": "Salt-out strategists exclude salt and/or synthesize or uptake compatible solutes (e.g. glycine betaine); dominant strategy in many halophilic bacteria.", "reference": "DOI:10.1093/femsre/fuy026"}], "id": "edge-8", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "osmoprotectant_transport", "target": "salt_tolerance"}, {"description": "Coordinated induction of Na+/K+ transcription supports ion homeostasis during salt stress.", "evidence": [{"notes": "Coordinated induction of Na+/K+ transcription and ectoine, proline, and betaine biosynthesis under salt stress.", "reference": "DOI:10.1038/s42003-022-04319-3"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "na_k_transcription", "target": "ion_homeostasis"}], "evidence_rows": [{"description": "Slight halophily is a salt-growth preference at lower salinity than moderate or extreme halophily.", "edge_id": "edge-1", "evidence": [{"notes": "Review supports halophily as a continuum of salt growth requirements.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "minimum salt concentration required for growth"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "low to moderate NaCl", "target": "slightly halophilic"}, {"description": "Even lower salinity preferences involve osmotic adjustment to environmental salt.", "edge_id": "edge-2", "evidence": [{"notes": "Review describes growth in relation to minimum, optimum, and upper salt limits.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "salt relationships"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low to moderate NaCl", "target": "osmotic stress"}, {"description": "Compatible solutes provide osmotic balance without disrupting metabolism.", "edge_id": "edge-3", "evidence": [{"notes": "Supports compatible solutes as non-disruptive osmoprotectants.", "reference": "DOI:10.1371/journal.pone.0168818", "snippet": "do not disturb the cell\u0027s metabolism"}], "predicate": "mitigates", "predicate_id": "METPO:2007407", "source": "compatible solutes", "target": "osmotic stress"}, {"description": "Uptake systems can accumulate compatible solutes for salt adaptation.", "edge_id": "edge-4", "evidence": [{"notes": "Review supports accumulation of organic osmotic solutes in bacterial osmoadaptation.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "organic osmotic solutes"}], "predicate": "accumulates", "predicate_id": "METPO:2007810", "source": "osmoprotectant transport", "target": "compatible solutes"}, {"description": "The ect gene cluster encodes the enzymes that carry out ectoine biosynthesis.", "edge_id": "edge-5", "evidence": [{"notes": "ectoine biosynthesis genes are denoted by ectABC; ectBACD up-regulated as an osmoadaptation system.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "ectABC/ectBACD gene cluster", "target": "ectoine biosynthesis"}, {"description": "Ectoine biosynthesis produces the compatible solute ectoine.", "edge_id": "edge-6", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte via the ectABC pathway.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "ectoine biosynthesis", "target": "ectoine"}, {"description": "Accumulation of ectoine as a compatible solute increases salt tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte while the ectABC-deleted strain is salt-sensitive.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "ectoine", "target": "salt tolerance"}, {"description": "Uptake of compatible solutes is a general salt-out osmoadaptation strategy that raises salt tolerance.", "edge_id": "edge-8", "evidence": [{"notes": "Salt-out strategists exclude salt and/or synthesize or uptake compatible solutes (e.g. glycine betaine); dominant strategy in many halophilic bacteria.", "reference": "DOI:10.1093/femsre/fuy026"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "osmoprotectant transport", "target": "salt tolerance"}, {"description": "Coordinated induction of Na+/K+ transcription supports ion homeostasis during salt stress.", "edge_id": "edge-9", "evidence": [{"notes": "Coordinated induction of Na+/K+ transcription and ectoine, proline, and betaine biosynthesis under salt stress.", "reference": "DOI:10.1038/s42003-022-04319-3"}], "predicate": "supports", "predicate_id": null, "source": "Na+/K+ transcriptional induction", "target": "ion homeostasis during salt stress"}], "graph_id": "slight_halophile_low_salt_osmoadaptation", "issues": [], "nodes": [{"color": "#fef3c7", "description": "Organic osmoprotectants accumulated or synthesized in response to salt.", "grounding": "CHEBI:25728", "id": "compatible_solutes", "is_orphan": false, "label": "compatible solutes", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Ectoine biosynthesis operon encoding the ectoine pathway enzymes.", "grounding": null, "id": "ect_gene_cluster", "is_orphan": false, "label": "ectABC/ectBACD gene cluster", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#fef3c7", "description": "A major compatible solute (osmolyte) accumulated under salt stress.", "grounding": "CHEBI:27592", "id": "ectoine", "is_orphan": false, "label": "ectoine", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Biosynthesis of the compatible solute ectoine via the ectABC/ectBACD pathway.", "grounding": "GO:0019491", "id": "ectoine_biosynthesis", "is_orphan": false, "label": "ectoine biosynthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of Na+/K+ balance under salt stress.", "grounding": null, "id": "ion_homeostasis", "is_orphan": false, "label": "ion homeostasis during salt stress", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dcfce7", "description": "Salinity range below that of moderate and extreme halophiles.", "grounding": null, "id": "low_moderate_nacl", "is_orphan": false, "label": "low to moderate NaCl", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#ecfccb", "description": "Coordinated induction of sodium/potassium transport transcription under salt stress.", "grounding": null, "id": "na_k_transcription", "is_orphan": false, "label": "Na+/K+ transcriptional induction", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#cffafe", "description": "Uptake of compatible solutes such as glycine betaine.", "grounding": null, "id": "osmoprotectant_transport", "is_orphan": false, "label": "osmoprotectant transport", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Osmotic challenge caused by environmental salt.", "grounding": "GO:0006970", "id": "osmotic_stress", "is_orphan": false, "label": "osmotic stress", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity to grow and survive under elevated salinity / salt stress.", "grounding": null, "id": "salt_tolerance", "is_orphan": false, "label": "salt tolerance", "node_type": "CAPACITY", "xrefs": []}, {"color": "#dbeafe", "description": "Optimal growth requires low to moderate salt concentrations.", "grounding": "METPO:1000625", "id": "slightly_halophilic_trait", "is_orphan": false, "label": "slightly halophilic", "node_type": "TRAIT", "xrefs": []}], "title": "Slight halophile low-salt osmoadaptation mechanism"}];
+ var graphs = [{"description": "Evidence-backed causal sketch linking slight halophily to low or moderate NaCl and compatible-solute osmoprotection.", "edges": [{"description": "Slight halophily is a salt-growth preference at lower salinity than moderate or extreme halophily.", "evidence": [{"notes": "Review supports halophily as a continuum of salt growth requirements.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "minimum salt concentration required for growth"}], "id": "edge-1", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "low_moderate_nacl", "target": "slightly_halophilic_trait"}, {"description": "Even lower salinity preferences involve osmotic adjustment to environmental salt.", "evidence": [{"notes": "Review describes growth in relation to minimum, optimum, and upper salt limits.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "salt relationships"}], "id": "edge-2", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_moderate_nacl", "target": "osmotic_stress"}, {"description": "Compatible solutes provide osmotic balance without disrupting metabolism.", "evidence": [{"notes": "Supports compatible solutes as non-disruptive osmoprotectants.", "reference": "DOI:10.1371/journal.pone.0168818", "snippet": "do not disturb the cell\u0027s metabolism"}], "id": "edge-3", "is_orphan": false, "predicate": "mitigates", "predicate_id": "METPO:2007407", "source": "compatible_solutes", "target": "osmotic_stress"}, {"description": "Uptake systems can accumulate compatible solutes for salt adaptation.", "evidence": [{"notes": "Review supports accumulation of organic osmotic solutes in bacterial osmoadaptation.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "organic osmotic solutes"}], "id": "edge-4", "is_orphan": false, "predicate": "accumulates", "predicate_id": "METPO:2007810", "source": "osmoprotectant_transport", "target": "compatible_solutes"}, {"description": "The ect gene cluster encodes the enzymes that carry out ectoine biosynthesis.", "evidence": [{"notes": "ectoine biosynthesis genes are denoted by ectABC; ectBACD up-regulated as an osmoadaptation system.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-5", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ect_gene_cluster", "target": "ectoine_biosynthesis"}, {"description": "Ectoine biosynthesis produces the compatible solute ectoine.", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte via the ectABC pathway.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-6", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "ectoine_biosynthesis", "target": "ectoine"}, {"description": "Accumulation of ectoine as a compatible solute increases salt tolerance.", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte while the ectABC-deleted strain is salt-sensitive.", "reference": "DOI:10.1128/aem.01905-23"}], "id": "edge-7", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "ectoine", "target": "slightly_halophilic_trait"}, {"description": "Uptake of compatible solutes is a general salt-out osmoadaptation strategy that raises salt tolerance.", "evidence": [{"notes": "Salt-out strategists exclude salt and/or synthesize or uptake compatible solutes (e.g. glycine betaine); dominant strategy in many halophilic bacteria.", "reference": "DOI:10.1093/femsre/fuy026"}], "id": "edge-8", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "osmoprotectant_transport", "target": "slightly_halophilic_trait"}, {"description": "Coordinated induction of Na+/K+ transcription supports ion homeostasis during salt stress.", "evidence": [{"notes": "Coordinated induction of Na+/K+ transcription and ectoine, proline, and betaine biosynthesis under salt stress.", "reference": "DOI:10.1038/s42003-022-04319-3"}], "id": "edge-9", "is_orphan": false, "predicate": "supports", "predicate_id": null, "source": "na_k_transcription", "target": "ion_homeostasis"}], "evidence_rows": [{"description": "Slight halophily is a salt-growth preference at lower salinity than moderate or extreme halophily.", "edge_id": "edge-1", "evidence": [{"notes": "Review supports halophily as a continuum of salt growth requirements.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "minimum salt concentration required for growth"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "low to moderate NaCl", "target": "slightly halophilic"}, {"description": "Even lower salinity preferences involve osmotic adjustment to environmental salt.", "edge_id": "edge-2", "evidence": [{"notes": "Review describes growth in relation to minimum, optimum, and upper salt limits.", "reference": "DOI:10.1186/1746-1448-4-2", "snippet": "salt relationships"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low to moderate NaCl", "target": "osmotic stress"}, {"description": "Compatible solutes provide osmotic balance without disrupting metabolism.", "edge_id": "edge-3", "evidence": [{"notes": "Supports compatible solutes as non-disruptive osmoprotectants.", "reference": "DOI:10.1371/journal.pone.0168818", "snippet": "do not disturb the cell\u0027s metabolism"}], "predicate": "mitigates", "predicate_id": "METPO:2007407", "source": "compatible solutes", "target": "osmotic stress"}, {"description": "Uptake systems can accumulate compatible solutes for salt adaptation.", "edge_id": "edge-4", "evidence": [{"notes": "Review supports accumulation of organic osmotic solutes in bacterial osmoadaptation.", "reference": "DOI:10.1093/femsre/fuy009", "snippet": "organic osmotic solutes"}], "predicate": "accumulates", "predicate_id": "METPO:2007810", "source": "osmoprotectant transport", "target": "compatible solutes"}, {"description": "The ect gene cluster encodes the enzymes that carry out ectoine biosynthesis.", "edge_id": "edge-5", "evidence": [{"notes": "ectoine biosynthesis genes are denoted by ectABC; ectBACD up-regulated as an osmoadaptation system.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "ectABC/ectBACD gene cluster", "target": "ectoine biosynthesis"}, {"description": "Ectoine biosynthesis produces the compatible solute ectoine.", "edge_id": "edge-6", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte via the ectABC pathway.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "ectoine biosynthesis", "target": "ectoine"}, {"description": "Accumulation of ectoine as a compatible solute increases salt tolerance.", "edge_id": "edge-7", "evidence": [{"notes": "Wild-type accumulates ectoine as its major osmolyte while the ectABC-deleted strain is salt-sensitive.", "reference": "DOI:10.1128/aem.01905-23"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "ectoine", "target": "slightly halophilic"}, {"description": "Uptake of compatible solutes is a general salt-out osmoadaptation strategy that raises salt tolerance.", "edge_id": "edge-8", "evidence": [{"notes": "Salt-out strategists exclude salt and/or synthesize or uptake compatible solutes (e.g. glycine betaine); dominant strategy in many halophilic bacteria.", "reference": "DOI:10.1093/femsre/fuy026"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "osmoprotectant transport", "target": "slightly halophilic"}, {"description": "Coordinated induction of Na+/K+ transcription supports ion homeostasis during salt stress.", "edge_id": "edge-9", "evidence": [{"notes": "Coordinated induction of Na+/K+ transcription and ectoine, proline, and betaine biosynthesis under salt stress.", "reference": "DOI:10.1038/s42003-022-04319-3"}], "predicate": "supports", "predicate_id": null, "source": "Na+/K+ transcriptional induction", "target": "ion homeostasis during salt stress"}], "graph_id": "slight_halophile_low_salt_osmoadaptation", "issues": [], "nodes": [{"color": "#fef3c7", "description": "Organic osmoprotectants accumulated or synthesized in response to salt.", "grounding": "CHEBI:25728", "id": "compatible_solutes", "is_orphan": false, "label": "compatible solutes", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Ectoine biosynthesis operon encoding the ectoine pathway enzymes.", "grounding": null, "id": "ect_gene_cluster", "is_orphan": false, "label": "ectABC/ectBACD gene cluster", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#fef3c7", "description": "A major compatible solute (osmolyte) accumulated under salt stress.", "grounding": "CHEBI:27592", "id": "ectoine", "is_orphan": false, "label": "ectoine", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Biosynthesis of the compatible solute ectoine via the ectABC/ectBACD pathway.", "grounding": "GO:0019491", "id": "ectoine_biosynthesis", "is_orphan": false, "label": "ectoine biosynthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Maintenance of Na+/K+ balance under salt stress.", "grounding": null, "id": "ion_homeostasis", "is_orphan": false, "label": "ion homeostasis during salt stress", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dcfce7", "description": "Salinity range below that of moderate and extreme halophiles.", "grounding": null, "id": "low_moderate_nacl", "is_orphan": false, "label": "low to moderate NaCl", "node_type": "ENVIRONMENTAL_FACTOR", "xrefs": []}, {"color": "#ecfccb", "description": "Coordinated induction of sodium/potassium transport transcription under salt stress.", "grounding": null, "id": "na_k_transcription", "is_orphan": false, "label": "Na+/K+ transcriptional induction", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#cffafe", "description": "Uptake of compatible solutes such as glycine betaine.", "grounding": null, "id": "osmoprotectant_transport", "is_orphan": false, "label": "osmoprotectant transport", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Osmotic challenge caused by environmental salt.", "grounding": "GO:0006970", "id": "osmotic_stress", "is_orphan": false, "label": "osmotic stress", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Optimal growth requires low to moderate salt concentrations.", "grounding": "METPO:1000625", "id": "slightly_halophilic_trait", "is_orphan": false, "label": "slightly halophilic", "node_type": "TRAIT", "xrefs": []}], "title": "Slight halophile low-salt osmoadaptation mechanism"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -891,7 +897,7 @@
- Record as of 2026-08-06 02:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/morphology/non_spore_forming.html b/pages/traits/morphology/non_spore_forming.html
index d0647189..56b13616 100644
--- a/pages/traits/morphology/non_spore_forming.html
+++ b/pages/traits/morphology/non_spore_forming.html
@@ -144,7 +144,7 @@
Edge evidence
low or absent Spo0A activitycauses
- loss of sporulation capacity
+ non-spore formingbiolink:causes
Low or absent Spo0A activity abolishes sporulation capacity.
@@ -159,23 +159,6 @@
Edge evidence
- loss of sporulation capacity
- manifests as
- non-spore forming
- METPO:2007400
-
Loss of sporulation capacity manifests the non-spore-forming phenotype.
-
-
-
- DOI:10.3389/fmicb.2021.630573
-
- Failure to produce/activate Spo0A prevents sporulation, yielding the non-spore-forming trait.
-
-
-
-
-
-
Rap phosphatasesdephosphorylatesdephosphorylation of Spo0F
@@ -192,7 +175,7 @@
Edge evidence
-
+
dephosphorylation of Spo0Fdecreases activation oflow or absent Spo0A activity
@@ -209,7 +192,7 @@
Edge evidence
-
+
Spo0A phosphorelay disruptionpreventsno entry into sporulation
@@ -226,7 +209,7 @@
Edge evidence
-
+
no entry into sporulationmanifests asnon-spore forming
@@ -496,6 +479,12 @@
Curation history
Grounded 5 causal-edge predicate_id field(s) via mappings/predicate_grounding.tsv (biolink:causes×2, METPO:2007400×2, RO:0002212×1).
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node loss_sporulation_capacity into non_spore_forming_trait and repointed its edges. Issue 352. 'Loss of the capacity to undergo sporulation' IS the record's own trait (METPO:1000872, non-spore forming), so the only correct grounding duplicates the anchor. Collapsing leaves low_spo0a_activity -causes-> non_spore_forming_trait, which is the shape loss_sporulation_genes already uses in this graph.
+
+
@@ -853,7 +842,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "DOI-backed graph linking absence or non-functionality of the Spo0A-initiated sporulation regulatory cascade to inability to form endospores.", "edges": [{"description": "Without the Spo0A/sigma cascade, asymmetric septation cannot be initiated.", "evidence": [{"notes": "Supports the Spo0A/sigma cascade as the gatekeeper of sporulation morphogenesis.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "id": "edge-1", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "absent_spo0a_cascade", "target": "no_asymmetric_septation"}, {"description": "Without asymmetric septation, the forespore compartment and subsequent endospore cannot be produced.", "evidence": [{"notes": "Supports asymmetric septation as a required step for endospore formation.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "id": "edge-2", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "no_asymmetric_septation", "target": "no_endospore_formation"}, {"description": "Failure to produce endospores manifests the non-spore-forming trait.", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1155/2013/898106", "snippet": "S. aureus does not form spores"}], "id": "edge-3", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no_endospore_formation", "target": "non_spore_forming_trait"}, {"description": "Absence of spo0A is an excellent predictor of inability to sporulate.", "evidence": [{"notes": "Comparative genomics of 180 genomes: spo0A present in all 76 sporeformers; its absence predicts non-sporulation.", "reference": "DOI:10.1128/jb.00079-22"}], "id": "edge-4", "is_orphan": false, "predicate": "predicts", "predicate_id": null, "source": "absent_spo0a_gene", "target": "non_spore_forming_trait"}, {"description": "Loss of a considerable fraction of sporulation genes yields an asporogenic phenotype.", "evidence": [{"notes": "Asporogenic phenotypes can result from inactivation or loss of a considerable fraction of sporulation genes (generic edge).", "reference": "DOI:10.1111/1462-2920.16145"}], "id": "edge-5", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "loss_sporulation_genes", "target": "non_spore_forming_trait"}, {"description": "Low or absent Spo0A activity abolishes sporulation capacity.", "evidence": [{"notes": "Spo0A is the master regulator of endospore formation; elevated Spo0A~P is required to trigger sporulation.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "id": "edge-6", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_spo0a_activity", "target": "loss_sporulation_capacity"}, {"description": "Loss of sporulation capacity manifests the non-spore-forming phenotype.", "evidence": [{"notes": "Failure to produce/activate Spo0A prevents sporulation, yielding the non-spore-forming trait.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "id": "edge-7", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "loss_sporulation_capacity", "target": "non_spore_forming_trait"}, {"description": "Rap phosphatases directly dephosphorylate Spo0F.", "evidence": [{"notes": "Rap phosphatases directly dephosphorylate Spo0F (generic to Bacillus phosphorelay logic).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "id": "edge-8", "is_orphan": false, "predicate": "dephosphorylates", "predicate_id": null, "source": "rap_phosphatases", "target": "spo0f_dephosphorylation"}, {"description": "Dephosphorylation of Spo0F reduces phosphate flow to Spo0A, decreasing its activation.", "evidence": [{"notes": "Reduced phosphate flow to Spo0A in the sporulation phosphorelay (corroborated by DOI:10.3390/microorganisms11081928).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "id": "edge-9", "is_orphan": false, "predicate": "decreases activation of", "predicate_id": null, "source": "spo0f_dephosphorylation", "target": "low_spo0a_activity"}, {"description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay arrests entry into sporulation.", "evidence": [{"notes": "The phosphorelay signals the start of sporulation; mutants arrest at stages 0/I when initiation fails.", "reference": "DOI:10.3390/microorganisms11081928"}], "id": "edge-10", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "phosphorelay_disruption", "target": "no_sporulation_entry"}, {"description": "Failure to enter sporulation manifests the non-spore-forming phenotype.", "evidence": [{"notes": "Arrest at sporulation initiation produces the non-spore-forming endpoint.", "reference": "DOI:10.3390/microorganisms11081928"}], "id": "edge-11", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no_sporulation_entry", "target": "non_spore_forming_trait"}], "evidence_rows": [{"description": "Without the Spo0A/sigma cascade, asymmetric septation cannot be initiated.", "edge_id": "edge-1", "evidence": [{"notes": "Supports the Spo0A/sigma cascade as the gatekeeper of sporulation morphogenesis.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "absent Spo0A regulatory cascade", "target": "no asymmetric septation"}, {"description": "Without asymmetric septation, the forespore compartment and subsequent endospore cannot be produced.", "edge_id": "edge-2", "evidence": [{"notes": "Supports asymmetric septation as a required step for endospore formation.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "no asymmetric septation", "target": "no endospore formation"}, {"description": "Failure to produce endospores manifests the non-spore-forming trait.", "edge_id": "edge-3", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1155/2013/898106", "snippet": "S. aureus does not form spores"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no endospore formation", "target": "non-spore forming"}, {"description": "Absence of spo0A is an excellent predictor of inability to sporulate.", "edge_id": "edge-4", "evidence": [{"notes": "Comparative genomics of 180 genomes: spo0A present in all 76 sporeformers; its absence predicts non-sporulation.", "reference": "DOI:10.1128/jb.00079-22"}], "predicate": "predicts", "predicate_id": null, "source": "absence of spo0A gene", "target": "non-spore forming"}, {"description": "Loss of a considerable fraction of sporulation genes yields an asporogenic phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Asporogenic phenotypes can result from inactivation or loss of a considerable fraction of sporulation genes (generic edge).", "reference": "DOI:10.1111/1462-2920.16145"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "loss of sporulation genes", "target": "non-spore forming"}, {"description": "Low or absent Spo0A activity abolishes sporulation capacity.", "edge_id": "edge-6", "evidence": [{"notes": "Spo0A is the master regulator of endospore formation; elevated Spo0A~P is required to trigger sporulation.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low or absent Spo0A activity", "target": "loss of sporulation capacity"}, {"description": "Loss of sporulation capacity manifests the non-spore-forming phenotype.", "edge_id": "edge-7", "evidence": [{"notes": "Failure to produce/activate Spo0A prevents sporulation, yielding the non-spore-forming trait.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "loss of sporulation capacity", "target": "non-spore forming"}, {"description": "Rap phosphatases directly dephosphorylate Spo0F.", "edge_id": "edge-8", "evidence": [{"notes": "Rap phosphatases directly dephosphorylate Spo0F (generic to Bacillus phosphorelay logic).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "predicate": "dephosphorylates", "predicate_id": null, "source": "Rap phosphatases", "target": "dephosphorylation of Spo0F"}, {"description": "Dephosphorylation of Spo0F reduces phosphate flow to Spo0A, decreasing its activation.", "edge_id": "edge-9", "evidence": [{"notes": "Reduced phosphate flow to Spo0A in the sporulation phosphorelay (corroborated by DOI:10.3390/microorganisms11081928).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "predicate": "decreases activation of", "predicate_id": null, "source": "dephosphorylation of Spo0F", "target": "low or absent Spo0A activity"}, {"description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay arrests entry into sporulation.", "edge_id": "edge-10", "evidence": [{"notes": "The phosphorelay signals the start of sporulation; mutants arrest at stages 0/I when initiation fails.", "reference": "DOI:10.3390/microorganisms11081928"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "Spo0A phosphorelay disruption", "target": "no entry into sporulation"}, {"description": "Failure to enter sporulation manifests the non-spore-forming phenotype.", "edge_id": "edge-11", "evidence": [{"notes": "Arrest at sporulation initiation produces the non-spore-forming endpoint.", "reference": "DOI:10.3390/microorganisms11081928"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no entry into sporulation", "target": "non-spore forming"}], "graph_id": "non_spore_forming_absent_spo0a_cascade", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Absence or non-functionality of the Spo0A-initiated sporulation regulatory program (Spo0A master regulator and downstream sigma factors).", "grounding": null, "id": "absent_spo0a_cascade", "is_orphan": false, "label": "absent Spo0A regulatory cascade", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Lack of the spo0A master regulator gene; an excellent predictor of inability to sporulate.", "grounding": null, "id": "absent_spo0a_gene", "is_orphan": false, "label": "absence of spo0A gene", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3f4f6", "description": "Loss of the capacity to undergo sporulation.", "grounding": null, "id": "loss_sporulation_capacity", "is_orphan": false, "label": "loss of sporulation capacity", "node_type": "CAPACITY", "xrefs": []}, {"color": "#ecfccb", "description": "Inactivation or loss of a considerable fraction of core sporulation genes.", "grounding": null, "id": "loss_sporulation_genes", "is_orphan": false, "label": "loss of sporulation genes", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#cffafe", "description": "Reduced or absent activity of the Spo0A master regulator of endospore formation.", "grounding": null, "id": "low_spo0a_activity", "is_orphan": false, "label": "low or absent Spo0A activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Lack of the polar division step that generates a forespore compartment.", "grounding": null, "id": "no_asymmetric_septation", "is_orphan": false, "label": "no asymmetric septation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Failure to produce a dormant, resistant endospore.", "grounding": null, "id": "no_endospore_formation", "is_orphan": false, "label": "no endospore formation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Failure to enter the sporulation developmental program (arrest at stages 0/I).", "grounding": null, "id": "no_sporulation_entry", "is_orphan": false, "label": "no entry into sporulation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Inability to produce endospores.", "grounding": "METPO:1000872", "id": "non_spore_forming_trait", "is_orphan": false, "label": "non-spore forming", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay that initiates sporulation.", "grounding": null, "id": "phosphorelay_disruption", "is_orphan": false, "label": "Spo0A phosphorelay disruption", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Rap family phosphatases that dephosphorylate Spo0F in the sporulation phosphorelay.", "grounding": null, "id": "rap_phosphatases", "is_orphan": false, "label": "Rap phosphatases", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Dephosphorylation of Spo0F reducing phosphate flow to Spo0A in the phosphorelay.", "grounding": null, "id": "spo0f_dephosphorylation", "is_orphan": false, "label": "dephosphorylation of Spo0F", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}], "title": "Non-spore-forming absent Spo0A cascade"}];
+ var graphs = [{"description": "DOI-backed graph linking absence or non-functionality of the Spo0A-initiated sporulation regulatory cascade to inability to form endospores.", "edges": [{"description": "Without the Spo0A/sigma cascade, asymmetric septation cannot be initiated.", "evidence": [{"notes": "Supports the Spo0A/sigma cascade as the gatekeeper of sporulation morphogenesis.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "id": "edge-1", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "absent_spo0a_cascade", "target": "no_asymmetric_septation"}, {"description": "Without asymmetric septation, the forespore compartment and subsequent endospore cannot be produced.", "evidence": [{"notes": "Supports asymmetric septation as a required step for endospore formation.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "id": "edge-2", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "no_asymmetric_septation", "target": "no_endospore_formation"}, {"description": "Failure to produce endospores manifests the non-spore-forming trait.", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1155/2013/898106", "snippet": "S. aureus does not form spores"}], "id": "edge-3", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no_endospore_formation", "target": "non_spore_forming_trait"}, {"description": "Absence of spo0A is an excellent predictor of inability to sporulate.", "evidence": [{"notes": "Comparative genomics of 180 genomes: spo0A present in all 76 sporeformers; its absence predicts non-sporulation.", "reference": "DOI:10.1128/jb.00079-22"}], "id": "edge-4", "is_orphan": false, "predicate": "predicts", "predicate_id": null, "source": "absent_spo0a_gene", "target": "non_spore_forming_trait"}, {"description": "Loss of a considerable fraction of sporulation genes yields an asporogenic phenotype.", "evidence": [{"notes": "Asporogenic phenotypes can result from inactivation or loss of a considerable fraction of sporulation genes (generic edge).", "reference": "DOI:10.1111/1462-2920.16145"}], "id": "edge-5", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "loss_sporulation_genes", "target": "non_spore_forming_trait"}, {"description": "Low or absent Spo0A activity abolishes sporulation capacity.", "evidence": [{"notes": "Spo0A is the master regulator of endospore formation; elevated Spo0A~P is required to trigger sporulation.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "id": "edge-6", "is_orphan": false, "predicate": "causes", "predicate_id": "biolink:causes", "source": "low_spo0a_activity", "target": "non_spore_forming_trait"}, {"description": "Rap phosphatases directly dephosphorylate Spo0F.", "evidence": [{"notes": "Rap phosphatases directly dephosphorylate Spo0F (generic to Bacillus phosphorelay logic).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "id": "edge-7", "is_orphan": false, "predicate": "dephosphorylates", "predicate_id": null, "source": "rap_phosphatases", "target": "spo0f_dephosphorylation"}, {"description": "Dephosphorylation of Spo0F reduces phosphate flow to Spo0A, decreasing its activation.", "evidence": [{"notes": "Reduced phosphate flow to Spo0A in the sporulation phosphorelay (corroborated by DOI:10.3390/microorganisms11081928).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "id": "edge-8", "is_orphan": false, "predicate": "decreases activation of", "predicate_id": null, "source": "spo0f_dephosphorylation", "target": "low_spo0a_activity"}, {"description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay arrests entry into sporulation.", "evidence": [{"notes": "The phosphorelay signals the start of sporulation; mutants arrest at stages 0/I when initiation fails.", "reference": "DOI:10.3390/microorganisms11081928"}], "id": "edge-9", "is_orphan": false, "predicate": "prevents", "predicate_id": "RO:0002212", "source": "phosphorelay_disruption", "target": "no_sporulation_entry"}, {"description": "Failure to enter sporulation manifests the non-spore-forming phenotype.", "evidence": [{"notes": "Arrest at sporulation initiation produces the non-spore-forming endpoint.", "reference": "DOI:10.3390/microorganisms11081928"}], "id": "edge-10", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no_sporulation_entry", "target": "non_spore_forming_trait"}], "evidence_rows": [{"description": "Without the Spo0A/sigma cascade, asymmetric septation cannot be initiated.", "edge_id": "edge-1", "evidence": [{"notes": "Supports the Spo0A/sigma cascade as the gatekeeper of sporulation morphogenesis.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "absent Spo0A regulatory cascade", "target": "no asymmetric septation"}, {"description": "Without asymmetric septation, the forespore compartment and subsequent endospore cannot be produced.", "edge_id": "edge-2", "evidence": [{"notes": "Supports asymmetric septation as a required step for endospore formation.", "reference": "DOI:10.1146/annurev.genet.30.1.297", "snippet": "activation of these sigma factors to landmark events in morphogenesis"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "no asymmetric septation", "target": "no endospore formation"}, {"description": "Failure to produce endospores manifests the non-spore-forming trait.", "edge_id": "edge-3", "evidence": [{"notes": "Supports the trait endpoint in a representative organism.", "reference": "DOI:10.1155/2013/898106", "snippet": "S. aureus does not form spores"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no endospore formation", "target": "non-spore forming"}, {"description": "Absence of spo0A is an excellent predictor of inability to sporulate.", "edge_id": "edge-4", "evidence": [{"notes": "Comparative genomics of 180 genomes: spo0A present in all 76 sporeformers; its absence predicts non-sporulation.", "reference": "DOI:10.1128/jb.00079-22"}], "predicate": "predicts", "predicate_id": null, "source": "absence of spo0A gene", "target": "non-spore forming"}, {"description": "Loss of a considerable fraction of sporulation genes yields an asporogenic phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Asporogenic phenotypes can result from inactivation or loss of a considerable fraction of sporulation genes (generic edge).", "reference": "DOI:10.1111/1462-2920.16145"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "loss of sporulation genes", "target": "non-spore forming"}, {"description": "Low or absent Spo0A activity abolishes sporulation capacity.", "edge_id": "edge-6", "evidence": [{"notes": "Spo0A is the master regulator of endospore formation; elevated Spo0A~P is required to trigger sporulation.", "reference": "DOI:10.3389/fmicb.2021.630573"}], "predicate": "causes", "predicate_id": "biolink:causes", "source": "low or absent Spo0A activity", "target": "non-spore forming"}, {"description": "Rap phosphatases directly dephosphorylate Spo0F.", "edge_id": "edge-7", "evidence": [{"notes": "Rap phosphatases directly dephosphorylate Spo0F (generic to Bacillus phosphorelay logic).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "predicate": "dephosphorylates", "predicate_id": null, "source": "Rap phosphatases", "target": "dephosphorylation of Spo0F"}, {"description": "Dephosphorylation of Spo0F reduces phosphate flow to Spo0A, decreasing its activation.", "edge_id": "edge-8", "evidence": [{"notes": "Reduced phosphate flow to Spo0A in the sporulation phosphorelay (corroborated by DOI:10.3390/microorganisms11081928).", "reference": "DOI:10.1038/s41522-024-00594-6"}], "predicate": "decreases activation of", "predicate_id": null, "source": "dephosphorylation of Spo0F", "target": "low or absent Spo0A activity"}, {"description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay arrests entry into sporulation.", "edge_id": "edge-9", "evidence": [{"notes": "The phosphorelay signals the start of sporulation; mutants arrest at stages 0/I when initiation fails.", "reference": "DOI:10.3390/microorganisms11081928"}], "predicate": "prevents", "predicate_id": "RO:0002212", "source": "Spo0A phosphorelay disruption", "target": "no entry into sporulation"}, {"description": "Failure to enter sporulation manifests the non-spore-forming phenotype.", "edge_id": "edge-10", "evidence": [{"notes": "Arrest at sporulation initiation produces the non-spore-forming endpoint.", "reference": "DOI:10.3390/microorganisms11081928"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "no entry into sporulation", "target": "non-spore forming"}], "graph_id": "non_spore_forming_absent_spo0a_cascade", "issues": [], "nodes": [{"color": "#ecfccb", "description": "Absence or non-functionality of the Spo0A-initiated sporulation regulatory program (Spo0A master regulator and downstream sigma factors).", "grounding": null, "id": "absent_spo0a_cascade", "is_orphan": false, "label": "absent Spo0A regulatory cascade", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Lack of the spo0A master regulator gene; an excellent predictor of inability to sporulate.", "grounding": null, "id": "absent_spo0a_gene", "is_orphan": false, "label": "absence of spo0A gene", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Inactivation or loss of a considerable fraction of core sporulation genes.", "grounding": null, "id": "loss_sporulation_genes", "is_orphan": false, "label": "loss of sporulation genes", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#cffafe", "description": "Reduced or absent activity of the Spo0A master regulator of endospore formation.", "grounding": null, "id": "low_spo0a_activity", "is_orphan": false, "label": "low or absent Spo0A activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Lack of the polar division step that generates a forespore compartment.", "grounding": null, "id": "no_asymmetric_septation", "is_orphan": false, "label": "no asymmetric septation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Failure to produce a dormant, resistant endospore.", "grounding": null, "id": "no_endospore_formation", "is_orphan": false, "label": "no endospore formation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Failure to enter the sporulation developmental program (arrest at stages 0/I).", "grounding": null, "id": "no_sporulation_entry", "is_orphan": false, "label": "no entry into sporulation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Inability to produce endospores.", "grounding": "METPO:1000872", "id": "non_spore_forming_trait", "is_orphan": false, "label": "non-spore forming", "node_type": "TRAIT", "xrefs": []}, {"color": "#ecfccb", "description": "Disruption of the KinA/KinB -\u003e Spo0F -\u003e Spo0B -\u003e Spo0A phosphorelay that initiates sporulation.", "grounding": null, "id": "phosphorelay_disruption", "is_orphan": false, "label": "Spo0A phosphorelay disruption", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Rap family phosphatases that dephosphorylate Spo0F in the sporulation phosphorelay.", "grounding": null, "id": "rap_phosphatases", "is_orphan": false, "label": "Rap phosphatases", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Dephosphorylation of Spo0F reducing phosphate flow to Spo0A in the phosphorelay.", "grounding": null, "id": "spo0f_dephosphorylation", "is_orphan": false, "label": "dephosphorylation of Spo0F", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}], "title": "Non-spore-forming absent Spo0A cascade"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -876,7 +865,7 @@
- Record as of 2026-06-24 17:21 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/morphology/sphere_shaped.html b/pages/traits/morphology/sphere_shaped.html
index 4a500491..7c943068 100644
--- a/pages/traits/morphology/sphere_shaped.html
+++ b/pages/traits/morphology/sphere_shaped.html
@@ -144,7 +144,7 @@
Edge ftsW_flippase -> lipid_ii in graph sphere_shaped_septal_peptidoglycan: re-grounded it from enables/RO:0002327 to transports/METPO:2007812. Issue 334. biolink declares enables range 'biological process or activity', which of CausalNodeTypeEnum only BIOLOGICAL_PROCESS, PATHWAY and MOLECULAR_FUNCTION satisfy, so this edge entailed a false type on its object. 'FtsW FLIPS lipid II to the outer septal face' -- a flippase moves its substrate across the membrane, which is transport, not enablement. Needs GENE_OR_PROTEIN added to `transports`' subject_types, which is a deliberate widening recorded there.
+
+ ·
+ MERGE_CAUSAL_NODE · claude
+
Merged node elongation_capacity into lateral_elongation and repointed its edges. Issue 352. 'Capacity of a cell to elongate into a rod via sidewall growth' against lateral_elongation's 'Sidewall growth mode that lengthens rods' -- the same claim twice, and both already carried `reduced in -> sphere_shaped_trait`.
+
+
@@ -877,7 +866,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "Evidence-backed causal sketch linking spherical cell shape to FtsZ-associated septal synthesis, peptidoglycan remodeling, and limited lateral elongation.", "edges": [{"description": "The FtsZ division ring organizes septal wall synthesis.", "evidence": [{"notes": "Supports FtsZ-PBP cooperation in division-associated shape generation.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "FtsZ collaborates with penicillin binding proteins"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ftsZ_division_ring", "target": "septal_peptidoglycan_synthesis"}, {"description": "Septal synthesis builds and remodels the spherical cell wall.", "evidence": [{"notes": "Supports septal-only PG synthesis in spherical cocci.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "synthesize peptidoglycan only at the division septum"}], "id": "edge-2", "is_orphan": false, "predicate": "builds", "predicate_id": "biolink:produces", "source": "septal_peptidoglycan_synthesis", "target": "peptidoglycan_cell_wall"}, {"description": "Reduced lateral elongation helps preserve a sphere rather than a rod.", "evidence": [{"notes": "Broad review supports different growth mechanisms for coccoid versus rod-shaped bacteria.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "mechanisms controlling growth and division of coccoid bacteria"}], "id": "edge-3", "is_orphan": false, "predicate": "reduced in", "predicate_id": null, "source": "lateral_elongation", "target": "sphere_shaped_trait"}, {"description": "Peptidoglycan wall geometry maintains the spherical shape.", "evidence": [{"notes": "Supports the cell wall as central to bacterial shape maintenance.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "primary role in maintaining cell shape"}], "id": "edge-4", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "peptidoglycan_cell_wall", "target": "sphere_shaped_trait"}, {"description": "Septal-only peptidoglycan synthesis in cocci produces spherical morphology.", "evidence": [{"notes": "spherical cocci synthesize peptidoglycan only at the division septum", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-5", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "septal_peptidoglycan_synthesis", "target": "sphere_shaped_trait"}, {"description": "Loss of the MreB cytoskeleton removes the elongation capacity that lengthens rods.", "evidence": [{"notes": "loss of the MreB cytoskeleton is the main factor that prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-6", "is_orphan": false, "predicate": "causally upstream of", "predicate_id": null, "source": "mreB_elongation_machinery", "target": "elongation_capacity"}, {"description": "Loss of elongation capacity prevents cocci from elongating into rods, favoring a sphere.", "evidence": [{"notes": "prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-7", "is_orphan": false, "predicate": "reduced in", "predicate_id": null, "source": "elongation_capacity", "target": "sphere_shaped_trait"}, {"description": "FtsZ assembly into a mid-cell Z ring recruits PBPs and divisome components.", "evidence": [{"notes": "cell division is initiated by FtsZ assembly into a mid-cell Z ring that recruits PBPs and divisome components", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-8", "is_orphan": false, "predicate": "recruits", "predicate_id": null, "source": "ftsZ_division_ring", "target": "divisome_pbps"}, {"description": "FtsZ treadmilling distributes the PG synthases that form the septum.", "evidence": [{"notes": "The FtsZ polymers undergo treadmilling around the Z-ring to distribute the PG synthases forming the septum", "reference": "DOI:10.1042/bsr20221664"}], "id": "edge-9", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "ftsZ_treadmilling", "target": "septal_peptidoglycan_synthesis"}, {"description": "FtsW flips lipid II to the outer septal face for PG synthesis.", "evidence": [{"notes": "lipid II is flipped to the outside by the septally localized flippase FtsW", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-10", "is_orphan": false, "predicate": "transports", "predicate_id": "METPO:2007812", "source": "ftsW_flippase", "target": "lipid_ii"}, {"description": "Lipid II serves as the PBP substrate for septal peptidoglycan synthesis.", "evidence": [{"notes": "PG synthesis uses lipid II as the PBP substrate", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-11", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "lipid_ii", "target": "septal_peptidoglycan_synthesis"}], "evidence_rows": [{"description": "The FtsZ division ring organizes septal wall synthesis.", "edge_id": "edge-1", "evidence": [{"notes": "Supports FtsZ-PBP cooperation in division-associated shape generation.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "FtsZ collaborates with penicillin binding proteins"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "FtsZ division ring", "target": "septal peptidoglycan synthesis"}, {"description": "Septal synthesis builds and remodels the spherical cell wall.", "edge_id": "edge-2", "evidence": [{"notes": "Supports septal-only PG synthesis in spherical cocci.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "synthesize peptidoglycan only at the division septum"}], "predicate": "builds", "predicate_id": "biolink:produces", "source": "septal peptidoglycan synthesis", "target": "peptidoglycan cell wall"}, {"description": "Reduced lateral elongation helps preserve a sphere rather than a rod.", "edge_id": "edge-3", "evidence": [{"notes": "Broad review supports different growth mechanisms for coccoid versus rod-shaped bacteria.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "mechanisms controlling growth and division of coccoid bacteria"}], "predicate": "reduced in", "predicate_id": null, "source": "lateral cell-wall elongation", "target": "sphere shaped"}, {"description": "Peptidoglycan wall geometry maintains the spherical shape.", "edge_id": "edge-4", "evidence": [{"notes": "Supports the cell wall as central to bacterial shape maintenance.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "primary role in maintaining cell shape"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "peptidoglycan cell wall", "target": "sphere shaped"}, {"description": "Septal-only peptidoglycan synthesis in cocci produces spherical morphology.", "edge_id": "edge-5", "evidence": [{"notes": "spherical cocci synthesize peptidoglycan only at the division septum", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "septal peptidoglycan synthesis", "target": "sphere shaped"}, {"description": "Loss of the MreB cytoskeleton removes the elongation capacity that lengthens rods.", "edge_id": "edge-6", "evidence": [{"notes": "loss of the MreB cytoskeleton is the main factor that prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "causally upstream of", "predicate_id": null, "source": "MreB-mediated elongation machinery", "target": "elongation capacity"}, {"description": "Loss of elongation capacity prevents cocci from elongating into rods, favoring a sphere.", "edge_id": "edge-7", "evidence": [{"notes": "prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "reduced in", "predicate_id": null, "source": "elongation capacity", "target": "sphere shaped"}, {"description": "FtsZ assembly into a mid-cell Z ring recruits PBPs and divisome components.", "edge_id": "edge-8", "evidence": [{"notes": "cell division is initiated by FtsZ assembly into a mid-cell Z ring that recruits PBPs and divisome components", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "recruits", "predicate_id": null, "source": "FtsZ division ring", "target": "divisome and PBPs"}, {"description": "FtsZ treadmilling distributes the PG synthases that form the septum.", "edge_id": "edge-9", "evidence": [{"notes": "The FtsZ polymers undergo treadmilling around the Z-ring to distribute the PG synthases forming the septum", "reference": "DOI:10.1042/bsr20221664"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "FtsZ treadmilling", "target": "septal peptidoglycan synthesis"}, {"description": "FtsW flips lipid II to the outer septal face for PG synthesis.", "edge_id": "edge-10", "evidence": [{"notes": "lipid II is flipped to the outside by the septally localized flippase FtsW", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "transports", "predicate_id": "METPO:2007812", "source": "FtsW lipid II flippase", "target": "lipid II"}, {"description": "Lipid II serves as the PBP substrate for septal peptidoglycan synthesis.", "edge_id": "edge-11", "evidence": [{"notes": "PG synthesis uses lipid II as the PBP substrate", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "lipid II", "target": "septal peptidoglycan synthesis"}], "graph_id": "sphere_shaped_septal_peptidoglycan", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Division machinery and penicillin-binding proteins recruited to mid-cell.", "grounding": null, "id": "divisome_pbps", "is_orphan": false, "label": "divisome and PBPs", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3f4f6", "description": "Capacity of a cell to elongate into a rod via sidewall growth.", "grounding": null, "id": "elongation_capacity", "is_orphan": false, "label": "elongation capacity", "node_type": "CAPACITY", "xrefs": []}, {"color": "#f3e8ff", "description": "Septally localized flippase that translocates lipid II across the membrane.", "grounding": null, "id": "ftsW_flippase", "is_orphan": false, "label": "FtsW lipid II flippase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3e8ff", "description": "Tubulin-like division scaffold.", "grounding": null, "id": "ftsZ_division_ring", "is_orphan": false, "label": "FtsZ division ring", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Treadmilling of FtsZ polymers distributing PG synthases around the Z-ring.", "grounding": null, "id": "ftsZ_treadmilling", "is_orphan": false, "label": "FtsZ treadmilling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Sidewall growth mode that lengthens rods.", "grounding": null, "id": "lateral_elongation", "is_orphan": false, "label": "lateral cell-wall elongation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Membrane-bound peptidoglycan precursor and PBP substrate.", "grounding": "CHEBI:27692", "id": "lipid_ii", "is_orphan": false, "label": "lipid II", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Actin-like MreB cytoskeleton directing lateral (rod) elongation.", "grounding": null, "id": "mreB_elongation_machinery", "is_orphan": false, "label": "MreB-mediated elongation machinery", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ede9fe", "description": "Cell-wall polymer network maintaining bacterial shape.", "grounding": "GO:0009274", "id": "peptidoglycan_cell_wall", "is_orphan": false, "label": "peptidoglycan cell wall", "node_type": "CELLULAR_LOCALIZATION", "xrefs": []}, {"color": "#ecfccb", "description": "Cell-wall synthesis localized to the division septum.", "grounding": null, "id": "septal_peptidoglycan_synthesis", "is_orphan": false, "label": "septal peptidoglycan synthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Spherical bacterial cell morphology.", "grounding": "METPO:1000683", "id": "sphere_shaped_trait", "is_orphan": false, "label": "sphere shaped", "node_type": "TRAIT", "xrefs": []}], "title": "Spherical shape septal peptidoglycan mechanism"}];
+ var graphs = [{"description": "Evidence-backed causal sketch linking spherical cell shape to FtsZ-associated septal synthesis, peptidoglycan remodeling, and limited lateral elongation.", "edges": [{"description": "The FtsZ division ring organizes septal wall synthesis.", "evidence": [{"notes": "Supports FtsZ-PBP cooperation in division-associated shape generation.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "FtsZ collaborates with penicillin binding proteins"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "ftsZ_division_ring", "target": "septal_peptidoglycan_synthesis"}, {"description": "Septal synthesis builds and remodels the spherical cell wall.", "evidence": [{"notes": "Supports septal-only PG synthesis in spherical cocci.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "synthesize peptidoglycan only at the division septum"}], "id": "edge-2", "is_orphan": false, "predicate": "builds", "predicate_id": "biolink:produces", "source": "septal_peptidoglycan_synthesis", "target": "peptidoglycan_cell_wall"}, {"description": "Reduced lateral elongation helps preserve a sphere rather than a rod.", "evidence": [{"notes": "Broad review supports different growth mechanisms for coccoid versus rod-shaped bacteria.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "mechanisms controlling growth and division of coccoid bacteria"}], "id": "edge-3", "is_orphan": false, "predicate": "reduced in", "predicate_id": null, "source": "lateral_elongation", "target": "sphere_shaped_trait"}, {"description": "Peptidoglycan wall geometry maintains the spherical shape.", "evidence": [{"notes": "Supports the cell wall as central to bacterial shape maintenance.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "primary role in maintaining cell shape"}], "id": "edge-4", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "peptidoglycan_cell_wall", "target": "sphere_shaped_trait"}, {"description": "Septal-only peptidoglycan synthesis in cocci produces spherical morphology.", "evidence": [{"notes": "spherical cocci synthesize peptidoglycan only at the division septum", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-5", "is_orphan": false, "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "septal_peptidoglycan_synthesis", "target": "sphere_shaped_trait"}, {"description": "Loss of the MreB cytoskeleton removes the elongation capacity that lengthens rods.", "evidence": [{"notes": "loss of the MreB cytoskeleton is the main factor that prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-6", "is_orphan": false, "predicate": "causally upstream of", "predicate_id": null, "source": "mreB_elongation_machinery", "target": "lateral_elongation"}, {"description": "FtsZ assembly into a mid-cell Z ring recruits PBPs and divisome components.", "evidence": [{"notes": "cell division is initiated by FtsZ assembly into a mid-cell Z ring that recruits PBPs and divisome components", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-7", "is_orphan": false, "predicate": "recruits", "predicate_id": null, "source": "ftsZ_division_ring", "target": "divisome_pbps"}, {"description": "FtsZ treadmilling distributes the PG synthases that form the septum.", "evidence": [{"notes": "The FtsZ polymers undergo treadmilling around the Z-ring to distribute the PG synthases forming the septum", "reference": "DOI:10.1042/bsr20221664"}], "id": "edge-8", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "ftsZ_treadmilling", "target": "septal_peptidoglycan_synthesis"}, {"description": "FtsW flips lipid II to the outer septal face for PG synthesis.", "evidence": [{"notes": "lipid II is flipped to the outside by the septally localized flippase FtsW", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-9", "is_orphan": false, "predicate": "transports", "predicate_id": "METPO:2007812", "source": "ftsW_flippase", "target": "lipid_ii"}, {"description": "Lipid II serves as the PBP substrate for septal peptidoglycan synthesis.", "evidence": [{"notes": "PG synthesis uses lipid II as the PBP substrate", "reference": "DOI:10.1038/nrmicro3088"}], "id": "edge-10", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "lipid_ii", "target": "septal_peptidoglycan_synthesis"}], "evidence_rows": [{"description": "The FtsZ division ring organizes septal wall synthesis.", "edge_id": "edge-1", "evidence": [{"notes": "Supports FtsZ-PBP cooperation in division-associated shape generation.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "FtsZ collaborates with penicillin binding proteins"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "FtsZ division ring", "target": "septal peptidoglycan synthesis"}, {"description": "Septal synthesis builds and remodels the spherical cell wall.", "edge_id": "edge-2", "evidence": [{"notes": "Supports septal-only PG synthesis in spherical cocci.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "synthesize peptidoglycan only at the division septum"}], "predicate": "builds", "predicate_id": "biolink:produces", "source": "septal peptidoglycan synthesis", "target": "peptidoglycan cell wall"}, {"description": "Reduced lateral elongation helps preserve a sphere rather than a rod.", "edge_id": "edge-3", "evidence": [{"notes": "Broad review supports different growth mechanisms for coccoid versus rod-shaped bacteria.", "reference": "DOI:10.1038/nrmicro3088", "snippet": "mechanisms controlling growth and division of coccoid bacteria"}], "predicate": "reduced in", "predicate_id": null, "source": "lateral cell-wall elongation", "target": "sphere shaped"}, {"description": "Peptidoglycan wall geometry maintains the spherical shape.", "edge_id": "edge-4", "evidence": [{"notes": "Supports the cell wall as central to bacterial shape maintenance.", "reference": "DOI:10.1038/nrmicro1205", "snippet": "primary role in maintaining cell shape"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "peptidoglycan cell wall", "target": "sphere shaped"}, {"description": "Septal-only peptidoglycan synthesis in cocci produces spherical morphology.", "edge_id": "edge-5", "evidence": [{"notes": "spherical cocci synthesize peptidoglycan only at the division septum", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "contributes to", "predicate_id": "RO:0002326", "source": "septal peptidoglycan synthesis", "target": "sphere shaped"}, {"description": "Loss of the MreB cytoskeleton removes the elongation capacity that lengthens rods.", "edge_id": "edge-6", "evidence": [{"notes": "loss of the MreB cytoskeleton is the main factor that prevents cocci from elongating into rods", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "causally upstream of", "predicate_id": null, "source": "MreB-mediated elongation machinery", "target": "lateral cell-wall elongation"}, {"description": "FtsZ assembly into a mid-cell Z ring recruits PBPs and divisome components.", "edge_id": "edge-7", "evidence": [{"notes": "cell division is initiated by FtsZ assembly into a mid-cell Z ring that recruits PBPs and divisome components", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "recruits", "predicate_id": null, "source": "FtsZ division ring", "target": "divisome and PBPs"}, {"description": "FtsZ treadmilling distributes the PG synthases that form the septum.", "edge_id": "edge-8", "evidence": [{"notes": "The FtsZ polymers undergo treadmilling around the Z-ring to distribute the PG synthases forming the septum", "reference": "DOI:10.1042/bsr20221664"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "FtsZ treadmilling", "target": "septal peptidoglycan synthesis"}, {"description": "FtsW flips lipid II to the outer septal face for PG synthesis.", "edge_id": "edge-9", "evidence": [{"notes": "lipid II is flipped to the outside by the septally localized flippase FtsW", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "transports", "predicate_id": "METPO:2007812", "source": "FtsW lipid II flippase", "target": "lipid II"}, {"description": "Lipid II serves as the PBP substrate for septal peptidoglycan synthesis.", "edge_id": "edge-10", "evidence": [{"notes": "PG synthesis uses lipid II as the PBP substrate", "reference": "DOI:10.1038/nrmicro3088"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "lipid II", "target": "septal peptidoglycan synthesis"}], "graph_id": "sphere_shaped_septal_peptidoglycan", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Division machinery and penicillin-binding proteins recruited to mid-cell.", "grounding": null, "id": "divisome_pbps", "is_orphan": false, "label": "divisome and PBPs", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3e8ff", "description": "Septally localized flippase that translocates lipid II across the membrane.", "grounding": null, "id": "ftsW_flippase", "is_orphan": false, "label": "FtsW lipid II flippase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#f3e8ff", "description": "Tubulin-like division scaffold.", "grounding": null, "id": "ftsZ_division_ring", "is_orphan": false, "label": "FtsZ division ring", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Treadmilling of FtsZ polymers distributing PG synthases around the Z-ring.", "grounding": null, "id": "ftsZ_treadmilling", "is_orphan": false, "label": "FtsZ treadmilling", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#ecfccb", "description": "Sidewall growth mode that lengthens rods.", "grounding": null, "id": "lateral_elongation", "is_orphan": false, "label": "lateral cell-wall elongation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Membrane-bound peptidoglycan precursor and PBP substrate.", "grounding": "CHEBI:27692", "id": "lipid_ii", "is_orphan": false, "label": "lipid II", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Actin-like MreB cytoskeleton directing lateral (rod) elongation.", "grounding": null, "id": "mreB_elongation_machinery", "is_orphan": false, "label": "MreB-mediated elongation machinery", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ede9fe", "description": "Cell-wall polymer network maintaining bacterial shape.", "grounding": "GO:0009274", "id": "peptidoglycan_cell_wall", "is_orphan": false, "label": "peptidoglycan cell wall", "node_type": "CELLULAR_LOCALIZATION", "xrefs": []}, {"color": "#ecfccb", "description": "Cell-wall synthesis localized to the division septum.", "grounding": null, "id": "septal_peptidoglycan_synthesis", "is_orphan": false, "label": "septal peptidoglycan synthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#dbeafe", "description": "Spherical bacterial cell morphology.", "grounding": "METPO:1000683", "id": "sphere_shaped_trait", "is_orphan": false, "label": "sphere shaped", "node_type": "TRAIT", "xrefs": []}], "title": "Spherical shape septal peptidoglycan mechanism"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -900,7 +889,7 @@
- Record as of 2026-08-07 18:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/physiology/catalase_activity.html b/pages/traits/physiology/catalase_activity.html
index fcf57c4a..649737d9 100644
--- a/pages/traits/physiology/catalase_activity.html
+++ b/pages/traits/physiology/catalase_activity.html
@@ -518,6 +518,12 @@
Curation history
Re-grounded 2 causal edge(s) off microbe-domain METPO predicates (2 to has output), issue 301. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Edge directions are unchanged - this pass only relabels and re-grounds. RO:0002234 (has output) is used where the subject is an activity, since biolink gives it the domain 'biological process or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8 and v9 and are placeholder ids until METPO mints them.
+
+ ·
+ UNGROUND_CAUSAL_NODE · claude
+
Dropped the grounding GO:0004096 from node catalase. Issue 352. GO:0004096 is 'catalase ACTIVITY' -- a molecular function, which is what catalase_function is. A protein is not its activity, and the graph already says so correctly: catalase -enables-> catalase_function. Dropped from the protein, kept on the function.
+
+
@@ -875,7 +881,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "Evidence-backed causal sketch linking catalase to dismutation of hydrogen peroxide into water and molecular oxygen.", "edges": [{"description": "Catalase carries out the catalase molecular function.", "evidence": [{"notes": "Chelikani et al. characterize catalases as the enzymes performing this dismutation.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "catalase", "target": "catalase_function"}, {"description": "The catalase reaction consumes hydrogen peroxide.", "evidence": [{"notes": "Imlay supports catalase as a primary hydrogen-peroxide scavenging defense.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-2", "is_orphan": false, "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "catalase_function", "target": "hydrogen_peroxide"}, {"description": "The catalase reaction produces molecular oxygen.", "evidence": [{"notes": "Catalase dismutation yields O2 (2 H2O2 to O2 + 2 H2O).", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-3", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase_function", "target": "molecular_oxygen"}, {"description": "The catalase reaction produces water.", "evidence": [{"notes": "Catalase dismutation yields water.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-4", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase_function", "target": "water"}, {"description": "Production of catalase confers the catalase-activity phenotype.", "evidence": [{"notes": "Supports catalase possession as the basis of the catalase-activity phenotype.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-5", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "catalase", "target": "catalase_activity_trait"}, {"description": "Catalase activity rapidly decomposes hydrogen peroxide into water and molecular oxygen.", "evidence": [{"notes": "Catalase rapidly decomposes hydrogen peroxide into water and molecular oxygen (canonical enzymology).", "reference": "DOI:10.3390/biom14060697"}], "id": "edge-6", "is_orphan": false, "predicate": "decomposes", "predicate_id": null, "source": "catalase_activity_trait", "target": "hydrogen_peroxide"}, {"description": "Hydrogen peroxide activates the OxyR peroxide-sensing regulator.", "evidence": [{"notes": "An intracellular H2O2 concentration of ~200 nM is sufficient to drive OxyR into a disulfide-bonded (active) form.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-7", "is_orphan": false, "predicate": "activates", "predicate_id": "RO:0002213", "source": "hydrogen_peroxide", "target": "oxyr_regulator"}, {"description": "High hydrogen peroxide concentrations favor scavenging by catalases, which turn over much faster than alkyl hydroperoxide reductase.", "evidence": [{"notes": "Organisms rely on catalases when H2O2 levels are high; catalases turn over much more quickly than Ahp. Likely general across aerobes/facultative anaerobes.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-8", "is_orphan": false, "predicate": "favors scavenging by", "predicate_id": null, "source": "hydrogen_peroxide", "target": "catalase_activity_trait"}, {"description": "OxyR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "id": "edge-9", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "oxyr_regulator", "target": "peroxide_defense_systems"}, {"description": "PerR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "id": "edge-10", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "perr_regulator", "target": "peroxide_defense_systems"}, {"description": "Heme biosynthesis is required for catalase activation; impaired heme synthesis delays peroxide degradation.", "evidence": [{"notes": "Ferrochelatase (hemH) function is required for timely induction of catalase (KatG) activity; loss delays H2O2 degradation and growth.", "reference": "DOI:10.1111/mmi.12967"}], "id": "edge-11", "is_orphan": false, "predicate": "required for", "predicate_id": null, "source": "heme_biosynthesis", "target": "catalase"}], "evidence_rows": [{"description": "Catalase carries out the catalase molecular function.", "edge_id": "edge-1", "evidence": [{"notes": "Chelikani et al. characterize catalases as the enzymes performing this dismutation.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "catalase", "target": "catalase activity"}, {"description": "The catalase reaction consumes hydrogen peroxide.", "edge_id": "edge-2", "evidence": [{"notes": "Imlay supports catalase as a primary hydrogen-peroxide scavenging defense.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "catalase activity", "target": "hydrogen peroxide"}, {"description": "The catalase reaction produces molecular oxygen.", "edge_id": "edge-3", "evidence": [{"notes": "Catalase dismutation yields O2 (2 H2O2 to O2 + 2 H2O).", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase activity", "target": "molecular oxygen"}, {"description": "The catalase reaction produces water.", "edge_id": "edge-4", "evidence": [{"notes": "Catalase dismutation yields water.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase activity", "target": "water"}, {"description": "Production of catalase confers the catalase-activity phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Supports catalase possession as the basis of the catalase-activity phenotype.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "catalase", "target": "catalase activity"}, {"description": "Catalase activity rapidly decomposes hydrogen peroxide into water and molecular oxygen.", "edge_id": "edge-6", "evidence": [{"notes": "Catalase rapidly decomposes hydrogen peroxide into water and molecular oxygen (canonical enzymology).", "reference": "DOI:10.3390/biom14060697"}], "predicate": "decomposes", "predicate_id": null, "source": "catalase activity", "target": "hydrogen peroxide"}, {"description": "Hydrogen peroxide activates the OxyR peroxide-sensing regulator.", "edge_id": "edge-7", "evidence": [{"notes": "An intracellular H2O2 concentration of ~200 nM is sufficient to drive OxyR into a disulfide-bonded (active) form.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "activates", "predicate_id": "RO:0002213", "source": "hydrogen peroxide", "target": "OxyR"}, {"description": "High hydrogen peroxide concentrations favor scavenging by catalases, which turn over much faster than alkyl hydroperoxide reductase.", "edge_id": "edge-8", "evidence": [{"notes": "Organisms rely on catalases when H2O2 levels are high; catalases turn over much more quickly than Ahp. Likely general across aerobes/facultative anaerobes.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "favors scavenging by", "predicate_id": null, "source": "hydrogen peroxide", "target": "catalase activity"}, {"description": "OxyR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "edge_id": "edge-9", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "OxyR", "target": "peroxide defense systems"}, {"description": "PerR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "edge_id": "edge-10", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "PerR", "target": "peroxide defense systems"}, {"description": "Heme biosynthesis is required for catalase activation; impaired heme synthesis delays peroxide degradation.", "edge_id": "edge-11", "evidence": [{"notes": "Ferrochelatase (hemH) function is required for timely induction of catalase (KatG) activity; loss delays H2O2 degradation and growth.", "reference": "DOI:10.1111/mmi.12967"}], "predicate": "required for", "predicate_id": null, "source": "heme biosynthesis", "target": "catalase"}], "graph_id": "catalase_activity_h2o2_detoxification", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Heme enzyme that dismutates hydrogen peroxide.", "grounding": "GO:0004096", "id": "catalase", "is_orphan": false, "label": "catalase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Capacity to decompose hydrogen peroxide via catalase.", "grounding": "traitmech:000075", "id": "catalase_activity_trait", "is_orphan": false, "label": "catalase activity", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Catalysis of 2 H2O2 = O2 + 2 H2O.", "grounding": "GO:0004096", "id": "catalase_function", "is_orphan": false, "label": "catalase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Synthesis of the heme cofactor required for catalase maturation and activity.", "grounding": "GO:0006783", "id": "heme_biosynthesis", "is_orphan": false, "label": "heme biosynthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Reactive oxygen species detoxified by catalase.", "grounding": "CHEBI:16240", "id": "hydrogen_peroxide", "is_orphan": false, "label": "hydrogen peroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#fef3c7", "description": "Product of hydrogen peroxide dismutation.", "grounding": "CHEBI:15379", "id": "molecular_oxygen", "is_orphan": false, "label": "molecular oxygen", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Peroxide-sensing transcriptional regulator activated by hydrogen peroxide.", "grounding": null, "id": "oxyr_regulator", "is_orphan": false, "label": "OxyR", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Antioxidant defense systems (e.g. catalases, peroxidases) that detoxify hydrogen peroxide.", "grounding": null, "id": "peroxide_defense_systems", "is_orphan": false, "label": "peroxide defense systems", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Fe-dependent peroxide-sensing transcriptional repressor inactivated by hydrogen peroxide.", "grounding": "UniProtKB:A0A097ASJ8", "id": "perr_regulator", "is_orphan": false, "label": "PerR", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#fef3c7", "description": "Product of hydrogen peroxide dismutation.", "grounding": "CHEBI:15377", "id": "water", "is_orphan": false, "label": "water", "node_type": "CHEMICAL", "xrefs": []}], "title": "Catalase hydrogen-peroxide detoxification"}];
+ var graphs = [{"description": "Evidence-backed causal sketch linking catalase to dismutation of hydrogen peroxide into water and molecular oxygen.", "edges": [{"description": "Catalase carries out the catalase molecular function.", "evidence": [{"notes": "Chelikani et al. characterize catalases as the enzymes performing this dismutation.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "catalase", "target": "catalase_function"}, {"description": "The catalase reaction consumes hydrogen peroxide.", "evidence": [{"notes": "Imlay supports catalase as a primary hydrogen-peroxide scavenging defense.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-2", "is_orphan": false, "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "catalase_function", "target": "hydrogen_peroxide"}, {"description": "The catalase reaction produces molecular oxygen.", "evidence": [{"notes": "Catalase dismutation yields O2 (2 H2O2 to O2 + 2 H2O).", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-3", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase_function", "target": "molecular_oxygen"}, {"description": "The catalase reaction produces water.", "evidence": [{"notes": "Catalase dismutation yields water.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-4", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase_function", "target": "water"}, {"description": "Production of catalase confers the catalase-activity phenotype.", "evidence": [{"notes": "Supports catalase possession as the basis of the catalase-activity phenotype.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "id": "edge-5", "is_orphan": false, "predicate": "confers", "predicate_id": "METPO:2007700", "source": "catalase", "target": "catalase_activity_trait"}, {"description": "Catalase activity rapidly decomposes hydrogen peroxide into water and molecular oxygen.", "evidence": [{"notes": "Catalase rapidly decomposes hydrogen peroxide into water and molecular oxygen (canonical enzymology).", "reference": "DOI:10.3390/biom14060697"}], "id": "edge-6", "is_orphan": false, "predicate": "decomposes", "predicate_id": null, "source": "catalase_activity_trait", "target": "hydrogen_peroxide"}, {"description": "Hydrogen peroxide activates the OxyR peroxide-sensing regulator.", "evidence": [{"notes": "An intracellular H2O2 concentration of ~200 nM is sufficient to drive OxyR into a disulfide-bonded (active) form.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-7", "is_orphan": false, "predicate": "activates", "predicate_id": "RO:0002213", "source": "hydrogen_peroxide", "target": "oxyr_regulator"}, {"description": "High hydrogen peroxide concentrations favor scavenging by catalases, which turn over much faster than alkyl hydroperoxide reductase.", "evidence": [{"notes": "Organisms rely on catalases when H2O2 levels are high; catalases turn over much more quickly than Ahp. Likely general across aerobes/facultative anaerobes.", "reference": "DOI:10.1038/nrmicro3032"}], "id": "edge-8", "is_orphan": false, "predicate": "favors scavenging by", "predicate_id": null, "source": "hydrogen_peroxide", "target": "catalase_activity_trait"}, {"description": "OxyR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "id": "edge-9", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "oxyr_regulator", "target": "peroxide_defense_systems"}, {"description": "PerR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "id": "edge-10", "is_orphan": false, "predicate": "regulates", "predicate_id": "RO:0002211", "source": "perr_regulator", "target": "peroxide_defense_systems"}, {"description": "Heme biosynthesis is required for catalase activation; impaired heme synthesis delays peroxide degradation.", "evidence": [{"notes": "Ferrochelatase (hemH) function is required for timely induction of catalase (KatG) activity; loss delays H2O2 degradation and growth.", "reference": "DOI:10.1111/mmi.12967"}], "id": "edge-11", "is_orphan": false, "predicate": "required for", "predicate_id": null, "source": "heme_biosynthesis", "target": "catalase"}], "evidence_rows": [{"description": "Catalase carries out the catalase molecular function.", "edge_id": "edge-1", "evidence": [{"notes": "Chelikani et al. characterize catalases as the enzymes performing this dismutation.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "catalase", "target": "catalase activity"}, {"description": "The catalase reaction consumes hydrogen peroxide.", "edge_id": "edge-2", "evidence": [{"notes": "Imlay supports catalase as a primary hydrogen-peroxide scavenging defense.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "catalase activity", "target": "hydrogen peroxide"}, {"description": "The catalase reaction produces molecular oxygen.", "edge_id": "edge-3", "evidence": [{"notes": "Catalase dismutation yields O2 (2 H2O2 to O2 + 2 H2O).", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase activity", "target": "molecular oxygen"}, {"description": "The catalase reaction produces water.", "edge_id": "edge-4", "evidence": [{"notes": "Catalase dismutation yields water.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "catalase activity", "target": "water"}, {"description": "Production of catalase confers the catalase-activity phenotype.", "edge_id": "edge-5", "evidence": [{"notes": "Supports catalase possession as the basis of the catalase-activity phenotype.", "reference": "DOI:10.1007/s00018-003-3206-5"}], "predicate": "confers", "predicate_id": "METPO:2007700", "source": "catalase", "target": "catalase activity"}, {"description": "Catalase activity rapidly decomposes hydrogen peroxide into water and molecular oxygen.", "edge_id": "edge-6", "evidence": [{"notes": "Catalase rapidly decomposes hydrogen peroxide into water and molecular oxygen (canonical enzymology).", "reference": "DOI:10.3390/biom14060697"}], "predicate": "decomposes", "predicate_id": null, "source": "catalase activity", "target": "hydrogen peroxide"}, {"description": "Hydrogen peroxide activates the OxyR peroxide-sensing regulator.", "edge_id": "edge-7", "evidence": [{"notes": "An intracellular H2O2 concentration of ~200 nM is sufficient to drive OxyR into a disulfide-bonded (active) form.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "activates", "predicate_id": "RO:0002213", "source": "hydrogen peroxide", "target": "OxyR"}, {"description": "High hydrogen peroxide concentrations favor scavenging by catalases, which turn over much faster than alkyl hydroperoxide reductase.", "edge_id": "edge-8", "evidence": [{"notes": "Organisms rely on catalases when H2O2 levels are high; catalases turn over much more quickly than Ahp. Likely general across aerobes/facultative anaerobes.", "reference": "DOI:10.1038/nrmicro3032"}], "predicate": "favors scavenging by", "predicate_id": null, "source": "hydrogen peroxide", "target": "catalase activity"}, {"description": "OxyR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "edge_id": "edge-9", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "OxyR", "target": "peroxide defense systems"}, {"description": "PerR regulates peroxide defense systems; most bacteria sense H2O2 via OxyR or PerR.", "edge_id": "edge-10", "evidence": [{"notes": "Most bacteria sense H2O2 via OxyR or PerR transcription factors that control peroxide defense systems.", "reference": "DOI:10.3389/fimmu.2021.667343"}], "predicate": "regulates", "predicate_id": "RO:0002211", "source": "PerR", "target": "peroxide defense systems"}, {"description": "Heme biosynthesis is required for catalase activation; impaired heme synthesis delays peroxide degradation.", "edge_id": "edge-11", "evidence": [{"notes": "Ferrochelatase (hemH) function is required for timely induction of catalase (KatG) activity; loss delays H2O2 degradation and growth.", "reference": "DOI:10.1111/mmi.12967"}], "predicate": "required for", "predicate_id": null, "source": "heme biosynthesis", "target": "catalase"}], "graph_id": "catalase_activity_h2o2_detoxification", "issues": [], "nodes": [{"color": "#f3e8ff", "description": "Heme enzyme that dismutates hydrogen peroxide.", "grounding": null, "id": "catalase", "is_orphan": false, "label": "catalase", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Capacity to decompose hydrogen peroxide via catalase.", "grounding": "traitmech:000075", "id": "catalase_activity_trait", "is_orphan": false, "label": "catalase activity", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Catalysis of 2 H2O2 = O2 + 2 H2O.", "grounding": "GO:0004096", "id": "catalase_function", "is_orphan": false, "label": "catalase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#ecfccb", "description": "Synthesis of the heme cofactor required for catalase maturation and activity.", "grounding": "GO:0006783", "id": "heme_biosynthesis", "is_orphan": false, "label": "heme biosynthesis", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "Reactive oxygen species detoxified by catalase.", "grounding": "CHEBI:16240", "id": "hydrogen_peroxide", "is_orphan": false, "label": "hydrogen peroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#fef3c7", "description": "Product of hydrogen peroxide dismutation.", "grounding": "CHEBI:15379", "id": "molecular_oxygen", "is_orphan": false, "label": "molecular oxygen", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Peroxide-sensing transcriptional regulator activated by hydrogen peroxide.", "grounding": null, "id": "oxyr_regulator", "is_orphan": false, "label": "OxyR", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#ecfccb", "description": "Antioxidant defense systems (e.g. catalases, peroxidases) that detoxify hydrogen peroxide.", "grounding": null, "id": "peroxide_defense_systems", "is_orphan": false, "label": "peroxide defense systems", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#f3e8ff", "description": "Fe-dependent peroxide-sensing transcriptional repressor inactivated by hydrogen peroxide.", "grounding": "UniProtKB:A0A097ASJ8", "id": "perr_regulator", "is_orphan": false, "label": "PerR", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#fef3c7", "description": "Product of hydrogen peroxide dismutation.", "grounding": "CHEBI:15377", "id": "water", "is_orphan": false, "label": "water", "node_type": "CHEMICAL", "xrefs": []}], "title": "Catalase hydrogen-peroxide detoxification"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -898,7 +904,7 @@
- Record as of 2026-08-06 01:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/traits/physiology/urease_activity.html b/pages/traits/physiology/urease_activity.html
index 335689ff..f158988c 100644
--- a/pages/traits/physiology/urease_activity.html
+++ b/pages/traits/physiology/urease_activity.html
@@ -501,6 +501,12 @@
Curation history
Re-grounded 3 causal edge(s) off microbe-domain METPO predicates (3 to has output), issue 301. The previous predicates are transitively rdfs:subPropertyOf METPO:2000001, whose rdfs:domain is METPO:1000525 (microbe), so a causal-graph subject entailed that the subject IS a microbe; CausalNodeTypeEnum has no organism member, so no such edge could ever satisfy the domain. Edge directions are unchanged - this pass only relabels and re-grounds. RO:0002234 (has output) is used where the subject is an activity, since biolink gives it the domain 'biological process or activity'; the METPO replacements are proposed in proposals/metpo_traitmech_v8 and v9 and are placeholder ids until METPO mints them.
+
+ ·
+ UNGROUND_CAUSAL_NODE · claude
+
Dropped the grounding GO:0009039 from node urease. Issue 352. GO:0009039 is 'urease ACTIVITY'. Same as catalase: kept on urease_function, dropped from the protein that enables it.
+
+
@@ -858,7 +864,7 @@
kg-microbe
}
(function() {
- var graphs = [{"description": "Evidence-backed causal sketch linking urease to hydrolysis of urea into ammonia, the basis of the urease test.", "edges": [{"description": "Urease carries out urea hydrolysis.", "evidence": [{"notes": "Mobley, Island \u0026 Hausinger review microbial ureases.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "urease", "target": "urease_function"}, {"description": "The urease reaction consumes urea.", "evidence": [{"notes": "Supports urea as the hydrolysis substrate.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-2", "is_orphan": false, "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "urease_function", "target": "urea"}, {"description": "Urea hydrolysis produces ammonia.", "evidence": [{"notes": "Mobley \u0026 Hausinger support ammonia release from urea hydrolysis.", "reference": "DOI:10.1128/mr.53.1.85-108.1989"}], "id": "edge-3", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "ammonia"}, {"description": "Urease enzymatic activity manifests as the observable urease-activity phenotype scored by the diagnostic urease test.", "evidence": [{"notes": "Urease activity (urea-to-ammonia hydrolysis raising local pH) is the assayable phenotype used to score urease-positive organisms.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-4", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "urease_function", "target": "urease_activity_trait"}, {"description": "Urea hydrolysis produces hydroxide, mechanistically explaining alkalinization.", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "id": "edge-5", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "hydroxide"}, {"description": "Urea hydrolysis produces carbon dioxide.", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "id": "edge-6", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "carbon_dioxide"}, {"description": "Urea hydrolysis (NH4+/OH- production) increases local pH, the basis of the urease test color change.", "evidence": [{"notes": "Urea hydrolysis produces NH4+ and OH-, causing a pH increase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-7", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "urease_function", "target": "ph_quality"}, {"description": "CO2 from urea hydrolysis is hydrated by carbonic anhydrase.", "evidence": [{"notes": "Hydration of CO2 to HCO3- by carbonic anhydrase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-8", "is_orphan": false, "predicate": "is substrate of", "predicate_id": null, "source": "carbon_dioxide", "target": "carbonic_anhydrase_function"}, {"description": "Carbonic anhydrase hydrates CO2, increasing bicarbonate.", "evidence": [{"notes": "Increase in [HCO3-] following the hydration of CO2 to HCO3- by CA.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-9", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "carbonic_anhydrase_function", "target": "bicarbonate"}, {"description": "CA-driven buffering enhances solubility trapping and affects the CaCO3 phase formed.", "evidence": [{"notes": "CA physiologically promotes buffering, which enhances solubility trapping and affects the phase of the CaCO3 mineral formed.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-10", "is_orphan": false, "predicate": "affects", "predicate_id": null, "source": "carbonic_anhydrase_function", "target": "calcium_carbonate_precipitation"}], "evidence_rows": [{"description": "Urease carries out urea hydrolysis.", "edge_id": "edge-1", "evidence": [{"notes": "Mobley, Island \u0026 Hausinger review microbial ureases.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "urease", "target": "urease activity"}, {"description": "The urease reaction consumes urea.", "edge_id": "edge-2", "evidence": [{"notes": "Supports urea as the hydrolysis substrate.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "urease activity", "target": "urea"}, {"description": "Urea hydrolysis produces ammonia.", "edge_id": "edge-3", "evidence": [{"notes": "Mobley \u0026 Hausinger support ammonia release from urea hydrolysis.", "reference": "DOI:10.1128/mr.53.1.85-108.1989"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "ammonia"}, {"description": "Urease enzymatic activity manifests as the observable urease-activity phenotype scored by the diagnostic urease test.", "edge_id": "edge-4", "evidence": [{"notes": "Urease activity (urea-to-ammonia hydrolysis raising local pH) is the assayable phenotype used to score urease-positive organisms.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "urease activity", "target": "urease activity"}, {"description": "Urea hydrolysis produces hydroxide, mechanistically explaining alkalinization.", "edge_id": "edge-5", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "hydroxide"}, {"description": "Urea hydrolysis produces carbon dioxide.", "edge_id": "edge-6", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "carbon dioxide"}, {"description": "Urea hydrolysis (NH4+/OH- production) increases local pH, the basis of the urease test color change.", "edge_id": "edge-7", "evidence": [{"notes": "Urea hydrolysis produces NH4+ and OH-, causing a pH increase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "urease activity", "target": "pH"}, {"description": "CO2 from urea hydrolysis is hydrated by carbonic anhydrase.", "edge_id": "edge-8", "evidence": [{"notes": "Hydration of CO2 to HCO3- by carbonic anhydrase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "is substrate of", "predicate_id": null, "source": "carbon dioxide", "target": "carbonic anhydrase activity"}, {"description": "Carbonic anhydrase hydrates CO2, increasing bicarbonate.", "edge_id": "edge-9", "evidence": [{"notes": "Increase in [HCO3-] following the hydration of CO2 to HCO3- by CA.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "carbonic anhydrase activity", "target": "bicarbonate"}, {"description": "CA-driven buffering enhances solubility trapping and affects the CaCO3 phase formed.", "edge_id": "edge-10", "evidence": [{"notes": "CA physiologically promotes buffering, which enhances solubility trapping and affects the phase of the CaCO3 mineral formed.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "affects", "predicate_id": null, "source": "carbonic anhydrase activity", "target": "calcium carbonate precipitation"}], "graph_id": "urease_activity_urea_hydrolysis", "issues": [], "nodes": [{"color": "#fef3c7", "description": "Product that raises local pH.", "grounding": "CHEBI:16134", "id": "ammonia", "is_orphan": false, "label": "ammonia", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#fef3c7", "description": "Bicarbonate produced from CO2 hydration by carbonic anhydrase.", "grounding": "CHEBI:17544", "id": "bicarbonate", "is_orphan": false, "label": "bicarbonate", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Precipitation of CaCO3 mineral, influenced by buffering chemistry.", "grounding": null, "id": "calcium_carbonate_precipitation", "is_orphan": false, "label": "calcium carbonate precipitation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "CO2 product of urea hydrolysis; feeds carbonate chemistry.", "grounding": "CHEBI:16526", "id": "carbon_dioxide", "is_orphan": false, "label": "carbon dioxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#cffafe", "description": "Hydration of CO2 to bicarbonate.", "grounding": "GO:0004089", "id": "carbonic_anhydrase_function", "is_orphan": false, "label": "carbonic anhydrase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#fef3c7", "description": "Hydroxide ion produced by urea hydrolysis, raising local pH.", "grounding": "CHEBI:16234", "id": "hydroxide", "is_orphan": false, "label": "hydroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3f4f6", "description": "Local pH, increased by urease-driven alkalinization.", "grounding": null, "id": "ph_quality", "is_orphan": false, "label": "pH", "node_type": "QUALITY", "xrefs": []}, {"color": "#fef3c7", "description": "Substrate hydrolyzed by urease.", "grounding": "CHEBI:16199", "id": "urea", "is_orphan": false, "label": "urea", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Nickel metalloenzyme hydrolyzing urea.", "grounding": "GO:0009039", "id": "urease", "is_orphan": false, "label": "urease", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Possession of urease.", "grounding": "traitmech:000077", "id": "urease_activity_trait", "is_orphan": false, "label": "urease activity", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Hydrolysis of urea to ammonia and carbon dioxide.", "grounding": "GO:0009039", "id": "urease_function", "is_orphan": false, "label": "urease activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}], "title": "Urease-catalyzed urea hydrolysis"}];
+ var graphs = [{"description": "Evidence-backed causal sketch linking urease to hydrolysis of urea into ammonia, the basis of the urease test.", "edges": [{"description": "Urease carries out urea hydrolysis.", "evidence": [{"notes": "Mobley, Island \u0026 Hausinger review microbial ureases.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-1", "is_orphan": false, "predicate": "enables", "predicate_id": "RO:0002327", "source": "urease", "target": "urease_function"}, {"description": "The urease reaction consumes urea.", "evidence": [{"notes": "Supports urea as the hydrolysis substrate.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-2", "is_orphan": false, "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "urease_function", "target": "urea"}, {"description": "Urea hydrolysis produces ammonia.", "evidence": [{"notes": "Mobley \u0026 Hausinger support ammonia release from urea hydrolysis.", "reference": "DOI:10.1128/mr.53.1.85-108.1989"}], "id": "edge-3", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "ammonia"}, {"description": "Urease enzymatic activity manifests as the observable urease-activity phenotype scored by the diagnostic urease test.", "evidence": [{"notes": "Urease activity (urea-to-ammonia hydrolysis raising local pH) is the assayable phenotype used to score urease-positive organisms.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "id": "edge-4", "is_orphan": false, "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "urease_function", "target": "urease_activity_trait"}, {"description": "Urea hydrolysis produces hydroxide, mechanistically explaining alkalinization.", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "id": "edge-5", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "hydroxide"}, {"description": "Urea hydrolysis produces carbon dioxide.", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "id": "edge-6", "is_orphan": false, "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease_function", "target": "carbon_dioxide"}, {"description": "Urea hydrolysis (NH4+/OH- production) increases local pH, the basis of the urease test color change.", "evidence": [{"notes": "Urea hydrolysis produces NH4+ and OH-, causing a pH increase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-7", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "urease_function", "target": "ph_quality"}, {"description": "CO2 from urea hydrolysis is hydrated by carbonic anhydrase.", "evidence": [{"notes": "Hydration of CO2 to HCO3- by carbonic anhydrase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-8", "is_orphan": false, "predicate": "is substrate of", "predicate_id": null, "source": "carbon_dioxide", "target": "carbonic_anhydrase_function"}, {"description": "Carbonic anhydrase hydrates CO2, increasing bicarbonate.", "evidence": [{"notes": "Increase in [HCO3-] following the hydration of CO2 to HCO3- by CA.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-9", "is_orphan": false, "predicate": "increases", "predicate_id": "RO:0002213", "source": "carbonic_anhydrase_function", "target": "bicarbonate"}, {"description": "CA-driven buffering enhances solubility trapping and affects the CaCO3 phase formed.", "evidence": [{"notes": "CA physiologically promotes buffering, which enhances solubility trapping and affects the phase of the CaCO3 mineral formed.", "reference": "DOI:10.1021/acs.est.3c06617"}], "id": "edge-10", "is_orphan": false, "predicate": "affects", "predicate_id": null, "source": "carbonic_anhydrase_function", "target": "calcium_carbonate_precipitation"}], "evidence_rows": [{"description": "Urease carries out urea hydrolysis.", "edge_id": "edge-1", "evidence": [{"notes": "Mobley, Island \u0026 Hausinger review microbial ureases.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "enables", "predicate_id": "RO:0002327", "source": "urease", "target": "urease activity"}, {"description": "The urease reaction consumes urea.", "edge_id": "edge-2", "evidence": [{"notes": "Supports urea as the hydrolysis substrate.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "consumes", "predicate_id": "biolink:consumes", "source": "urease activity", "target": "urea"}, {"description": "Urea hydrolysis produces ammonia.", "edge_id": "edge-3", "evidence": [{"notes": "Mobley \u0026 Hausinger support ammonia release from urea hydrolysis.", "reference": "DOI:10.1128/mr.53.1.85-108.1989"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "ammonia"}, {"description": "Urease enzymatic activity manifests as the observable urease-activity phenotype scored by the diagnostic urease test.", "edge_id": "edge-4", "evidence": [{"notes": "Urease activity (urea-to-ammonia hydrolysis raising local pH) is the assayable phenotype used to score urease-positive organisms.", "reference": "DOI:10.1128/mr.59.3.451-480.1995"}], "predicate": "manifests as", "predicate_id": "METPO:2007400", "source": "urease activity", "target": "urease activity"}, {"description": "Urea hydrolysis produces hydroxide, mechanistically explaining alkalinization.", "edge_id": "edge-5", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "hydroxide"}, {"description": "Urea hydrolysis produces carbon dioxide.", "edge_id": "edge-6", "evidence": [{"notes": "(NH2)2CO + 2H2O + urease -\u003e 2 NH4+ + 2 OH- + CO2 + urease.", "reference": "DOI:10.24263/2304-974x-2024-13-2-10"}], "predicate": "has output", "predicate_id": "RO:0002234", "source": "urease activity", "target": "carbon dioxide"}, {"description": "Urea hydrolysis (NH4+/OH- production) increases local pH, the basis of the urease test color change.", "edge_id": "edge-7", "evidence": [{"notes": "Urea hydrolysis produces NH4+ and OH-, causing a pH increase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "urease activity", "target": "pH"}, {"description": "CO2 from urea hydrolysis is hydrated by carbonic anhydrase.", "edge_id": "edge-8", "evidence": [{"notes": "Hydration of CO2 to HCO3- by carbonic anhydrase.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "is substrate of", "predicate_id": null, "source": "carbon dioxide", "target": "carbonic anhydrase activity"}, {"description": "Carbonic anhydrase hydrates CO2, increasing bicarbonate.", "edge_id": "edge-9", "evidence": [{"notes": "Increase in [HCO3-] following the hydration of CO2 to HCO3- by CA.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "increases", "predicate_id": "RO:0002213", "source": "carbonic anhydrase activity", "target": "bicarbonate"}, {"description": "CA-driven buffering enhances solubility trapping and affects the CaCO3 phase formed.", "edge_id": "edge-10", "evidence": [{"notes": "CA physiologically promotes buffering, which enhances solubility trapping and affects the phase of the CaCO3 mineral formed.", "reference": "DOI:10.1021/acs.est.3c06617"}], "predicate": "affects", "predicate_id": null, "source": "carbonic anhydrase activity", "target": "calcium carbonate precipitation"}], "graph_id": "urease_activity_urea_hydrolysis", "issues": [], "nodes": [{"color": "#fef3c7", "description": "Product that raises local pH.", "grounding": "CHEBI:16134", "id": "ammonia", "is_orphan": false, "label": "ammonia", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#fef3c7", "description": "Bicarbonate produced from CO2 hydration by carbonic anhydrase.", "grounding": "CHEBI:17544", "id": "bicarbonate", "is_orphan": false, "label": "bicarbonate", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#ecfccb", "description": "Precipitation of CaCO3 mineral, influenced by buffering chemistry.", "grounding": null, "id": "calcium_carbonate_precipitation", "is_orphan": false, "label": "calcium carbonate precipitation", "node_type": "BIOLOGICAL_PROCESS", "xrefs": []}, {"color": "#fef3c7", "description": "CO2 product of urea hydrolysis; feeds carbonate chemistry.", "grounding": "CHEBI:16526", "id": "carbon_dioxide", "is_orphan": false, "label": "carbon dioxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#cffafe", "description": "Hydration of CO2 to bicarbonate.", "grounding": "GO:0004089", "id": "carbonic_anhydrase_function", "is_orphan": false, "label": "carbonic anhydrase activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}, {"color": "#fef3c7", "description": "Hydroxide ion produced by urea hydrolysis, raising local pH.", "grounding": "CHEBI:16234", "id": "hydroxide", "is_orphan": false, "label": "hydroxide", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3f4f6", "description": "Local pH, increased by urease-driven alkalinization.", "grounding": null, "id": "ph_quality", "is_orphan": false, "label": "pH", "node_type": "QUALITY", "xrefs": []}, {"color": "#fef3c7", "description": "Substrate hydrolyzed by urease.", "grounding": "CHEBI:16199", "id": "urea", "is_orphan": false, "label": "urea", "node_type": "CHEMICAL", "xrefs": []}, {"color": "#f3e8ff", "description": "Nickel metalloenzyme hydrolyzing urea.", "grounding": null, "id": "urease", "is_orphan": false, "label": "urease", "node_type": "GENE_OR_PROTEIN", "xrefs": []}, {"color": "#dbeafe", "description": "Possession of urease.", "grounding": "traitmech:000077", "id": "urease_activity_trait", "is_orphan": false, "label": "urease activity", "node_type": "TRAIT", "xrefs": []}, {"color": "#cffafe", "description": "Hydrolysis of urea to ammonia and carbon dioxide.", "grounding": "GO:0009039", "id": "urease_function", "is_orphan": false, "label": "urease activity", "node_type": "MOLECULAR_FUNCTION", "xrefs": []}], "title": "Urease-catalyzed urea hydrolysis"}];
graphs.forEach(function(graph, index) {
renderPathograph("pathograph-" + (index + 1), graph);
});
@@ -881,7 +887,7 @@
- Record as of 2026-08-06 01:00 UTC from
+ Record as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/pages/umap.html b/pages/umap.html
index 85898e02..fae9734d 100644
--- a/pages/umap.html
+++ b/pages/umap.html
@@ -238,7 +238,7 @@
- Corpus as of 2026-08-07 18:00 UTC from
+ Corpus as of 2026-08-08 05:00 UTC from
METPO 2025-11-25
· 477 TraitRecords
· embedding coverage 100.0%
diff --git a/reports/biolink_coverage.tsv b/reports/biolink_coverage.tsv
index 9bcc1892..16a763f8 100644
--- a/reports/biolink_coverage.tsv
+++ b/reports/biolink_coverage.tsv
@@ -201,7 +201,6 @@ residual has quality 3
residual feed into 3
residual polymerizes into 3
residual disrupts biolink:disrupts 3
-residual reduced in 3
residual carries out 3
residual scaffolds 3
residual encapsulates 3
@@ -274,6 +273,7 @@ residual gives rise to 2
residual localizes 2
residual polymerizes to 2
residual attaches 2
+residual reduced in 2
residual incomplete separation yields 2
residual combines with 2
residual dephosphorylates 2
@@ -403,7 +403,6 @@ residual cause 1
residual causes increase in 1
residual induces transcription of 1
residual expands 1
-residual has capability 1
residual acts as antioxidant against 1
residual exceeds tolerance of 1
residual resists 1
diff --git a/reports/causal_graph_audit.tsv b/reports/causal_graph_audit.tsv
index 1a5db78e..156f7496 100644
--- a/reports/causal_graph_audit.tsv
+++ b/reports/causal_graph_audit.tsv
@@ -224,7 +224,6 @@ data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline UNREACHABLE_FROM_TRAIT WARN node_id='hypersaline_environment' label='hypersaline environment' type=ENVIRONMENTAL_FACTOR — in an island with no path to nacl_delta_high_trait/nacl_delta
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline UNREACHABLE_FROM_TRAIT WARN node_id='halophilic_osmoadaptation' label='halophilic osmoadaptation strategies' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_high_trait/nacl_delta
data/traits/environment/nacl_delta_high.yaml nacl_delta_high_extreme_euryhaline FRAGMENTED_GRAPH WARN components=6 of 14 node(s) (sizes: 3, 3, 2, 2, 2, 2) — one record, several unrelated mechanisms
-data/traits/environment/nacl_delta_low.yaml nacl_delta_low_stenohaline DISPOSITION_MISTYPED WARN node_id='salt_tolerance_breadth' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='osmotic_upshift' label='osmotic upshift' type=ENVIRONMENTAL_FACTOR — in an island with no path to nacl_delta_mid1_trait/nacl_delta
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='k_import' label='potassium import' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_mid1_trait/nacl_delta
data/traits/environment/nacl_delta_mid1.yaml nacl_delta_mid1_modest_breadth UNREACHABLE_FROM_TRAIT WARN node_id='compatible_solute_accumulation' label='compatible solute accumulation' type=BIOLOGICAL_PROCESS — in an island with no path to nacl_delta_mid1_trait/nacl_delta
@@ -326,38 +325,27 @@ data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phe
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor UNREACHABLE_FROM_TRAIT WARN node_id='amino_acid_decarboxylation' label='amino-acid decarboxylation' type=BIOLOGICAL_PROCESS — in an island with no path to optimum_phenotype_trait/nacl_optimum/ph_optimum/temperature_optimum
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor UNREACHABLE_FROM_TRAIT WARN node_id='proton_motive_force' label='proton motive force' type=BIOLOGICAL_PROCESS — in an island with no path to optimum_phenotype_trait/nacl_optimum/ph_optimum/temperature_optimum
data/traits/environment/optimum_phenotype_with_numerical_limits.yaml optimum_phenotype_descriptor FRAGMENTED_GRAPH WARN components=4 of 14 node(s) (sizes: 5, 5, 2, 2) — one record, several unrelated mechanisms
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='reactive_oxygen_species_stress' label='oxygen / reactive oxygen species stress' type=ENVIRONMENTAL_FACTOR — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='detoxifying_enzyme_expression' label='detoxifying-enzyme gene expression' type=BIOLOGICAL_PROCESS — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='catalase' label='catalase' type=GENE_OR_PROTEIN — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='hydrogen_peroxide' label='hydrogen peroxide' type=CHEMICAL — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='superoxide_dismutase' label='superoxide dismutase' type=GENE_OR_PROTEIN — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis UNREACHABLE_FROM_TRAIT WARN node_id='oxygen_tolerance' label='oxygen tolerance' type=CAPACITY — in an island with no path to oxygen_preference_trait/aerobic_phenotype/anaerobic_phenotype/microaerophilic_phenotype/facultative_phenotype
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis DISPOSITION_MISTYPED WARN node_id='oxygen_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis FRAGMENTED_GRAPH WARN components=3 of 14 node(s) (sizes: 8, 4, 2) — one record, several unrelated mechanisms
+data/traits/environment/oxygen_preference.yaml oxygen_preference_o2_availability_axis FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 11, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='membrane_lipid_remodeling' label='saturated membrane fatty acid remodeling' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_trait
data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='proton_permeability' label='membrane proton permeability' type=QUALITY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='amino_acid_decarboxylase_acid_resistance' label='amino-acid decarboxylase acid-resistance system' type=PATHWAY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility UNREACHABLE_FROM_TRAIT WARN node_id='low_ph_tolerance' label='low-pH tolerance' type=CAPACITY — in an island with no path to ph_delta_trait
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility DISPOSITION_MISTYPED WARN node_id='low_ph_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility FRAGMENTED_GRAPH WARN components=3 of 12 node(s) (sizes: 8, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/ph_delta.yaml ph_delta_homeostasis_flexibility FRAGMENTED_GRAPH WARN components=2 of 11 node(s) (sizes: 9, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_ph_homeostasis' label='cytoplasmic pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='respiratory_proton_pumps' label='respiratory proton-pumping enzymes' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_buffering_capacity' label='cytoplasmic buffering capacity' type=CAPACITY — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='membrane_lipid_porin_changes' label='membrane lipid/porin composition changes' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth UNREACHABLE_FROM_TRAIT WARN node_id='inward_proton_leakage' label='inward proton leakage' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_high_trait/ph_delta/growth_external_ph_5_5_9
-data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth DUPLICATE_GROUNDING WARN nodes=2;grounding=METPO:1000478 (growth_external_ph_5_5_9, ph_delta_high_trait)
data/traits/environment/ph_delta_high.yaml ph_delta_high_euryphilic_breadth FRAGMENTED_GRAPH WARN components=4 of 14 node(s) (sizes: 7, 3, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='external_ph_stress' label='external pH stress' type=ENVIRONMENTAL_FACTOR — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='cytoplasmic_ph_homeostasis' label='cytoplasmic pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='pmf_architecture' label='proton motive force architecture' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='ph_homeostasis_capacity' label='pH homeostasis capacity' type=CAPACITY — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='weak_organic_acids' label='weak organic acids' type=CHEMICAL — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='delta_ph' label='delta pH / cytoplasmic pH' type=STATE — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='electrogenic_na_h_antiport' label='electrogenic Na+/H+ antiport' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='alkaline_ph_homeostasis' label='alkaline pH homeostasis' type=BIOLOGICAL_PROCESS — in an island with no path to ph_delta_low_trait/ph_delta
data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth UNREACHABLE_FROM_TRAIT WARN node_id='f1fo_atpase' label='F1Fo-ATPase' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_low_trait/ph_delta
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth DISPOSITION_MISTYPED WARN node_id='ph_homeostasis_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth FRAGMENTED_GRAPH WARN components=5 of 12 node(s) (sizes: 3, 3, 2, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/ph_delta_low.yaml ph_delta_low_limited_breadth FRAGMENTED_GRAPH WARN components=4 of 11 node(s) (sizes: 4, 3, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='gln_glu_decarboxylation_pathway' label='glutamine/glutamate decarboxylation pathway' type=PATHWAY — in an island with no path to ph_delta_mid1_trait/ph_delta
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='intracellular_proton' label='intracellular proton (H+)' type=CHEMICAL — in an island with no path to ph_delta_mid1_trait/ph_delta
data/traits/environment/ph_delta_mid1.yaml ph_delta_mid1_moderate_breadth UNREACHABLE_FROM_TRAIT WARN node_id='ybas_glutaminase' label='YbaS glutaminase' type=GENE_OR_PROTEIN — in an island with no path to ph_delta_mid1_trait/ph_delta
@@ -503,8 +491,7 @@ data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_ad
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='protein_membrane_stability' label='protein and membrane stability under cold stress' type=QUALITY — in an island with no path to psychrotolerant_trait
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='extracellular_polymeric_substances' label='extracellular polymeric substances (EPS)' type=CHEMICAL — in an island with no path to psychrotolerant_trait
data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation UNREACHABLE_FROM_TRAIT WARN node_id='freeze_thaw_cryoprotection' label='cryoprotection against freeze-thaw cycles' type=BIOLOGICAL_PROCESS — in an island with no path to psychrotolerant_trait
-data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation DISPOSITION_MISTYPED WARN node_id='growth_at_4c' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation FRAGMENTED_GRAPH WARN components=3 of 12 node(s) (sizes: 8, 2, 2) — one record, several unrelated mechanisms
+data/traits/environment/psychrotolerant.yaml psychrotolerant_facultative_cold_adaptation FRAGMENTED_GRAPH WARN components=3 of 11 node(s) (sizes: 7, 2, 2) — one record, several unrelated mechanisms
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='intracellular_osmotic_balance' label='intracellular osmotic balance across salinity' type=BIOLOGICAL_PROCESS — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='salt_out_compatible_solute_strategy' label='compatible-solute (salt-out) strategy' type=PATHWAY — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis UNREACHABLE_FROM_TRAIT WARN node_id='salt_in_strategy' label='salt-in strategy' type=PATHWAY — in an island with no path to salinity_phenotype_trait/nacl_optimum/nacl_range/nacl_delta
@@ -512,8 +499,7 @@ data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_p
data/traits/environment/salinity_phenotype_with_numerical_limits.yaml salinity_phenotype_numerical_axis FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 9, 4) — one record, several unrelated mechanisms
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation UNREACHABLE_FROM_TRAIT WARN node_id='ion_homeostasis' label='ion homeostasis during salt stress' type=BIOLOGICAL_PROCESS — in an island with no path to slightly_halophilic_trait
data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation UNREACHABLE_FROM_TRAIT WARN node_id='na_k_transcription' label='Na+/K+ transcriptional induction' type=BIOLOGICAL_PROCESS — in an island with no path to slightly_halophilic_trait
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation DISPOSITION_MISTYPED WARN node_id='salt_tolerance' type=CAPACITY — description reads as a disposition, which is a TRAIT
-data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation FRAGMENTED_GRAPH WARN components=2 of 11 node(s) (sizes: 9, 2) — one record, several unrelated mechanisms
+data/traits/environment/slightly_halophilic.yaml slight_halophile_low_salt_osmoadaptation FRAGMENTED_GRAPH WARN components=2 of 10 node(s) (sizes: 8, 2) — one record, several unrelated mechanisms
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='c_di_amp' label='cyclic di-AMP' type=CHEMICAL — in an island with no path to stenohaline_trait
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='k_import_systems' label='K+ import systems' type=GENE_OR_PROTEIN — in an island with no path to stenohaline_trait
data/traits/environment/stenohaline.yaml stenohaline_narrow_salinity_tolerance UNREACHABLE_FROM_TRAIT WARN node_id='opua_importer' label='compatible-solute importer OpuA' type=GENE_OR_PROTEIN — in an island with no path to stenohaline_trait
@@ -1212,7 +1198,6 @@ data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNR
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNREACHABLE_FROM_TRAIT WARN node_id='ftsz_z_ladders' label='FtsZ Z-ladder arrays' type=GENE_OR_PROTEIN — in an island with no path to mycelial_growth_trait
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth UNREACHABLE_FROM_TRAIT WARN node_id='sporulation_septation' label='sporulation septation and spore-chain formation' type=BIOLOGICAL_PROCESS — in an island with no path to mycelial_growth_trait
data/traits/morphology/mycelial_growth.yaml mycelial_branching_hyphal_growth FRAGMENTED_GRAPH WARN components=4 of 13 node(s) (sizes: 5, 4, 2, 2) — one record, several unrelated mechanisms
-data/traits/morphology/non_spore_forming.yaml non_spore_forming_absent_spo0a_cascade DISPOSITION_MISTYPED WARN node_id='loss_sporulation_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='crt_y_lycopene_cyclase' label='lycopene beta-cyclase (CrtY)' type=GENE_OR_PROTEIN — in an island with no path to orange_pigmented_trait
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='lycopene' label='lycopene' type=CHEMICAL — in an island with no path to orange_pigmented_trait
data/traits/morphology/orange_pigmented.yaml orange_pigmented_carotenoid_accumulation UNREACHABLE_FROM_TRAIT WARN node_id='beta_carotene' label='beta-carotene' type=CHEMICAL — in an island with no path to orange_pigmented_trait
@@ -1285,7 +1270,6 @@ data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_pac
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet UNREACHABLE_FROM_TRAIT WARN node_id='peripheral_pg_bridge' label='peripheral peptidoglycan bridge' type=CELLULAR_LOCALIZATION — in an island with no path to sarcina_trait
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet UNREACHABLE_FROM_TRAIT WARN node_id='daughter_cell_separation' label='daughter-cell separation' type=BIOLOGICAL_PROCESS — in an island with no path to sarcina_trait
data/traits/morphology/sarcina_arrangement.yaml sarcina_three_plane_division_packet FRAGMENTED_GRAPH WARN components=5 of 14 node(s) (sizes: 4, 3, 3, 2, 2) — one record, several unrelated mechanisms
-data/traits/morphology/sphere_shaped.yaml sphere_shaped_septal_peptidoglycan DISPOSITION_MISTYPED WARN node_id='elongation_capacity' type=CAPACITY — description reads as a disposition, which is a TRAIT
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIID' label='SpoIID' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIIM' label='SpoIIM' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
data/traits/morphology/spore_forming.yaml spore_forming_endospore_assembly UNREACHABLE_FROM_TRAIT WARN node_id='spoIIP' label='SpoIIP' type=GENE_OR_PROTEIN — in an island with no path to spore_forming_trait
@@ -1366,7 +1350,6 @@ data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREA
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREACHABLE_FROM_TRAIT WARN node_id='coo_operon' label='coo operon' type=GENE_OR_PROTEIN — in an island with no path to carboxydotrophic_trait
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation UNREACHABLE_FROM_TRAIT WARN node_id='cooa_regulator' label='CooA' type=GENE_OR_PROTEIN — in an island with no path to carboxydotrophic_trait
data/traits/physiology/carboxydotrophic.yaml carboxydotrophic_co_oxidation FRAGMENTED_GRAPH WARN components=2 of 18 node(s) (sizes: 14, 4) — one record, several unrelated mechanisms
-data/traits/physiology/catalase_activity.yaml catalase_activity_h2o2_detoxification DUPLICATE_GROUNDING WARN nodes=2;grounding=GO:0004096 (catalase, catalase_function)
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon UNREACHABLE_FROM_TRAIT WARN node_id='mannitol_pts' label='PEP-dependent phosphotransferase system (mannitol PTS)' type=GENE_OR_PROTEIN — in an island with no path to chemoheterotrophic_trait
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon UNREACHABLE_FROM_TRAIT WARN node_id='mannitol' label='mannitol' type=CHEMICAL — in an island with no path to chemoheterotrophic_trait
data/traits/physiology/chemoheterotrophic.yaml chemoheterotrophic_organic_energy_carbon FRAGMENTED_GRAPH WARN components=2 of 14 node(s) (sizes: 12, 2) — one record, several unrelated mechanisms
@@ -1519,7 +1502,6 @@ data/traits/physiology/photoorganoheterotrophic.yaml photoorganoheterotrophic_li
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture UNREACHABLE_FROM_TRAIT WARN node_id='rhodopsin' label='rhodopsin' type=GENE_OR_PROTEIN — in an island with no path to phototrophic_trait
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture UNREACHABLE_FROM_TRAIT WARN node_id='ion_transport' label='ion transport across membrane' type=BIOLOGICAL_PROCESS — in an island with no path to phototrophic_trait
data/traits/physiology/phototrophic.yaml phototrophic_light_energy_capture FRAGMENTED_GRAPH WARN components=2 of 13 node(s) (sizes: 11, 2) — one record, several unrelated mechanisms
-data/traits/physiology/urease_activity.yaml urease_activity_urea_hydrolysis DUPLICATE_GROUNDING WARN nodes=2;grounding=GO:0009039 (urease, urease_function)
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='rpos' label='RpoS sigma factor' type=GENE_OR_PROTEIN — in an island with no path to vbnc_trait
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='resuscitation' label='resuscitation from VBNC' type=BIOLOGICAL_PROCESS — in an island with no path to vbnc_trait
data/traits/physiology/viable_but_nonculturable_state.yaml vbnc_stress_induced_dormancy UNREACHABLE_FROM_TRAIT WARN node_id='atp' label='ATP' type=CHEMICAL — in an island with no path to vbnc_trait
diff --git a/reports/node_grounding_residual.tsv b/reports/node_grounding_residual.tsv
index 1791bd45..ff08a0f0 100644
--- a/reports/node_grounding_residual.tsv
+++ b/reports/node_grounding_residual.tsv
@@ -625,7 +625,6 @@ compatible-solute transporters (opu/prou) GENE_OR_PROTEIN 1 data/traits/environm
trkh potassium uptake system GENE_OR_PROTEIN 1 data/traits/environment/nacl_delta_low.yaml
nhac-family na+/h+ antiporter GENE_OR_PROTEIN 1 data/traits/environment/nacl_delta_low.yaml
intracellular proline accumulation CHEMICAL 1 data/traits/environment/nacl_delta_low.yaml
-salt-tolerance breadth CAPACITY 1 data/traits/environment/nacl_delta_low.yaml
modest osmoadaptive flexibility BIOLOGICAL_PROCESS 1 data/traits/environment/nacl_delta_mid1.yaml
osmoadaptation / growth under nacl stress BIOLOGICAL_PROCESS 1 data/traits/environment/nacl_delta_mid1.yaml
ectoine biosynthesis (ectb/ecta/ectc) PATHWAY 1 data/traits/environment/nacl_delta_mid1.yaml
@@ -745,7 +744,6 @@ ambient molecular oxygen ENVIRONMENTAL_FACTOR 1 data/traits/environment/oxygen_p
o2 as terminal electron acceptor MOLECULAR_FUNCTION 1 data/traits/environment/oxygen_preference.yaml
oxygen / reactive oxygen species stress ENVIRONMENTAL_FACTOR 1 data/traits/environment/oxygen_preference.yaml
detoxifying-enzyme gene expression BIOLOGICAL_PROCESS 1 data/traits/environment/oxygen_preference.yaml
-oxygen tolerance CAPACITY 1 data/traits/environment/oxygen_preference.yaml
ph-homeostasis flexibility BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta.yaml
ph tolerance breadth BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta.yaml
external ph homeostasis BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta.yaml
@@ -753,7 +751,6 @@ f0f1-atpase activity MOLECULAR_FUNCTION 1 data/traits/environment/ph_delta.yaml
monovalent cation:h+ antiporter activity MOLECULAR_FUNCTION 1 data/traits/environment/ph_delta.yaml
saturated membrane fatty acid remodeling BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta.yaml
amino-acid decarboxylase acid-resistance system PATHWAY 1 data/traits/environment/ph_delta.yaml
-low-ph tolerance CAPACITY 1 data/traits/environment/ph_delta.yaml
maximal ph-homeostasis flexibility BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta_high.yaml
respiratory proton-pumping enzymes GENE_OR_PROTEIN 1 data/traits/environment/ph_delta_high.yaml
near-neutral cytoplasmic ph QUALITY 1 data/traits/environment/ph_delta_high.yaml
@@ -761,7 +758,6 @@ constant proton motive force BIOLOGICAL_PROCESS 1 data/traits/environment/ph_del
membrane lipid/porin composition changes BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta_high.yaml
limited ph-homeostasis flexibility BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta_low.yaml
proton motive force architecture BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta_low.yaml
-ph homeostasis capacity CAPACITY 1 data/traits/environment/ph_delta_low.yaml
weak organic acids CHEMICAL 1 data/traits/environment/ph_delta_low.yaml
delta ph / cytoplasmic ph STATE 1 data/traits/environment/ph_delta_low.yaml
moderate ph-homeostasis flexibility BIOLOGICAL_PROCESS 1 data/traits/environment/ph_delta_mid1.yaml
@@ -919,7 +915,6 @@ membrane rigidification and thickening QUALITY 1 data/traits/environment/psychro
unsaturated hopanoids CHEMICAL 1 data/traits/environment/psychrotolerant.yaml
protein and membrane stability under cold stress QUALITY 1 data/traits/environment/psychrotolerant.yaml
cryoprotection against freeze-thaw cycles BIOLOGICAL_PROCESS 1 data/traits/environment/psychrotolerant.yaml
-growth at 4 degrees c CAPACITY 1 data/traits/environment/psychrotolerant.yaml
ionizing or uv radiation exposure ENVIRONMENTAL_FACTOR 1 data/traits/environment/radiotolerant.yaml
manganese-antioxidant proteome protection BIOLOGICAL_PROCESS 1 data/traits/environment/radiotolerant.yaml
reactive oxygen species (ros) CHEMICAL 1 data/traits/environment/radiotolerant.yaml
@@ -937,7 +932,6 @@ chaotropic ions (mg/ca/li/fe salts) CHEMICAL 1 data/traits/environment/salinity_
water activity ENVIRONMENTAL_FACTOR 1 data/traits/environment/salinity_phenotype_with_numerical_limits.yaml
low to moderate nacl ENVIRONMENTAL_FACTOR 1 data/traits/environment/slightly_halophilic.yaml
osmoprotectant transport MOLECULAR_FUNCTION 1 data/traits/environment/slightly_halophilic.yaml
-salt tolerance CAPACITY 1 data/traits/environment/slightly_halophilic.yaml
ectabc/ectbacd gene cluster GENE_OR_PROTEIN 1 data/traits/environment/slightly_halophilic.yaml
ion homeostasis during salt stress BIOLOGICAL_PROCESS 1 data/traits/environment/slightly_halophilic.yaml
na+/k+ transcriptional induction BIOLOGICAL_PROCESS 1 data/traits/environment/slightly_halophilic.yaml
@@ -1850,7 +1844,6 @@ no endospore formation BIOLOGICAL_PROCESS 1 data/traits/morphology/non_spore_for
absence of spo0a gene GENE_OR_PROTEIN 1 data/traits/morphology/non_spore_forming.yaml
loss of sporulation genes BIOLOGICAL_PROCESS 1 data/traits/morphology/non_spore_forming.yaml
low or absent spo0a activity MOLECULAR_FUNCTION 1 data/traits/morphology/non_spore_forming.yaml
-loss of sporulation capacity CAPACITY 1 data/traits/morphology/non_spore_forming.yaml
rap phosphatases GENE_OR_PROTEIN 1 data/traits/morphology/non_spore_forming.yaml
dephosphorylation of spo0f BIOLOGICAL_PROCESS 1 data/traits/morphology/non_spore_forming.yaml
spo0a phosphorelay disruption BIOLOGICAL_PROCESS 1 data/traits/morphology/non_spore_forming.yaml
@@ -1956,7 +1949,6 @@ peptidoglycan synthetases and hydrolases GENE_OR_PROTEIN 1 data/traits/morpholog
cell wall synthesis at division site BIOLOGICAL_PROCESS 1 data/traits/morphology/sarcina_arrangement.yaml
peripheral peptidoglycan bridge CELLULAR_LOCALIZATION 1 data/traits/morphology/sarcina_arrangement.yaml
mreb-mediated elongation machinery GENE_OR_PROTEIN 1 data/traits/morphology/sphere_shaped.yaml
-elongation capacity CAPACITY 1 data/traits/morphology/sphere_shaped.yaml
divisome and pbps GENE_OR_PROTEIN 1 data/traits/morphology/sphere_shaped.yaml
ftsw lipid ii flippase GENE_OR_PROTEIN 1 data/traits/morphology/sphere_shaped.yaml
symmetric polar peptidoglycan growth BIOLOGICAL_PROCESS 1 data/traits/morphology/spindle_shaped.yaml
diff --git a/reports/predicate_grounding_residual.tsv b/reports/predicate_grounding_residual.tsv
index bc3e94dc..e2889bec 100644
--- a/reports/predicate_grounding_residual.tsv
+++ b/reports/predicate_grounding_residual.tsv
@@ -91,7 +91,6 @@ has quality 3 unmapped data/traits/metabolism/wood_ljungdahl_pathway.yaml|data/
feed into 3 unmapped data/traits/morphology/black_pigmented.yaml|data/traits/morphology/carotenoid_pigmentation.yaml|data/traits/morphology/pink_pigmented.yaml
polymerizes into 3 unmapped data/traits/morphology/black_pigmented.yaml|data/traits/morphology/magnetosome.yaml
disrupts 3 unmapped data/traits/morphology/cell_shape.yaml|data/traits/morphology/irregular_shaped.yaml
-reduced in 3 unmapped data/traits/morphology/coccus_shaped.yaml|data/traits/morphology/sphere_shaped.yaml
carries out 3 unmapped data/traits/morphology/ellipsoidal.yaml|data/traits/upper/biological_process.yaml
scaffolds 3 unmapped data/traits/morphology/fusiform_shaped.yaml|data/traits/morphology/tetrad_arrangement.yaml|data/traits/physiology/chemotaxis.yaml
encapsulates 3 unmapped data/traits/morphology/intracellular_inclusion.yaml|data/traits/physiology/chemoautotrophic.yaml
@@ -164,6 +163,7 @@ gives rise to 2 unmapped data/traits/morphology/bacillus_shaped.yaml|data/trait
localizes 2 unmapped data/traits/morphology/branched_shaped.yaml|data/traits/morphology/star_shaped.yaml
polymerizes to 2 unmapped data/traits/morphology/brown_pigmented.yaml
attaches 2 unmapped data/traits/morphology/cell_length.yaml|data/traits/morphology/sarcina_arrangement.yaml
+reduced in 2 unmapped data/traits/morphology/coccus_shaped.yaml|data/traits/morphology/sphere_shaped.yaml
incomplete separation yields 2 unmapped data/traits/morphology/diplococcus_shaped.yaml
combines with 2 unmapped data/traits/morphology/flask_shaped.yaml|data/traits/morphology/oval_shaped.yaml
dephosphorylates 2 unmapped data/traits/morphology/non_spore_forming.yaml|data/traits/physiology/chemotaxis.yaml
@@ -293,7 +293,6 @@ cause 1 unmapped data/traits/environment/ph_range_very_low.yaml
causes increase in 1 unmapped data/traits/environment/piezotolerant.yaml
induces transcription of 1 unmapped data/traits/environment/piezotolerant.yaml
expands 1 unmapped data/traits/environment/pressure_range.yaml
-has capability 1 unmapped data/traits/environment/psychrotolerant.yaml
acts as antioxidant against 1 unmapped data/traits/environment/radiotolerant.yaml
exceeds tolerance of 1 unmapped data/traits/environment/stenohaline.yaml
resists 1 unmapped data/traits/environment/temperature_delta_high.yaml
diff --git a/scripts/migrate_disposition_typing.py b/scripts/migrate_disposition_typing.py
new file mode 100644
index 00000000..e900bec5
--- /dev/null
+++ b/scripts/migrate_disposition_typing.py
@@ -0,0 +1,321 @@
+#!/usr/bin/env python3
+"""Burn down the 11 baselined DISPOSITION_MISTYPED / DUPLICATE_GROUNDING findings (#352).
+
+#353 shipped the detection and baselined what it found. This is the burn-down.
+
+THE HEADLINE IS THAT NONE OF THEM WERE RETYPES. #352 framed the fix as "sweep
+CAPACITY nodes matching the disposition pattern and retype them". Not one of the
+eight survived the attempt, and the thing that killed each one is the grounding:
+
+ every TRAIT node in the corpus is grounded, so retyping a node forces you to
+ name the term it IS -- and for all eight, the only available term restates
+ the record, contradicts it, or is narrower than the node it labels.
+
+Grounding them anyway trades a DISPOSITION_MISTYPED for a DUPLICATE_GROUNDING,
+or for a false claim, and calls it progress. Requiring a grounding is what
+exposes that, which is #352's own third bullet read strictly.
+
+It took three rounds to get here, and the count went 4 -> 2 -> 0:
+
+ round 1 called four retypes and four restatements.
+ round 2 (#360 review) salt_tolerance_breadth was grounded METPO:1000622 while
+ keeping `is a -> nacl_delta`, asserting halotolerant sub NaCl-delta;
+ oxygen_tolerance was grounded METPO:1000609, sub the record's own
+ METPO:1000601 and false of the obligate aerobes it covers.
+ round 3 (#360 review) salt_tolerance was grounded METPO:1000622, a DIRECT
+ SIBLING of the record's METPO:1000625 asserting the negation of it
+ ("does not require salt" vs "requires salt"); low_ph_tolerance was
+ grounded METPO:1003008, whose definition excludes the acidophiles
+ the generic pH-delta record covers.
+
+The lesson worth keeping: "is this term distinct from the record's own?" is the
+WRONG test, and it passed all four of the nodes that later failed. The right
+test is whether the term is COMPATIBLE with the record and no NARROWER than the
+node -- a sibling term is maximally distinct and still wrong.
+
+MEASURED, NOT ASSERTED: retyping changed the component structure of ZERO of the
+eight graphs -- it only ever added an anchor inside what was already there.
+Merging improves three of them (oxygen_preference 3 components -> 2, ph_delta
+3 -> 2, ph_delta_low 5 -> 4); the other five are pure deduplication and leave
+the component count where it was. Both facts are invisible in
+UNREACHABLE_FROM_TRAIT, which reads 1296 either way, and that is why #359
+exists. Saying "eight merges, three of them structural" is the honest claim;
+saying "merging attaches the islands" would be this migration making exactly
+the kind of overclaim it was written to catch.
+
+#352's third bullet is what made this findable: "retype in one pass, GROUNDING
+EACH -- an ungrounded new TRAIT node silently becomes a reachability anchor and
+makes UNREACHABLE_FROM_TRAIT fall without the graph actually becoming more
+connected." It warns about the anchor effect and suggests requiring a grounding
+as the remedy. Requiring one did something better than prevent the anchor: it
+made every retype in the sweep fail out loud.
+
+CAPACITY IS NOT VESTIGIAL, which the issue left open. 24 nodes carry it; these 8
+leave 16, and the survivors are a different sense entirely -- `reducing_power`
+(a pool of reductants), `cytoplasmic_buffering_capacity` (a reservoir),
+`swimming_velocity` (a rate), `metabolic_versatility` (a breadth). Reservoir and
+quantity capacities are not organism dispositions and must stay. That two-senses
+split is the same shape `reduces` recorded in mappings/predicate_grounding.tsv,
+and it is why #353's heuristic is organism-scoped rather than matching bare
+"capacity to".
+
+Usage:
+ python scripts/migrate_disposition_typing.py [--dry-run]
+"""
+from __future__ import annotations
+
+import argparse
+import sys
+from pathlib import Path
+
+import yaml
+
+REPO_ROOT = Path(__file__).resolve().parent.parent
+sys.path.insert(0, str(REPO_ROOT / "src"))
+
+from traitmech.curate.curation_event import record_curation_event # noqa: E402
+from traitmech.validation.write_validated import emit_trait_yaml # noqa: E402
+
+TRAITS = REPO_ROOT / "data" / "traits"
+
+# Fixed rather than wall-clock, because pages/ derives its "Corpus as of" stamp
+# from the latest curation_history entry (#228) and a clock would make every
+# re-run of this migration produce a different 477-page diff.
+TIMESTAMP = "2026-08-08T05:00:00Z"
+
+# The first pass logged all eleven events as RETYPE_CAUSAL_NODE, including the
+# seven that were not retypes at all. An audit trail that calls a merge a retype
+# cannot answer the question it exists to answer, so each kind gets its own
+# label. RETYPE_CAUSAL_NODE now goes unused, which is the honest outcome.
+ACTIONS = {
+ "retype": "RETYPE_CAUSAL_NODE",
+ "merge": "MERGE_CAUSAL_NODE",
+ "drop": "DROP_CAUSAL_NODE",
+ "reground": "REGROUND_CAUSAL_NODE",
+ "unground": "UNGROUND_CAUSAL_NODE",
+}
+
+# --- no retypes -------------------------------------------------------------
+# THIS TABLE IS EMPTY, AND THAT IS THE FINDING. #352 framed the whole issue as
+# a retype sweep; three rounds of review took the retype count 4 -> 2 -> 0. Each
+# round failed the same test: the grounding a node needs in order to BE a trait
+# turned out to restate, contradict, or narrow the record it sits in. Kept as an
+# empty table rather than deleted, because "we looked and there were none" and
+# "we never modelled retypes" are different claims and only one is true.
+RETYPE: dict[tuple[str, str], dict] = {
+}
+
+# --- the eight restatements --------------------------------------------------
+# `into` repoints the node's edges onto an existing node and drops it; `drop`
+# removes a leaf outright.
+MERGE: dict[tuple[str, str], dict] = {
+ ("environment/slightly_halophilic.yaml", "salt_tolerance"): {
+ "into": "slightly_halophilic_trait",
+ "why": "A SEVENTH restatement, caught in the third review round (#360). I had "
+ "grounded it METPO:1000622 (halotolerant), reasoning that the record is "
+ "METPO:1000625 (slightly halophilic) so the term is 'distinct'. It is "
+ "distinct in the worst way: 1000622 and 1000625 are DIRECT SIBLINGS under "
+ "1000629 (halophily preference), and 1000622 means 'tolerates high salt "
+ "but DOES NOT REQUIRE it for growth' while 1000625 means the organism "
+ "'REQUIRES low to moderate salt for optimal growth'. So the node asserted "
+ "of this record the negation of what the record's own term says. Distinct "
+ "is not the test; compatible is. NO CONNECTIVITY CLAIM HERE: the node was "
+ "already in the trait's component via osmoprotectant_transport -> "
+ "compatible_solutes -> osmotic_stress, so merging leaves the graph at 2 "
+ "components and is a correctness fix, not a structural one. METPO has no "
+ "generic salt-tolerance disposition to reground to: halotolerant and "
+ "acidotolerant are the only candidate labels and each already anchors its "
+ "own record. Recorded as issue #364, which proposes a tolerance axis "
+ "distinct from the preference axis; nothing under proposals/ yet.",
+ },
+ ("environment/ph_delta.yaml", "low_ph_tolerance"): {
+ "into": "ph_delta_trait",
+ "why": "An EIGHTH restatement (#360). I had grounded it METPO:1003008 "
+ "(acidotolerant) and claimed 'no collision' with the record's "
+ "METPO:1000232 (pH delta). No collision, but the wrong SCOPE: 1003008 is "
+ "defined as tolerating acid 'WHILE MAINTAINING OPTIMAL GROWTH NEAR NEUTRAL "
+ "pH', which excludes the acidophiles this generic pH-delta record covers. "
+ "A grounding narrower than the node it labels is a false claim about every "
+ "organism in the excluded part. Also a pure sink. Merging repoints "
+ "amino_acid_decarboxylase_acid_resistance onto ph_delta_trait, which reads "
+ "correctly: an acid-resistance system widens the growth-supporting pH "
+ "range, and a pH delta IS that range.",
+ },
+ ("environment/nacl_delta_low.yaml", "salt_tolerance_breadth"): {
+ "into": "nacl_delta",
+ "why": "A FIFTH restatement, caught in review (#360). 'Capacity to grow across a "
+ "range of ambient NaCl concentrations' against nacl_delta's 'Breadth of the "
+ "growth-supporting NaCl range' -- the same claim, and nacl_delta is in the "
+ "same graph already TRAIT and already grounded METPO:1000335. I had "
+ "retyped it and grounded it METPO:1000622 (halotolerant), which is a "
+ "DEGREE of tolerance, not a breadth: 1000622 is a halophily preference "
+ "(sub 1000629) while 1000335 is a delta (sub 1000532/1000534), so the "
+ "node's existing `is a -> nacl_delta` edge asserted halotolerant sub NaCl "
+ "delta, a subsumption METPO does not have. The absolute-vs-breadth "
+ "distinction this migration insists on for pH, missed for salt.",
+ },
+ ("environment/oxygen_preference.yaml", "oxygen_tolerance"): {
+ "into": "oxygen_preference_trait",
+ "why": "A SIXTH restatement (#360). METPO:1000601's own definition is 'an "
+ "organism's oxygen requirements OR TOLERANCE for growth', so 'capacity of "
+ "a cell to survive exposure to molecular oxygen' is part of what the "
+ "anchor already says. I had grounded it METPO:1000609 (aerotolerant), "
+ "which METPO defines as 'does NOT USE O2 for growth but tolerates its "
+ "presence' -- the aerotolerant-anaerobe phenotype, false of the obligate "
+ "aerobes this node also covers -- and which is itself sub METPO:1000601, "
+ "making it a sixth child phenotype in a graph that wires the other four "
+ "in with `is a` and left this one unlinked. aerotolerant.yaml, the record "
+ "FOR 1000609, has no such node at all: it models the same biology as "
+ "detoxification processes. Merging attaches the ROS-defence island to the "
+ "trait, which unlike a retype is a real connectivity gain.",
+ },
+ ("environment/ph_delta_low.yaml", "ph_homeostasis_capacity"): {
+ "into": "cytoplasmic_ph_homeostasis",
+ "why": "'Capacity to balance and maintain cytoplasmic pH under pH stress' is "
+ "cytoplasmic_ph_homeostasis, which is IN THE SAME GRAPH already typed "
+ "BIOLOGICAL_PROCESS and grounded GO:0051453. Grounding the capacity node "
+ "to GO:0051453 would have produced a DUPLICATE_GROUNDING against it.",
+ },
+ ("morphology/sphere_shaped.yaml", "elongation_capacity"): {
+ "into": "lateral_elongation",
+ "why": "'Capacity of a cell to elongate into a rod via sidewall growth' against "
+ "lateral_elongation's 'Sidewall growth mode that lengthens rods' -- the "
+ "same claim twice, and both already carried `reduced in -> "
+ "sphere_shaped_trait`.",
+ },
+ ("morphology/non_spore_forming.yaml", "loss_sporulation_capacity"): {
+ "into": "non_spore_forming_trait",
+ "why": "'Loss of the capacity to undergo sporulation' IS the record's own trait "
+ "(METPO:1000872, non-spore forming), so the only correct grounding "
+ "duplicates the anchor. Collapsing leaves low_spo0a_activity -causes-> "
+ "non_spore_forming_trait, which is the shape loss_sporulation_genes "
+ "already uses in this graph.",
+ },
+ ("environment/psychrotolerant.yaml", "growth_at_4c"): {
+ "drop": True,
+ "why": "'Ability to grow at refrigeration-range low temperature (4 C)' IS "
+ "METPO:1000618 (psychrotolerant), the record's own term and the grounding "
+ "of psychrotolerant_trait, which is the node it hangs off. A leaf "
+ "restating its own parent. The parent keeps two other in-edges "
+ "(cold_shock_response confers, facultative_lipid_remodeling manifests as), "
+ "so nothing is stranded.",
+ },
+}
+
+# --- duplicate groundings ----------------------------------------------------
+REGROUND: dict[tuple[str, str], dict] = {
+ ("environment/ph_delta_high.yaml", "growth_external_ph_5_5_9"): {
+ "grounding": "METPO:1000332", # pH range
+ "why": "Shared METPO:1000478 with ph_delta_high_trait, but the two say different "
+ "things: this node is an ABSOLUTE external range ('~5.5-9.0'), while "
+ "ph_delta_high_trait is a BREADTH ('approximately 5-9 pH units'), which is "
+ "what a pH DELTA is. 1000478 belongs to the delta; this is a pH range "
+ "(METPO:1000332).",
+ },
+ ("physiology/catalase_activity.yaml", "catalase"): {
+ "grounding": None,
+ "why": "GO:0004096 is 'catalase ACTIVITY' -- a molecular function, which is what "
+ "catalase_function is. A protein is not its activity, and the graph already "
+ "says so correctly: catalase -enables-> catalase_function. Dropped from the "
+ "protein, kept on the function.",
+ },
+ ("physiology/urease_activity.yaml", "urease"): {
+ "grounding": None,
+ "why": "GO:0009039 is 'urease ACTIVITY'. Same as catalase: kept on urease_function, "
+ "dropped from the protein that enables it.",
+ },
+}
+
+
+def apply(dry_run: bool = False) -> int:
+ files: dict[str, list] = {}
+ for kind, table in (("retype", RETYPE), ("merge", MERGE), ("reground", REGROUND)):
+ for (rel, node_id), spec in table.items():
+ files.setdefault(rel, []).append((kind, node_id, spec))
+
+ for rel, actions in sorted(files.items()):
+ path = TRAITS / rel
+ doc = yaml.safe_load(path.read_text())
+ events: list[tuple[str, str]] = []
+ for kind, node_id, spec in actions:
+ graph = next((g for g in doc.get("causal_graphs") or []
+ if any(n.get("node_id") == node_id for n in g.get("nodes") or [])),
+ None)
+ if graph is None:
+ print(f" MISSING NODE {rel} {node_id}", file=sys.stderr)
+ return 1
+ nodes = graph["nodes"]
+ node = next(n for n in nodes if n["node_id"] == node_id)
+
+ if kind == "retype":
+ was = node.get("node_type")
+ node["node_type"] = "TRAIT"
+ node["grounding"] = spec["grounding"]
+ print(f" retype {rel} {node_id} -> TRAIT {spec['grounding']}")
+ events.append(("retype", f"Retyped node {node_id} from {was} to TRAIT and "
+ f"grounded it {spec['grounding']}. Issue 352. "
+ f"{spec['why']}"))
+
+ elif kind == "reground":
+ if spec["grounding"] is None:
+ was_grounding = node.pop("grounding", None)
+ print(f" unground {rel} {node_id}")
+ events.append(("unground", f"Dropped the grounding {was_grounding} from node "
+ f"{node_id}. Issue 352. {spec['why']}"))
+ else:
+ was_grounding = node.get("grounding")
+ node["grounding"] = spec["grounding"]
+ print(f" reground {rel} {node_id} -> {spec['grounding']}")
+ events.append(("reground", f"Regrounded node {node_id} from {was_grounding} to "
+ f"{spec['grounding']}. Issue 352. {spec['why']}"))
+
+ else: # merge
+ target = spec.get("into")
+ if target and not any(n["node_id"] == target for n in nodes):
+ print(f" MISSING TARGET {rel} {target}", file=sys.stderr)
+ return 1
+ kept = []
+ for e in graph.get("edges") or []:
+ if node_id not in (e["subject"], e["object"]):
+ kept.append(e)
+ continue
+ if not target:
+ continue # drop the leaf's edge outright
+ e["subject"] = target if e["subject"] == node_id else e["subject"]
+ e["object"] = target if e["object"] == node_id else e["object"]
+ if e["subject"] == e["object"]:
+ continue # collapsed onto itself
+ # An edge identical to one already present is a restatement too.
+ if any(k["subject"] == e["subject"] and k["object"] == e["object"]
+ and k.get("predicate") == e.get("predicate") for k in kept):
+ continue
+ kept.append(e)
+ graph["edges"] = kept
+ graph["nodes"] = [n for n in nodes if n["node_id"] != node_id]
+ print(f" merge {rel} {node_id} -> {target or '(dropped)'}")
+ if target:
+ events.append(("merge", f"Merged node {node_id} into {target} and repointed its "
+ f"edges. Issue 352. {spec['why']}"))
+ else:
+ events.append(("drop", f"Dropped node {node_id} and its edges. Issue 352. "
+ f"{spec['why']}"))
+
+ for key, changes in events:
+ record_curation_event(doc, curator="claude", action=ACTIONS[key],
+ changes=changes, llm_assisted=True, timestamp=TIMESTAMP)
+
+ if not dry_run:
+ path.write_text(emit_trait_yaml(doc))
+ print(f"\n{sum(len(v) for v in files.values())} finding(s) resolved across "
+ f"{len(files)} file(s){' (dry run)' if dry_run else ''}", file=sys.stderr)
+ return 0
+
+
+def main() -> int:
+ ap = argparse.ArgumentParser(description=__doc__)
+ ap.add_argument("--dry-run", action="store_true")
+ return apply(ap.parse_args().dry_run)
+
+
+if __name__ == "__main__":
+ sys.exit(main())