Package pal.datatype

Class IUPACNucleotides

java.lang.Object
pal.datatype.SimpleDataType
pal.datatype.IUPACNucleotides
All Implemented Interfaces:
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:
  • Field Details

  • Constructor Details

    • IUPACNucleotides

      public IUPACNucleotides()
    • IUPACNucleotides

      public IUPACNucleotides(boolean isRNA)
  • Method Details

    • 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 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 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).