docs: def prep_itasser_modeling(self, itasser_installation, itlib_folder, runtype, create_in_dir=None,
                                execute_from_dir=None, print_exec=False, **kwargs):
          """Prepare to run I-TASSER homology modeling for the representative sequence.
  
          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
              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.structure_dir:
                  raise ValueError('Output directory must be specified')
              self.homology_models_dir = op.join(self.structure_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
  
          repseq = self.representative_sequence
  
          itasser_kwargs = {'light': True,
                            'java_home': None,
                            'binding_site_pred': False,
                            'ec_pred': False,
                            'go_pred': False,
                            'job_scheduler_header': None,
                            'additional_options': None}
  
          if kwargs:
              itasser_kwargs.update(kwargs)
  
          ITASSERPrep(ident=self.id, seq_str=repseq.seq_str, root_dir=self.homology_models_dir,
                      itasser_path=itasser_installation, itlib_path=itlib_folder,
                      runtype=runtype, print_exec=print_exec, execute_dir=execute_from_dir,
                      java_home=itasser_kwargs['java_home'],
                      light=itasser_kwargs['light'],
                      binding_site_pred=itasser_kwargs['binding_site_pred'],
                      ec_pred=itasser_kwargs['ec_pred'],
                      go_pred=itasser_kwargs['go_pred'],
                      job_scheduler_header=itasser_kwargs['job_scheduler_header'],
                      additional_options=itasser_kwargs['additional_options'])
  
          log.debug('Prepared I-TASSER modeling folder {}'.format(self.homology_models_dir))