SPRUCE: Somatic Phylogeny Reconstruction using Combinatorial Enumeration
C++ CMake Python Shell
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.



SPRUCE (Somatic Phylogeny Reconstruction using Combinatorial Enumeration) is an algorithm for inferring the clonal evolution of single-nucleotide and copy-number variants given multi-sample bulk tumor sequencing data.



For support using SPRUCE, please visit the SPRUCE Google Group.


SPRUCE is written C++. In addition to a recent C++ compiler (that supports C++11), it has the following dependencies:

Graphviz is required to visualize the resulting DOT files, but is not required for compilation.

Compilation instructions

To compile SPRUCE, execute the following commands from the root of the repository:

mkdir build
cd build
cmake ..

In case CMake fails to detect LEMON, run the following command with adjusted paths:

cmake -DLIBLEMON_ROOT=~/lemon ..

The compilation results in the following files in the build directory:

cliques Enumerates cliques of the compatibility graph (given a size and a filter)
enumerate Enumerates perfect phylogeny trees
merge Merges multiple solution files into one
rank Sorts solution trees by the fraction of common edges (solution with rank 0 is the most representative tree)
visualize Visualizes one solution or the entire solution space

For example usage see result/run_A22.sh and corresponding instructions. For a description of the input file format see data/README.md.

For instructions on how to visualize the set of enumerated trees see src/visualization/README.md.