|
FORESTER 1.9 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--forester.tools.SDI | +--forester.tools.OE
Implements Oliver Eulenstein's algorithm for speciation - duplication inference.
References:
The initialization is accomplished by:
The recursion part is accomplished by method "DFS(Node)" of this class
Duplication and speciations are determined by "determine(Node)" of this class.
Requires JDK 1.2 or greater.
SDI.stripTree(Tree,Tree)
,
Tree.preorderReID(int)
,
Tree.hashIDs()
,
Tree.setIndicatorsToZero()
,
linkExtNodesOfS()
,
DFS(Node)
,
determine(Node)
Constructor Summary | |
OE(Tree gene_tree,
Tree species_tree)
Constructor which sets the gene tree and the species tree to be compared. |
Method Summary | |
int |
computeMappingCost()
Computes the cost of mapping the gene tree gene_tree onto the species tree species_tree. |
(package private) void |
determine(Node g)
Determines which nodes of the subtree of gene tree node g represent duplications and which ones speciations. |
(package private) void |
DFS(Node s)
Traverses the species tree in postorder. |
int |
infer(boolean strip_species_tree)
Infers for each Node of gene_tree (set in constructor) whether it represents a speciation or duplication event by calculating and interpreting the mapping function M. |
(package private) void |
linkExtNodesOfS()
Links each external Node of the species tree to the all external nodes of the gene tree which have the same species name. |
Methods inherited from class forester.tools.SDI |
decreaseDuplications, getDuplications, getGeneTree, getMappingCost, getSpeciesTree, increaseDuplications, linkExtNodesOfG, main, setDuplicationsToZero, stripTree |
Methods inherited from class java.lang.Object |
|
Constructor Detail |
public OE(Tree gene_tree, Tree species_tree) throws java.lang.Exception
gene_tree
- reference to a rooted binary gene Tree to which assign
duplication vs speciation, must have species names in
the species name fields for all external nodesspecies_tree
- reference to a rooted binary species Tree which might
get stripped in the process, must have species names in
the species name fields for all external nodesinfer(boolean)
,
computeMappingCost()
Method Detail |
public int infer(boolean strip_species_tree) throws java.lang.Exception
The species tree MUST NOT contain species not found in the gene tree. If it does, set strip_species_tree to true.
(Last modified: 01/11/01)
infer
in class SDI
strip_species_tree
- set to true if species are present in the
species tree which are not in the gene tree
(not optional!)public int computeMappingCost() throws java.lang.Exception
Overrides the method of the base class, since additionaly the links for the gene tree have to be calculated first.
Reference. Zhang, L. (1997) On a Mirkin-Muchnik-Smith Conjecture for Comparing Molecular Phylogenies. Journal of Computational Biology 4 177-187.
(Last modified: 11/07/00)
computeMappingCost
in class SDI
void DFS(Node s)
(Last modified: 01/11/01)
void linkExtNodesOfS() throws java.lang.Exception
The matching Nodes of the gene tree are placed in a Vector associated with each external Nodes of the species tree. This is necessary in order to deal with redundant species in the gene tree and is not part of the algorithm as described in Eulenstein (1998), but it is mentioned in Eulenstein (1996).
(Last modified: 01/11/01)
void determine(Node g)
Precondition: Mapping function M for all nodes of the gene tree must have been calculated.
(Last modified: 01/11/01)
g
- starting node of a gene tree - normally the root
|
FORESTER 1.9 | |||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |