def expansion_list(self):
        self.create_list_intra_extra()
        self.__calculate_the_frequency()
        self.calculate_TPFNFP()
        self.statistical_result()
        self.calculate_cutoff_frequency()

        expansion_list = []
        for key in self.list_extra:
            freq = self.list_extra[key][0]
            if freq >= self.cutoff_frequency:
                gene_1, gene_2 = helper.decode_edge_key(key)
                expansion_list.append([gene_1, gene_2, freq])

        return expansion_list
    def calculate_TPFNFP(self):
        ncols = 100
        # TP & FN
        for key in self.list_intra:
            gene_1, gene_2 = helper.decode_edge_key(key)
            if self.__connection_is_in_lgn(gene_1, gene_2):
                equal_point = int(math.floor(self.list_intra[key] * 100))
                print equal_point
                for i in range(equal_point, ncols):
                    self.TP[i] += 1
                for i in range(0, equal_point):
                    self.FN[i] += 1
            else:
                for i in range(0, ncols):
                    self.FP[i] += 1

        for key in self.list_extra:
            equal_point = int(math.floor(self.list_extra[key][0] * 100))
            for i in range(equal_point, ncols):
                    self.FP[i] += 1
 def __refine_list_extra(self):
     extra_genes = list(self.list_extra.keys())
     for key in self.list_extra:
         [_, extra_gene] = helper.decode_edge_key(key)
         count = self.__count_appearance_of_extra_genes(extra_gene)
         self.list_extra[key][1] = count