Пример #1
0
    def create(cls, fl_shank: FlShank) -> Shank:
        validate_parameters_not_none(__name__, fl_shank.shank_id,
                                     fl_shank.shanks_electrodes)

        shank = Shank(name=str(fl_shank.shank_id))
        for shanks_electrode in fl_shank.shanks_electrodes:
            shank.add_shanks_electrode(shanks_electrode)
        return shank
Пример #2
0
 def create_data_acq_device(
         cls, fl_data_acq_device: FlDataAcqDevice) -> DataAcqDevice:
     validate_parameters_not_none(__name__, fl_data_acq_device.name,
                                  fl_data_acq_device.system,
                                  fl_data_acq_device.amplifier,
                                  fl_data_acq_device.adc_circuit)
     return DataAcqDevice(name=fl_data_acq_device.name,
                          system=fl_data_acq_device.system,
                          amplifier=fl_data_acq_device.amplifier,
                          adc_circuit=fl_data_acq_device.adc_circuit)
Пример #3
0
 def create_camera_device(cls,
                          fl_camera_device: FlCameraDevice) -> CameraDevice:
     validate_parameters_not_none(__name__, fl_camera_device.name,
                                  fl_camera_device.meters_per_pixel)
     return CameraDevice(name=fl_camera_device.name,
                         meters_per_pixel=fl_camera_device.meters_per_pixel,
                         manufacturer=fl_camera_device.manufacturer,
                         model=fl_camera_device.model,
                         lens=fl_camera_device.lens,
                         camera_name=fl_camera_device.camera_name)
    def create(cls, fl_shanks_electrode: FlShanksElectrode) -> ShanksElectrode:
        validate_parameters_not_none(__name__, fl_shanks_electrode.shanks_electrode_id,
                                     fl_shanks_electrode.rel_x, fl_shanks_electrode.rel_y, fl_shanks_electrode.rel_z)

        return ShanksElectrode(
            name=str(fl_shanks_electrode.shanks_electrode_id),
            rel_x=float(fl_shanks_electrode.rel_x),
            rel_y=float(fl_shanks_electrode.rel_y),
            rel_z=float(fl_shanks_electrode.rel_z),
        )
Пример #5
0
 def create(position: Position, series_id: int, fl_position: FlPosition):
     validate_parameters_not_none(__name__, fl_position.column_labels, fl_position.position_data,
                                  fl_position.conversion)
     position.create_spatial_series(
         name='series_' + str(series_id),
         description=fl_position.column_labels,
         data=fl_position.position_data,
         conversion=fl_position.conversion,
         reference_frame='Upper left corner of video frame',
         timestamps=fl_position.timestamps,
     )
Пример #6
0
    def create(cls, nwb_content: NWBFile, fl_electrode: FlElectrode):
        validate_parameters_not_none(__name__, fl_electrode.electrode_group,
                                     fl_electrode.electrode_id)

        nwb_content.add_electrode(x=0.0,
                                  y=0.0,
                                  z=0.0,
                                  imp=0.0,
                                  location='None',
                                  filtering='None',
                                  group=fl_electrode.electrode_group,
                                  id=fl_electrode.electrode_id)
Пример #7
0
    def create_electrode_group(cls, fl_electrode_group: FlElectrodeGroup):
        validate_parameters_not_none(__name__, fl_electrode_group.name,
                                     fl_electrode_group.description,
                                     fl_electrode_group.location,
                                     fl_electrode_group.device)

        return ElectrodeGroup(
            name=fl_electrode_group.name,
            description=fl_electrode_group.description,
            location=fl_electrode_group.location,
            device=fl_electrode_group.device,
        )
Пример #8
0
 def inject_extensions(self, nwb_content: NWBFile, fl_electrode_extension: FlElectrodeExtension):
     validate_parameters_not_none(
         __name__,
         fl_electrode_extension.rel_x,
         fl_electrode_extension.rel_y,
         fl_electrode_extension.rel_z,
         fl_electrode_extension.hw_chan,
         fl_electrode_extension.ntrode_id,
         fl_electrode_extension.channel_id,
         fl_electrode_extension.bad_channels,
         fl_electrode_extension.probe_shank,
         fl_electrode_extension.probe_electrode,
         fl_electrode_extension.ref_elect_id
     )
     self.__join_extensions_to_electrodes(nwb_content, fl_electrode_extension)
Пример #9
0
    def __build_single_camera_device(camera_metadata):
        validate_parameters_not_none(
            __name__, camera_metadata.get('id', None),
            camera_metadata.get('meters_per_pixel', None),
            camera_metadata.get('manufacturer', None),
            camera_metadata.get('model', None),
            camera_metadata.get('lens', None),
            camera_metadata.get('camera_name', None))

        return FlCameraDeviceBuilder.build(
            name='camera_device ' + str(camera_metadata['id']),
            meters_per_pixel=float(camera_metadata['meters_per_pixel']),
            manufacturer=str(camera_metadata['manufacturer']),
            model=str(camera_metadata['model']),
            lens=str(camera_metadata['lens']),
            camera_name=str(camera_metadata['camera_name']))
