def test_roi_instantiation(ophys_plane_data_fixture): schema_dict = ophys_plane_data_fixture ct = 0 for meta_pair in schema_dict['coupled_planes']: pair = meta_pair['planes'] for plane in pair: for roi_args in plane['rois']: _ = OphysROI.from_schema_dict(roi_args) ct += 1 assert ct == 8
def from_schema_dict(cls, schema_dict): """ Create an OphysPlane from a dict taken from the module's argschema Parameters ---------- schema_dict -- a dict codifying the plane, as read from argschema, i.e. { # start of ophys_experiment "ophys_experiment_id": ,# an int "motion_corrected_stack": , # path to h5 movie file "motion_border": { # border widths "x0": , # a float "x1": , # a float "y0": , # a float "y1": , # a float }, "rois": [ # list of dicts definining the ROIs for this experiment { # start of individual ROI "id": , # an int "x": , # an int "y": , # an int "width": , # an int "height": , # an int "valid_roi": , # boolean "mask_matrix": [[]] # 2-D array of booleans }, # end of individual ROI, { "id": , "x": , "y": , "width": , "height": , "valid_roi": , "mask_matrix": [[]] }, ... ] } """ roi_list = [] for roi in schema_dict['rois']: roi_list.append(OphysROI.from_schema_dict(roi)) max_path = None if 'maximum_projection_image_file' in schema_dict: max_path = schema_dict['maximum_projection_image_file'] return cls(experiment_id=schema_dict['ophys_experiment_id'], movie_path=schema_dict['motion_corrected_stack'], motion_border=schema_dict['motion_border'], roi_list=roi_list, max_projection_path=max_path)