@classmethod
def from_phbands(cls, phbands, qpt_frac_coords, imode, etas, scale_matrix=
    None, max_supercell=None):
    """
        Create an instace of FrozenPhonon using the eigendisplacements from a |PhononBands|

        Args:
            phbands: a |PhononBands| instance.
            qpt_frac_coords: q vector in reduced coordinate in reciprocal space or index of the qpoint.
            imode: index of the mode.
            etas: list of amplitudes of the displacement to be applied to the system. Will correspond to the
                largest displacement of one atom in Angstrom.
            scale_matrix: the scaling matrix of the supercell. If None a scaling matrix suitable for
                the qpoint will be determined.
            max_supercell: mandatory if scale_matrix is None, ignored otherwise. Defines the largest
                supercell in the search for a scaling matrix suitable for the q point.

        Returns:
            A FrozenPhonon.
        """
    qind = phbands.qindex(qpt_frac_coords)
    original_displ_cart = phbands.phdispl_cart[qind, imode].reshape((-1, 3))
    normalized_fp = phbands.get_frozen_phonons(qind, imode, 1, scale_matrix,
        max_supercell)
    structures = []
    for n in etas:
        structures.append(phbands.get_frozen_phonons(qind, imode, n,
            normalized_fp.scale_matrix).structure)
    return cls(phbands.structure, original_displ_cart, structures,
        normalized_fp.displ, etas, phbands.qpoints[qind].frac_coords,
        normalized_fp.scale_matrix)
