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:
MethylSegHMMCategorical 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 and initialize the sticky categorical HMM backend.
fit(emissions[, sample_info, chrom])Fit transition probabilities when
fit_transitionsis enabled.format_fit(emissions)Reshape integer categorical observations for
CategoricalHMM.format_predict(emissions)Format categorical observations for prediction.
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 = 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