def get_Hao(seq_x: SequenceData, seq_y: SequenceData, k: int, result: Result, r: int = None) -> None: if k < 2: return ktuple_1 = seq_x.get_ktuple(k) total_1 = seq_x.get_total(k) markov_1 = seq_x.get_markov(k, k - 2) ktuple_2 = seq_y.get_ktuple(k) total_2 = seq_y.get_total(k) markov_2 = seq_y.get_markov(k, k - 2) res = Dissimilarity._get_Hao(ktuple_1, ktuple_2, total_1, total_2, markov_1, markov_2) key = 'Hao_k{}'.format(k) result.add(key, seq_x.id, seq_y.id, res)
def get_D2S(seq_x: SequenceData, seq_y: SequenceData, k: int, result: Result, r_list: List[int]) -> None: for r in r_list: if k < r or k < 3: continue ktuple_1 = seq_x.get_ktuple(k) total_1 = seq_x.get_total(k) markov_1 = seq_x.get_markov(k, r) ktuple_2 = seq_y.get_ktuple(k) total_2 = seq_y.get_total(k) markov_2 = seq_y.get_markov(k, r) res = Dissimilarity._get_D2S(ktuple_1, ktuple_2, total_1, total_2, markov_1, markov_2) key = 'D2S_k{}_M{}'.format(k, r) result.add(key, seq_x.id, seq_y.id, res)
def get_Ma(seq_x: SequenceData, seq_y: SequenceData, k: int, result: Result, r: int = None) -> None: ktuple_1 = seq_x.get_ktuple(k) ktuple_2 = seq_y.get_ktuple(k) res = Dissimilarity._get_Ma(ktuple_1, ktuple_2, seq_x.get_total(k), seq_y.get_total(k)) key = 'Ma_k{}'.format(k) result.add(key, seq_x.id, seq_y.id, res)