Exemplo n.º 1
0
 def __init__(self,
              k_list: List[int],
              seq_file_list: List[str],
              dissimilirary_list: List[str],
              save_dir: str,
              markov_list: List[int] = None):
     self._k_list = k_list
     self._seq_list = [
         SequenceData(seq_file_list[i], i)
         for i in range(len(seq_file_list))
     ]
     self._dissimilarity = [
         self._DIC_FUNC[name] for name in dissimilirary_list
     ]
     self._markov_list = markov_list
     self._dissimilarity_names = dissimilirary_list
     self._result = Result(len(seq_file_list))
     self._save_dir = save_dir
Exemplo n.º 2
0
    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)
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
 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)