def reject_ica(inst, reference, n_components=0.99, method="fastica", corr_thresh=0.9, random_state=None, plot=False): if isinstance(reference, str): reference = read_ica(reference) ica = ICA(n_components=n_components, method=method) ica.fit(inst) labels = list(reference.labels_.keys()) components = list(reference.labels_.values()) for component, label in zip(components, labels): corrmap([reference, ica], template=(0, component[0]), plot=plot, label=label, threshold=corr_thresh) exclude = [item for subl in list(ica.labels_.values()) for item in subl] ica.apply(inst, exclude=exclude) return inst, ica