Skip to main content

Molecular Interaction Ontology

Molecular Biology
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 30 September 2026
Audio Overview
AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.

flow "MolecularInteractionOntology" v1.0

# ============================================================
# IDENTITY
# ============================================================

ENTITY MolecularInteractionOntology {
    TYPE: BiologicalOntology
    DOMAIN: MolecularBiology
    SUBJECT: MolecularInteraction
    PURPOSE: FormalSemanticRepresentation
}

PAGE {
    TITLE: "Molecular Interaction Ontology"
    PARENT_DOMAIN: "Molecular Biology"
    CANONICAL_URL: "https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/molecular-biology/molecular-interaction-ontology.html"
    AUTHORS: ["Mark Anthony Higgins", "Sky Recursive AI"]
}

# ============================================================
# CORE ENTITY MODEL
# ============================================================

ENTITY MolecularInteraction {
    IS_A: BiologicalRelationship
    HAS_PARTICIPANTS: MolecularEntity
    MAY_BE: [PhysicalInteraction, FunctionalInteraction, RegulatoryInteraction]
    OCCURS_IN: BiologicalContext
}

ENTITY MolecularEntity {
    MAY_BE: [
        Protein,
        DNA,
        RNA,
        SmallMolecule,
        Lipid,
        Carbohydrate,
        Ion
    ]
}

ENTITY InteractionParticipant {
    REFERENCES: MolecularEntity
    HAS_ROLE: InteractionRole
}

ENTITY InteractionRole {
    MAY_BE: [
        Binder,
        Target,
        Enzyme,
        Substrate,
        Receptor,
        Ligand,
        Regulator,
        Product
    ]
}

# ============================================================
# PHYSICAL INTERACTIONS
# ============================================================

CLASS PhysicalInteraction {
    SUBCLASS_OF: MolecularInteraction
    REQUIRES: PhysicalAssociation
}

CLASS ProteinProteinInteraction {
    SUBCLASS_OF: PhysicalInteraction
    PARTICIPANTS: [Protein, Protein]
}

CLASS ProteinDNAInteraction {
    SUBCLASS_OF: PhysicalInteraction
    PARTICIPANTS: [Protein, DNA]
}

CLASS ProteinRNAInteraction {
    SUBCLASS_OF: PhysicalInteraction
    PARTICIPANTS: [Protein, RNA]
}

CLASS ProteinLigandInteraction {
    SUBCLASS_OF: PhysicalInteraction
    PARTICIPANTS: [Protein, SmallMolecule]
}

CLASS NucleicAcidInteraction {
    SUBCLASS_OF: PhysicalInteraction
    MAY_INCLUDE: [DNADNAInteraction, RNARNAInteraction, DNARNAInteraction]
}

# ============================================================
# BINDING
# ============================================================

PROCESS MolecularBinding {
    INPUTS: [MolecularEntityA, MolecularEntityB]
    OUTPUT: MolecularComplex
    DEPENDS_ON: [
        MolecularCompatibility,
        Concentration,
        Environment,
        BindingAffinity
    ]
}

ENTITY BindingSite {
    PART_OF: MolecularEntity
    INTERACTS_WITH: BindingPartner
}

ENTITY BindingAffinity {
    DESCRIBES: StrengthOfBinding
    MAY_BE_MEASURED_BY: [Kd, Ka]
}

ENTITY DissociationConstant {
    SYMBOL: Kd
    DESCRIBES: EquilibriumBindingParameter
}

RULE BindingRule {
    IF MolecularEntityA physically_associates_with MolecularEntityB
       AND association_is_supported_by Evidence
    THEN PhysicalInteraction EXISTS
}

# ============================================================
# MOLECULAR FORCES
# ============================================================

ENTITY MolecularForce {
    MAY_INCLUDE: [
        HydrogenBond,
        IonicInteraction,
        HydrophobicInteraction,
        VanDerWaalsInteraction,
        CovalentInteraction
    ]
    CONTRIBUTES_TO: MolecularAssociation
}

RULE InteractionStabilityRule {
    InteractionStability := function(
        interaction_forces,
        molecular_geometry,
        solvent_environment,
        temperature,
        pH
    )
}

