Package pal.mep

Class SteppedMutationRate

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, Parameterized, Report, Summarizable, Units

    public class SteppedMutationRate
    extends MutationRateModel
    implements Report, Summarizable, Parameterized, java.io.Serializable
    This class models a step-wise mutation rate.
    parameters:
    mus[] = vector of mutation rates
    muChanges[] = vector of change times

    Drummond, Forsberg and Rodrigo (2001). The inference of step-wise changes in substitution rates using serial sequence samples. accepted in MBE.

    Version:
    $Id: SteppedMutationRate.java,v 1.13 2004/10/18 03:45:17 matt Exp $
    Author:
    Alexei Drummond
    See Also:
    Serialized Form
    • Field Detail

      • REPEATED_TIMES_TEXT

        public static final java.lang.String REPEATED_TIMES_TEXT
        See Also:
        Constant Field Values
      • NEGATIVE_VALUES_TEXT

        public static final java.lang.String NEGATIVE_VALUES_TEXT
        See Also:
        Constant Field Values
      • MAX_TIME_IS_TEXT

        public static final java.lang.String MAX_TIME_IS_TEXT
        See Also:
        Constant Field Values
      • INVALID_INTERVALS_TEXT

        public static final java.lang.String INVALID_INTERVALS_TEXT
        See Also:
        Constant Field Values
    • Constructor Detail

      • SteppedMutationRate

        public SteppedMutationRate​(double[] muChanges,
                                   int units,
                                   double maximumMutationRate)
        Construct demographic model with default settings
      • SteppedMutationRate

        public SteppedMutationRate​(double[] rates,
                                   double[] muChanges,
                                   int units,
                                   double maximumMutationRate)
        Construct mutation rate model of a give rate in given units.
        Parameters:
        rates - The initial values of the rates (this array is used for storing the rates)
        muChanges - The times for when the mutation rate can change
        maximumMutationRate - The maximum mutation rate (1 is a good value...)
      • SteppedMutationRate

        public SteppedMutationRate​(double[] rates,
                                   double[] muChanges,
                                   int units,
                                   boolean fixed,
                                   double maximumMutationRate)
        Construct mutation rate model of a give rate in given units.
        Parameters:
        fixed - if true the mutation rates are set and are not parameters
        rates - The initial values of the rates (this array is used for storing the rates)
        muChanges - The times for when the mutation rate can change
        maximumMutationRate - The maximum mutation rate (related to how much difference there is between samples, max mu*time diff ~= 1 is a good estimate...)
      • SteppedMutationRate

        public SteppedMutationRate​(double[] rates,
                                   TimeOrderCharacterData timeInfo)
        Construct mutation rate model of a give rate in given units.
        Parameters:
        rates - The initial values of the rates (this array is used for storing the rates)
        timeInfo - the sample information object that relates times to sequences. Will extract the mu change information from this input, such that the mutation rate changes at each sample point
      • SteppedMutationRate

        public SteppedMutationRate​(double[] rates,
                                   TimeOrderCharacterData timeInfo,
                                   boolean fixed)
        Construct mutation rate model of a give rate in given units.
        Parameters:
        fixed - if true the mutation rates are set and are not parameters
        rates - The initial values of the rates (this array is used for storing the rates)
        timeInfo - the sample information object that relates times to sequences. Will extract the mu change information from this input, such that the mutation rate changes at each sample point
    • Method Detail

      • getMu

        public double getMu()
        returns current day mutation rate.
      • setMu

        public void setMu​(double m)
      • getMus

        public void getMus​(double[] muStore)
      • getEndTime

        public final double getEndTime​(double expectedSubs,
                                       double startTime)
        Description copied from class: MutationRateModel
        Return the end time at which expected substitutions has occurred, given we start at start time
        Specified by:
        getEndTime in class MutationRateModel
      • scale

        public final void scale​(double scale)
        Linearly scales this mutation rate model.
        Specified by:
        scale in class MutationRateModel
        Parameters:
        scale - getExpectedSubstitutions should return scale instead of 1.0 at time t.
      • getTimeIntervals

        public static double[] getTimeIntervals​(double[] muChanges,
                                                double smallTime,
                                                double bigTime)
      • getDeltas

        public double[] getDeltas​(double[] times)
      • getNumParameters

        public int getNumParameters()
        Description copied from interface: Parameterized
        get number of parameters
        Specified by:
        getNumParameters in interface Parameterized
        Returns:
        number of parameters
      • getParameter

        public double getParameter​(int k)
        Description copied from interface: Parameterized
        get model parameter
        Specified by:
        getParameter in interface Parameterized
        Parameters:
        k - parameter number
        Returns:
        parameter value
      • getUpperLimit

        public double getUpperLimit​(int k)
        Description copied from interface: Parameterized
        get upper parameter limit
        Specified by:
        getUpperLimit in interface Parameterized
        Parameters:
        k - parameter number
        Returns:
        upper bound
      • getLowerLimit

        public double getLowerLimit​(int k)
        Description copied from interface: Parameterized
        get lower parameter limit
        Specified by:
        getLowerLimit in interface Parameterized
        Parameters:
        k - parameter number
        Returns:
        lower bound
      • getDefaultValue

        public double getDefaultValue​(int k)
        Description copied from interface: Parameterized
        get default value of parameter
        Specified by:
        getDefaultValue in interface Parameterized
        Parameters:
        k - parameter number
        Returns:
        default value
      • setParameter

        public void setParameter​(double value,
                                 int k)
        Description copied from interface: Parameterized
        set model parameter
        Specified by:
        setParameter in interface Parameterized
        Parameters:
        value - parameter value
        k - parameter number
      • setParameterSE

        public void setParameterSE​(double value,
                                   int k)
        Description copied from interface: Parameterized
        set standard errors for model parameter
        Specified by:
        setParameterSE in interface Parameterized
        Parameters:
        value - standard error of parameter value
        k - parameter number
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • report

        public void report​(java.io.PrintWriter out)
        Description copied from interface: Report
        print human readable report (e.g., on parameters and associated model)
        Specified by:
        report in interface Report
        Parameters:
        out - output stream
      • getMus

        public double[] getMus()
      • getMuChanges

        public final double[] getMuChanges()
      • getFactory

        public static final MutationRateModel.Factory getFactory​(double[] muChanges,
                                                                 int units,
                                                                 double maximumMutationRate)
        Generate a MutationRateModel.Factory class for a SteppedMutationRate
      • getFactory

        public static final MutationRateModel.Factory getFactory​(double[] rates,
                                                                 double[] muChanges,
                                                                 int units,
                                                                 double maximumMutationRate)
        Generate a MutationRateModel.Factory class for a SteppedMutationRate
      • checkMuChanges

        public static final java.lang.String checkMuChanges​(boolean allowEstimationOutsideSamplingTimes,
                                                            double[] muChanges,
                                                            boolean sortMuChanges,
                                                            double[] sampleTimes,
                                                            boolean sortSampleTimes)
        Checks if mu changes are valid for a particular set of sample times.
        Returns:
        null if muChanges okay, or a message describing what is wrong. The things that may be a problem are
        • There is a negative muChange time
        • There is a repeated muChange time
        • There are two or more muChange intervals with in a sample interval that do not overlap with another sample interval (this makes it impossible to infer anything between the separate intervals)