1pub use hashbrown::HashMap;
2pub use std::f32::NEG_INFINITY;
3
4pub type Char = u8;
5pub type Seq = Vec<Char>;
6pub type SeqSlice<'a> = &'a[Char];
7pub type Prob = f32;
8pub type LogProb = Prob;
9pub type PartFunc = Prob;
10pub type CharPair = (Char, Char);
11pub type Probs = Vec<Prob>;
12pub type ProbMat = Vec<Probs>;
13pub type PartFuncs = Vec<PartFunc>;
14pub type PartFuncMat = Vec<PartFuncs>;
15pub type ScaleParam = PartFunc;
16pub type ScaleParams = Vec<ScaleParam>;
17pub type ScaleParamMat = Vec<ScaleParams>;
18pub type SsPair<'a> = (SeqSlice<'a>, SeqSlice<'a>);
19pub type SaScore = LogProb;
20pub type CaScoreMat = HashMap<CharPair, SaScore>;
21#[derive(Clone)]
22pub struct SaScoringParams {
23 pub ca_sm: CaScoreMat,
24 pub opening_gap_penalty: SaScore,
25 pub extending_gap_penalty: SaScore,
26}
27pub type ProbSeqPair = (Probs, Probs);
28pub type Pos = usize;
29pub type PosPair = (Pos, Pos);