Alignments
Class Alignment

java.lang.Object
  extended by Alignments.Alignment
All Implemented Interfaces:
java.lang.Iterable<Site>
Direct Known Subclasses:
DuplicationAlignment, SequenceAlignment

public class Alignment
extends java.lang.Object
implements java.lang.Iterable<Site>

Represents an "alignment", used very losely. Classes should extend this to represent the different types of alignment, e.g. DuplicationAlignment, SequenceAlignment.

Version:
1.0

Field Summary
protected  java.util.List<Site> data
          The list of sites in the alignment
protected  java.util.Set<java.lang.String> taxa
          The list of taxa in the alignment
 
Constructor Summary
protected Alignment()
          Default constructor.
  Alignment(java.util.List<Site> data)
          Creates an alignment
 
Method Summary
 int getCount(Site s)
          Gets a count of hoften a site occurs in the alignment
 int getLength()
          Gets the length of the aligmnet
 int getNumber()
          Gets the number of taxa in the alignment
 Site getSite(int s)
          Returns the site at a given position in the alignment
 java.util.Set<java.lang.String> getTaxa()
          Gets the names of the taxa in the aligment
 java.util.Set<Site> getUniqueSites()
          Returns a list of unique sites in the aligment.
 java.util.Iterator<Site> iterator()
           
 Alignment recode(java.util.Map<java.lang.String,java.lang.String> recode)
          Recodes the alignment and returns it
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

data

protected java.util.List<Site> data
The list of sites in the alignment


taxa

protected java.util.Set<java.lang.String> taxa
The list of taxa in the alignment

Constructor Detail

Alignment

protected Alignment()
Default constructor. Called by classed that extend this one. Classes that do extend this class should ensure that they populate data and taxa appropiately.


Alignment

public Alignment(java.util.List<Site> data)
          throws AlignmentException
Creates an alignment

Parameters:
data - A list of sites in the alignment
Throws:
AlignmentException - Thrown if the sites passed have different taxa
Method Detail

getLength

public int getLength()
Gets the length of the aligmnet

Returns:
The length of the alignment

getNumber

public int getNumber()
Gets the number of taxa in the alignment

Returns:
The number of taxa in the alignment

getUniqueSites

public java.util.Set<Site> getUniqueSites()
Returns a list of unique sites in the aligment. Useful for calculating likelihoods as each site pattern only has to be calculated once.

Returns:
A set of unique sites

getCount

public int getCount(Site s)
Gets a count of hoften a site occurs in the alignment

Parameters:
s - The site
Returns:
How often it occurs

getSite

public Site getSite(int s)
Returns the site at a given position in the alignment

Parameters:
s - The site to be returned
Returns:
The site at posiiton s

getTaxa

public java.util.Set<java.lang.String> getTaxa()
Gets the names of the taxa in the aligment

Returns:
List of taxa names

iterator

public java.util.Iterator<Site> iterator()
Specified by:
iterator in interface java.lang.Iterable<Site>

recode

public Alignment recode(java.util.Map<java.lang.String,java.lang.String> recode)
Recodes the alignment and returns it

Parameters:
recode - A map from original state to new state, e.g. to recode DNA to RY it would contains A -> R, G -> R, C -> Y, T -> Y
Returns:
A recoded alignment