org.biojavax.ga.functions
Class SimpleMutationFunction

java.lang.Object
  extended by org.biojava.utils.AbstractChangeable
      extended by org.biojavax.ga.functions.AbstractMutationFunction
          extended by org.biojavax.ga.functions.SimpleMutationFunction
All Implemented Interfaces:
Changeable, MutationFunction

public final class SimpleMutationFunction
extends AbstractMutationFunction

Simple no frills Implementation of the MutationFunction interface

This class is final, custom implementations should extend AbstractMutationFunction

Since:
1.5
Version:
1.0
Author:
Mark Schreiber

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.biojavax.ga.functions.MutationFunction
MutationFunction.NoMutation
 
Field Summary
 
Fields inherited from interface org.biojavax.ga.functions.MutationFunction
DEFAULT_MUTATION_PROBS, MUTATION_PROBS, MUTATION_SPECTRUM, NO_MUTATION
 
Constructor Summary
SimpleMutationFunction()
           
 
Method Summary
 SymbolList mutate(SymbolList seq)
          Produces a new SymbolList by mutation.
 
Methods inherited from class org.biojavax.ga.functions.AbstractMutationFunction
getMutationProbs, getMutationSpectrum, setMutationProbs, setMutationSpectrum
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
 

Constructor Detail

SimpleMutationFunction

public SimpleMutationFunction()
Method Detail

mutate

public SymbolList mutate(SymbolList seq)
                  throws ChangeVetoException,
                         IllegalAlphabetException,
                         IllegalSymbolException
Description copied from interface: MutationFunction
Produces a new SymbolList by mutation. Each position i in the SymbolList seq is mutated with probability getMutationProbs[i]. The new residue is selected at random from the Distribution mutation. The use of an array of probabilities allows the modelling of mutational hotspots. Position 0 in the array corresponds to the probability of the first residue of seq mutating. If the length of the array defined in getMutationProbs() is shorter than the length of the sequence the default behaivour of implementations will be to apply the last probability to each subsequence residue. A single member array will mutate all bases with equal probability.

Parameters:
seq - the sequence to mutate
Returns:
The mutated sequence.
Throws:
ChangeVetoException - if seq is unmodifiable
IllegalAlphabetException - If the mutationSpectrum Distribution is not emitting Symbols from the same Alphabet as seq.
IllegalSymbolException - if the mutationSpectrum Distribution is not conditioned with the same Alphabet as the seq Alphabet.