docs: def get_msms_df(model, pdb_id, outfile=None, outdir=None, outext='_msms.df', force_rerun=False):
      """Run MSMS (using Biopython) on a Biopython Structure Model.
  
      Depths are in units Angstroms. 1A = 10^-10 m = 1nm. Returns a dictionary of::
  
          {
              chain_id:{
                          resnum1_id: (res_depth, ca_depth),
                          resnum2_id: (res_depth, ca_depth)
                       }
          }
  
      Args:
          model: Biopython Structure Model
  
      Returns:
          Pandas DataFrame: ResidueDepth property_dict, reformatted
  
      """
      # XTODO: need to deal with temporary surface/vertex files in tmp directory when running on a large scale --
      # XTODO: will run into inode limits! Also, some valuable information is in these MSMS output files that we should save.
  
      # Create the output file name
      outfile = ssbio.utils.outfile_maker(inname=pdb_id, outname=outfile, outdir=outdir, outext=outext)
  
      if ssbio.utils.force_rerun(flag=force_rerun, outfile=outfile):
          # Run MSMS with Biopython
          try:
              rd = PDB.ResidueDepth(model)
          except AssertionError:
              log.error('{}: unable to run MSMS'.format(pdb_id))
              return pd.DataFrame()
  
          # Reorganize the results into a csv file
          appender = []
          for k in rd.property_keys:
              x = rd.property_dict[k]
              chain = k[0]
              residue = k[1]
              het = residue[0]
              resnum = residue[1]
              icode = residue[2]
              resdepth = x[0]
              cadepth = x[1]
              appender.append((chain, resnum, icode, resdepth, cadepth))
  
          df = pd.DataFrame.from_records(appender, columns=['chain', 'resnum', 'icode', 'res_depth', 'ca_depth'])
          df.to_csv(outfile)
      else:
          log.debug('{}: already ran MSMS and force_rerun={}, loading results'.format(outfile, force_rerun))
          df = pd.read_csv(outfile, index_col=0)
  
      return df