Пример #1
0
    def __init__(
            self, 
            sweep_info=None, 
            nwb_file=None, 
            h5_file=None,
            ontology=None, 
            api_sweeps=True, 
            validate_stim=True,
            deprecation_warning=True
    ):
        super(AibsDataSet, self).__init__(
            ontology, validate_stim, deprecation_warning=deprecation_warning
        )

        self._nwb_data = nwb_reader.create_nwb_reader(nwb_file)

        if sweep_info:
            sweep_info = sp.modify_sweep_info_keys(sweep_info) if api_sweeps else sweep_info

            # Remove sweeps not found in nwb_data sweep map
            sweep_numbers_in_map = self._nwb_data.sweep_map_table["sweep_number"].tolist()
            sweep_info = [si for si in sweep_info if si["sweep_number"] in sweep_numbers_in_map]
        else:
            self.notebook = lab_notebook_reader.create_lab_notebook_reader(nwb_file, h5_file)
            sweep_info = self.extract_sweep_stim_info()

        self.build_sweep_table(sweep_info, deprecation_warning=False)
Пример #2
0
def test_modify_sweep_info_keys():
    d = [{"sweep_number": 123,
          "stimulus_units": "abcd",
          "stimulus_absolute_amplitude": 456,
          "stimulus_description": "efgh[4711]",
          "stimulus_name": "hijkl",
          }]

    result = sp.modify_sweep_info_keys(d)

    expected = [{EphysDataSet.SWEEP_NUMBER: 123,
                 EphysDataSet.STIMULUS_UNITS: "abcd",
                 EphysDataSet.STIMULUS_AMPLITUDE: 456,
                 EphysDataSet.STIMULUS_CODE: "efgh",
                 EphysDataSet.STIMULUS_NAME: "hijkl",
                 }]

    assert len(expected) == len(result)
    compare_dicts(expected[0], result[0])