Package org.biojavax.ga.functions
Interface MutationFunction
- All Superinterfaces:
Changeable
- All Known Implementing Classes:
AbstractMutationFunction,MutationFunction.NoMutation,SimpleMutationFunction,SwapMutationFunction
A class that mutates a SymbolList
- Since:
- 1.5
- Version:
- 1.0
- Author:
- Mark Schreiber
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic final classPlace Holder class that doesn't mutate its SymbolLists -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final double[]static final ChangeTypestatic final ChangeTypestatic final MutationFunction -
Method Summary
Modifier and TypeMethodDescriptiondouble[]mutate(SymbolList seq) Produces a new SymbolList by mutation.voidsetMutationProbs(double[] mutationProbs) Set the probability of a mutation occuring at a certain position Position 0 in the array corresponds to the probability of the first residue ofseqmutating.voidsetMutationSpectrum(OrderNDistribution mutationSpectrum) Sets theDistributionofSymbolsthat will be selected from when a mutation occurs.Methods inherited from interface org.biojava.utils.Changeable
addChangeListener, addChangeListener, isUnchanging, removeChangeListener, removeChangeListener
-
Field Details
-
DEFAULT_MUTATION_PROBS
-
MUTATION_PROBS
-
MUTATION_SPECTRUM
-
NO_MUTATION
-
-
Method Details
-
mutate
SymbolList mutate(SymbolList seq) throws IllegalAlphabetException, ChangeVetoException, IllegalSymbolException Produces a new SymbolList by mutation. Each position i in the SymbolListseqis mutated with probabilitygetMutationProbs[i]. The new residue is selected at random from theDistribution 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 ofseqmutating. If the length of the array defined ingetMutationProbs()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:
IllegalAlphabetException- If themutationSpectrum Distributionis not emitting Symbols from the sameAlphabetasseq.IllegalSymbolException- if themutationSpectrum Distributionis not conditioned with the sameAlphabetas theseq Alphabet.ChangeVetoException- ifseqis unmodifiable
-
setMutationProbs
Set the probability of a mutation occuring at a certain position Position 0 in the array corresponds to the probability of the first residue ofseqmutating. If the length of the array defined ingetMutationProbs()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:
mutationProbs- an array of double values representing mutation probabilities- Throws:
ChangeVetoException- if a ChangeListener vetoes the change.
-
getMutationProbs
double[] getMutationProbs() -
setMutationSpectrum
Sets theDistributionofSymbolsthat will be selected from when a mutation occurs. AnOrderNDistributionis used so that you can model a situation where the identity of the 'mutant'Symbolis dependent on the originalSymbol. The primary use is to preventSymbolsmutating to themselves. Another use would be to model transitions and transversions.- Parameters:
mutationSpectrum- the Distribution of 'mutant' bases to choose from.- Throws:
ChangeVetoException- if a ChangeListener vetoes the change.
-
getMutationSpectrum
- Returns:
- null if the Distribution has not been set.
-