pal.datatype
Class IUPACNucleotides

java.lang.Object
  extended by pal.datatype.SimpleDataType
      extended by pal.datatype.IUPACNucleotides
All Implemented Interfaces:
java.io.Serializable, AmbiguousDataType, DataType, MolecularDataType

public class IUPACNucleotides
extends SimpleDataType
implements MolecularDataType, AmbiguousDataType

implements DataType for nucleotides with ambiguous characters

Version:
$Id: IUPACNucleotides.java,v 1.19 2004/09/13 05:20:47 matt Exp $
Author:
Alexei Drummond
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface pal.datatype.MolecularDataType
MolecularDataType.Utils
 
Field Summary
static IUPACNucleotides DEFAULT_INSTANCE
           
static IUPACNucleotides DNA_INSTANCE
           
static IUPACNucleotides RNA_INSTANCE
           
 
Fields inherited from interface pal.datatype.DataType
AMINO_ACID_DESCRIPTION, AMINOACIDS, CODON_DESCRIPTION, CODONS, GAP_BALANCED, GAP_BALANCED_DESCRIPTION, IUPAC_NUCELOTIDES_DESCRIPTION, IUPACNUCLEOTIDES, NUCLEOTIDE_DESCRIPTION, NUCLEOTIDES, NUMERIC, PRIMARY_SUGGESTED_GAP_CHARACTER, SUGGESTED_GAP_CHARACTERS, SUGGESTED_GAP_STATE, SUGGESTED_UNKNOWN_STATE, TWO_STATE_DESCRIPTION, TWOSTATES, UNKNOWN, UNKNOWN_CHARACTER, UNKNOWN_TLA
 
Constructor Summary
IUPACNucleotides()
           
IUPACNucleotides(boolean isRNA)
           
 
Method Summary
 void getAmbiguity(int ambiguousState, boolean[] specificInclusion)
          Attempts to "resolve" the ambiguity in a state with regard to the specific data type.
 void getAmbiguity(int ambiguousState, double[] specificInclusion)
          A more accurate attempt to "resolve" the ambiguity in a state with regard to the specific data type.
 AmbiguousDataType getAmbiguousVersion()
           
protected  char getCharImpl(int state)
           
 java.lang.String getDescription()
          description of data type
static int getIUPACState(boolean maybeA, boolean maybeC, boolean maybeG, boolean maybeT)
           
static int getIUPACState(int inclusion)
           
 int[] getMolecularStatesFromIUPACNucleotides(int[] nucleotideStates, int startingIndex)
           
 int[] getMolecularStatesFromSimpleNucleotides(int[] nucleotideStates, int startingIndex)
           
 int getNucleotideLength()
           
 int[] getNucleotideStates(int[] residueStates)
           
 int getNumStates()
          Get number of states.
 int getRecommendedUnknownState()
           
