@staticmethod
def e_value_normalizer(e_value_raw, celltype_number, number_of_re):
    """
        Normalizes the e-value due to disparity in number of celltypes
        :param e_value_raw: value to normalize
        :param celltype_number: number of cell types in data set
        :param number_of_re: number of RE in sample
        :return: normalized e-value
        """
    coefs = {'a': -164054.1, 'b': 0.9998811, 'c': 6.088948e-06, 'd': 
        1.00051, 'm': 0.9527, 'e': -0.1131}
    e_value_expected = (coefs['m'] * number_of_re + coefs['e']
        ) * celltype_number ** (coefs['d'] + (coefs['a'] - coefs['d']) / (1 +
        (number_of_re / coefs['c']) ** coefs['b']))
    e_value_norm = e_value_raw / e_value_expected * 100
    if e_value_norm < 100:
        return e_value_norm
    else:
        return 100
