def thresholded_value_comparison(df_hg38, df_hg19, metric='hamming'):
    "Compare -2,-1,0,1,2 gene-level thresholded calls. metric can be either\n    hamming (number of discrepancies in each gene) or manhattan (sum of \n    'distances' between each gene so a 1 to -1 change is 2). Returns a vector\n    of each gene's metric."
    out = []
    for (i, g) in enumerate(df_hg38.columns):
        if (metric == 'hamming'):
            out.append((sum((df_hg19[g] != df_hg38[g])) / len(df_hg19)))
        elif (metric == 'manhattan'):
            out.append(sum(abs((df_hg19[g] - df_hg38[g]))))
    return pd.DataFrame(out, index=df_hg38.columns)
Compare -2,-1,0,1,2 gene-level thresholded calls. metric can be either
hamming (number of discrepancies in each gene) or manhattan (sum of 
'distances' between each gene so a 1 to -1 change is 2). Returns a vector
of each gene's metric.
def thresholded_value_comparison(df_hg38, df_hg19, metric='hamming'):
    "Compare -2,-1,0,1,2 gene-level thresholded calls. metric can be either\n    hamming (number of discrepancies in each gene) or manhattan (sum of \n    'distances' between each gene so a 1 to -1 change is 2). Returns a vector\n    of each gene's metric."
    out = []
    for (i, g) in enumerate(df_hg38.columns):
        if (metric == 'hamming'):
            out.append((sum((df_hg19[g] != df_hg38[g])) / len(df_hg19)))
        elif (metric == 'manhattan'):
            out.append(sum(abs((df_hg19[g] - df_hg38[g]))))
    return pd.DataFrame(out, index=df_hg38.columns)