Package pal.mep

Class SteppedMutationRate

java.lang.Object
pal.mep.MutationRateModel
pal.mep.SteppedMutationRate
All Implemented Interfaces:
Serializable, Cloneable, Parameterized, Report, Summarizable, Units

public class SteppedMutationRate extends MutationRateModel implements Report, Summarizable, Parameterized, 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:
  • Field Details

  • Constructor Details

    • 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:
      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
      fixed - if true the mutation rates are set and are not parameters
      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:
      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
      fixed - if true the mutation rates are set and are not parameters
  • Method Details

    • clone

      public Object clone()
      Specified by:
      clone in class MutationRateModel
    • getCopy

      public MutationRateModel getCopy()
      Specified by:
      getCopy in class MutationRateModel
    • getSummaryTypes

      public String[] getSummaryTypes()
      Specified by:
      getSummaryTypes in interface Summarizable
    • getSummaryValue

      public double getSummaryValue(int summaryType)
      Specified by:
      getSummaryValue in interface Summarizable
    • getMu

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

      public void setMu(double m)
    • getMus

      public void getMus(double[] muStore)
    • getMutationRate

      public final double getMutationRate(double t)
      Description copied from class: MutationRateModel
      Gets the mutation rate, value of mu(t) at time t.
      Specified by:
      getMutationRate in class MutationRateModel
    • getExpectedSubstitutions

      public final double getExpectedSubstitutions(double time)
      Description copied from class: MutationRateModel
      Returns integral of mutation rate function (= integral mu(x) dx from 0 to t).
      Specified by:
      getExpectedSubstitutions in class MutationRateModel
    • 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 String toString()
      Overrides:
      toString in class Object
    • report

      public void report(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()
    • toSingleLine

      public String toSingleLine()
      Specified by:
      toSingleLine in class MutationRateModel
    • generateFactory

      public MutationRateModel.Factory generateFactory()
      Specified by:
      generateFactory in class MutationRateModel
    • 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
    • getFactory

      public static final MutationRateModel.Factory getFactory(double[] muChanges, TimeOrderCharacterData tocd)
      Generate a MutationRateModel.Factory class for a SteppedMutationRate
    • checkMuChanges

      public static final 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)