Example #1
0
    def test_roundtrip(self):
        """Test writing and reading the ontology_terms and ontology_objects tables."""

        container = TimeSeries(
            name='test_ts',
            data=[1, 2, 3],
            unit='si_unit',
            timestamps=[0.1, 0.2, 0.3],
        )
        self.nwbfile.add_acquisition(container)

        table = DynamicTable(name='test_table',
                             description='test table description')
        table.add_column(name='test_col',
                         description='test column description')
        table.add_row(test_col='Mouse')

        self.nwbfile.add_acquisition(table)

        self.nwbfile.ontology_terms.add_row(
            id=np.uint64(1),
            key='meter',
            ontology='si_ontology',
            uri='si_ontology:m',
        )
        self.nwbfile.ontology_objects.add_row(
            id=np.uint64(5),
            object_id=container.object_id,
            field='unit',
            item=np.uint64(1),
        )
        self.nwbfile.ontology_terms.add_row(
            id=np.uint64(2),
            key='Mouse',
            ontology='species_ontology',
            uri='species_ontology:Mus musculus',
        )
        self.nwbfile.ontology_objects.add_row(
            id=np.uint64(6),
            object_id=table.object_id,
            field='test_col',
            item=np.uint64(2),
        )

        with NWBHDF5IO(self.path, mode='w') as io:
            io.write(self.nwbfile)

        with NWBHDF5IO(self.path, mode='r', load_namespaces=True) as io:
            read_nwbfile = io.read()
            self.assertContainerEqual(self.nwbfile.ontology_objects,
                                      read_nwbfile.ontology_objects)
            self.assertContainerEqual(self.nwbfile.ontology_terms,
                                      read_nwbfile.ontology_terms)
Example #2
0
    def test_basic(self):
        """Test adding rows to the ontology_terms and ontology_objects tables."""
        nwbfile = GenotypeNWBFile(session_description='session_description',
                                  identifier='identifier',
                                  session_start_time=datetime.datetime.now(
                                      datetime.timezone.utc))

        container = TimeSeries(
            name='test_ts',
            data=[1, 2, 3],
            unit='si_unit',
            timestamps=[0.1, 0.2, 0.3],
        )
        nwbfile.add_acquisition(container)

        table = DynamicTable(name='test_table',
                             description='test table description')
        table.add_column(name='test_col',
                         description='test column description')
        table.add_row(test_col='Mouse')

        nwbfile.add_acquisition(table)

        nwbfile.ontology_terms.add_row(
            id=np.uint64(1),
            key='meter',
            ontology='si_ontology',
            uri='si_ontology:m',
        )
        nwbfile.ontology_objects.add_row(
            id=np.uint64(5),
            object_id=container.object_id,
            field='unit',
            item=np.uint64(1),
        )
        nwbfile.ontology_terms.add_row(
            id=np.uint64(2),
            key='Mouse',
            ontology='species_ontology',
            uri='species_ontology:Mus musculus',
        )
        nwbfile.ontology_objects.add_row(
            id=np.uint64(6),
            object_id=table.object_id,
            field='test_col',
            item=np.uint64(2),
        )

        self.assertEqual(len(nwbfile.ontology_objects), 2)
        self.assertEqual(len(nwbfile.ontology_terms), 2)
        self.assertTupleEqual(
            nwbfile.ontology_objects[0],
            (np.uint64(5), container.object_id, 'unit', np.uint64(1)))
        self.assertTupleEqual(
            nwbfile.ontology_objects[1],
            (np.uint64(6), table.object_id, 'test_col', np.uint64(2)))
        self.assertTupleEqual(
            nwbfile.ontology_terms[0],
            (np.uint64(1), 'meter', 'si_ontology', 'si_ontology:m'))
        self.assertTupleEqual(nwbfile.ontology_terms[1],
                              (np.uint64(2), 'Mouse', 'species_ontology',
                               'species_ontology:Mus musculus'))