Пример #10
0
    def create_probe(cls, fl_probe: FlProbe) -> Probe:
        validate_parameters_not_none(__name__, fl_probe.probe_id,
                                     fl_probe.name, fl_probe.probe_type,
                                     fl_probe.units,
                                     fl_probe.probe_description,
                                     fl_probe.contact_side_numbering,
                                     fl_probe.contact_size, fl_probe.shanks)
        probe = Probe(id=fl_probe.probe_id,
                      name=fl_probe.name,
                      probe_type=fl_probe.probe_type,
                      units=fl_probe.units,
                      probe_description=fl_probe.probe_description,
                      contact_side_numbering=fl_probe.contact_side_numbering,
                      contact_size=fl_probe.contact_size)
        for shank in fl_probe.shanks:
            probe.add_shank(shank)

        return probe
Пример #11
0
    def get_fl_tasks(self):
        validate_parameters_not_none(__name__, self.metadata['tasks'])

        task_list = []
        for task in self.metadata["tasks"]:  # for each task
            # Set task_environment to "none" if not in metadata
            if "task_environment" not in task.keys():
                task_environment = "none"
            else:
                task_environment = task["task_environment"]
            # Append task to list
            task_list.append(
                self.__get_single_fl_task(
                    task_name=task['task_name'],
                    task_description=task['task_description'],
                    camera_id=[
                        int(camera_id) for camera_id in task['camera_id']
                    ],
                    task_epochs=[int(epoch) for epoch in task['task_epochs']],
                    task_environment=task_environment))
        return task_list
Пример #12
0
 def create_header_device(cls,
                          fl_header_device: FlHeaderDevice) -> HeaderDevice:
     validate_parameters_not_none(__name__, fl_header_device.name,
                                  fl_header_device.global_configuration)
     return HeaderDevice(
         name=fl_header_device.name,
         headstage_serial=fl_header_device.
         global_configuration['headstage_serial'],
         headstage_smart_ref_on=fl_header_device.
         global_configuration['headstage_smart_ref_on'],
         realtime_mode=fl_header_device.
         global_configuration['realtime_mode'],
         headstage_auto_settle_on=fl_header_device.
         global_configuration['headstage_auto_settle_on'],
         timestamp_at_creation=fl_header_device.
         global_configuration['timestamp_at_creation'],
         controller_firmware_version=fl_header_device.
         global_configuration['controller_firmware_version'],
         controller_serial=fl_header_device.
         global_configuration['controller_serial'],
         save_displayed_chan_only=fl_header_device.
         global_configuration['save_displayed_chan_only'],
         headstage_firmware_version=fl_header_device.
         global_configuration['headstage_firmware_version'],
         qt_version=fl_header_device.global_configuration['qt_version'],
         compile_date=fl_header_device.global_configuration['compile_date'],
         compile_time=fl_header_device.global_configuration['compile_time'],
         file_prefix=fl_header_device.global_configuration['file_prefix'],
         headstage_gyro_sensor_on=fl_header_device.
         global_configuration['headstage_gyro_sensor_on'],
         headstage_mag_sensor_on=fl_header_device.
         global_configuration['headstage_mag_sensor_on'],
         trodes_version=fl_header_device.
         global_configuration['trodes_version'],
         headstage_accel_sensor_on=fl_header_device.
         global_configuration['headstage_accel_sensor_on'],
         commit_head=fl_header_device.global_configuration['commit_head'],
         system_time_at_creation=fl_header_device.
         global_configuration['system_time_at_creation'],
         file_path=fl_header_device.global_configuration['file_path'])
Пример #13
0
 def create_nwb_electrode_group(
         cls, fl_nwb_electrode_group: FlNwbElectrodeGroup):
     validate_parameters_not_none(__name__, fl_nwb_electrode_group.name,
                                  fl_nwb_electrode_group.description,
                                  fl_nwb_electrode_group.location,
                                  fl_nwb_electrode_group.device,
                                  fl_nwb_electrode_group.targeted_location,
                                  fl_nwb_electrode_group.targeted_x,
                                  fl_nwb_electrode_group.targeted_y,
                                  fl_nwb_electrode_group.targeted_z,
                                  fl_nwb_electrode_group.units)
     return NwbElectrodeGroup(
         name=fl_nwb_electrode_group.name,
         description=fl_nwb_electrode_group.description,
         location=fl_nwb_electrode_group.location,
         device=fl_nwb_electrode_group.device,
         targeted_location=fl_nwb_electrode_group.targeted_location,
         targeted_x=fl_nwb_electrode_group.targeted_x,
         targeted_y=fl_nwb_electrode_group.targeted_y,
         targeted_z=fl_nwb_electrode_group.targeted_z,
         units=fl_nwb_electrode_group.units,
     )
Пример #14
0
 def create_device(cls, fl_device: FlDevice) -> Device:
     validate_parameters_not_none(__name__, fl_device.name)
     return Device(name=str(fl_device.name))
Пример #15
0
 def __validate_parameters(electrode_groups: list):
     [
         validate_parameters_not_none(__name__, electrode_group.name)
         for electrode_group in electrode_groups
     ]