docs: def fit_class1_pan_allele_models(
              self,
              n_models,
              architecture_hyperparameters,
              alleles,
              peptides,
              affinities,
              inequalities,
              models_dir_for_save=None,
              verbose=1,
              progress_preamble="",
              progress_print_interval=5.0):
          """
          Fit one or more pan-allele predictors using a single neural network
          architecture.
          
          The new predictors are saved in the Class1AffinityPredictor instance
          and will be used on subsequent calls to `predict`.
          
          Parameters
          ----------
          n_models : int
              Number of neural networks to fit
              
          architecture_hyperparameters : dict
          
          alleles : list of string
              Allele names (not sequences) corresponding to each peptide
          
          peptides : `EncodableSequences` or list of string
          
          affinities : list of float
              nM affinities
  
          inequalities : list of string, each element one of ">", "<", or "="
              See Class1NeuralNetwork.fit for details.
          
          models_dir_for_save : string, optional
              If specified, the Class1AffinityPredictor is (incrementally) written
              to the given models dir after each neural network is fit.
          
          verbose : int
              Keras verbosity
  
          progress_preamble : string
              Optional string of information to include in each progress update
  
          progress_print_interval : float
              How often (in seconds) to print progress. Set to None to disable.
  
          Returns
          -------
          list of `Class1NeuralNetwork`
          """
  
          alleles = pandas.Series(alleles).map(mhcnames.normalize_allele_name)
          allele_encoding = AlleleEncoding(
              alleles,
              allele_to_fixed_length_sequence=self.allele_to_fixed_length_sequence)
  
          encodable_peptides = EncodableSequences.create(peptides)
          models = []
          for i in range(n_models):
              logging.info("Training model %d / %d" % (i + 1, n_models))
              model = Class1NeuralNetwork(**architecture_hyperparameters)
              model.fit(
                  encodable_peptides,
                  affinities,
                  inequalities=inequalities,
                  allele_encoding=allele_encoding,
                  verbose=verbose,
                  progress_preamble=progress_preamble,
                  progress_print_interval=progress_print_interval)
  
              model_name = self.model_name("pan-class1", i)
              self.class1_pan_allele_models.append(model)
              row = pandas.Series(collections.OrderedDict([
                  ("model_name", model_name),
                  ("allele", "pan-class1"),
                  ("config_json", json.dumps(model.get_config())),
                  ("model", model),
              ])).to_frame().T
              self._manifest_df = pandas.concat(
                  [self.manifest_df, row], ignore_index=True)
              if models_dir_for_save:
                  self.save(
                      models_dir_for_save, model_names_to_write=[model_name])
              models.append(model)
  
          self.clear_cache()
          return models