sl-shared-assets 3.0.0rc9__py3-none-any.whl → 3.0.0rc11__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of sl-shared-assets might be problematic. Click here for more details.

@@ -12,15 +12,15 @@ class MesoscopeHardwareState(YamlConfig):
12
12
 
13
13
  Notes:
14
14
  This class stores 'static' Mesoscope-VR system configuration that does not change during experiment or training
15
- session runtime. This is in contrast to MesoscopeExperimentState class, which reflects the 'dynamic' state of
16
- the Mesoscope-VR system.
15
+ session runtime. This is in contrast to MesoscopeExperimentConfiguration class, which reflects the 'dynamic'
16
+ state of the Mesoscope-VR system during each experiment.
17
17
 
18
18
  This class partially overlaps with the MesoscopeSystemConfiguration class, which is also stored in the
19
19
  raw_data folder of each session. The primary reason to keep both classes is to ensure that the math (rounding)
20
20
  used during runtime matches the math (rounding) used during data processing. MesoscopeSystemConfiguration does
21
- not do any rounding or otherwise attempt to be repeatable, which is in contrast to hardware module that read
22
- those parameters. Reading values from this class guarantees the read value exactly matches the value used
23
- during runtime.
21
+ not do any rounding or otherwise attempt to be repeatable, which is in contrast to hardware modules that read
22
+ and apply those parameters. Reading values from this class guarantees the read value exactly matches the value
23
+ used during runtime.
24
24
 
25
25
  Notes:
26
26
  All fields in this dataclass initialize to None. During log processing, any log associated with a hardware
@@ -28,11 +28,10 @@ class MesoscopeHardwareState(YamlConfig):
28
28
  any field in this dataclass to None also functions as a flag for whether to parse the log associated with the
29
29
  module that provides this field's information.
30
30
 
31
- This class is automatically configured by _MesoscopeExperiment and _BehaviorTraining classes from sl-experiment
32
- library to facilitate log parsing.
31
+ This class is automatically configured by _MesoscopeVRSystem class from sl-experiment library to facilitate
32
+ proper log parsing.
33
33
  """
34
34
 
35
- cue_map: dict[int, float] | None = ...
36
35
  cm_per_pulse: float | None = ...
37
36
  maximum_break_strength: float | None = ...
38
37
  minimum_break_strength: float | None = ...
@@ -97,48 +96,51 @@ class MesoscopeExperimentDescriptor(YamlConfig):
97
96
  experimenter_given_water_volume_ml: float = ...
98
97
  incomplete: bool = ...
99
98
 
99
+ @dataclass()
100
+ class WindowCheckingDescriptor(YamlConfig):
101
+ """Stores the outcome information specific to window checking sessions that use the Mesoscope-VR system.
102
+
103
+ Notes:
104
+ Window Checking sessions are different from all other sessions. Unlike other sessions, their purpose is not to
105
+ generate data, but rather to assess the suitability of the particular animal to be included in training and
106
+ experiment cohorts. These sessions are automatically excluded from any automated data processing and analysis.
107
+ """
108
+
109
+ experimenter: str
110
+ experimenter_notes: str = ...
111
+ surgery_quality: int = ...
112
+ incomplete: bool = ...
113
+
100
114
  @dataclass()
101
115
  class ZaberPositions(YamlConfig):
102
116
  """Stores Zaber motor positions reused between experiment sessions that use the Mesoscope-VR system.
103
117
 
104
- The class is specifically designed to store, save, and load the positions of the LickPort and HeadBar motors
105
- (axes). It is used to both store Zaber motor positions for each session for future analysis and to restore the same
106
- Zaber motor positions across consecutive runtimes for the same project and animal combination.
118
+ The class is specifically designed to store, save, and load the positions of the LickPort, HeadBar, and Wheel motors
119
+ (axes). It is used to both store Zaber motor positions for each session for future analysis and to restore the
120
+ Zaber motors to the same positions across consecutive runtimes for the same project and animal combination.
107
121
 
108
122
  Notes:
109
- The HeadBar axis (connection) also manages the motor that moves the running wheel along the x-axis. While the
110
- motor itself is not part of the HeadBar assembly, it is related to positioning the mouse in the VR system. This
111
- is in contrast to the LickPort group, which is related to positioning the lick tube relative to the mouse.
112
-
113
- All positions are saved using native motor units. All class fields initialize to default placeholders that are
114
- likely NOT safe to apply to the VR system. Do not apply the positions loaded from the file unless you are
115
- certain they are safe to use.
116
-
117
- Exercise caution when working with Zaber motors. The motors are powerful enough to damage the surrounding
118
- equipment and manipulated objects. Do not modify the data stored inside the .yaml file unless you know what you
119
- are doing.
123
+ By default, the class initializes all fields to 0, which is the position of the home sensor for each motor. The
124
+ class assumes that the motor groups are assembled and arranged in a way that ensures all motors can safely move
125
+ to the home sensor positions from any runtime configuration.
120
126
  """
121
127
 
122
128
  headbar_z: int = ...
123
129
  headbar_pitch: int = ...
124
130
  headbar_roll: int = ...
125
131
  lickport_z: int = ...
126
- lickport_x: int = ...
127
132
  lickport_y: int = ...
133
+ lickport_x: int = ...
128
134
  wheel_x: int = ...
129
135
 
130
136
  @dataclass()
131
137
  class MesoscopePositions(YamlConfig):
132
- """Stores real and virtual Mesoscope objective positions reused between experiment sessions that use the
138
+ """Stores the positions of real and virtual Mesoscope objective axes reused between experiment sessions that use the
133
139
  Mesoscope-VR system.
134
140
 
135
- Primarily, the class is used to help the experimenter to position the Mesoscope at the same position across
136
- multiple imaging sessions. It stores both the physical (real) position of the objective along the motorized
137
- X, Y, Z, and Roll axes and the virtual (ScanImage software) tip, tilt, and fastZ focus axes.
138
-
139
- Notes:
140
- Since the API to read and write these positions automatically is currently not available, this class relies on
141
- the experimenter manually entering all positions and setting the mesoscope to these positions when necessary.
141
+ This class is designed to help the experimenter move the Mesoscope to the same imaging plane across imaging
142
+ sessions. It stores both the physical (real) position of the objective along the motorized X, Y, Z, and Roll axes,
143
+ and the virtual (ScanImage software) tip, tilt, and fastZ (virtual zoom) axes.
142
144
  """
143
145
 
144
146
  mesoscope_x: float = ...
@@ -148,3 +150,4 @@ class MesoscopePositions(YamlConfig):
148
150
  mesoscope_fast_z: float = ...
149
151
  mesoscope_tip: float = ...
150
152
  mesoscope_tilt: float = ...
153
+ laser_power_mw: float = ...