docs: def run_scratch(self, path_to_scratch, num_cores=1, outname=None, outdir=None, force_rerun=False):
          """Run SCRATCH on the sequence_file that was loaded into the class.
  
          Args:
              path_to_scratch: Path to the SCRATCH executable, run_SCRATCH-1D_predictors.sh
              outname: Prefix to name the output files
              outdir: Directory to store the output files
              force_rerun: Flag to force rerunning of SCRATCH even if the output files exist
  
          Returns:
  
          """
          if not outname:
              outname = self.project_name
          if not outdir:
              outdir = ''
  
          outname = op.join(outdir, outname)
  
          self.out_sspro = '{}.ss'.format(outname)
          self.out_sspro8 = '{}.ss8'.format(outname)
          self.out_accpro = '{}.acc'.format(outname)
          self.out_accpro20 = '{}.acc20'.format(outname)
  
          # TODO: check for multiple output files in command_runner
          ssbio.utils.command_runner(
              shell_command='{} {} {} {}'.format(path_to_scratch, self.seq_file, outname, num_cores),
              force_rerun_flag=force_rerun, outfile_checker='{}.ss'.format(outname))