Package pal.substmodel
Class GeneralREVRateMatrix
- java.lang.Object
-
- pal.substmodel.GeneralREVRateMatrix
-
- All Implemented Interfaces:
java.io.Serializable
,NeoRateMatrix
public class GeneralREVRateMatrix extends java.lang.Object implements NeoRateMatrix
A general rate matrix class for REV style rate matrices (GTR but for all data types) Includes the ability for arbitarily constraints- Author:
- Matthew Goode
- 11 May 2004 - Created file - will add parameter decoding and reporting later...
- See Also:
- Serialized Form
-
-
Constructor Summary
Constructors Constructor Description GeneralREVRateMatrix(int dimension)
The general constructor for a fully specified REV modelGeneralREVRateMatrix(int dimension, double[] specifiedDefaultParameters)
The general constructor for a fully specified REV modelGeneralREVRateMatrix(int dimension, int[] constraints)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)GeneralREVRateMatrix(int dimension, int[] constraints, double[] specifiedDefaultParameters)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)GeneralREVRateMatrix(int dimension, int[] constraints, double[] specifiedDefaultParameters, int fixedConstraintValue)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static GeneralREVRateMatrix
createGTR()
Create a rate matrix equivalent to the GTR modelstatic GeneralREVRateMatrix
createGTR(double[] defaultParameters)
Create a rate matrix equivalent to the GTR modelstatic GeneralREVRateMatrix
createGTR(double a, double b, double c, double d, double e)
Create a rate matrix equivalent to the GTR model Parameters laid out *-> + A C G T A * a b c C * * d e G * * * 1 T * * * *
static GeneralREVRateMatrix
createHKY()
Create a rate matrix equivalent to the HKY model, the one parameter will be kappastatic GeneralREVRateMatrix
createHKY(double defaultKappa)
Create a rate matrix equivalent to the HKY model, the one parameter will be kappavoid
createRelativeRates(double[][] rateStore, double[] rateParameters, int startIndex)
Create the relative rates arrayvoid
getDefaultRateParameters(double[] store, int startIndex)
int
getDimension()
int
getNumberOfRateParameters()
double
getRateParameterLowerBound(int parameter)
double
getRateParameterUpperBound(int parameter)
java.lang.String
getUniqueName()
boolean
isDataTypeCompatible(DataType dt)
Check the compatibility of a data type to be used with the rate matrixboolean
isReversible()
Is the relative rate matrix described by this rate matrix meant to represent a reversible process? If true only the upper part of the rate matrix needs to be filled in (eg in matrix[i][j], for all where j > i );
-
-
-
Constructor Detail
-
GeneralREVRateMatrix
public GeneralREVRateMatrix(int dimension)
The general constructor for a fully specified REV model- Parameters:
dimension
- the dimension of the data type
-
GeneralREVRateMatrix
public GeneralREVRateMatrix(int dimension, double[] specifiedDefaultParameters)
The general constructor for a fully specified REV model- Parameters:
dimension
- the dimension of the data typespecifiedDefaultParameters
- the defaultParameters (potentially used as the starting parameters by a SubstitutionModel)
-
GeneralREVRateMatrix
public GeneralREVRateMatrix(int dimension, int[] constraints)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)- Parameters:
dimension
- the dimension of the data typeconstraints
- the contraints, organised such that if constraints[i]==constraints[j] then transitions i and j will always be the same. The constraints are ordered like usual.
-
GeneralREVRateMatrix
public GeneralREVRateMatrix(int dimension, int[] constraints, double[] specifiedDefaultParameters)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)- Parameters:
dimension
- the dimension of the data typeconstraints
- the contraints, organised such that if constraints[i]==constraints[j] then transitions i and j will always be the same. The constraints are ordered like usual. The last constrained item is fixed at 1.specifiedDefaultParameters
- the defaultParameters (potentially used as the starting parameters by a SubstitutionModel)
-
GeneralREVRateMatrix
public GeneralREVRateMatrix(int dimension, int[] constraints, double[] specifiedDefaultParameters, int fixedConstraintValue)
The general constructor
Constraint ordering example, for nucleotide data-> + A C G T A * 0 1 2 C * * 3 4 G * * * 5 T * * * *
if constraints were {0,1,1,0,0,1} then would be constrained so a-c = c-g = c-t and a-g = a-t = g-t (and there would be only one parameter)- Parameters:
dimension
- the dimension of the data typeconstraints
- the contraints, organised such that if constraints[i]==constraints[j] then transitions i and j will always be the same. The constraints are ordered like usual.specifiedDefaultParameters
- the defaultParameters (potentially used as the starting parameters by a SubstitutionModel)fixedConstraintValue
- the value of the constraint (in the constraints array) of the fixed constraint (that is, for which all related parts of the rate matrix are set to 1)
-
-
Method Detail
-
getUniqueName
public java.lang.String getUniqueName()
- Specified by:
getUniqueName
in interfaceNeoRateMatrix
- Returns:
- a short unique human-readable identifier for this rate matrix.
-
isReversible
public boolean isReversible()
Description copied from interface:NeoRateMatrix
Is the relative rate matrix described by this rate matrix meant to represent a reversible process? If true only the upper part of the rate matrix needs to be filled in (eg in matrix[i][j], for all where j > i );- Specified by:
isReversible
in interfaceNeoRateMatrix
- Returns:
- true
-
getDimension
public int getDimension()
- Specified by:
getDimension
in interfaceNeoRateMatrix
- Returns:
- the dimension of this rate matrix. (as for construction)
-
isDataTypeCompatible
public boolean isDataTypeCompatible(DataType dt)
Check the compatibility of a data type to be used with the rate matrix- Specified by:
isDataTypeCompatible
in interfaceNeoRateMatrix
- Parameters:
dt
- the data type to test- Returns:
- true if data type state count is equal to dimension
-
createRelativeRates
public void createRelativeRates(double[][] rateStore, double[] rateParameters, int startIndex)
Description copied from interface:NeoRateMatrix
Create the relative rates array- Specified by:
createRelativeRates
in interfaceNeoRateMatrix
- Parameters:
rateStore
- The place where the relative rates are stored (should be assumed to be large enough - based on dimension)rateParameters
- The parameters to be used to construct the rate storestartIndex
- The index into the rateParameters to start reading parameters
-
getNumberOfRateParameters
public int getNumberOfRateParameters()
- Specified by:
getNumberOfRateParameters
in interfaceNeoRateMatrix
-
getRateParameterLowerBound
public double getRateParameterLowerBound(int parameter)
- Specified by:
getRateParameterLowerBound
in interfaceNeoRateMatrix
-
getRateParameterUpperBound
public double getRateParameterUpperBound(int parameter)
- Specified by:
getRateParameterUpperBound
in interfaceNeoRateMatrix
-
getDefaultRateParameters
public void getDefaultRateParameters(double[] store, int startIndex)
- Specified by:
getDefaultRateParameters
in interfaceNeoRateMatrix
-
createGTR
public static final GeneralREVRateMatrix createGTR()
Create a rate matrix equivalent to the GTR model- Returns:
- appropriate rate matrix
-
createGTR
public static final GeneralREVRateMatrix createGTR(double[] defaultParameters)
Create a rate matrix equivalent to the GTR model- Parameters:
defaultParameters
- the default parameters of the model- Returns:
- appropriate rate matrix
-
createGTR
public static final GeneralREVRateMatrix createGTR(double a, double b, double c, double d, double e)
Create a rate matrix equivalent to the GTR model Parameters laid out *-> + A C G T A * a b c C * * d e G * * * 1 T * * * *
- Parameters:
a
- the default a parameter of the modelb
- the default a parameter of the modelc
- the default a parameter of the modeld
- the default a parameter of the modele
- the default a parameter of the model- Returns:
- appropriate rate matrix
-
createHKY
public static final GeneralREVRateMatrix createHKY()
Create a rate matrix equivalent to the HKY model, the one parameter will be kappa- Returns:
- appropriate rate matrix
-
createHKY
public static final GeneralREVRateMatrix createHKY(double defaultKappa)
Create a rate matrix equivalent to the HKY model, the one parameter will be kappa- Parameters:
defaultKappa
- the default kappa value- Returns:
- appropriate rate matrix
-
-