def make_seg_submission(seg_valume_dict): submission_folder = 'submission' if not os.path.exists(submission_folder): os.makedirs(submission_folder) for name, seg_v in seg_valume_dict.iteritems(): seg_v = seg_v.astype(np.uint64) neuron_ids = Volume(seg_v, resolution=(40.0, 4.0, 4.0), comment="Second submission in 2018") file = CremiFile(submission_folder + '/' + name + '.hdf', "w") file.write_neuron_ids(neuron_ids)
def prepare_submission(sample, path_segm, inner_path_segm, path_bbox_slice, ds_factor=None): """ :param path_segm: :param inner_path_segm: :param path_bbox_slice: path to the csv file :param ds_factor: for example (1, 2, 2) """ segm = segm_utils.readHDF5(path_segm, inner_path_segm) bbox_data = np.genfromtxt(path_bbox_slice, delimiter=';', dtype='int') assert bbox_data.shape[0] == segm.ndim and bbox_data.shape[1] == 2 # bbox_slice = tuple(slice(b_data[0], b_data[1]) for b_data in bbox_data) if ds_factor is not None: assert len(ds_factor) == segm.ndim segm = zoom(segm, ds_factor, order=0) padding = tuple( (slc[0], shp - slc[1]) for slc, shp in zip(bbox_data, shape_padded_aligned_datasets[sample])) padded_segm = np.pad(segm, pad_width=padding, mode="constant") # Apply Constantin crop and then backalign: cropped_segm = padded_segm[magic_bboxes[sample]] tmp_file = path_segm.replace(".h5", "_submission_temp.hdf") backalign_segmentation(sample, cropped_segm, tmp_file, key="temp_data", postprocess=False) # Create a CREMI-style file ready to submit: final_submission_path = path_segm.replace(".h5", "_submission.hdf") file = CremiFile(final_submission_path, "w") # Write volumes representing the neuron and synaptic cleft segmentation. backaligned_segm = segm_utils.readHDF5(tmp_file, "temp_data") neuron_ids = Volume(backaligned_segm.astype('uint64'), resolution=(40.0, 4.0, 4.0), comment="Emb-submission") file.write_neuron_ids(neuron_ids) file.close() os.remove(tmp_file)
# Create some dummy annotation data annotations = Annotations() for id in [ 0, 1, 2, 3 ]: location = (random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) annotations.add_annotation(id, "presynaptic_site", location) for id in [ 4, 5, 6, 7 ]: location = (random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) annotations.add_annotation(id, "postsynaptic_site", location) for (pre, post) in [ (0, 4), (1, 5), (2, 6), (3, 7) ]: annotations.set_pre_post_partners(pre, post) annotations.add_comment(6, "unsure") # Open a file for writing (deletes previous file, if exists) file = CremiFile("example.hdf", "w") # Write the raw volume. This is given here just for illustration. For your # submission, you don't need to store the raw data. We have it already. raw = Volume(np.zeros((10,100,100), dtype=np.uint8), resolution=(40.0, 4.0, 4.0)) file.write_raw(raw) # Write volumes representing the neuron and synaptic cleft segmentation. neuron_ids = Volume(np.ones((10,100,100), dtype=np.uint64), resolution=(40.0, 4.0, 4.0), comment="just ones") clefts = Volume(np.zeros((10,100,100), dtype=np.uint64), resolution=(40.0, 4.0, 4.0), comment="just zeros") file.write_neuron_ids(neuron_ids) file.write_clefts(clefts) # Write synaptic partner annotations. file.write_annotations(annotations) file.close()
location = (random.randint(0, 100), random.randint(0, 100), random.randint(0, 100)) annotations.add_annotation(id, "postsynaptic_site", location) for (pre, post) in [(0, 4), (1, 5), (2, 6), (3, 7)]: annotations.set_pre_post_partners(pre, post) annotations.add_comment(6, "unsure") # Open a file for writing (deletes previous file, if exists) file = CremiFile("example.hdf", "w") # Write the raw volume. This is given here just for illustration. For your # submission, you don't need to store the raw data. We have it already. raw = Volume(np.zeros((10, 100, 100), dtype=np.uint8), resolution=(40.0, 4.0, 4.0)) file.write_raw(raw) # Write volumes representing the neuron and synaptic cleft segmentation. neuron_ids = Volume(np.ones((10, 100, 100), dtype=np.uint64), resolution=(40.0, 4.0, 4.0), comment="just ones") clefts = Volume(np.zeros((10, 100, 100), dtype=np.uint64), resolution=(40.0, 4.0, 4.0), comment="just zeros") file.write_neuron_ids(neuron_ids) file.write_clefts(clefts) # Write synaptic partner annotations. file.write_annotations(annotations) file.close()