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
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:
-
Nested Class Summary
Nested classes/interfaces inherited from class pal.mep.MutationRateModel
MutationRateModel.FactoryNested classes/interfaces inherited from interface pal.misc.Parameterized
Parameterized.Null, Parameterized.ParameterizedBase, Parameterized.ParameterizedUser, Parameterized.Utils -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final Stringstatic final StringFields inherited from class pal.mep.MutationRateModel
foFields inherited from interface pal.misc.Units
DAYS, EXPECTED_SUBSTITUTIONS, GENERATIONS, MONTHS, SAMPLE, SHORT_UNIT_NAMES, UNIT_NAMES, UNKNOWN, YEARS -
Constructor Summary
ConstructorsConstructorDescriptionSteppedMutationRate(double[] rates, double[] muChanges, int units, boolean fixed, double maximumMutationRate) Construct mutation rate model of a give rate in given units.SteppedMutationRate(double[] rates, double[] muChanges, int units, double maximumMutationRate) Construct mutation rate model of a give rate in given units.SteppedMutationRate(double[] muChanges, int units, double maximumMutationRate) Construct demographic model with default settingsSteppedMutationRate(double[] rates, TimeOrderCharacterData timeInfo) Construct mutation rate model of a give rate in given units.SteppedMutationRate(double[] rates, TimeOrderCharacterData timeInfo, boolean fixed) Construct mutation rate model of a give rate in given units. -
Method Summary
Modifier and TypeMethodDescriptionstatic final StringcheckMuChanges(boolean allowEstimationOutsideSamplingTimes, double[] muChanges, boolean sortMuChanges, double[] sampleTimes, boolean sortSampleTimes) Checks if mu changes are valid for a particular set of sample times.clone()getCopy()doublegetDefaultValue(int k) get default value of parameterdouble[]getDeltas(double[] times) final doublegetEndTime(double expectedSubs, double startTime) Return the end time at which expected substitutions has occurred, given we start at start timefinal doublegetExpectedSubstitutions(double time) Returns integral of mutation rate function (= integral mu(x) dx from 0 to t).static final MutationRateModel.FactorygetFactory(double[] rates, double[] muChanges, int units, double maximumMutationRate) Generate a MutationRateModel.Factory class for a SteppedMutationRatestatic final MutationRateModel.FactorygetFactory(double[] muChanges, int units, double maximumMutationRate) Generate a MutationRateModel.Factory class for a SteppedMutationRatestatic final MutationRateModel.FactorygetFactory(double[] muChanges, TimeOrderCharacterData tocd) Generate a MutationRateModel.Factory class for a SteppedMutationRatedoublegetLowerLimit(int k) get lower parameter limitdoublegetMu()returns current day mutation rate.final double[]double[]getMus()voidgetMus(double[] muStore) final doublegetMutationRate(double t) Gets the mutation rate, value of mu(t) at time t.intget number of parametersdoublegetParameter(int k) get model parameterString[]doublegetSummaryValue(int summaryType) static double[]getTimeIntervals(double[] muChanges, double smallTime, double bigTime) doublegetUpperLimit(int k) get upper parameter limitvoidreport(PrintWriter out) print human readable report (e.g., on parameters and associated model)final voidscale(double scale) Linearly scales this mutation rate model.voidsetMu(double m) voidsetParameter(double value, int k) set model parametervoidsetParameterSE(double value, int k) set standard errors for model parametertoString()Methods inherited from class pal.mep.MutationRateModel
getExpectedSubstitutions, getMaximumMutationRate, getOrthogonalHints, getTime, getUnits, scale, setUnits
-
Field Details
-
REPEATED_TIMES_TEXT
- See Also:
-
NEGATIVE_VALUES_TEXT
- See Also:
-
MAX_TIME_IS_TEXT
- See Also:
-
ZERO_TIME_TEXT
- See Also:
-
INVALID_INTERVALS_TEXT
- See Also:
-
-
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 changemaximumMutationRate- 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 parametersrates- The initial values of the rates (this array is used for storing the rates)muChanges- The times for when the mutation rate can changemaximumMutationRate- The maximum mutation rate (related to how much difference there is between samples, max mu*time diff ~= 1 is a good estimate...)
-
SteppedMutationRate
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
Construct mutation rate model of a give rate in given units.- Parameters:
fixed- if true the mutation rates are set and are not parametersrates- 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 Details
-
clone
- Specified by:
clonein classMutationRateModel
-
getCopy
- Specified by:
getCopyin classMutationRateModel
-
getSummaryTypes
- Specified by:
getSummaryTypesin interfaceSummarizable
-
getSummaryValue
public double getSummaryValue(int summaryType) - Specified by:
getSummaryValuein interfaceSummarizable
-
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:MutationRateModelGets the mutation rate, value of mu(t) at time t.- Specified by:
getMutationRatein classMutationRateModel
-
getExpectedSubstitutions
public final double getExpectedSubstitutions(double time) Description copied from class:MutationRateModelReturns integral of mutation rate function (= integral mu(x) dx from 0 to t).- Specified by:
getExpectedSubstitutionsin classMutationRateModel
-
getEndTime
public final double getEndTime(double expectedSubs, double startTime) Description copied from class:MutationRateModelReturn the end time at which expected substitutions has occurred, given we start at start time- Specified by:
getEndTimein classMutationRateModel
-
scale
public final void scale(double scale) Linearly scales this mutation rate model.- Specified by:
scalein classMutationRateModel- 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:Parameterizedget number of parameters- Specified by:
getNumParametersin interfaceParameterized- Returns:
- number of parameters
-
getParameter
public double getParameter(int k) Description copied from interface:Parameterizedget model parameter- Specified by:
getParameterin interfaceParameterized- Parameters:
k- parameter number- Returns:
- parameter value
-
getUpperLimit
public double getUpperLimit(int k) Description copied from interface:Parameterizedget upper parameter limit- Specified by:
getUpperLimitin interfaceParameterized- Parameters:
k- parameter number- Returns:
- upper bound
-
getLowerLimit
public double getLowerLimit(int k) Description copied from interface:Parameterizedget lower parameter limit- Specified by:
getLowerLimitin interfaceParameterized- Parameters:
k- parameter number- Returns:
- lower bound
-
getDefaultValue
public double getDefaultValue(int k) Description copied from interface:Parameterizedget default value of parameter- Specified by:
getDefaultValuein interfaceParameterized- Parameters:
k- parameter number- Returns:
- default value
-
setParameter
public void setParameter(double value, int k) Description copied from interface:Parameterizedset model parameter- Specified by:
setParameterin interfaceParameterized- Parameters:
value- parameter valuek- parameter number
-
setParameterSE
public void setParameterSE(double value, int k) Description copied from interface:Parameterizedset standard errors for model parameter- Specified by:
setParameterSEin interfaceParameterized- Parameters:
value- standard error of parameter valuek- parameter number
-
toString
-
report
Description copied from interface:Reportprint human readable report (e.g., on parameters and associated model) -
getMus
public double[] getMus() -
getMuChanges
public final double[] getMuChanges() -
toSingleLine
- Specified by:
toSingleLinein classMutationRateModel
-
generateFactory
- Specified by:
generateFactoryin classMutationRateModel
-
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)
-