Package pal.substmodel
Class GeneralREVRateMatrix
java.lang.Object
pal.substmodel.GeneralREVRateMatrix
- All Implemented Interfaces:
Serializable
,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:
-
Constructor Summary
ConstructorsConstructorDescriptionGeneralREVRateMatrix
(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
Modifier and TypeMethodDescriptionstatic final GeneralREVRateMatrix
Create a rate matrix equivalent to the GTR modelstatic final GeneralREVRateMatrix
createGTR
(double[] defaultParameters) Create a rate matrix equivalent to the GTR modelstatic 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 * * * *
static final GeneralREVRateMatrix
Create a rate matrix equivalent to the HKY model, the one parameter will be kappastatic final 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
int
double
getRateParameterLowerBound
(int parameter) double
getRateParameterUpperBound
(int parameter) boolean
Check the compatibility of a data type to be used with the rate matrixboolean
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 Details
-
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 Details
-
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
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
Create a rate matrix equivalent to the GTR model- Returns:
- appropriate rate matrix
-
createGTR
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
Create a rate matrix equivalent to the HKY model, the one parameter will be kappa- Returns:
- appropriate rate matrix
-
createHKY
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
-