pal.mep
Class MutationRateModel

java.lang.Object
  extended bypal.mep.MutationRateModel
All Implemented Interfaces:
java.lang.Cloneable, Parameterized, Report, java.io.Serializable, 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.

See Also:
Serialized Form

Nested Class Summary
static interface MutationRateModel.Factory
          An interface for objects which generate fresh MutationRAteModels
 
Nested classes inherited from class pal.misc.Parameterized
Parameterized.Null, Parameterized.ParameterizedBase, Parameterized.ParameterizedUser, Parameterized.Utils
 
Field Summary
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
protected MutationRateModel(int units, double maximumMutationRate)
           
protected MutationRateModel(MutationRateModel toCopy)
           
 
Method Summary
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 time
abstract  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 available
 double 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.Report
report
 
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()

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 - units
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()