def predict(self, fasta_dictionary):
        fasta_dictionary = check_sequence_dictionary(fasta_dictionary)
        # take each mutated sequence in the dataframe
        # and general MHC binding scores for all k-mer substrings
        builder = EpitopeCollectionBuilder(
            fasta_dictionary=fasta_dictionary,
            prediction_method_name=self.prediction_method)
        for key, amino_acid_sequence in fasta_dictionary.items():
            for allele in self.alleles:
                request = self._get_iedb_request_params(
                    amino_acid_sequence, allele)
                logging.info(
                    "Calling IEDB (%s) with request %s",
                    self.url,
                    request)
                response_df = _query_iedb(request, self.url)
                for _, row in response_df.iterrows():
                    builder.add_binding_prediction(
                        source_sequence_key=key,
                        # IEDB's start is 1-based, need to subtract 1
                        offset=row['start'] - 1,
                        allele=row['allele'],
                        peptide=row['peptide'],
                        ic50=row['ic50'],
                        rank=row['rank'])
        return builder.get_collection()
Given a dictionary mapping unique keys to amino acid sequences,
dataset/ETHPy150Open hammerlab/mhctools/mhctools/iedb.py/IedbBasePredictor.predict