code: def restore_site_properties(self, site_property="ff_map", filename=None):
          
  
          # only for pdb
          if not self.control_params["filetype"] == "pdb":
              raise ValueError()
  
          filename = filename or self.control_params["output"]
          bma = BabelMolAdaptor.from_file(filename, "pdb")
          pbm = pb.Molecule(bma._obmol)
  
          assert len(pbm.residues) == sum([x["number"]
                                           for x in self.param_list])
  
          packed_mol = self.convert_obatoms_to_molecule(
              pbm.residues[0].atoms, residue_name=pbm.residues[0].name,
              site_property=site_property)
  
          for resid in pbm.residues[1:]:
              mol = self.convert_obatoms_to_molecule(
                  resid.atoms, residue_name=resid.name,
                  site_property=site_property)
              for site in mol:
                  packed_mol.append(site.species, site.coords,
                                    properties=site.properties)
  
          return packed_mol
docs: Restore the site properties for the final packed molecule.
  
          Args:
              site_property (str):
              filename (str): path to the final packed molecule.
  
          Returns:
              Molecule