|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.rit.compbio.phyl.MaximumParsimonyBnbHyb
public class MaximumParsimonyBnbHyb
Class MaximumParsimonyBnbHyb provides a hybrid parallel algorithm for maximum parsimony phylogenetic tree construction using branch-and-bound search.
Class MaximumParsimonyBnbHyb is designed to be used in a hybrid parallel program that runs on multiple nodes with one process per node and multiple threads per process. Each thread has its own MaximumParsimonyBnbHyb instance. Each thread uses its own MaximumParsimonyBnbHyb instance to search different sections of the search graph concurrently.
Each process has a shared, replicated variable, bound, that holds the best parsimony score found so far (i.e., the bound for branch-and-bound search). The bound variable is an instance of class ReplicatedInteger. All the MaximumParsimonyBnbHyb instances within the process share the same bound variable. Whenever one thread finds a phylogenetic tree with a better parsimony score, it notifies all the threads and processes by updating the bound variable.
To perform a search, each process must:
Note: Class MaximumParsimonyBnbHyb is not multiple thread safe; it is intended to be used as a per-thread variable.
| Constructor Summary | |
|---|---|
MaximumParsimonyBnbHyb(DnaSequenceList seqList,
ReplicatedInteger bound,
MaximumParsimonyResults results)
Construct a new maximum parsimony phylogenetic tree construction algorithm object. |
|
| Method Summary | |
|---|---|
static ReplicatedInteger |
createBoundVariable(int initialBound)
Create a new shared, replicated bound variable. |
static ReplicatedInteger |
createBoundVariable(int initialBound,
Comm comm,
int tag)
Create a new shared, replicated bound variable. |
void |
findTrees(int startLevel,
int vertex1,
int vertex2)
Find the maximum parsimony phylogenetic tree(s) in the given section of the search graph. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public MaximumParsimonyBnbHyb(DnaSequenceList seqList,
ReplicatedInteger bound,
MaximumParsimonyResults results)
seqList - DNA sequence list.bound - Shared, replicated bound variable.results - Object in which to store the results.| Method Detail |
|---|
public static ReplicatedInteger createBoundVariable(int initialBound)
initialBound - Initial bound for branch-and-bound search.
public static ReplicatedInteger createBoundVariable(int initialBound,
Comm comm,
int tag)
initialBound - Initial bound for branch-and-bound search.comm - Communicator used by the bound variable.tag - Message tag used by the bound variable.
This message tag must not be used in any other
messages in the program.
public void findTrees(int startLevel,
int vertex1,
int vertex2)
throws IOException
The search will commence at level L of the search graph, 0 ≤ L ≤ N−1, where N is the number of sequences in the DNA sequence list. Of the (2L−1)!! vertices at level L, the search will start at the V1-th such vertex and end at the V2-th such vertex, 0 ≤ V1 ≤ V2 ≤ (2L−1)!! − 1. All search graph vertices at and below vertices V1 through V2 inclusive will be searched.
The results are stored in the MaximumParsimonyResults object specified to the constructor. The findTrees() method will only find trees whose parsimony scores are less than or equal to the value of the bound variable specified to the constructor or the best bound found thereafter, whichever is smaller.
startLevel - L, the level of the search graph at which to commence the
search.vertex1 - V1, the search graph vertex at level L at
which to start the search.vertex2 - V2, the search graph vertex at level L at
which to end the search.
IOException - Thrown if an I/O error occurred.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||