Browse Source

Remove connector_aligned array_annotations for non-neuronal signals

Julia Sprenger 3 years ago
parent
commit
f4d2264cd6
1 changed files with 15 additions and 8 deletions
  1. 15 8
      code/reachgraspio/reachgraspio.py

+ 15 - 8
code/reachgraspio/reachgraspio.py

@@ -953,18 +953,25 @@ class ReachGraspIO(BlackrockIO):
 
     def __annotate_channel_infos(self, block):
         if self.odmldoc:
+
+            # updating array annotations of neuronal analogsignals
+            for seg in block.segments:
+                for obj in seg.analogsignals:
+                    if 'neural_signal' in obj.annotations and obj.annotations[
+                        'neural_signal'] and 'channel_ids' in obj.array_annotations:
+                        chids = obj.array_annotations['channel_ids']
+                        ca_ids, *coordinates = self.__convert_chids_and_coordinates(chids)
+                        obj.array_annotations.update(dict(connector_aligned_ids=ca_ids,
+                                                          coordinates_x=coordinates[0],
+                                                          coordinates_y=coordinates[1]))
+
+            # updating annotations of groups and spiketrains
             objs = block.groups
             for seg in block.segments:
-                objs.extend(seg.analogsignals + seg.spiketrains)
+                objs.extend(seg.spiketrains)
 
             for obj in objs:
-                if hasattr(obj, 'array_annotations') and ('channel_ids' in obj.array_annotations):
-                    chids = obj.array_annotations['channel_ids']
-                    ca_ids, *coordinates = self.__convert_chids_and_coordinates(chids)
-                    obj.array_annotations.update(dict(connector_aligned_ids=ca_ids,
-                                                      coordinates_x=coordinates[0],
-                                                      coordinates_y=coordinates[1]))
-                elif 'channel_id' in obj.annotations:
+                if 'channel_id' in obj.annotations:
                     chid = obj.annotations['channel_id']
                     ca_id, *coordinates = self.__convert_chids_and_coordinates([chid])
                     obj.annotate(connector_aligned_id=ca_id[0],