docs: def run_freesasa(infile, outfile, include_hetatms=True, outdir=None, force_rerun=False):
      """Run freesasa on a PDB file, output using the NACCESS RSA format.
      
      Args:
          infile (str): Path to PDB file (only PDB file format is accepted) 
          outfile (str): Path or filename of output file
          include_hetatms (bool): If heteroatoms should be included in the SASA calculations
          outdir (str): Path to output file if not specified in outfile
          force_rerun (bool): If freesasa should be rerun even if outfile exists
  
      Returns:
          str: Path to output SASA file
  
      """
      if not outdir:
          outdir = ''
  
      outfile = op.join(outdir, outfile)
  
      if ssbio.utils.force_rerun(flag=force_rerun, outfile=outfile):
          if op.exists(outfile):
              os.remove(outfile)
          if include_hetatms:
              shell_command = 'freesasa --format=rsa --hetatm {} -o {}'.format(infile, outfile)
          else:
              shell_command = 'freesasa --format=rsa {} -o {}'.format(infile, outfile)
          command = subprocess.Popen(shell_command,
                                     stdout=subprocess.PIPE,
                                     stderr=subprocess.PIPE,
                                     shell=True)
          out, err = command.communicate()
  
      return outfile