def _process_mhci(mhc_file, normal=False):
    """
    Process the results from running IEDB MHCI binding predictions into a pandas dataframe.

    :param str mhc_file: Output file containing netmhciipan mhci:peptide binding predictions
    :param bool normal: Is this processing the results of a normal?
    :return: Results in a tabular format
    :rtype: pandas.DataFrame
    """
    results = pandas.DataFrame(columns=['allele', 'pept', 'tumor_pred', 'core'])
    with open(mhc_file, 'r') as mf:
        peptides = set()
        for line in mf:
            # Skip header lines
            if not line.startswith('HLA'):
                continue
            line = line.strip().split('\t')
            allele = line[0]
            pept = line[5]
            pred = line[7]
            if float(pred) > 5.00 and not normal:
                continue
            results.loc[len(results)] = [allele, pept, pred, pept]
    results.drop_duplicates(inplace=True)
    return results
Process the results from running IEDB MHCI binding predictions into a pandas dataframe.

    :param str mhc_file: Output file containing netmhciipan mhci:peptide binding predictions
    :param bool normal: Is this processing the results of a normal?
    :return: Results in a tabular format
    :rtype: pandas.DataFrame