def filter_prop_and_pickle(sample_dic, props):
    """

    Filter the SMILES strings to exclude those that don't have a known value
    of all `props`, or do not have a known path to a pickle file with conformer
    information.

    Args:
      sample_dic (dict): Sample of `summary_dic` that will be used in this dataset
      props (list[str]): list of property names that you want to predict

    Returns:
      sample_dic (dict): Updated `sample_dic` with the above filters applied.

    """

    smiles_list = [key for key, sub_dic in sample_dic.items()
                   if all([prop in sub_dic for prop in props])
                   and sub_dic.get("pickle_path") is not None]

    sample_dic = {key: sample_dic[key] for key in smiles_list}

    return sample_dic