def run(self):
        subject = self.pipeline.subject
        experiment = self.pipeline.experiment

        try:
            events = Events(get_events(subject=subject, task='RAM_PS', path_prefix=self.pipeline.mount_point))
        except IOError:
            raise Exception('No parameter search for subject %s' % subject)

        events = events[events.experiment == experiment]

        if events.size == 0:
            raise Exception('No %s events for subject %s' % (experiment,subject))

        events = correct_eegfile_field(events)
        events = self.attach_raw_bin_wrappers(events)

        sessions = np.unique(events.session)
        print experiment, 'sessions:', sessions

        events = pd.DataFrame.from_records(events)

        events = compute_isi(events)

        is_stim_event_type_vec = np.vectorize(is_stim_event_type)
        events = events[is_stim_event_type_vec(events.type)]

        print len(events), 'stim', experiment, 'events'

        events = Events(events.to_records(index=False))

        joblib.dump(events, self.get_path_to_resource_in_workspace(subject+'-'+experiment+'-ps_events.pkl'))
        self.pass_object(experiment+'_events', events)