code: def write_pdb(self, mol, filename, name=None, num=None):
          
  
          # ugly hack to get around the openbabel issues with inconsistent
          # residue labelling.
          scratch = tempfile.gettempdir()
          with ScratchDir(scratch, copy_to_current_on_exit=False) as _:
              mol.to(fmt="pdb", filename="tmp.pdb")
              bma = BabelMolAdaptor.from_file("tmp.pdb", "pdb")
  
          num = num or 1
          name = name or "ml{}".format(num)
  
          # bma = BabelMolAdaptor(mol)
          pbm = pb.Molecule(bma._obmol)
          for i, x in enumerate(pbm.residues):
              x.OBResidue.SetName(name)
              x.OBResidue.SetNum(num)
  
          pbm.write(format="pdb", filename=filename, overwrite=True)
docs: dump the molecule into pdb file with custom residue name and number.