Example #1
0
 def ct_of_ssv(self, ssv_id):
     """
     Returns the CT for a given SSV ID.
     :param sv_id:
     :return:
     """
     # TODO: changed to new cell type predictions, work this in everywhere
     ssv = self.ssd.get_super_segmentation_object(int(ssv_id))
     ssv.nb_cpus = self.nb_cpus
     ssv.load_attr_dict()
     label = ""
     if "celltype_cnn_e3_probas" in ssv.attr_dict:  # new prediction
         l = ssv.attr_dict["celltype_cnn_e3"]
         # ct_label_dc = {0: "EA", 1: "MSN", 2: "GP", 3: "INT"}
         # label = ct_label_dc[l]
         label = int2str_converter(l, gt_type='ctgt_v2')
         certainty = ssv.certainty_celltype()
     elif "celltype_cnn" in ssv.attr_dict:
         ct_label_dc = {0: "EA", 1: "MSN", 2: "GP", 3: "INT"}
         l = ssv.attr_dict["celltype_cnn"]
         label = ct_label_dc[l]
         certainty = 'nan'
     else:
         log_gate.warning("Celltype prediction not present in attribute "
                          "dict of SSV {} at {}.".format(ssv_id, ssv.attr_dict_path))
     return {'ct': label, 'certainty': certainty}
Example #2
0
 def ssv_skeleton(self, ssv_id):
     """
     Get mesh vertices for ssv_id.
     :param ssv_id: int
     :return: dict
     """
     self.logger.info('Loading ssv skeleton {}'.format(ssv_id))
     ssv = self.ssd.get_super_segmentation_object(int(ssv_id))
     ssv.nb_cpus = self.nb_cpus
     ssv.load_skeleton()
     skeleton = ssv.skeleton
     if skeleton is None:
         return {}
     skel_attr = ["nodes", "edges", "diameters"]
     pred_key_ax = "{}_avg{}".format(global_params.view_properties_semsegax['semseg_key'],
                                     global_params.DIST_AXONESS_AVERAGING)
     keys = [
             # "axoness_avg{}".format(avg_dst),
             # "axoness_avg{}_comp_maj".format(avg_dst),
             global_params.view_properties_semsegax['semseg_key'],
             pred_key_ax,
             'myelin_avg10000',  # TODO: use global_params.py value !
             'myelin',  # TODO: use global_params.py value !
             "axoness_k{}".format(global_params.map_properties_semsegax['k']),
             "axoness_k{}_comp_maj".format(global_params.map_properties_semsegax['k'])]
     for k in keys:
         if k in skeleton:
             skel_attr.append(k)
             if type(skeleton[k]) is list:
                 skeleton[k] = np.array(skeleton[k])
         else:
             log_gate.warning("Couldn't find requested key in "
                              "skeleton '{}'. Existing keys: {}".format(k, skeleton.keys()))
     return {k: skeleton[k].flatten().tolist() for k in
             skel_attr}