def read_ptsa_events(self): e_reader = PTSAEventReader(event_file=self.e_path, eliminate_events_with_no_eeg=True) e_reader.read() events = e_reader.get_output() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session', 'list', 'mstime')) events = events[ev_order] return events
def read_ptsa_events(self): e_reader = PTSAEventReader(event_file=self.e_path, eliminate_events_with_no_eeg=True) e_reader.read() events = e_reader.get_output() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session','list','mstime')) events = events[ev_order] return events
def test_ptsa_event_ordering(self): # --------------------OROG PTSA - one raw bin wrapper per event e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True, use_groupped_rawbinwrapper=False) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] if not isinstance(events, Events): events = Events(events) eegs = events.get_data(channels=['002', '003'], start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) eegs = eegs[:,:,:-1] words_ptsa = eegs['events']['item'] print 'words_ptsa=',words_ptsa words = self.base_eegs['events'].data['item'] print words assert_array_equal(np.array(words_ptsa),words) assert_array_equal(eegs, self.base_eegs)
def test_ptsa_event_ordering(self): # --------------------OROG PTSA - one raw bin wrapper per event e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True, use_groupped_rawbinwrapper=False) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] if not isinstance(events, Events): events = Events(events) eegs = events.get_data(channels=['002', '003'], start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) eegs = eegs[:, :, :-1] words_ptsa = eegs['events']['item'] print('words_ptsa=', words_ptsa) words = self.base_eegs['events'].data['item'] print(words) assert_array_equal(np.array(words_ptsa), words) assert_array_equal(eegs, self.base_eegs)
def test_eventness(self): events = self.read_ptsa_events() ptsa_reader = PTSAEventReader(filename=self.e_path) events = ptsa_reader.read() self.assertIsInstance(events, Events, "WARNING:Warning Fancy Indexing Causes Events to be recarray")
def setUp(self): self.event_range = range(0, 30, 1) self.e_path = '/Users/m/data/events/RAM_FR1/R1060M_events.mat' self.tal_path = '/Users/m/data/eeg/R1060M/tal/R1060M_talLocs_database_bipol.mat' if sys.platform.startswith('win'): self.e_path = 'D:/data/events/RAM_FR1/R1060M_events.mat' self.tal_path = 'D:/data/eeg/R1060M/tal/R1060M_talLocs_database_bipol.mat' # --------------- TAL STRUCTS READ tal_reader = TalReader(filename=self.tal_path) self.monopolar_channels = tal_reader.get_monopolar_channels() # ---------------- ORIG PTSA ------------------- e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session','list','mstime')) self.events = events[ev_order] # self.events = self.read_ptsa_events() # in case fancy indexing looses Eventness of events we need to create Events object explicitely if not isinstance(self.events, Events): self.events = Events(self.events) start_time = 0.0 end_time = 1.6 buffer_time = 1.0 self.eegs = self.events.get_data(channels=['002', '003'], start_time=start_time, end_time=end_time, buffer_time=buffer_time, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) # ---------------- NEW STYLE PTSA ------------------- base_e_reader = BaseEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) base_events = base_e_reader.read() base_events = base_events[base_events.type == 'WORD'] base_ev_order = np.argsort(base_events, order=('session','list','mstime')) base_events = base_events[base_ev_order] self.base_events = base_events[self.event_range] # self.base_events = self.read_base_events() eeg_reader = EEGReader(events=self.base_events, channels=np.array(['002', '003']), start_time=start_time, end_time=end_time, buffer_time=buffer_time) self.base_eegs = eeg_reader.read()
def setUp(self): self.event_range = range(0, 30, 1) self.e_path = '/Users/m/data/events/RAM_FR1/R1060M_events.mat' self.tal_path = '/Users/m/data/eeg/R1060M/tal/R1060M_talLocs_database_bipol.mat' # --------------- TAL STRUCTS READ tal_reader = TalReader(filename=self.tal_path) self.monopolar_channels = tal_reader.get_monopolar_channels() # ---------------- ORIG PTSA ------------------- e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session','list','mstime')) self.events = events[ev_order] # self.events = self.read_ptsa_events() # in case fancy indexing looses Eventness of events we need to create Events object explicitely if not isinstance(self.events, Events): self.events = Events(self.events) start_time = 0.0 end_time = 1.6 buffer_time = 1.0 self.eegs = self.events.get_data(channels=['002', '003'], start_time=start_time, end_time=end_time, buffer_time=buffer_time, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) # ---------------- NEW STYLE PTSA ------------------- base_e_reader = BaseEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) base_events = base_e_reader.read() base_events = base_events[base_events.type == 'WORD'] base_ev_order = np.argsort(base_events, order=('session','list','mstime')) base_events = base_events[base_ev_order] self.base_events = base_events[self.event_range] # self.base_events = self.read_base_events() eeg_reader = EEGReader(events=self.base_events, channels=np.array(['002', '003']), start_time=start_time, end_time=end_time, buffer_time=buffer_time) self.base_eegs = eeg_reader.read()
def test_full_session_read(self): # ---------------- ORIG PTSA ------------------- e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session', 'list', 'mstime')) self.events = events[ev_order] # self.events = self.read_ptsa_events() # in case fancy indexing looses Eventness of events we need to create Events object explicitely if not isinstance(self.events, Events): self.events = Events(self.events) eegs = self.events.get_data(channels=self.monopolar_channels, start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) # removing last entry to match dimensions - ptsa adds one extra element at the end of time axis eegs = eegs[:, :, :-1] eeg_reader = EEGReader(events=self.base_events, channels=self.monopolar_channels, start_time=0.0, end_time=1.6, buffer_time=1.0) base_eegs = eeg_reader.read() assert_array_equal(x=eegs, y=base_eegs) # checking if axes match assert_array_equal(np.array(eegs['channels']['name']), base_eegs['channels'].data) assert_array_almost_equal(np.array(eegs['time']), base_eegs['time'].data, decimal=3) assert_array_equal(np.array(eegs['events']['item']), base_eegs['events'].data['item']) print()
def test_event_read(self): ptsa_reader = PTSAEventReader(filename=self.e_path) events = ptsa_reader.read() base_event_reader = BaseEventReader(filename=self.e_path) base_events = base_event_reader.read() for base_event, event in zip(base_events, events): self.assertEqual(base_event['item'], event['item']) for base_event, event in zip(base_events, events): self.assertEqual(base_event.eegoffset, event.eegoffset)
def test_full_session_read(self): # ---------------- ORIG PTSA ------------------- e_reader = PTSAEventReader(filename=self.e_path, eliminate_events_with_no_eeg=True) events = e_reader.read() events = events[events.type == 'WORD'] events = events[self.event_range] ev_order = np.argsort(events, order=('session','list','mstime')) self.events = events[ev_order] # self.events = self.read_ptsa_events() # in case fancy indexing looses Eventness of events we need to create Events object explicitely if not isinstance(self.events, Events): self.events = Events(self.events) eegs = self.events.get_data(channels=self.monopolar_channels, start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) # removing last entry to match dimensions - ptsa adds one extra element at the end of time axis eegs = eegs[:,:,:-1] eeg_reader = EEGReader(events=self.base_events, channels=self.monopolar_channels, start_time=0.0, end_time=1.6, buffer_time=1.0) base_eegs = eeg_reader.read() assert_array_equal(x=eegs, y=base_eegs) # checking if axes match assert_array_equal(np.array(eegs['channels']['name']), base_eegs['channels'].data) assert_array_almost_equal(np.array(eegs['time']), base_eegs['time'].data, decimal=3) assert_array_equal(np.array(eegs['events']['item']), base_eegs['events'].data['item']) print
def test_eeg_read(self): ptsa_reader = PTSAEventReader(filename=self.e_path) events = ptsa_reader.read() # in case fancy indexing looses Eventness of events we need to create Events object explicitely if not isinstance(events, Events): events = Events(events) eegs = events.get_data(channels=['002', '003'], start_time=self.start_time, end_time=self.end_time, buffer_time=self.buffer_time, eoffset='eegoffset', keep_buffer=True, eoffset_in_time=False, verbose=True) base_event_reader = BaseEventReader(filename=self.e_path) base_events = base_event_reader.read() eeg_reader = EEGReader(events=base_events, channels=np.array(['002', '003']), start_time=self.start_time, end_time=self.end_time, buffer_time=self.buffer_time) base_eegs = eeg_reader.read() npt.assert_array_equal(eegs[:, :, :-1], base_eegs.data)
def run(self): # PTSA EVENT READER # e_path = join(self.pipeline.mount_point, 'data/events', self.pipeline.task,self.pipeline.subject+'_events.mat') e_path = '/Users/m/data/events/RAM_FR1/R1060M_events.mat' # e_path = '/Users/m/data/events/RAM_FR1/R1056M_events.mat' e_reader = PTSAEventReader(event_file=e_path, eliminate_events_with_no_eeg=True) e_reader.read() events = e_reader.get_output() events = events[events.type == 'WORD'] events = events[0:30] ev_order = np.argsort(events, order=('session','list','mstime')) events = events[ev_order] events = Events(events) # necessary workaround for new numpy print 'events=',events eegs= events.get_data(channels=['002','003'], start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=False, eoffset_in_time=False,verbose=True) print eegs # BASE READER base_e_reader = BaseEventReader(event_file=e_path, eliminate_events_with_no_eeg=True, use_ptsa_events_class=False) base_e_reader.read() base_events = base_e_reader.get_output() base_events = base_events[base_events.type == 'WORD'] base_ev_order = np.argsort(base_events, order=('session','list','mstime')) base_events = base_events[base_ev_order] base_events = base_events[0:30] print 'base_events=',base_events from ptsa.data.readers.TimeSeriesEEGReader import TimeSeriesEEGReader time_series_reader = TimeSeriesEEGReader(base_events) time_series_reader.start_time = 0.0 time_series_reader.end_time = 1.6 time_series_reader.buffer_time = 1.0 time_series_reader.keep_buffer = False time_series_reader.read(channels=['002','003']) base_eegs = time_series_reader.get_output() print
def run(self): # PTSA EVENT READER # e_path = join(self.pipeline.mount_point, 'data/events', self.pipeline.task,self.pipeline.subject+'_events.mat') e_path = '/Users/m/data/events/RAM_FR1/R1060M_events.mat' # e_path = '/Users/m/data/events/RAM_FR1/R1056M_events.mat' e_reader = PTSAEventReader(event_file=e_path, eliminate_events_with_no_eeg=True) e_reader.read() events = e_reader.get_output() events = events[events.type == 'WORD'] events = events[0:30] ev_order = np.argsort(events, order=('session', 'list', 'mstime')) events = events[ev_order] events = Events(events) # necessary workaround for new numpy print 'events=', events eegs = events.get_data(channels=['002', '003'], start_time=0.0, end_time=1.6, buffer_time=1.0, eoffset='eegoffset', keep_buffer=False, eoffset_in_time=False, verbose=True) print eegs # BASE READER base_e_reader = BaseEventReader(event_file=e_path, eliminate_events_with_no_eeg=True, use_ptsa_events_class=False) base_e_reader.read() base_events = base_e_reader.get_output() base_events = base_events[base_events.type == 'WORD'] base_ev_order = np.argsort(base_events, order=('session', 'list', 'mstime')) base_events = base_events[base_ev_order] base_events = base_events[0:30] print 'base_events=', base_events from ptsa.data.readers.TimeSeriesEEGReader import TimeSeriesEEGReader time_series_reader = TimeSeriesEEGReader(base_events) time_series_reader.start_time = 0.0 time_series_reader.end_time = 1.6 time_series_reader.buffer_time = 1.0 time_series_reader.keep_buffer = False time_series_reader.read(channels=['002', '003']) base_eegs = time_series_reader.get_output() print