def decipher_atom_keys(self, forcefield='<STR_LIT>', dict_key='<STR_LIT>'):
<EOL>if '<STR_LIT>' not in self.system.keys():<EOL><INDENT>dict_key = '<STR_LIT>'<EOL><DEDENT>temp = deepcopy(self.system[dict_key])<EOL>for element in range(len(temp)):<EOL><INDENT>temp[element] = "<STR_LIT>".format(<EOL>decipher_atom_key(<EOL>temp[element], forcefield=forcefield))<EOL><DEDENT>self.system['<STR_LIT>'] = temp<EOL>
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`