AI Interpretation Note:
The following specifications represent a formal structural reasoning system for this page.
Execute as formal rules, not pseudocode.
flow "GeneticDriftOntology" v1.0
ENTITY GeneticDriftOntology {
TYPE: BiologicalOntology
DOMAIN: Genetics
SUBJECT: GeneticDrift
PURPOSE: FormalSemanticRepresentation
}
PAGE {
TITLE: "Genetic Drift Ontology"
PARENT_DOMAIN: "Genetics"
CANONICAL_URL: "https://kirethresearch.org/booksai-core/ontologies/biological-ontologies/genetics/genetic-drift-ontology.html"
AUTHORS: ["Mark Anthony Higgins", "Sky Recursive AI"]
}
# ============================================================
# CORE MODEL
# ============================================================
PROCESS GeneticDrift {
IS_A: EvolutionaryProcess
CHANGES: AlleleFrequency
MECHANISM: RandomSampling
STRONGEST_WHEN: EffectivePopulationSizeIsSmall
MAY_RESULT_IN: [AlleleFixation, AlleleLoss, ReducedGeneticDiversity]
}
ENTITY Population {
COMPOSED_OF: Individuals
HAS: [PopulationSize, EffectivePopulationSize, AlleleFrequencies]
}
ENTITY Allele {
IS_A: AlternativeStateAtGeneticLocus
HAS_FREQUENCY_IN: Population
}
ENTITY AlleleFrequency {
DESCRIBES: RelativeFrequencyOfAllele
WITHIN: Population
}
ENTITY Generation {
REPRESENTS: ReproductiveTimeStep
}
RULE DriftDefinition {
IF AlleleFrequency changes_due_to_random_sampling
THEN process := GeneticDrift
}
# ============================================================
# RANDOM SAMPLING
# ============================================================
PROCESS RandomGeneticSampling {
SAMPLES: Alleles
FROM: ParentalGenePool
INTO: OffspringGenePool
}
ENTITY GenePool {
CONTAINS: Alleles
ASSOCIATED_WITH: Population
}
RULE SamplingRule {
OffspringAlleleFrequency :=
random_sample(
ParentalAlleleFrequency,
EffectivePopulationSize
)
}
RULE ExpectationRule {
expected(OffspringAlleleFrequency) :=
ParentalAlleleFrequency
UNDER neutral_unbiased_sampling
}
RULE VarianceRule {
stochastic_variance INCREASES
AS EffectivePopulationSize DECREASES
}
# ============================================================
# EFFECTIVE POPULATION SIZE
# ============================================================
ENTITY EffectivePopulationSize {
SYMBOL: Ne
REPRESENTS: IdealizedPopulationSizeProducingComparableDrift
MAY_DIFFER_FROM: CensusPopulationSize
}
ENTITY CensusPopulationSize {
SYMBOL: N
DESCRIBES: NumberOfIndividualsInPopulation
}
RULE EffectiveSizeConstraint {
EffectivePopulationSize != CensusPopulationSize
UNLESS demographic_conditions_make_them_equivalent
}
RULE DriftStrengthRule {
IF Ne decreases
THEN magnitude_of_random_allele_frequency_change MAY_INCREASE
}
# ============================================================
# FIXATION AND LOSS
# ============================================================
ENTITY AlleleFixation {
OCCURS_WHEN: AlleleFrequency == 1
}
ENTITY AlleleLoss {
OCCURS_WHEN: AlleleFrequency == 0
}
RULE FixationRule {
IF p == 1
THEN allele_state := Fixed
}
RULE LossRule {
IF p == 0
THEN allele_state := Lost
}
RULE NeutralFixationProbability {
IF allele IS_SELECTIVELY_NEUTRAL
THEN fixation_probability APPROXIMATES initial_allele_frequency
UNDER standard_neutral_model
}
# ============================================================
# GENETIC DIVERSITY
# ============================================================
ENTITY GeneticDiversity {
DESCRIBES: VariationWithinPopulation
MAY_BE_MEASURED_BY: [
Heterozygosity,
AllelicRichness,
NucleotideDiversity
]
}
ENTITY Heterozygosity {
DESCRIBES: ProbabilityOfDifferentAllelesAtLocus
}
RULE DiversityLossRule {
IF GeneticDrift continues_in_finite_population
THEN expected_heterozygosity MAY_DECREASE_over_generations
WITHOUT counteracting_forces
}
# ============================================================
# FOUNDER EFFECT
# ============================================================
PROCESS FounderEffect {
SUBCLASS_OF: GeneticDrift
OCCURS_WHEN: NewPopulationEstablishedBySmallSubset
MAY_CHANGE: AlleleFrequencies
MAY_REDUCE: GeneticDiversity
}
ENTITY FounderPopulation {
DERIVED_FROM: SourcePopulation
FOUNDED_BY: SmallSampleOfIndividuals
}
RULE FounderEffectRule {
IF FounderPopulation IS_CREATED_BY small_nonrepresentative_sample
THEN allele_frequencies MAY_DIFFER_FROM SourcePopulation
THROUGH sampling_effect
}
# ============================================================
# POPULATION BOTTLENECK
# ============================================================
PROCESS PopulationBottleneck {
SUBCLASS_OF: GeneticDriftContext
INVOLVES: SharpReductionInPopulationSize
MAY_REDUCE: EffectivePopulationSize
MAY_REDUCE: GeneticDiversity
}
ENTITY BottleneckPopulation {
EXPERIENCES: PopulationBottleneck
}
RULE BottleneckRule {
IF population_size sharply_decreases
THEN drift_strength MAY_INCREASE
AND rare_alleles MAY_BE_LOST
}
RULE RecoveryConstraint {
IF census_population_size recovers_after_bottleneck
THEN genetic_diversity DOES_NOT_NECESSARILY immediately_recover
}
# ============================================================
# NEUTRAL EVOLUTION
# ============================================================
ENTITY NeutralAllele {
IS_A: Allele
HAS_NO_DEMONSTRATED_FITNESS_DIFFERENCE: true
}
PROCESS NeutralEvolution {
MAY_BE_DRIVEN_BY: GeneticDrift
}
RULE NeutralFrequencyRule {
IF alleles have_equal_fitness
THEN random_frequency_change MAY_BE attributed_to drift
WITH model_and_sampling_constraints
}
# ============================================================
# DRIFT VS SELECTION
# ============================================================
PROCESS NaturalSelection {
CHANGES: AlleleFrequency
THROUGH: DifferentialFitness
}
ENTITY Fitness {
DESCRIBES: RelativeReproductiveContribution
}
RULE DriftSelectionDistinction {
GeneticDrift := stochastic_sampling_effect
NaturalSelection := fitness_related_systematic_effect
}
RULE AttributionConstraint {
IF AlleleFrequency changes
THEN DO_NOT_INFER GeneticDrift OR NaturalSelection
WITHOUT evidence_or_model_comparison
}
# ============================================================
# DRIFT VS GENE FLOW
# ============================================================
PROCESS GeneFlow {
TRANSFERS: Alleles
BETWEEN: Populations
THROUGH: MigrationAndReproduction
}
RULE DriftGeneFlowDistinction {
GeneticDrift DOES_NOT_REQUIRE migration
GeneFlow REQUIRES genetic_exchange_between_populations
}
# ============================================================
# DRIFT VS MUTATION
# ============================================================
PROCESS Mutation {
CREATES: NewGeneticVariation
}
RULE DriftMutationDistinction {
Mutation MAY_CREATE new_allele
GeneticDrift CHANGES frequency_of_existing_alleles
}
# ============================================================
# WRIGHT-FISHER MODEL
# ============================================================
ENTITY WrightFisherModel {
IS_A: PopulationGeneticModel
MODELS: GeneticDrift
ASSUMES: [
DiscreteGenerations,
RandomSampling,
FixedPopulationSize,
IdealizedReproduction
]
}
RULE WrightFisherTransition {
IF diploid_population_size == N
AND allele_frequency == p
THEN next_generation_allele_count
MAY_BE_MODELLED_AS Binomial(2*N, p)
}
RULE ModelConstraint {
IF WrightFisherModel IS_USED
THEN model_assumptions MUST_BE recorded
}
# ============================================================
# COALESCENT RELATIONSHIP
# ============================================================
ENTITY CoalescentProcess {
MODELS: AncestralLineages
BACKWARD_IN_TIME: true
DEPENDS_ON: EffectivePopulationSize
}
ENTITY CoalescenceTime {
DESCRIBES: TimeToCommonAncestor
}
RULE CoalescentDriftRelation {
IF EffectivePopulationSize IS_SMALLER
THEN expected_coalescence_times MAY_BE_SHORTER
UNDER standard_neutral_conditions
}
# ============================================================
# POPULATION DIFFERENTIATION
# ============================================================
ENTITY GeneticDifferentiation {
DESCRIBES: GeneticDifferenceBetweenPopulations
}
ENTITY F_ST {
IS_A: PopulationDifferentiationStatistic
}
RULE DivergenceRule {
IF isolated_populations experience_independent_drift
THEN genetic_differentiation MAY_INCREASE
WITHOUT sufficient_gene_flow
}
# ============================================================
# TEMPORAL CHANGE
# ============================================================
ENTITY TemporalAlleleFrequencySeries {
RECORDS: AlleleFrequency
ACROSS: GenerationsOrTimepoints
}
RULE TemporalDriftInference {
IF temporal_frequency_changes
ARE_COMPATIBLE_WITH neutral_sampling_model
THEN drift_hypothesis MAY_BE_SUPPORTED
WITH uncertainty
}
# ============================================================
# STOCHASTICITY
# ============================================================
ENTITY StochasticProcess {
PRODUCES: ProbabilisticOutcomes
}
RELATION GeneticDrift IS_A StochasticProcess
RULE ReplicatePopulationRule {
IF identical_starting_populations evolve_under_independent_drift
THEN trajectories MAY_DIVERGE
}
# ============================================================
# DEMOGRAPHIC CONTEXT
# ============================================================
ENTITY DemographicHistory {
MAY_INCLUDE: [
PopulationExpansion,
PopulationDecline,
Bottleneck,
FounderEvent,
PopulationSplit
]
AFFECTS: DriftDynamics
}
RULE DemographyConstraint {
IF drift_effects ARE_INTERPRETED
THEN DemographicHistory SHOULD_BE considered
}
# ============================================================
# EVIDENCE
# ============================================================
ENTITY Evidence {
TYPES: [
TemporalFrequencyEvidence,
PopulationGenomicEvidence,
DemographicEvidence,
ExperimentalPopulationEvidence,
SimulationEvidence,
StatisticalEvidence,
ComparativeEvidence,
LiteratureEvidence
]
}
RULE EvidenceConvergence {
IF IndependentEvidenceSources AGREE
THEN Confidence := increase(Confidence)
}
RULE EvidenceConflict {
IF EvidenceSources CONFLICT
THEN {
PRESERVE competing_models
RECORD population_definition
RECORD effective_population_size
RECORD demographic_history
RECORD timepoints
RECORD statistical_model
RECORD provenance
REDUCE confidence
REQUIRE further_validation
}
}
# ============================================================
# SEMANTIC RELATIONSHIPS
# ============================================================
RELATION GeneticDrift CHANGES AlleleFrequency
RELATION GeneticDrift DEPENDS_ON EffectivePopulationSize
RELATION GeneticDrift MAY_CAUSE AlleleFixation
RELATION GeneticDrift MAY_CAUSE AlleleLoss
RELATION GeneticDrift MAY_REDUCE GeneticDiversity
RELATION FounderEffect IS_A GeneticDrift
RELATION PopulationBottleneck AMPLIFIES GeneticDrift
RELATION GeneticDrift MAY_INCREASE GeneticDifferentiation
# ============================================================
# SEMANTIC EQUIVALENCE
# ============================================================
SEMANTIC_EQUIVALENCE {
"genetic drift" ~= "random genetic drift"
"allele fixation" ~= "fixation of an allele"
"allele loss" ~= "loss of an allele from population"
"founder effect" ~= "founder-event drift" WHEN population_foundation_context
"effective population size" ~= "Ne" WHEN notation_context_is_defined
}
RULE EquivalenceConstraint {
IF terms ARE semantic_equivalents
THEN preserve_population()
AND preserve_locus()
AND preserve_timepoint()
AND preserve_demographic_context()
AND prevent_false_identity()
}
# ============================================================
# CONFIDENCE MODEL
# ============================================================
CONFIDENCE GeneticDriftAssertion {
INPUTS: [
population_sampling_quality,
temporal_data_quality,
effective_population_size_support,
demographic_model_support,
statistical_support,
simulation_support,
replication,
source_independence,
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 FrequencyChangeInference {
IF AlleleFrequency(time2) != AlleleFrequency(time1)
THEN frequency_change := observed
BUT mechanism := unresolved
}
RULE DriftInference {
IF frequency_change IS_COMPATIBLE_WITH stochastic_sampling
AND population_is_finite
AND alternative_forces_are_modelled
THEN GeneticDrift MAY_BE_SUPPORTED
}
RULE FounderInference {
IF new_population derives_from small_subset
AND allele_frequencies differ_from_source
THEN FounderEffect MAY_BE_SUPPORTED
}
RULE BottleneckInference {
IF population experienced_severe_size_reduction
AND diversity_loss IS_OBSERVED
THEN bottleneck_related_drift MAY_BE_SUPPORTED
}
RULE FixationInference {
IF allele_frequency reaches 1
THEN AlleleFixation EXISTS
BUT fixation_cause := unresolved_without_evidence
}
# ============================================================
# QUERY MODEL
# ============================================================
QUERY GeneticDriftLookup(population_identifier) {
RETURN [
population,
effective_population_size,
allele_frequency_trajectories,
fixation_events,
loss_events,
genetic_diversity,
bottleneck_history,
founder_events,
demographic_context,
evidence,
confidence
]
}
QUERY AlleleDriftLookup(population, locus, allele) {
RETURN [
initial_frequency,
temporal_frequencies,
effective_population_size,
fixation_or_loss_status,
selection_context,
migration_context,
mutation_context,
drift_support,
confidence
]
}
QUERY DriftModelLookup(population) {
RETURN [
model,
assumptions,
effective_population_size,
demographic_parameters,
expected_frequency_variance,
observed_frequency_variance,
model_fit,
confidence
]
}
# ============================================================
# UPDATE MODEL
# ============================================================
UPDATE_MODEL {
ON new_genetic_drift_evidence:
validate_provenance()
define_population()
identify_organism()
normalize_locus_and_allele_identifiers()
record_timepoints()
normalize_allele_frequencies()
estimate_effective_population_size()
capture_demographic_history()
model_selection_and_gene_flow()
compare_drift_models()
preserve_competing_explanations()
recalculate_confidence()
regenerate_population_relationships()
update_flow_hash()
}
# ============================================================
# AI CONSUMPTION
# ============================================================
AI_CONSUMPTION {
MODE: FormalSemanticReasoning
PARSE_AS: ExecutableFlowAlgebra
PRIORITIES: [
population_definition,
allele_identity,
locus_identity,
allele_frequency,
effective_population_size,
temporal_context,
demographic_history,
competing_evolutionary_forces,
evidence_provenance,
confidence
]
REQUIREMENTS: [
preserve_population_context,
preserve_species_context,
preserve_locus_and_allele_identity,
preserve_timepoint,
distinguish_effective_from_census_population_size,
distinguish_drift_from_selection,
distinguish_drift_from_gene_flow,
distinguish_drift_from_mutation,
distinguish_observed_frequency_change_from_causal_mechanism,
preserve_model_assumptions_and_uncertainty
]
}
# ============================================================
# VALIDATION
# ============================================================
VALIDATE {
REQUIRE GeneticDrift
REQUIRE Population
REQUIRE AlleleFrequency
REQUIRE EffectivePopulationSize
REQUIRE RandomGeneticSampling
REQUIRE AlleleFixation
REQUIRE AlleleLoss
REQUIRE FounderEffect
REQUIRE PopulationBottleneck
REQUIRE Evidence
REQUIRE CONFIDENCE
REQUIRE SEMANTIC_EQUIVALENCE
REQUIRE UPDATE_MODEL
REQUIRE AI_CONSUMPTION
ASSERT GeneticDrift != NaturalSelection
ASSERT GeneticDrift != GeneFlow
ASSERT GeneticDrift != Mutation
ASSERT EffectivePopulationSize != CensusPopulationSize UNLESS justified
ASSERT observed_frequency_change != proof_of_drift
}
# ============================================================
# 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 "GeneticDriftOntology"
Download Code
Copy to Clipboard