Can be used to find an optimal reconciliation between an undated binary gene tree and an undated binary species tree.
Download the source file ILPEACE.java.
Install CPLEX, which is free for academic use, see IBM academic initiative.
(Optional) Install Dendroscope, to view the constructed phylogenetic networks.
To compile the source code, download and install a Java Compiler.
Open a terminal window and navigate to the folder of ILPEACE.
Type "javac -classpath jarpath ILPEACE.java" where "jarpath" is the location of cplex.jar on your computer.
Running the program
Type "java -classpath jarpath;. -Djava.library.path=libpath ILPEACE species.tree gene.tree"
|"species.tree"||file containing a binary species tree in newick format|
|"gene.tree"||file containing a binary gene tree in newick format|
|"libpath"||path to CPLEX shared library on your computer (the folder containing the CPLEX binaries). Setting the libpath might not be necessary.|
|"jarpath"||path to cplex.jar on your computer (e.g. "C:\Program Files\IBM\ILOG\CPLEX_Studio125\cplex\lib\cplex.jar").|
|"labelled_species_tree.tree"||the species tree with all nodes labelled|
|"labelled_gene_tree.tree"||the gene tree with all nodes labelled|
|"mapping.txt"||the reconciliation mapping|
|"dated_species_tree.tree"||the species tree width edge-lengths that are consistent with the reconciliation|
|"network.tree"||network obtained by adding transfer edges to the species tree|
All tree- and network files can be viewed with Dendroscope. Note that the output format uses a subdivision of the species tree to make the format compatible with Sylvx.
For input files species.tree and gene.tree, the program generates the following files:
java ILPEACE species.tree gene.tree [c_s c_d c_t c_sl c_tl] [options]
|c_s||cost of a speciation event (default 0)|
|c_d||cost of a duplication event (default 2)|
|c_t||cost of a transfer event (default 3)|
|c_sl||cost of a speciation and loss event (default 1)|
|c_tl||cost of a transfer and loss event (default 4)|
|--tlbound k||first compute an upper bound by forbidding TL-events|
|--supp||suppress progress of CPLEX|
|--i k||set maximum number of events per vertex of gene tree to k|
|--epsilon x||set the value of epsilon to x (default 0.001)|