docs: def prep_itasser_modeling(self, itasser_installation, itlib_folder, runtype, create_in_dir=None,
                              execute_from_dir=None, all_genes=False, print_exec=False, **kwargs):
          """Prepare to run I-TASSER homology modeling for genes without structures, or all genes.
  
          Args:
              itasser_installation (str): Path to I-TASSER folder, i.e. ``~/software/I-TASSER4.4``
              itlib_folder (str): Path to ITLIB folder, i.e. ``~/software/ITLIB``
              runtype: How you will be running I-TASSER - local, slurm, or torque
              create_in_dir (str): Local directory where folders will be created, if not provided default is the
                  GEM-PRO's ``data_dir``
              execute_from_dir (str): Optional path to execution directory - use this if you are copying the homology
                  models to another location such as a supercomputer for running
              all_genes (bool): If all genes should be prepped, or only those without any mapped structures
              print_exec (bool): If the execution statement should be printed to run modelling
  
          Todo:
              * Document kwargs - extra options for I-TASSER, SLURM or Torque execution
              * Allow modeling of any sequence in sequences attribute, select by ID or provide SeqProp?
  
          """
          if not create_in_dir:
              if not self.data_dir:
                  raise ValueError('Output directory must be specified')
              self.homology_models_dir = op.join(self.data_dir, 'homology_models')
          else:
              self.homology_models_dir = create_in_dir
  
          ssbio.utils.make_dir(self.homology_models_dir)
  
          if not execute_from_dir:
              execute_from_dir = self.homology_models_dir
  
          counter = 0
          for g in self.genes_with_a_representative_sequence:
              repstruct = g.protein.representative_structure
              if repstruct and not all_genes:
                  log.debug('{}: representative structure set, skipping homology modeling'.format(g.id))
                  continue
  
              g.protein.prep_itasser_modeling(itasser_installation=itasser_installation,
                                              itlib_folder=itlib_folder, runtype=runtype,
                                              create_in_dir=self.homology_models_dir,
                                              execute_from_dir=execute_from_dir,
                                              print_exec=print_exec, **kwargs)
              counter += 1
  
          log.info('Prepared I-TASSER modeling folders for {} genes in folder {}'.format(counter,
                                                                                         self.homology_models_dir))