Construct a `GKKPWork` from a `PhononWfkqWork` object.
        The WFQ are the ones used for PhononWfkqWork so in principle have only valence bands

def from_phononwfkq_work(cls, phononwfkq_work, nscf_vars={}, remove_wfkq=True, with_ddk=True, manager=None):
        """
        Construct a `GKKPWork` from a `PhononWfkqWork` object.
        The WFQ are the ones used for PhononWfkqWork so in principle have only valence bands
        """
        # Get list of qpoints from the the phonon tasks in this work
        qpoints = []
        qpoints_deps = []
        for task in phononwfkq_work:
            if isinstance(task,PhononTask):
                # Store qpoints
                qpt = task.input.get("qpt", [0,0,0])
                qpoints.append(qpt)
                # Store dependencies
                qpoints_deps.append(task.deps)

        # Create file nodes
        ddb_path  = phononwfkq_work.outdir.has_abiext("DDB")
        dvdb_path = phononwfkq_work.outdir.has_abiext("DVDB")
        ddb_file = FileNode(ddb_path)
        dvdb_file = FileNode(dvdb_path)

        # Get scf_task from first q-point
        for dep in qpoints_deps[0]:
            if isinstance(dep.node,ScfTask) and dep.exts[0] == 'WFK':
                scf_task = dep.node

        # Create new work
        new = cls(manager=manager)
        new.remove_wfkq = remove_wfkq
        new.wfkq_tasks = []
        new.wfk_task = []

        # Add one eph task per qpoint
        for qpt,qpoint_deps in zip(qpoints,qpoints_deps):
            # Create eph task
            eph_input = scf_task.input.new_with_vars(optdriver=7, prtphdos=0, eph_task=-2,
                                                     ddb_ngqpt=[1,1,1], nqpt=1, qpt=qpt)
            deps = {ddb_file: "DDB", dvdb_file: "DVDB" }
            for dep in qpoint_deps:
                deps[dep.node] = dep.exts[0]
            # If no WFQ in deps link the WFK with WFQ extension
            if 'WFQ' not in deps.values():
                inv_deps = dict((v, k) for k, v in deps.items())
                wfk_task = inv_deps['WFK']
                wfk_path = wfk_task.outdir.has_abiext("WFK")
                # Check if netcdf
                filename, extension = os.path.splitext(wfk_path)
                infile = 'out_WFQ' + extension
                wfq_path = os.path.join(os.path.dirname(wfk_path), infile)
                if not os.path.isfile(wfq_path): os.symlink(wfk_path, wfq_path)
                deps[FileNode(wfq_path)] = 'WFQ'
            new.register_eph_task(eph_input, deps=deps)

        return new