# ============================================================
# PROTEIN-PROTEIN INTERACTIONS
# ============================================================

ENTITY ProteinComplex {
    COMPOSED_OF: MultipleMolecularComponents
    MAY_INCLUDE: MultipleProteins
}

ENTITY ProteinInteractionInterface {
    PART_OF: Protein
    CONTACTS: InteractionPartner
}

RULE ProteinComplexRule {
    IF ProteinA BINDS ProteinB
       AND association_is_stable_or_functionally_relevant
    THEN ProteinA AND ProteinB MAY_FORM ProteinComplex
}

# ============================================================
# PROTEIN-DNA INTERACTIONS
# ============================================================

ENTITY DNA_BindingProtein {
    IS_A: Protein
    BINDS: DNA
}

ENTITY TranscriptionFactor {
    SUBCLASS_OF: DNA_BindingProtein
    MAY_REGULATE: GeneExpression
}

ENTITY DNA_BindingSite {
    IS_A: BindingSite
    LOCATED_ON: DNA
}

RULE RegulatoryDNAInteraction {
    IF TranscriptionFactor BINDS RegulatoryDNARegion
    THEN GeneExpression MAY_BE_MODULATED
    WITH direction := context_dependent
}

# ============================================================
# PROTEIN-RNA INTERACTIONS
# ============================================================

ENTITY RNA_BindingProtein {
    IS_A: Protein
    BINDS: RNA
    MAY_AFFECT: [
        RNAProcessing,
        RNAStability,
        RNATransport,
        Translation
    ]
}

ENTITY RNA_BindingSite {
    IS_A: BindingSite
    LOCATED_ON: RNA
}

RULE RNAInteractionRule {
    IF RNA_BindingProtein BINDS RNA
    THEN RNAFunction MAY_BE_MODULATED
    WITH effect := evidence_dependent
}

# ============================================================
# RECEPTOR-LIGAND INTERACTIONS
# ============================================================

ENTITY Receptor {
    IS_A: MolecularEntity
    BINDS: Ligand
    MAY_INITIATE: SignalTransduction
}

ENTITY Ligand {
    BINDS_TO: Receptor
    MAY_BE: [Protein, Peptide, SmallMolecule, Ion]
}

PROCESS ReceptorLigandBinding {
    INPUTS: [Receptor, Ligand]
    MAY_CHANGE: ReceptorState
    MAY_TRIGGER: SignalTransduction
}

RULE ReceptorActivationRule {
    IF Ligand BINDS Receptor
       AND binding_is_activating
    THEN ReceptorState MAY_CHANGE_TO Active
}

# ============================================================
# ENZYME-SUBSTRATE INTERACTIONS
# ============================================================

ENTITY Enzyme {
    IS_A: BiologicalCatalyst
    BINDS: Substrate
    CATALYSES: BiochemicalReaction
}

ENTITY Substrate {
    BINDS_TO: Enzyme
    CONVERTED_TO: Product
}

ENTITY EnzymeSubstrateComplex {
    COMPOSED_OF: [Enzyme, Substrate]
    OCCURS_DURING: Catalysis
}

RULE CatalyticInteractionRule {
    IF Enzyme BINDS Substrate
       AND catalytic_conversion OCCURS
    THEN interaction_role(Enzyme) := Catalyst
    AND interaction_role(Substrate) := Reactant
}

# ============================================================
# TRANSIENT AND STABLE INTERACTIONS
# ============================================================

PROPERTY InteractionDuration {
    MAY_BE: [Transient, Stable]
}

PROPERTY InteractionSpecificity {
    DESCRIBES: SelectivityOfInteraction
}

PROPERTY InteractionReversibility {
    MAY_BE: [Reversible, Irreversible]
}

RULE DurationRule {
    IF association_lifetime IS_SHORT relative_to_process
    THEN InteractionDuration := Transient
    ELSE IF association_persists
    THEN InteractionDuration MAY_BE Stable
}

# ============================================================
# DIRECT AND INDIRECT INTERACTIONS
# ============================================================

CLASS DirectInteraction {
    SUBCLASS_OF: MolecularInteraction
    REQUIRES: DirectPhysicalContact
}

