Ejemplo n.º 1
0
def test_talreader_on_database():
    old_reader = TalReader(filename=osp.join(
        utils.get_rhino_root(),
        'data/eeg/R1234D/tal/R1234D_talLocs_database_bipol.mat'))
    jr = JsonIndexReader(osp.join(utils.get_rhino_root(), 'protocols/r1.json'))
    new_reader = TalReader(
        filename=jr.get_value('pairs', subject='R1234D', experiment='FR1'))
    assert (new_reader.get_bipolar_pairs() == old_reader.get_bipolar_pairs()
            ).all()
    assert (new_reader.get_monopolar_channels() ==
            old_reader.get_monopolar_channels()).all()
Ejemplo n.º 2
0
    def setUp(self):
        self.start_time = -0.5
        self.end_time = 1.6
        self.buffer_time = 0.5

        self.event_range = range(0, 30, 1)

        # here = osp.abspath(osp.dirname(__file__))
        here = get_rhino_root()
        self.e_path = osp.join(here, 'data', 'events', 'RAM_FR1', 'R1060M_events.mat')
        tal_path = osp.join(here, 'data', 'eeg', 'R1060M', 'tal', 'R1060M_talLocs_database_bipol.mat')

        tal_reader = TalReader(filename=tal_path)
        self.monopolar_channels = tal_reader.get_monopolar_channels()
        self.bipolar_pairs = tal_reader.get_bipolar_pairs()

        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'))
        self.base_events = base_events[base_ev_order]

        # retaining first session
        dataroot = self.base_events[0].eegfile
        self.base_events = self.base_events[self.base_events.eegfile == dataroot]
        self.base_events = self.base_events[self.event_range]

        eeg_reader = EEGReader(events=self.base_events, channels=self.monopolar_channels,
                               start_time=self.start_time, end_time=self.end_time, buffer_time=self.buffer_time)

        self.base_eegs = eeg_reader.read()

        session_reader = EEGReader(session_dataroot=dataroot, channels=self.monopolar_channels)
        self.session_eegs = session_reader.read()
Ejemplo n.º 3
0
    def setUp(self):
        root = get_rhino_root()
        self.e_path = osp.join(root, 'data', 'events', 'RAM_FR1',
                               'R1060M_events.mat')
        tal_path = osp.join(root, 'data', 'eeg', 'R1060M', 'tal',
                            'R1060M_talLocs_database_bipol.mat')

        base_e_reader = BaseEventReader(filename=self.e_path,
                                        eliminate_events_with_no_eeg=True)

        self.base_events = base_e_reader.read()

        tal_reader = TalReader(filename=tal_path)
        self.monopolar_channels = tal_reader.get_monopolar_channels()
        self.bipolar_pairs = tal_reader.get_bipolar_pairs()

        self.base_events = self.base_events[self.base_events.type == 'WORD']

        # retaining first session
        dataroot = self.base_events[0].eegfile
        self.base_events = self.base_events[self.base_events.eegfile == dataroot]

        eeg_reader = EEGReader(events=self.base_events, channels=self.monopolar_channels,
                               start_time=0.0, end_time=1.6, buffer_time=1.0)

        self.base_eegs = eeg_reader.read()
Ejemplo n.º 4
0
    def test_eeg_reader(self, subject, session):
        jr = JsonIndexReader(
            osp.join(get_rhino_root(), 'protocols', 'ltp.json'))
        events = BaseEventReader(filename=jr.get_value(
            'task_events', subject=subject, session=session)).read()

        # hack to make the scalp events work with Rhino mounted
        events['eegfile'] = get_rhino_root() + events[0]['eegfile']

        channels = np.array([0, 1])
        eeg = EEGReader(events=events[:10],
                        channels=channels,
                        start_time=0.0,
                        end_time=0.1).read()
        assert (eeg['channels'].values['index'] == channels).all()
        assert (eeg['channels'].values['label'] == np.array(
            ['A1', 'A2'], dtype=bytes)).all()
