> ## Documentation Index
> Fetch the complete documentation index at: https://demo.agenticlabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# __init__.py

## High-level description

This file defines the top-level module for the Cassiopeia tree solver package. It imports and exposes various solver classes and dissimilarity functions for phylogenetic tree reconstruction.

## Code Structure

This file simply imports various solver classes and a module containing dissimilarity functions. These classes and functions are used by other modules in the Cassiopeia solver package.

## Symbols

### `HybridSolver`

#### Description

A hybrid solver that combines a top-down greedy algorithm with a more complex bottom-up solver. The greedy solver is applied until a certain criteria is reached (e.g., maximum LCA distance or number of cells), after which the bottom solver is used to reconstruct subproblems.

### `ILPSolver`

#### Description

An ILP-based solver that infers the maximum parsimony tree by solving for a Steiner Tree over a potential graph of possible evolutionary states.

### `MaxCutGreedySolver`

#### Description

A greedy solver that uses the max-cut criterion to optimize partitions generated by the vanilla greedy algorithm.

### `MaxCutSolver`

#### Description

A solver that uses a max-cut heuristic to partition samples based on a connectivity graph representing a supertree of phylogenetic trees on each individual character.

### `NeighborJoiningSolver`

#### Description

A solver that implements the Neighbor-Joining algorithm to iteratively join samples that minimize the Q-criterion on the dissimilarity map.

### `PercolationSolver`

#### Description

A top-down percolation-based solver that recursively partitions the sample set based on similarity in the observed mutations.

### `SharedMutationJoiningSolver`

#### Description

An agglomerative clustering solver that joins samples that share the most identical character/state mutations.

### `SpectralGreedySolver`

#### Description

A greedy solver that uses a spectral heuristic to optimize partitions generated by the vanilla greedy algorithm.

### `SpectralSolver`

#### Description

A solver that uses a spectral method to partition samples based on a similarity graph representing shared mutations.

### `UPGMASolver`

#### Description

A solver that implements the UPGMA algorithm to iteratively join samples with the minimum dissimilarity.

### `VanillaGreedySolver`

#### Description

A solver that implements the basic Cassiopeia-Greedy algorithm, recursively splitting samples based on the most frequent mutation.

### `SpectralNeighborJoiningSolver`

#### Description

A solver that implements a variation of the Spectral Neighbor-Joining algorithm to iteratively join subsets of leaves into a cherry based on the second singular value of the RA matrix.

### `dissimilarity`

#### Description

A module containing various dissimilarity functions used to compare phylogenetic samples.
