docs: def load_pdb(self, pdb_id, mapped_chains=None, pdb_file=None, file_type=None, is_experimental=True,
                   set_as_representative=False, representative_chain=None, force_rerun=False):
          """Load a structure ID and optional structure file into the structures attribute.
  
          Args:
              pdb_id (str): PDB ID
              mapped_chains (str, list): Chain ID or list of IDs which you are interested in
              pdb_file (str): Path to PDB file
              file_type (str): Type of PDB file
              is_experimental (bool): If this structure file is experimental
              set_as_representative (bool): If this structure should be set as the representative structure
              representative_chain (str): If ``set_as_representative`` is ``True``, provide the representative chain ID
              force_rerun (bool): If the PDB should be reloaded if it is already in the list of structures
  
          Returns:
              PDBProp: The object that is now contained in the structures attribute
  
          """
  
          if self.structures.has_id(pdb_id):
              # Remove the structure if set to force rerun
              if force_rerun:
                  existing = self.structures.get_by_id(pdb_id)
                  self.structures.remove(existing)
              # Otherwise just retrieve it
              else:
                  log.debug('{}: PDB ID already present in list of structures'.format(pdb_id))
                  pdb = self.structures.get_by_id(pdb_id)
                  if pdb_file:
                      pdb.load_structure_path(pdb_file, file_type)
                  if mapped_chains:
                      pdb.add_mapped_chain_ids(mapped_chains)
  
          # Create a new StructProp entry
          if not self.structures.has_id(pdb_id):
              if is_experimental:
                  pdb = PDBProp(ident=pdb_id, mapped_chains=mapped_chains, structure_path=pdb_file, file_type=file_type)
              else:
                  pdb = StructProp(ident=pdb_id, mapped_chains=mapped_chains, structure_path=pdb_file, file_type=file_type)
              self.structures.append(pdb)
  
          if set_as_representative:
              # Parse structure so chains are stored before setting representative
              pdb.parse_structure()
              self._representative_structure_setter(structprop=pdb, keep_chain=representative_chain, force_rerun=force_rerun)
  
          return self.structures.get_by_id(pdb_id)