docs: def sphgen(self, force_rerun=False):
          """Create sphere representation (sph file) of receptor from the surface representation
  
          Args:
              force_rerun (bool): If method should be rerun even if output file exists
  
          """
          log.debug('{}: running sphere generation...'.format(self.id))
  
          if not self.dms_path:
              return ValueError('Please run dms_maker')
  
          sph = op.join(self.dock_dir, '{}_receptor.sph'.format(self.id))
          insph = op.join(self.dock_dir, 'INSPH')
  
          if ssbio.utils.force_rerun(flag=force_rerun, outfile=sph):
              with open(insph, "w") as f:
                  f.write("{}\n".format(self.dms_path))
                  f.write("R\n")
                  f.write("X\n")
                  f.write("0.0\n")
                  f.write("4.0\n")
                  f.write("1.4\n")
                  f.write("{}\n".format(sph))
  
              os.chdir(self.dock_dir)
              cmd = "sphgen_cpp"
              os.system(cmd)
              os.remove(insph)
  
          if ssbio.utils.is_non_zero_file(sph):
              self.sphgen_path = sph
              log.debug('{}: successful sphgen execution'.format(self.sphgen_path))
          else:
              log.critical('{}: sphgen_cpp failed to run on dms file'.format(self.dms_path))