def nscf_input_from_scf_input(scf,scf_inputs,suffix='-scf'):
  """ take an scf simulation object along with the inputs for it, create an nscf simulation to generate orbitals only at kpoints needed for wavefunction. 
  Args: 
    scf (nexus.Pwscf): scf simulation object.
    scf_inputs (nexus.obj): inputs for scf simulation (it would be ideal to extract this object from scf, but I do not know how yet).
    suffix (str,optional): suffix in the identifier and path of the scf simulation, these need to be edited to create a new run in nexus. Default is '-scf'.
  Returns:
    nexus.obj: inputs necessary for the nscf run.
  """
  # copy scf inputs and make nscf inputs have unique identifier and path
  nscf_inputs = scf_inputs.copy()
  nscf_inputs['input_type'] = 'nscf'
  nscf_inputs.identifier = scf_inputs.identifier.replace(suffix,'-nscf')
  nscf_inputs.path = scf_inputs.path.replace(suffix.strip('-'),'nscf')

  # let nexus figure out kgrid for super cell and twists
  nscf_inputs['nosym'] = True
  nscf_inputs.kgrid = None 

  # set dependency
  nscf_inputs.dependencies = (scf,'charge-density')
  return nscf_inputs