CWI

ILPEACE

Can be used to find an optimal reconciliation between an undated binary gene tree and an undated binary species tree.


Reference

To appear.

Installation

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").

Output files

"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.


Example

For input files species.tree and gene.tree, the program generates the following files:

Options

java ILPEACE species.tree gene.tree [c_s c_d c_t c_sl c_tl] [options]

c_scost of a speciation event (default 0)
c_dcost of a duplication event (default 2)
c_tcost of a transfer event (default 3)
c_slcost of a speciation and loss event (default 1)
c_tlcost of a transfer and loss event (default 4)
--tlbound kfirst compute an upper bound by forbidding TL-events
--suppsuppress progress of CPLEX
--i kset maximum number of events per vertex of gene tree to k
--epsilon xset the value of epsilon to x (default 0.001)