Package pal.mep
Class MutationRateModel
- java.lang.Object
-
- pal.mep.MutationRateModel
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Parameterized
,Report
,Summarizable
,Units
- Direct Known Subclasses:
ConstantMutationRate
,SteppedMutationRate
,WindowedMutationRate
public abstract class MutationRateModel extends java.lang.Object implements Units, Parameterized, Report, java.lang.Cloneable, java.io.Serializable, Summarizable
This abstract class contains methods that are of general use for modelling mutation rate changes over time.- Version:
- $Id: MutationRateModel.java,v 1.12 2004/08/02 05:22:04 matt Exp $
- Author:
- Alexei Drummond
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
MutationRateModel.Factory
An interface for objects which generate fresh MutationRAteModels-
Nested classes/interfaces inherited from interface pal.misc.Parameterized
Parameterized.Null, Parameterized.ParameterizedBase, Parameterized.ParameterizedUser, Parameterized.Utils
-
-
Field Summary
Fields Modifier and Type Field Description protected FormattedOutput
fo
-
Fields inherited from interface pal.misc.Units
DAYS, EXPECTED_SUBSTITUTIONS, GENERATIONS, MONTHS, SAMPLE, SHORT_UNIT_NAMES, UNIT_NAMES, UNKNOWN, YEARS
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
MutationRateModel(int units, double maximumMutationRate)
protected
MutationRateModel(MutationRateModel toCopy)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.lang.Object
clone()
abstract MutationRateModel.Factory
generateFactory()
abstract MutationRateModel
getCopy()
abstract double
getEndTime(double expectedSubs, double startTime)
Return the end time at which expected substitutions has occurred, given we start at start timeabstract double
getExpectedSubstitutions(double t)
Returns integral of mutation rate function (= integral mu(x) dx from 0 to t).double
getExpectedSubstitutions(double start, double finish)
Calculates the integral 1/mu(x) dx between start and finish.protected double
getMaximumMutationRate()
abstract double
getMutationRate(double t)
Gets the mutation rate, value of mu(t) at time t.OrthogonalHints
getOrthogonalHints()
Overide if there is any orthogonal hint information availabledouble
getTime(double expectedSubs)
Return the time at which expected substitutions has occurred.int
getUnits()
returns units of measurement.abstract void
scale(double scale)
Linearly scales this mutation rate model.TimeOrderCharacterData
scale(TimeOrderCharacterData toScale)
void
setUnits(int u, double maximumMutationRate)
sets units of measurement.abstract java.lang.String
toSingleLine()
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface pal.misc.Parameterized
getDefaultValue, getLowerLimit, getNumParameters, getParameter, getUpperLimit, setParameter, setParameterSE
-
Methods inherited from interface pal.misc.Summarizable
getSummaryTypes, getSummaryValue
-
-
-
-
Field Detail
-
fo
protected FormattedOutput fo
-
-
Constructor Detail
-
MutationRateModel
protected MutationRateModel(int units, double maximumMutationRate)
-
MutationRateModel
protected MutationRateModel(MutationRateModel toCopy)
-
-
Method Detail
-
clone
public abstract java.lang.Object clone()
- Overrides:
clone
in classjava.lang.Object
-
getCopy
public abstract MutationRateModel getCopy()
-
getMutationRate
public abstract double getMutationRate(double t)
Gets the mutation rate, value of mu(t) at time t.
-
getExpectedSubstitutions
public abstract double getExpectedSubstitutions(double t)
Returns integral of mutation rate function (= integral mu(x) dx from 0 to t).
-
getTime
public double getTime(double expectedSubs)
Return the time at which expected substitutions has occurred.
-
getEndTime
public abstract double getEndTime(double expectedSubs, double startTime)
Return the end time at which expected substitutions has occurred, given we start at start time
-
scale
public abstract void scale(double scale)
Linearly scales this mutation rate model.- Parameters:
scale
- getExpectedSubstitutions should return scale instead of 1.0 at time t.
-
getExpectedSubstitutions
public double getExpectedSubstitutions(double start, double finish)
Calculates the integral 1/mu(x) dx between start and finish.
-
scale
public TimeOrderCharacterData scale(TimeOrderCharacterData toScale)
- Returns:
- a TimeOrderCharacterData scaled to use EXPECTED_SUBSTITUTIONS based on this MutationRateModel
- Throws:
java.lang.IllegalArgumentException
- if units of this Model doenot match the units of the TimeOrderCharacterData object (toScale).
-
setUnits
public final void setUnits(int u, double maximumMutationRate)
sets units of measurement.- Parameters:
u
- unitsthe
- maximumMutationRate that is allowable, given the units. This needs to be given intelligently.- Throws:
java.lang.IllegalArgumentException
- if units are ExpectedSubstitutions
-
getMaximumMutationRate
protected final double getMaximumMutationRate()
- Returns:
- the maximum mutation rate as indicated by the user
-
getUnits
public int getUnits()
returns units of measurement.
-
getOrthogonalHints
public OrthogonalHints getOrthogonalHints()
Overide if there is any orthogonal hint information available- Returns:
- null
-
toSingleLine
public abstract java.lang.String toSingleLine()
-
generateFactory
public abstract MutationRateModel.Factory generateFactory()
-
-