static int getSimpleState(int state)
          Converts an IUPAC State to either a A,T,G,C state (eg.
static int[] getSimpleStates(int[] states)
          Converts an IUPAC State array to either a A,T,G,C state (eg.
static int[] getSimpleStates(int[] states, int startingIndex)
          Converts an IUPAC State array to either a A,T,G,C state (eg.
 DataType getSpecificDataType()
           
 int[] getSpecificStates(int state)
          returns an array containing the non-ambiguous states that this state represents.
protected  int getStateImpl(char c)
          For sub classes to implement main functionality of getState.
 int getTypeID()
          get numerical code describing the data type
 boolean isAmbiguous()
           
 boolean isCreatesIUPACNuecleotides()
           
static boolean isNucleotideState(int iupacState, int nucleotideState)
           
protected  boolean isUnknownStateImpl(int state)
          For subclasses to handle, without regard for gaps
 java.lang.String toString()
           
 
Methods inherited from class pal.datatype.SimpleDataType
getChar, getPreferredChar, getPreferredCharImpl, getRecommendedGapState, getState, hasGap, isGapChar, isGapState, isUnknownChar, isUnknownState
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface pal.datatype.DataType
getChar, getPreferredChar, getRecommendedGapState, getState, hasGap, isGapChar, isGapState, isUnknownChar, isUnknownState
 

Field Detail

DEFAULT_INSTANCE

public static final IUPACNucleotides DEFAULT_INSTANCE

DNA_INSTANCE

public static final IUPACNucleotides DNA_INSTANCE

RNA_INSTANCE

public static final IUPACNucleotides RNA_INSTANCE
Constructor Detail

IUPACNucleotides

public IUPACNucleotides()

IUPACNucleotides

public IUPACNucleotides(boolean isRNA)
Method Detail

getNumStates

public int getNumStates()
Get number of states.

Specified by:
getNumStates in interface DataType
Returns:
number of unique states

isUnknownStateImpl

protected boolean isUnknownStateImpl(int state)
Description copied from class: SimpleDataType
For subclasses to handle, without regard for gaps

Specified by:
isUnknownStateImpl in class SimpleDataType

getStateImpl

protected final int getStateImpl(char c)
Description copied from class: SimpleDataType
For sub classes to implement main functionality of getState. Gaps do not need to be considered

Specified by:
getStateImpl in class SimpleDataType

getCharImpl

protected char getCharImpl(int state)
Specified by:
getCharImpl in class SimpleDataType

getDescription

public java.lang.String getDescription()
Description copied from interface: DataType
description of data type

Specified by:
getDescription in interface DataType
Returns:
string describing the data type

getTypeID

public int getTypeID()
Description copied from interface: DataType
get numerical code describing the data type

Specified by:
getTypeID in interface DataType
Returns:
numerical code

isNucleotideState

public static final boolean isNucleotideState(int iupacState,
                                              int nucleotideState)
Returns:
true if the iupacState is an state which includes the possibility of being of a nucleotide state

getRecommendedUnknownState

public int getRecommendedUnknownState()
Specified by:
getRecommendedUnknownState in interface DataType
Overrides:
getRecommendedUnknownState in class SimpleDataType
Returns:
-1 (not getNumStates())

getIUPACState

public static final int getIUPACState(int inclusion)
Parameters:
inclusion - should be a number constructed as follows 1. start at zero 2. if maybe A add 1 3. if maybe C add 2 4. if maybe G add 4 5. if maybe T add 8

getIUPACState

public static final int getIUPACState(boolean maybeA,
                                      boolean maybeC,
                                      boolean maybeG,
                                      boolean maybeT)

getSimpleState

public static final int getSimpleState(int state)
Converts an IUPAC State to either a A,T,G,C state (eg. if state represents either C or G, state becomes C - an arbitary choice is made to take "lowest" letter)


getSimpleStates

public static final int[] getSimpleStates(int[] states)
Converts an IUPAC State array to either a A,T,G,C state (eg. if state represents either C or G, state becomes C - an arbitary choice is made to take "lowest" letter)

Returns:
new array containing only simple states (orignal is not altered)

getSimpleStates

public static final int[] getSimpleStates(int[] states,
                                          int startingIndex)
Converts an IUPAC State array to either a A,T,G,C state (eg. if state represents either C or G, state becomes C - an arbitary choice is made to take "lowest" letter)

Parameters:
staringIndex - amount to skip at beginning of input array
Returns:
new array containing only simple states (orignal is not altered)

toString

public java.lang.String toString()
Overrides:
toString in class SimpleDataType

getNucleotideStates

public int[] getNucleotideStates(int[] residueStates)
Specified by:
getNucleotideStates in interface MolecularDataType
Parameters:
residueStates - an array of states corresponding to states of this datatype
Returns:
a copy of the input

getMolecularStatesFromSimpleNucleotides

public int[] getMolecularStatesFromSimpleNucleotides(int[] nucleotideStates,
                                                     int startingIndex)
Specified by:
getMolecularStatesFromSimpleNucleotides in interface MolecularDataType
Returns:
a copy of the input

getMolecularStatesFromIUPACNucleotides

public final int[] getMolecularStatesFromIUPACNucleotides(int[] nucleotideStates,
                                                          int startingIndex)
Specified by:
getMolecularStatesFromIUPACNucleotides in interface MolecularDataType
Returns:
a copy of the input

isCreatesIUPACNuecleotides

public boolean isCreatesIUPACNuecleotides()
Specified by:
isCreatesIUPACNuecleotides in interface MolecularDataType
Returns:
true

getNucleotideLength

public final int getNucleotideLength()
Specified by:
getNucleotideLength in interface MolecularDataType
Returns:
1

getSpecificStates

public int[] getSpecificStates(int state)
returns an array containing the non-ambiguous states that this state represents.

Specified by:
getSpecificStates in interface AmbiguousDataType

isAmbiguous

public boolean isAmbiguous()
Specified by:
isAmbiguous in interface DataType
Overrides:
isAmbiguous in class SimpleDataType
Returns:
true

getAmbiguousVersion

public AmbiguousDataType getAmbiguousVersion()
Specified by:
getAmbiguousVersion in interface DataType
Overrides:
getAmbiguousVersion in class SimpleDataType
Returns:
this!

getSpecificDataType

public DataType getSpecificDataType()
Specified by:
getSpecificDataType in interface AmbiguousDataType
Returns:
Nucleotides

getAmbiguity

public void getAmbiguity(int ambiguousState,
                         boolean[] specificInclusion)
Attempts to "resolve" the ambiguity in a state with regard to the specific data type.

Specified by:
getAmbiguity in interface AmbiguousDataType
Parameters:
ambiguousState - the state of this data type (the ambiguous one!)
specificInclusion - An array of length equal to or greater than the number of states of the specific DataType. Each state of the specific data type is represented by the corresponding element in this array. The result of this method will be to set the states that the ambiguous state cannot represent to false, and those states that the ambiguous state might represent to true.

getAmbiguity

public void getAmbiguity(int ambiguousState,
                         double[] specificInclusion)
A more accurate attempt to "resolve" the ambiguity in a state with regard to the specific data type.

Specified by:
getAmbiguity in interface AmbiguousDataType
Parameters:
ambiguousState - the state of this data type (the ambiguous one!)
specificInclusion - An array of length equal to or greater than the number of states of the specific DataType. Each state of the specific data type is represented by the corresponding element in this array. The result of this method will be to set the states that the ambiguous state cannot represent to zero, and those states that the ambiguous state might represent to a value representing the frequency that the ambiguous state is actually that specific state. In general this should be one for each specific state covered by the ambiguous state (result should be suitable for use in likelihood calculations).