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))
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