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

# errors.py

## High-level description

This file defines a set of custom exception classes for the Cassiopeia software. These exceptions are used to handle various error conditions that may arise during the execution of the Cassiopeia pipeline, such as autocorrelation errors, tree errors, data simulator errors, distance solver errors, and more.

## Code Structure

The code consists of a series of custom exception classes, each inheriting from the base `Exception` class. These classes are named according to the specific error condition they represent, such as `AutocorrelationError`, `CassiopeiaTreeError`, `DataSimulatorError`, etc. Each class has a simple `pass` statement, indicating that they do not have any additional logic or attributes beyond the basic exception handling.

## Symbols

### `AutocorrelationError`

#### Description

An exception class for errors encountered in the `tools.autocorrelation` module.

### `CassiopeiaError`

#### Description

A general exception class for the Cassiopeia software.

### `CassiopeiaTreeError`

#### Description

An exception class for errors encountered in the `CassiopeiaTree` class. This class is used to handle errors related to tree manipulation, character state assignments, and other tree-related operations.

### `DataSimulatorError`

#### Description

A generic exception class for errors encountered in the `DataSimulator` subclasses. This class is used to handle errors related to data simulation, such as invalid parameters or data inconsistencies.

### `DistanceSolverError`

#### Description

An exception class for errors encountered in the `DistanceSolver` subclasses. This class is used to handle errors related to distance-based tree solving algorithms, such as Neighbor-Joining and UPGMA.

### `ecDNABirthDeathSimulatorError`

#### Description

An exception class for errors encountered in the `ecDNABirthDeathSimulator` class. This class is used to handle errors specific to the simulation of trees with extrachromosomal DNA (ecDNA).

### `FitchCountError`

#### Description

An exception class for errors encountered in the `FitchCount` algorithm. This algorithm is used to infer the number of transitions between categorical variables (e.g., tissues) in a tree.

### `GreedySolverError`

#### Description

An exception class for errors encountered in the `GreedySolver` class. This class represents the structure of top-down algorithms that build the reconstructed tree by recursively splitting the set of samples based on some split criterion.

### `HybridSolverError`

#### Description

An exception class for errors encountered in the `HybridSolver` subclasses. This class represents a hybrid approach to tree solving, combining a greedy algorithm with a more complex algorithm for subproblems.

### `ILPSolverError`

#### Description

An exception class for errors encountered in the `ILPSolver` subclasses. This class represents an integer linear programming (ILP) approach to tree solving.

### `iTOLError`

#### Description

An exception class for errors encountered when interacting with the iTOL (Interactive Tree Of Life) software.

### `LeafSubsamplerError`

#### Description

An exception class for errors encountered in the `LeafSubsampler` class. This class is used to handle errors related to subsampling leaves from a tree.

### `PreprocessError`

#### Description

An exception class for errors encountered during the preprocessing stage of the Cassiopeia pipeline.

### `PriorTransformationError`

#### Description

An exception class for errors encountered when transforming prior probabilities into weights.

### `SharedMutationJoiningSolverError`

#### Description

An exception class for errors encountered in the `SharedMutationJoiningSolver` class. This class represents an agglomerative clustering procedure that joins samples based on shared mutations.

### `TreeSimulatorError`

#### Description

An exception class for errors encountered in the `TreeSimulator` subclasses. This class is used to handle errors related to tree simulation, such as invalid parameters or stopping conditions.

### `UnknownCigarStringError`

#### Description

An exception class for errors encountered when parsing an unknown CIGAR string. A CIGAR string is a compact representation of an alignment between two sequences.

### `UnspecifiedConfigParameterError`

#### Description

An exception class for errors encountered when a required configuration parameter is not specified.

### `BranchLengthEstimatorError`

#### Description

An exception class for errors encountered in the `BranchLengthEstimator` class. This class is used to estimate branch lengths on a tree.

### `IIDExponentialMLEError`

#### Description

An exception class for errors encountered in the `IIDExponentialMLE` class, a subclass of `BranchLengthEstimator`. This class estimates branch lengths under a model of independent and identically distributed (IID) exponential waiting times for mutations.

### `TreeMetricError`

#### Description

An exception class for errors encountered when calculating tree metrics.

### `ParameterEstimateError`

#### Description

An exception class for errors encountered when estimating tree parameters.

### `PlottingError`

#### Description

An exception class for errors encountered when plotting trees.
