def _check_and_assemble(inputs):
    """
    Prepare a grompp job, with the given inputs.
    """
    if not 0 in inputs.keys():
        raise RuntimeError('No executable specified.')
    if not '-f' in inputs.keys():
        raise RuntimeError('No input (mdp) file specified.')
    if not '-c' in inputs.keys():
        raise RuntimeError('No structure (.gro) file specified.')
    if not '-p' in inputs.keys():
        raise RuntimeError('No topology (.top) file specified.')
    result = inputs.copy()
    execstr = inputs[0] + ' '
    for key in inputs:
        if key != 0:
            execstr = execstr + key + ' '
            if inputs[key] is not None:
                execstr = execstr + inputs[key] + ' '
    return execstr
