code: def decipher_atom_keys(self, forcefield='DLF', dict_key='atom_ids'):
          
          # In case there is no 'atom_ids' key we try 'elements'. This is for
          # XYZ and MOL files mostly. But, we keep the dict_key keyword for
          # someone who would want to decipher 'elements' even if 'atom_ids' key
          # is present in the system's dictionary.
          if 'atom_ids' not in self.system.keys():
              dict_key = 'elements'
          # I do it on temporary object so that it only finishes when successful
          temp = deepcopy(self.system[dict_key])
          for element in range(len(temp)):
              temp[element] = "{0}".format(
                  decipher_atom_key(
                      temp[element], forcefield=forcefield))
          self.system['elements'] = temp
docs: Decipher force field atom ids.
  
          This takes all values in :attr:`MolecularSystem.system['atom_ids']`
          that match force field type criteria and creates
          :attr:`MolecularSystem.system['elements']` with the corresponding
          periodic table of elements equivalents.
  
          If a forcefield is not supported by this method, the
          :func:`MolecularSystem.swap_atom_keys()` can be used instead.
  
          DLF stands for DL_F notation.
  
          See: C. W. Yong, Descriptions and Implementations of DL_F Notation: A
          Natural Chemical Expression System of Atom Types for Molecular
          Simulations, J. Chem. Inf. Model., 2016, 56, 1405–1409.
  
          Parameters
          ----------
          forcefield : :class:`str`
              The forcefield used to decipher atom ids. Allowed (not case
              sensitive): 'OPLS', 'OPLS2005', 'OPLSAA', 'OPLS3', 'DLF', 'DL_F'.
              (default='DLF')
  
          dict_key : :class:`str`
              The :attr:`MolecularSystem.system` dictionary key to the array
              containing the force field atom ids. (default='atom_ids')
  
          Returns
          -------
          None : :class:`NoneType`