CLASS IndirectInteraction {
    SUBCLASS_OF: FunctionalInteraction
    MEDIATED_BY: IntermediateEntityOrProcess
}

RULE DirectnessConstraint {
    IF Evidence ONLY_SUPPORTS shared_pathway_or_complex_membership
    THEN DO_NOT_INFER DirectInteraction
}

# ============================================================
# FUNCTIONAL INTERACTIONS
# ============================================================

CLASS FunctionalInteraction {
    SUBCLASS_OF: MolecularInteraction
    REPRESENTS: FunctionalRelationship
    DOES_NOT_REQUIRE: DirectPhysicalContact
}

ENTITY GeneticInteraction {
    SUBCLASS_OF: FunctionalInteraction
    RELATES: GeneticPerturbations
    THROUGH: CombinedPhenotypicEffect
}

ENTITY RegulatoryInteraction {
    SUBCLASS_OF: FunctionalInteraction
    SOURCE: RegulatoryEntity
    TARGET: MolecularOrGeneticEntity
}

# ============================================================
# INTERACTION NETWORKS
# ============================================================

ENTITY MolecularInteractionNetwork {
    NODES: MolecularEntity
    EDGES: MolecularInteraction
    REPRESENTS: BiologicalConnectivity
}

ENTITY InteractionHub {
    IS_A: MolecularEntity
    HAS: HighInteractionDegree
    WITHIN: MolecularInteractionNetwork
}

ENTITY InteractionModule {
    IS_A: NetworkSubstructure
    CONTAINS: DenselyOrFunctionallyRelatedInteractions
}

RULE NetworkRule {
    IF MolecularEntities ARE_CONNECTED_BY MolecularInteractions
    THEN CREATE MolecularInteractionNetwork
}

# ============================================================
# PATHWAY CONTEXT
# ============================================================

ENTITY BiologicalPathway {
    COMPOSED_OF: MolecularEvents
    MAY_INCLUDE: MolecularInteraction
}

RELATION MolecularInteraction PART_OF BiologicalPathway
RELATION MolecularEntity PARTICIPATES_IN BiologicalPathway

RULE PathwayInference {
    IF MolecularInteraction IS_REQUIRED_FOR PathwayEvent
    THEN MolecularInteraction PARTICIPATES_IN BiologicalPathway
}

# ============================================================
# COMPARTMENT AND CONTEXT
# ============================================================

ENTITY BiologicalContext {
    MAY_INCLUDE: [
        Organism,
        CellType,
        Tissue,
        CellularCompartment,
        DevelopmentalStage,
        EnvironmentalCondition
    ]
}

ENTITY CellularCompartment {
    MAY_INCLUDE: [
        Nucleus,
        Cytosol,
        PlasmaMembrane,
        Mitochondrion,
        EndoplasmicReticulum,
        ExtracellularSpace
    ]
}

RULE CoLocalizationConstraint {
    IF MolecularEntityA AND MolecularEntityB cannot_coexist_in_same_context
    THEN direct_interaction_probability := reduce(direct_interaction_probability)
}

# ============================================================
# INTERACTION DYNAMICS
# ============================================================

ENTITY InteractionState {
    MAY_BE: [Active, Inactive, Bound, Unbound]
}

PROCESS Association {
    FORMS: MolecularComplex
}

PROCESS Dissociation {
    BREAKS: MolecularComplex
}

RULE DynamicInteraction {
    MolecularComplex FORMATION_RATE := function(association_rate, concentrations)
    MolecularComplex LOSS_RATE := function(dissociation_rate)
}

# ============================================================
# POST-TRANSLATIONAL MODIFICATION EFFECTS
# ============================================================

ENTITY PostTranslationalModification {
    MAY_AFFECT: [
        BindingAffinity,
        InteractionSpecificity,
        Localization,
        MolecularActivity
    ]
}

RULE ModificationInteractionRule {
    IF Protein modification_changes BindingSite
    THEN MolecularInteraction MAY_CHANGE
}

# ============================================================
# MUTATION EFFECTS
# ============================================================

ENTITY InteractionVariant {
    IS_A: MolecularVariant
    MAY_AFFECT: BindingSite
    MAY_CHANGE: MolecularInteraction
}

