|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.biojava.bio.alignment.SequenceAlignment
org.biojava.bio.alignment.NeedlemanWunsch
public class NeedlemanWunsch
Needleman and Wunsch definied the problem of global sequence alignments, from the first till the last symbol of a sequence. This class is able to perform such global sequence comparisons efficiently by dynamic programing. If inserts and deletes are equally expensive and as expensive as the extension of a gap, the alignment method of this class does not use affine gap panelties. Otherwise it does. Those costs need four times as much memory, which has significant effects on the run time, if the computer needs to swap.
Field Summary | |
---|---|
protected java.lang.String |
alignment
|
protected double[][] |
CostMatrix
|
protected Alignment |
pairalign
|
protected SubstitutionMatrix |
subMatrix
|
Constructor Summary | |
---|---|
NeedlemanWunsch(double match,
double replace,
double insert,
double delete,
double gapExtend,
SubstitutionMatrix subMat)
Constructs a new Object with the given parameters based on the Needleman-Wunsch algorithm The alphabet of sequences to be aligned will be taken from the given substitution matrix. |
Method Summary | |
---|---|
java.util.List |
alignAll(SequenceIterator source,
SequenceDB subjectDB)
|
Alignment |
getAlignment(Sequence query,
Sequence target)
This method is good if one wants to reuse the alignment calculated by this class in another BioJava class. |
java.lang.String |
getAlignmentString()
|
double |
getDelete()
Returns the current expenses of a single delete operation. |
double |
getEditDistance()
This gives the edit distance acording to the given parameters of this certain object. |
double |
getGapExt()
Returns the current expenses of any extension of a gap operation. |
double |
getInsert()
Returns the current expenses of a single insert operation. |
double |
getMatch()
Returns the current expenses of a single match operation. |
double |
getReplace()
Returns the current expenses of a single replace operation. |
protected static double |
min(double x,
double y,
double z)
This just computes the minimum of three double values. |
double |
pairwiseAlignment(Sequence query,
Sequence subject)
Global pairwise sequence alginment of two BioJava-Sequence objects according to the Needleman-Wunsch-algorithm. |
static void |
printAlignment(java.lang.String align)
prints the alignment String on the screen (standard output). |
static java.lang.String |
printCostMatrix(double[][] CostMatrix,
char[] queryChar,
char[] targetChar)
Prints a String representation of the CostMatrix for the given Alignment on the screen. |
void |
setDelete(double del)
Sets the penalty for a delete operation to the specified value. |
void |
setGapExt(double ge)
Sets the penalty for an extension of any gap (insert or delete) to the specified value. |
void |
setInsert(double ins)
Sets the penalty for an insert operation to the specified value. |
void |
setMatch(double ma)
Sets the penalty for a match operation to the specified value. |
void |
setReplace(double rep)
Sets the penalty for a replace operation to the specified value. |
void |
setSubstitutionMatrix(SubstitutionMatrix matrix)
Sets the substitution matrix to be used to the specified one. |
Methods inherited from class org.biojava.bio.alignment.SequenceAlignment |
---|
formatOutput |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected double[][] CostMatrix
protected SubstitutionMatrix subMatrix
protected Alignment pairalign
protected java.lang.String alignment
Constructor Detail |
---|
public NeedlemanWunsch(double match, double replace, double insert, double delete, double gapExtend, SubstitutionMatrix subMat)
match
- This gives the costs for a match operation. It is only used, if there is no entry
for a certain match of two symbols in the substitution matrix (default value).replace
- This is like the match parameter just the default, if there is no entry in the
substitution matrix object.insert
- The costs of a single insert operation.delete
- The expenses of a single delete operation.gapExtend
- The expenses of an extension of a existing gap (that is a previous insert or
delete. If the costs for insert and delete are equal and also equal to gapExtend, no
affine gap penalties will be used, which saves a significant amount of memory.subMat
- The substitution matrix object which gives the costs for matches and replaces.Method Detail |
---|
public void setSubstitutionMatrix(SubstitutionMatrix matrix)
matrix
- an instance of a substitution matrix.public void setInsert(double ins)
ins
- costs for a single insert operationpublic void setDelete(double del)
del
- costs for a single deletion operationpublic void setGapExt(double ge)
ge
- costs for any gap extensionpublic void setMatch(double ma)
ma
- costs for a single match operationpublic void setReplace(double rep)
rep
- costs for a single replace operationpublic double getInsert()
public double getDelete()
public double getGapExt()
public double getMatch()
public double getReplace()
public static java.lang.String printCostMatrix(double[][] CostMatrix, char[] queryChar, char[] targetChar)
queryChar
- a character representation of the query sequence
(mySequence.seqString().toCharArray()
).targetChar
- a character representation of the target sequence.
public static void printAlignment(java.lang.String align)
align
- The parameter is typically given by the
getAlignmentString()
method.public Alignment getAlignment(Sequence query, Sequence target) throws java.lang.Exception
pairwiseAlignment
and returns an Alignment
instance containing the two aligned sequences.
getAlignment
in class SequenceAlignment
java.lang.Exception
public double getEditDistance()
double myDistanceValue = foo; this.CostMatrix = new double[1][1]; this.CostMatrix[0][0] = myDistanceValue;
protected static double min(double x, double y, double z)
x
- y
- z
-
public java.lang.String getAlignmentString() throws BioException
getAlignmentString
in class SequenceAlignment
BioException
public java.util.List alignAll(SequenceIterator source, SequenceDB subjectDB) throws java.util.NoSuchElementException, BioException
alignAll
in class SequenceAlignment
source
- a SequenceIterator containing a set of sequences to be aligned withsubjectDB
- the SequenceDB containing another set of sequences.
java.util.NoSuchElementException
BioException
public double pairwiseAlignment(Sequence query, Sequence subject) throws BioRuntimeException
pairwiseAlignment
in class SequenceAlignment
BioRuntimeException
SequenceAlignment.pairwiseAlignment(org.biojava.bio.seq.Sequence, org.biojava.bio.seq.Sequence)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |