1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
pub use hashbrown::HashMap;
pub use std::f32::NEG_INFINITY;

pub type Char = u8;
pub type Seq = Vec<Char>;
pub type SeqSlice<'a> = &'a[Char];
pub type Prob = f32;
pub type LogProb = Prob;
pub type PartFunc = Prob;
pub type CharPair = (Char, Char);
pub type Probs = Vec<Prob>;
pub type ProbMat = Vec<Probs>;
pub type PartFuncs = Vec<PartFunc>;
pub type PartFuncMat = Vec<PartFuncs>;
pub type ScaleParam = PartFunc;
pub type ScaleParams = Vec<ScaleParam>;
pub type ScaleParamMat = Vec<ScaleParams>;
pub type SsPair<'a> = (SeqSlice<'a>, SeqSlice<'a>);
pub type SaScore = LogProb;
pub type CaScoreMat = HashMap<CharPair, SaScore>;
#[derive(Clone)]
pub struct SaScoringParams {
  pub ca_sm: CaScoreMat,
  pub opening_gap_penalty: SaScore,
  pub extending_gap_penalty: SaScore,
}
pub type ProbSeqPair = (Probs, Probs);
pub type Pos = usize;
pub type PosPair = (Pos, Pos);