methylseg.StickyCategoricalMethylSegHMM

class methylseg.StickyCategoricalMethylSegHMM(n_states, random_state=42, n_iter=30, stay_prob=0.99995, emission_mismatch_prob=0.45, transition_prior_strength=50.0, fit_transitions=False)[source]

Bases: MethylSegHMM

Categorical HMM with strong self-transition priors for smoother segments.

Parameters:
  • n_states (int)

  • random_state (int)

  • n_iter (int)

  • stay_prob (float)

  • emission_mismatch_prob (float)

  • transition_prior_strength (float)

  • fit_transitions (bool)

__init__(n_states, random_state=42, n_iter=30, stay_prob=0.99995, emission_mismatch_prob=0.45, transition_prior_strength=50.0, fit_transitions=False)[source]

Initialize a sticky categorical HMM.

Parameters:
  • n_states (int) – Number of hidden and observed categorical states.

  • random_state (int) – Random seed passed to the underlying HMM implementation.

  • n_iter (int) – Maximum number of expectation-maximization iterations.

  • stay_prob (float) – Initial self-transition probability for each hidden state.

  • emission_mismatch_prob (float) – Probability mass assigned to nonmatching observed states.

  • transition_prior_strength (float) – Weight of the sticky transition prior when transitions are fitted.

  • fit_transitions (bool) – If True, estimate transitions during fitting; otherwise retain the initialized sticky transition matrix.

Methods

__init__(n_states[, random_state, n_iter, ...])

Initialize a sticky categorical HMM.

create_model()

Create and initialize the sticky categorical HMM backend.

fit(emissions[, sample_info, chrom])

Fit transition probabilities when fit_transitions is enabled.

format_fit(emissions)

Reshape integer categorical observations for CategoricalHMM.

format_predict(emissions)

Format categorical observations for prediction.

make_emissionprob()

Build the near-identity emission matrix used by the sticky HMM.

make_sticky_transmat([n_states, stay_prob])

Build a 'sticky' transition matrix.

predict(emissions)

Predict smoothed hidden states from categorical observations.

Attributes

DEFAULT_STAY_PROB

EMISSION_MISMATCH_PROB

TRANSITION_PRIOR_STRENGTH

DEFAULT_STAY_PROB = 0.99995
EMISSION_MISMATCH_PROB = 0.45
TRANSITION_PRIOR_STRENGTH = 50.0
format_fit(emissions)[source]

Reshape integer categorical observations for CategoricalHMM.

Parameters:

emissions – Integer observation labels in [0, n_states).

Returns:

Column vector with one categorical code per observation.

Return type:

numpy.ndarray

format_predict(emissions)[source]

Format categorical observations for prediction.

Parameters:

emissions – Integer observation labels in [0, n_states).

Returns:

Column vector with one categorical code per observation.

Return type:

numpy.ndarray

make_sticky_transmat(n_states=None, stay_prob=None)[source]

Build a ‘sticky’ transition matrix.

Parameters:
  • n_states (int | None) – Optional number of hidden states. When omitted, uses self.n_states.

  • stay_prob (float | None) – Optional diagonal self-transition probability. When omitted, uses self.stay_prob.

Returns:

  • numpy.ndarray – Square transition matrix whose rows sum to one.

  • stay_prob controls the diagonal self-transition probability for every

  • state. Remaining mass is shared uniformly across off-diagonal entries.

Return type:

ndarray

make_emissionprob()[source]

Build the near-identity emission matrix used by the sticky HMM.

Returns:

Square emission-probability matrix whose diagonal retains most of the probability mass.

Return type:

numpy.ndarray

create_model()[source]

Create and initialize the sticky categorical HMM backend.

fit(emissions, sample_info=None, chrom=None)[source]

Fit transition probabilities when fit_transitions is enabled.

Parameters:
  • emissions – Integer categorical observations.

  • sample_info – Unused placeholder for API compatibility.

  • chrom – Unused placeholder for API compatibility.

predict(emissions)[source]

Predict smoothed hidden states from categorical observations.

Parameters:

emissions – Integer categorical observations.

Returns:

Decoded HMM state sequence.

Return type:

numpy.ndarray