def transmuter(slab, atom_index, new_atoms, symmetric=False):
    """
    Transmutes atoms in `slab` with indexes given in `atom_index` into new atoms specified
    by an array of ASE atom objects (`new_atoms`).

    Parameters
    ----------
    slab : An atoms object from ASE.

    atom_index : List of indexes of atoms to be transmuted/counter-transmuted
        (see index_transmuted()).

    new_atoms : List of strings of atom symbols. New atoms that atoms in slab will be transmuted into.
        This list must be equal length to `atom_index.`

    symmetric (default: False): Boolean. Indicates if using a symmetric slab.

    Returns
    -------
    transmuted_slab : An atoms object from ASE. This is an updated form of slab with all transmutations.
    """

    transmuted_slab = slab.copy()

    if symmetric:

        pass

    else:

        for i,dex in enumerate(atom_index):

            transmuted_slab[dex].symbol = new_atoms[i]

    return transmuted_slab