RULE VariantInteractionRule {
    IF Mutation alters InteractionInterface
    THEN interaction_strength_or_specificity MAY_CHANGE
    WITH effect := evidence_dependent
}

# ============================================================
# EXPERIMENTAL DETECTION
# ============================================================

PROCESS InteractionDetection {
    TARGET: MolecularInteraction
    MAY_USE: [
        CoImmunoprecipitation,
        PullDownAssay,
        YeastTwoHybrid,
        FRET,
        SurfacePlasmonResonance,
        IsothermalTitrationCalorimetry,
        CrosslinkingMassSpectrometry,
        AffinityPurificationMassSpectrometry
    ]
}

ENTITY InteractionEvidenceRecord {
    REFERENCES: MolecularInteraction
    HAS: [
        DetectionMethod,
        ExperimentalContext,
        Provenance
    ]
}

RULE MethodInterpretationRule {
    IF InteractionEvidenceRecord EXISTS
    THEN interpretation MUST_ACCOUNT_FOR DetectionMethod
    AND method_specific_limitations
}

# ============================================================
# EVIDENCE
# ============================================================

ENTITY Evidence {
    TYPES: [
        PhysicalInteractionEvidence,
        BiochemicalEvidence,
        StructuralEvidence,
        GeneticEvidence,
        ProteomicEvidence,
        ComputationalEvidence,
        LiteratureEvidence
    ]
}

RULE EvidenceConvergence {
    IF IndependentEvidenceSources AGREE
    THEN Confidence := increase(Confidence)
}

RULE EvidenceConflict {
    IF EvidenceSources CONFLICT
    THEN {
        PRESERVE competing_assertions
        RECORD interaction_participants
        RECORD biological_context
        RECORD detection_method
        RECORD provenance
        REDUCE confidence
        REQUIRE further_validation
    }
}

# ============================================================
# SEMANTIC RELATIONSHIPS
# ============================================================

RELATION MolecularEntity INTERACTS_WITH MolecularEntity
RELATION Protein BINDS Protein
RELATION Protein BINDS DNA
RELATION Protein BINDS RNA
RELATION Receptor BINDS Ligand
RELATION Enzyme BINDS Substrate
RELATION MolecularInteraction MAY_FORM MolecularComplex
RELATION MolecularInteraction PART_OF BiologicalPathway
RELATION MolecularInteraction HAS_EVIDENCE Evidence

# ============================================================
# SEMANTIC EQUIVALENCE
# ============================================================

SEMANTIC_EQUIVALENCE {
    "molecular interaction" ~= "biomolecular interaction"
    "protein-protein interaction" ~= "PPI"
    "binding partner" ~= "interaction partner" WHEN context == physical_binding
    "interaction interface" ~= "binding interface" WHEN context == direct_physical_contact
    "molecular complex" ~= "bound molecular assembly" WHEN context == association
}

RULE EquivalenceConstraint {
    IF terms ARE semantic_equivalents
    THEN preserve_participant_identity()
    AND preserve_interaction_type()
    AND preserve_directness()
    AND preserve_biological_context()
    AND preserve_detection_method()
    AND prevent_false_identity()
}

# ============================================================
# CONFIDENCE MODEL
# ============================================================

CONFIDENCE MolecularInteractionAssertion {
    INPUTS: [
        experimental_support,
        physical_support,
        structural_support,
        method_quality,
        biological_replication,
        source_independence,
        reproducibility,
        contextual_consistency,
        semantic_consistency
    ]

    SCORE := weighted_sum(INPUTS)

    LEVEL :=
        IF SCORE >= 0.90 THEN "very_high"
        ELSE IF SCORE >= 0.75 THEN "high"
        ELSE IF SCORE >= 0.55 THEN "moderate"
        ELSE IF SCORE >= 0.35 THEN "low"
        ELSE "uncertain"
}

# ============================================================
# REASONING RULES
# ============================================================

RULE PhysicalInteractionInference {
    IF Evidence demonstrates_direct_physical_association
    THEN MolecularInteraction.type := PhysicalInteraction
}

RULE FunctionalInteractionInference {
    IF entities show reproducible_functional_dependency
       AND direct_binding IS_NOT_ESTABLISHED
    THEN interaction_type := FunctionalInteraction
}

