Parses gene expression file and returns a (gene identifier)-(expression) dictionary.
    Attribute:
        gene_expression_fp (str): File path to a gene expression file.
        mean (bool): When making a normal(reference) gene expression profile, you might use
            average values of gene expressions for each gene. In this case, pass mean=True.

def parse_gene_expression(gene_expression_fp, mean=False):
    """Parses gene expression file and returns a (gene identifier)-(expression) dictionary.
    Attribute:
        gene_expression_fp (str): File path to a gene expression file.
        mean (bool): When making a normal(reference) gene expression profile, you might use
            average values of gene expressions for each gene. In this case, pass mean=True.
    """
    gene_expression_dict = OrderedDict()
    with open(gene_expression_fp) as inFile:
        inFile.readline()  # Skip header.
        for line in inFile.readlines():
            tokens = line.strip().split('\t')
            gene_identifier = tokens[0]

            if mean:
                expression = np.log2(np.mean([float(t) for t in tokens[1:]]) + 1.0)
            else:
                expression = np.log2(float(tokens[1]) + 1.0)

            gene_expression_dict[gene_identifier] = expression

    return gene_expression_dict