Ejemplo n.º 5
0
 def setup(cls):
     root = get_rhino_root()
     cls.bdf_file_template = osp.join(
         root, 'protocols', 'ltp', 'subjects', '{subject:s}', 'experiments',
         'ltpFR2', 'sessions', '{session:d}', 'ephys', 'current_processed',
         '{subject:s}_session_{session:d}.bdf')
     here = osp.realpath(osp.dirname(__file__))
     cls.fname = osp.join(here, 'data', 'eeg.edf')
Ejemplo n.º 6
0
 def test_with_events(self):
     dataroot_format = osp.join(get_rhino_root(), 'scratch', 'ptsa_test',
                                'R1308T', 'experiments', 'FR1', 'sessions',
                                '3', 'behavioral', 'current_processed',
                                'task_events.json')
     events = CMLEventReader(filename=dataroot_format).read()[:20]
     EEGReader(events=events,
               channels=np.array(['%.03d' % i for i in range(1, 10)]),
               start_time=0.0,
               end_time=0.5).read()
Ejemplo n.º 7
0
 def test_h5reader_constructor(self):
     dataroot = osp.join(get_rhino_root(), 'scratch', 'ptsa_test', 'R1308T',
                         'experiments', 'FR1', 'sessions', '3', 'ephys',
                         'current_processed', 'noreref',
                         'R1308T_FR1_3_13Jun17_1917.h5')
     reader = H5RawReader(dataroot=dataroot,
                          channels=np.array(
                              ['%.03d' % i for i in range(1, 10)]))
     reader.read()
     assert reader.channel_name == 'bipolar_pairs'
    def reader(self):
        from cmlreaders import CMLReader
        from ptsa.test.utils import get_rhino_root

        try:
            rootdir = get_rhino_root()
        except OSError:
            rootdir = None

        return CMLReader("R1111M", "FR1", 0, rootdir=rootdir)
Ejemplo n.º 9
0
 def test_h5reader_empty_channels(self):
     dataroot_format = osp.join(get_rhino_root(), 'scratch', 'ptsa_test',
                                'R1308T', 'experiments', 'FR1', 'sessions',
                                '3', 'behavioral', 'current_processed',
                                'task_events.json')
     events = CMLEventReader(filename=dataroot_format).read()[:20]
     eeg = EEGReader(events=events,
                     channels=np.array([]),
                     start_time=0.0,
                     end_time=0.5).read()
     assert len(eeg.bipolar_pairs) > 0
Ejemplo n.º 10
0
 def setUp(self):
     root = get_rhino_root()
     self.h5_dataroot = osp.join(root, 'data', 'eeg', 'R1275D',
                                 'behavioral', 'FR1', 'session_0',
                                 'host_pc', '20170531_170954',
                                 'eeg_timeseries.h5')
     self.raw_dataroot = osp.join(root, 'protocols', 'r1', 'subjects',
                                  'R1275D', 'experiments', 'FR1',
                                  'sessions', '0', 'ephys',
                                  'current_processed', 'noreref',
                                  'R1275D_FR1_0_31May17_2109')
     self.channels = np.array(['%.03d' % i for i in range(1, 10)])
     self.h5file = tables.open_file(self.h5_dataroot)
 def _test_eeg_with_tal_struct(self, subject, experiment, session, struct_type='mono'):
     from ptsa.data.readers import JsonIndexReader,TalReader,EEGReader,BaseEventReader
     import os
     tal_file = 'contacts' if struct_type=='mono' else 'pairs'
     jr = JsonIndexReader(os.path.join(get_rhino_root(),'protocols','r1.json'))
     events = BaseEventReader(filename=jr.get_value('task_events',subject=subject,experiment=experiment,session=session)).read()
     tal_struct = TalReader(filename=jr.get_value(tal_file,subject=subject),struct_type=struct_type).read()
     eeg_reader = EEGReader(events=events[:10],channels=tal_struct[:10],start_time=0.0,end_time=0.1)
     eeg = eeg_reader.read()
     print(eeg)
     channel_name = eeg_reader.channel_name
     for col in tal_struct.dtype.names:
         if col != 'atlases': # Because I don't want to deal with NaNs at the moment
             assert_array_equal(eeg[channel_name].data[col],tal_struct[:10][col])
