Package pal.substmodel
Class AbstractRateMatrix
- java.lang.Object
-
- pal.substmodel.AbstractRateMatrix
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,ExternalParameterListener
,NamedParameterized
,Parameterized
,Report
,RateMatrix
- Direct Known Subclasses:
AminoAcidModel
,CodonModel
,NucleotideModel
,TwoStateModel
public abstract class AbstractRateMatrix extends java.lang.Object implements RateMatrix, ExternalParameterListener
abstract base class for all rate matrices- Version:
- $Id: AbstractRateMatrix.java,v 1.30 2004/04/05 05:14:39 matt Exp $
- Author:
- Korbinian Strimmer, Alexei Drummond
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
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
format
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractRateMatrix(int dim)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description void
addPalObjectListener(PalObjectListener pol)
Add a PalObjectListener to be notified of changes to the model.java.lang.Object
clone()
protected void
fireParametersChangedEvent()
protected void
fireParametersChangedEvent(PalObjectEvent pe)
DataType
getDataType()
Get the data type of this rate matrixint
getDimension()
double[]
getEquilibriumFrequencies()
double
getEquilibriumFrequency(int i)
protected double[]
getFrequencies()
abstract int
getModelID()
get numerical code describing the model typeOrthogonalHints
getOrthogonalHints()
double
getParameter(int parameter)
get model parameterdouble[][]
getRelativeRates()
void
getTransitionProbabilities(double[][] probabilityStore)
A utility method for speed, transfers trans prob information quickly into storedouble
getTransitionProbability(int fromState, int toState)
Returns the probability of going from one state to another given the current distanceint
getTypeID()
get numerical code describing the data typevoid
parameterChanged(ParameterEvent pe)
For the external parameter interface.protected void
printFrequencies(java.io.PrintWriter out)
void
rebuild()
protected abstract void
rebuildRateMatrix(double[][] rate, double[] parameters)
void
removePalObjectListener(PalObjectListener pol)
void
scale(double scale)
protected void
setDataType(DataType dt)
void
setDistance(double distance)
Sets the distance (such as time/branch length) used when calculating the probabilities.void
setDistanceTranspose(double distance)
Sets the distance (such as time/branch length) used when calculating the probabilities.protected void
setFrequencies(double[] f)
void
setParameter(double value, int parameter)
set model parametervoid
setParameters(double[] parameters)
double
setParametersNoScale(double[] parameters)
protected void
updateMatrixExp()
-
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface pal.misc.NamedParameterized
getParameterName
-
Methods inherited from interface pal.misc.Parameterized
getDefaultValue, getLowerLimit, getNumParameters, getUpperLimit, setParameterSE
-
Methods inherited from interface pal.substmodel.RateMatrix
getUniqueName
-
-
-
-
Field Detail
-
format
protected FormattedOutput format
-
-
Method Detail
-
getTypeID
public int getTypeID()
get numerical code describing the data type- Specified by:
getTypeID
in interfaceRateMatrix
- Returns:
- integer code identifying a data type
-
getModelID
public abstract int getModelID()
get numerical code describing the model type- Specified by:
getModelID
in interfaceRateMatrix
- Returns:
- integer code identifying a substitution model
-
getDimension
public int getDimension()
- Specified by:
getDimension
in interfaceRateMatrix
- Returns:
- the dimension of this rate matrix.
-
getEquilibriumFrequencies
public double[] getEquilibriumFrequencies()
- Specified by:
getEquilibriumFrequencies
in interfaceRateMatrix
- Returns:
- stationary frequencies (sum = 1.0)
-
getEquilibriumFrequency
public double getEquilibriumFrequency(int i)
- Specified by:
getEquilibriumFrequency
in interfaceRateMatrix
- Returns:
- stationary frequencie (sum = 1.0) for ith state
-
getDataType
public DataType getDataType()
Description copied from interface:RateMatrix
Get the data type of this rate matrix- Specified by:
getDataType
in interfaceRateMatrix
-
setDataType
protected final void setDataType(DataType dt)
-
getRelativeRates
public double[][] getRelativeRates()
- Specified by:
getRelativeRates
in interfaceRateMatrix
- Returns:
- rate matrix (transition: from 1st index to 2nd index)
-
getTransitionProbability
public double getTransitionProbability(int fromState, int toState)
Returns the probability of going from one state to another given the current distance- Specified by:
getTransitionProbability
in interfaceRateMatrix
- Parameters:
fromState
- The state from which we are startingtoState
- The resulting state- Returns:
- the probability of going from one state to another given the current distance
-
rebuild
public final void rebuild()
-
setDistance
public final void setDistance(double distance)
Sets the distance (such as time/branch length) used when calculating the probabilities.- Specified by:
setDistance
in interfaceRateMatrix
-
setDistanceTranspose
public final void setDistanceTranspose(double distance)
Sets the distance (such as time/branch length) used when calculating the probabilities.- Specified by:
setDistanceTranspose
in interfaceRateMatrix
-
getTransitionProbabilities
public final void getTransitionProbabilities(double[][] probabilityStore)
A utility method for speed, transfers trans prob information quickly into store- Specified by:
getTransitionProbabilities
in interfaceRateMatrix
-
scale
public void scale(double scale)
- Specified by:
scale
in interfaceRateMatrix
-
printFrequencies
protected void printFrequencies(java.io.PrintWriter out)
-
setFrequencies
protected void setFrequencies(double[] f)
-
setParametersNoScale
public double setParametersNoScale(double[] parameters)
- Specified by:
setParametersNoScale
in interfaceRateMatrix
-
setParameters
public void setParameters(double[] parameters)
-
setParameter
public final void setParameter(double value, int parameter)
Description copied from interface:Parameterized
set model parameter- Specified by:
setParameter
in interfaceParameterized
- Parameters:
value
- parameter valueparameter
- parameter number
-
getParameter
public final double getParameter(int parameter)
Description copied from interface:Parameterized
get model parameter- Specified by:
getParameter
in interfaceParameterized
- Parameters:
parameter
- parameter number- Returns:
- parameter value
-
rebuildRateMatrix
protected abstract void rebuildRateMatrix(double[][] rate, double[] parameters)
-
addPalObjectListener
public void addPalObjectListener(PalObjectListener pol)
Description copied from interface:RateMatrix
Add a PalObjectListener to be notified of changes to the model. Only the parametersChanged method will generally be called- Specified by:
addPalObjectListener
in interfaceRateMatrix
-
removePalObjectListener
public void removePalObjectListener(PalObjectListener pol)
- Specified by:
removePalObjectListener
in interfaceRateMatrix
-
fireParametersChangedEvent
protected void fireParametersChangedEvent()
-
fireParametersChangedEvent
protected void fireParametersChangedEvent(PalObjectEvent pe)
-
updateMatrixExp
protected void updateMatrixExp()
-
parameterChanged
public void parameterChanged(ParameterEvent pe)
For the external parameter interface. This can be ignored unless you want to use this Rate Matrix as an external parameter listener This method does two things.First it sets a flag indicating that rebuild method should be called the next time a setDistance method is called, and then it notifies any PalObject listeners that a parameter has changed- Specified by:
parameterChanged
in interfaceExternalParameterListener
-
clone
public java.lang.Object clone()
- Specified by:
clone
in interfaceRateMatrix
- Overrides:
clone
in classjava.lang.Object
-
getOrthogonalHints
public OrthogonalHints getOrthogonalHints()
- Specified by:
getOrthogonalHints
in interfaceRateMatrix
- Returns:
- null
-
getFrequencies
protected final double[] getFrequencies()
-
-