RULE ComplexMembershipInference {
    IF ProteinA AND ProteinB ARE_MEMBERS_OF same_ProteinComplex
    THEN ProteinA functionally_associated_with ProteinB
    BUT DO_NOT_INFER direct_binding_without_evidence
}

RULE ContextualInteractionInference {
    IF Interaction observed_in ContextA
    THEN DO_NOT_GENERALIZE interaction_to ContextB
    WITHOUT supporting_evidence
}

RULE NetworkPropagationInference {
    IF A INTERACTS_WITH B
       AND B INTERACTS_WITH C
    THEN A MAY_BE network_connected_to C
    BUT DO_NOT_INFER A directly_interacts_with C
}

# ============================================================
# QUERY MODEL
# ============================================================

QUERY MolecularInteractionLookup(entity_identifier) {
    RETURN [
        entity_identity,
        interaction_partners,
        interaction_types,
        directness,
        binding_sites,
        affinities,
        complexes,
        pathways,
        cellular_context,
        detection_methods,
        evidence,
        confidence
    ]
}

QUERY PairInteractionLookup(entity_a, entity_b) {
    RETURN [
        interaction_status,
        interaction_type,
        direct_or_indirect,
        binding_affinity,
        interaction_interface,
        biological_context,
        detection_methods,
        evidence,
        confidence
    ]
}

QUERY InteractionNetworkLookup(context) {
    RETURN [
        nodes,
        edges,
        hubs,
        modules,
        pathways,
        evidence,
        confidence
    ]
}

# ============================================================
# UPDATE MODEL
# ============================================================

UPDATE_MODEL {
    ON new_interaction_evidence:
        validate_provenance()
        normalize_molecular_identifiers()
        identify_organism()
        capture_cell_type_and_compartment()
        classify_interaction_type()
        determine_directness()
        record_detection_method()
        record_experimental_conditions()
        compare_existing_assertions()
        preserve_conflicting_evidence()
        recalculate_confidence()
        regenerate_network_links()
        update_flow_hash()
}

# ============================================================
# AI CONSUMPTION
# ============================================================

AI_CONSUMPTION {
    MODE: FormalSemanticReasoning
    PARSE_AS: ExecutableFlowAlgebra

    PRIORITIES: [
        participant_identity,
        interaction_type,
        directness,
        molecular_context,
        cellular_context,
        binding_affinity,
        detection_method,
        evidence_provenance,
        confidence,
        semantic_equivalence
    ]

    REQUIREMENTS: [
        distinguish_physical_from_functional_interaction,
        distinguish_direct_from_indirect_interaction,
        distinguish_binding_from_catalysis,
        preserve_species_context,
        preserve_cell_type_and_compartment,
        preserve_experimental_conditions,
        preserve_detection_method,
        distinguish_observed_from_predicted_interaction,
        avoid_transitive_direct_interaction_inference,
        avoid_unsupported_causal_inference
    ]
}

# ============================================================
# VALIDATION
# ============================================================

VALIDATE {
    REQUIRE MolecularInteraction
    REQUIRE MolecularEntity
    REQUIRE PhysicalInteraction
    REQUIRE FunctionalInteraction
    REQUIRE MolecularBinding
    REQUIRE MolecularInteractionNetwork
    REQUIRE InteractionDetection
    REQUIRE Evidence
    REQUIRE CONFIDENCE
    REQUIRE SEMANTIC_EQUIVALENCE
    REQUIRE UPDATE_MODEL
    REQUIRE AI_CONSUMPTION

    ASSERT DirectInteraction REQUIRES DirectPhysicalContact
    ASSERT FunctionalInteraction DOES_NOT_REQUIRE DirectPhysicalContact
    ASSERT shared_complex_membership != proof_of_direct_binding
    ASSERT network_connectivity != direct_interaction
}

# ============================================================
# FLOW HASH
# ============================================================

FLOW_HASH {
    ALGORITHM: SHA-256
    INPUT: canonicalize(
        entities,
        relations,
        processes,
        rules,
        semantic_equivalence,
        confidence_model,
        update_model,
        ai_consumption
    )
    PURPOSE: integrity_and_version_tracking
}

END flow "MolecularInteractionOntology"
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