Ejemplo n.º 12
0
    def setup_class(cls):
        root = get_rhino_root()
        cls.eeg_path_template = osp.join(
            root, 'data', 'eeg', '{subject:s}', 'behavioral', '{experiment:s}',
            'session_{session:d}', 'host_pc', '{timestamp:s}',
            'eeg_timeseries.h5'
        )

        cls.dataroot_template = osp.join(
            root, 'protocols', 'r1', 'subjects', '{subject:s}', 'experiments',
            '{experiment:s}', 'sessions', '{session:d}', 'ephys',
            'current_processed', 'noreref', '{filename:s}'
        )

        cls.task_events_template = osp.join(
            root, 'protocols', 'r1', 'subjects', '{subject:s}', 'experiments',
            '{experiment:s}', 'sessions', '{session:d}', 'behavioral',
            'current_processed', 'task_events.json'
        )

        # monopolar (old-format) HDF5 file
        cls.monopolar_file = cls.eeg_path_template.format(
            subject='R1275D',
            experiment='FR1',
            session=0,
            timestamp='20170531_170954'
        )

        # bipolar (new-format) HDF5 file
        cls.bipolar_file = cls.eeg_path_template.format(
            subject='R1354E',
            experiment='FR1',
            session=0,
            timestamp='20171026_160648'
        )

        cls.monopolar_dataroot = cls.dataroot_template.format(
            subject='R1275D',
            experiment='FR1',
            session=0,
            filename='R1275D_FR1_0_31May17_2109'
        )

        cls.channels = np.array(['%.03d' % i for i in range(1, 10)])
    def setUp(self):
        self.start_time = -0.5
        self.end_time = 1.6
        self.buffer_time = 0.5

        self.event_range = range(0, 30, 1)

        # here = osp.abspath(osp.dirname(__file__))
        here = get_rhino_root()
        self.e_path = osp.join(here, 'data', 'events', 'RAM_FR1',
                               'R1060M_events.mat')
        tal_path = osp.join(here, 'data', 'eeg', 'R1060M', 'tal',
                            'R1060M_talLocs_database_bipol.mat')

        tal_reader = TalReader(filename=tal_path)
        self.monopolar_channels = tal_reader.get_monopolar_channels()
        self.bipolar_pairs = tal_reader.get_bipolar_pairs()

        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'))
        self.base_events = base_events[base_ev_order]

        # retaining first session
        dataroot = self.base_events[0].eegfile
        self.base_events = self.base_events[self.base_events.eegfile ==
                                            dataroot]
        self.base_events = self.base_events[self.event_range]

        eeg_reader = EEGReader(events=self.base_events,
                               channels=self.monopolar_channels,
                               start_time=self.start_time,
                               end_time=self.end_time,
                               buffer_time=self.buffer_time)

        self.base_eegs = eeg_reader.read()

        session_reader = EEGReader(session_dataroot=dataroot,
                                   channels=self.monopolar_channels)
        self.session_eegs = session_reader.read()
Ejemplo n.º 14
0
 def setUp(self):
     self.event_range = range(0, 30, 1)
     root = get_rhino_root()
     self.e_path = osp.join(root, 'data', 'events', 'RAM_FR1',
                            'R1060M_events.mat')
Ejemplo n.º 15
0
 def setUp(self):
     self.event_range = range(0, 30, 1)
     root = get_rhino_root()
     self.e_path = osp.join(root, 'data', 'events', 'RAM_FR1', 'R1060M_events.mat')
Ejemplo n.º 16
0
 def test_as_dataframe(self):
     index = osp.join(get_rhino_root(), "protocols", "r1.json")
     reader = JsonIndexReader(index)
     df = reader.as_dataframe()
     assert isinstance(df, pd.DataFrame)