Source code for hstrat.phylogenetic_inference.priors._UniformPrior

import numpy as np

from ._detail import PriorBase


class UniformPrior(PriorBase):
    """Enacts a prior expectation that the generation of the most recent common
    ancestor (MRCA) is equally likely to occur at any generation since genesis.

    See Also
    --------
    GeometricPrior
        An exact, discrete analog of this prior.
    """

[docs] def CalcIntervalProbabilityProxy( self: "UniformPrior", begin_rank: int, end_rank: int ) -> float: """Characterize the prior probability of the MRCA generation falling within an interval range. Parameters ---------- begin_rank : int The starting rank of the interval, inclusive. end_rank : int The ending rank of the interval, exclusive. Returns ------- float The proxy statistic, proportional to the true estimated interval probability of the MRCA value by a fixed (but unspecified) constant proportion. """ return float(end_rank - begin_rank)
[docs] def CalcIntervalConditionedMean( self: "UniformPrior", begin_rank: int, end_rank: int ) -> float: """Calculate the centriod of prior probability mass within an interval of possible MRCA generations. Parameters ---------- begin_rank : int The starting rank of the interval, inclusive. end_rank : int The ending rank of the interval, exclusive. Returns ------- float The prior expected generation of MRCA conditioned on the assumption that the MRCA falls within the given interval. """ return np.mean((begin_rank, end_rank - 1))
[docs] def SampleIntervalConditionedValue( self: "UniformPrior", begin_rank: int, end_rank: int ) -> int: """Sample a generation of the MRCA conditioned on the assumption that the MRCA falls within the given interval. Parameters ---------- begin_rank : int The starting rank of the interval, inclusive. end_rank : int The ending rank of the interval, exclusive. Returns ------- int A sampled generation of the MRCA, conditioned on the assumption that the MRCA falls within the given interval. """ raise NotImplementedError()