CEED Config
The following are the configuration options provided by the app. It can be configured by changing appropriate values in the config.yaml
settings file. The options default to the default value of the classes for each of the options.
- external_function_plugin_package:
Default value:
''
The name of an external function plugin package that contains additional functions to be displayed in the GUI to the user. See
plugin
for details.- external_stage_plugin_package:
Default value:
''
The name of an external stage plugin package that contains additional stages to be displayed in the GUI to the user. See
plugin
for details.- inspect:
Default value:
false
Enables GUI inspection. If True, it is activated by hitting ctrl-e in the GUI.
- last_directory:
Default value:
'~'
The last directory opened in the GUI.
view
- LED_mode:
Default value:
RGB
The LED mode the projector will be set to during the experiment. Its value is from the
led_modes
.- LED_mode_idle:
Default value:
none
The LED mode the projector will be set to before/after the experiment. This is used to turn OFF the projector LEDs in between experiments so that light is not projected on the tissue while stages are designed. Its value is from the
led_modes
.- cam_transform:
Default value:
- - 1.0 - 0.0 - 0.0 - 0.0 - - 0.0 - 1.0 - 0.0 - 0.0 - - 0.0 - 0.0 - 1.0 - 0.0 - - 0.0 - 0.0 - 0.0 - 1.0
A 4x4 matrix that controls the rotation, offset, and scaling of the camera images relative to the projector. In the Ceed GUI, a user can transform the camera image, in addition to
flip_camera
until it fully aligns with the projector output. See also Camera-projector-array alignment.- current_blue:
Default value:
14
The current to use for the projector blue LED. Its value is between 0 to 43 amps.
- current_green:
Default value:
27.74
The current to use for the projector green LED. Its value is between 0 to 43 amps.
- current_red:
Default value:
42.32
The current to use for the projector red LED. Its value is between 0 to 43 amps.
- experiment_uuid:
Default value:
!!binary ""
A unique uuid that is re-generated before each experiment and sent along over the corner pixel as the initial uniquely-identifying handshake-pattern. It allows us to locate this experiment in the MCS data post-hoc. See
DataSerializerBase
.- flip_camera:
Default value:
false
Whether to flip the camera images horizontally, around the center. See also Camera-projector-array alignment.
- flip_projector:
Default value:
true
Whether to flip the projector output horizontally, around the center. See also Camera-projector-array alignment.
- frame_rate:
Default value:
null
The frame-rate of the GPU that plays the experiment. This should be set to the exact refresh rate of the GPU, as can be found in e.g. the nvidia control panel. Otherwise, the experiment will be out of sync and played incorrectly. This is internally converted to a fraction (
frame_rate_numerator
,frame_rate_denominator
), so the number must be such that it can be converted to a fraction. E.g. 119.96 or 59.94 can be represented correctly as fractions.- frame_rate_denominator:
Default value:
null
The denominator of the
frame_rate
fraction.- frame_rate_numerator:
Default value:
null
The numerator of the
frame_rate
fraction.- fullscreen:
Default value:
true
Whether the second Ceed window that runs the “real experiment” is run in fullscreen mode. In fullscreen mode the window has no borders and takes over the whole screen.
- log_debug_timing:
Default value:
false
Whether to log the times that frames are drawn and rendered to a debug section in the h5 file. If True, this will additionally be logged for each displayed frame in a special section in the file.
- mea_diameter:
Default value:
3
The diameter in pixels of the displayed electrode circles in the grid. See
mea_transform
also.- mea_num_cols:
Default value:
12
The number of electrode columns in the array. See
mea_transform
also.- mea_num_rows:
Default value:
12
The number of electrode rows in the array. See
mea_transform
also.- mea_pitch:
Default value:
20
The distance in pixels, center-to-center, between neighboring rows/columns. It is assumed that it is the same for columns and rows. See
mea_transform
also.- mea_transform:
Default value:
- - 1.0 - 0.0 - 0.0 - 0.0 - - 0.0 - 1.0 - 0.0 - 0.0 - - 0.0 - 0.0 - 1.0 - 0.0 - - 0.0 - 0.0 - 0.0 - 1.0
A 4x4 matrix that controls the rotation, offset, and scaling of the mea array relative to the camera. This is a grid that corresponds to the electrodes in the electrode array. In the Ceed GUI, a user can transform this grid, in addition to
mirror_mea
until it fully aligns with a camera image of the grid from the actual array. See also Camera-projector-array alignment and the othermea_
properties of this class.- mirror_mea:
Default value:
true
When True, the MEA grid is mirrored vertically around the center. See
mea_transform
also.- output_count:
Default value:
true
Whether the corner pixel is used to output frame information on the PROPixx controller IO pot as described in
DataSerializerBase
. If True,ceed.storage.controller.DataSerializerBase
is used to set the 24 bits of the corner pixel. Otherwise, that pixel is treated like the other normal pixels.- pad_to_stage_handshake:
Default value:
true
Ad described in
DataSerializerBase
, Ceed sends handshaking data to the MCS system at the start of each experiment. This helps us align the Ceed and MCS data afterwards. If the root stage of the experiment is too short, it’s possible the full handshake would not be sent, preventing alignment afterwards. Ifpad_to_stage_handshake
, then the root stage will be padded so it goes for the minimum number of clock frames required to finish the handshake, if it’s too short. The shapes will be black for those padded frames.- pre_compute_stages:
Default value:
false
Whether the stage run by the experiment should be pre-computed. See Pre-computing for details.
- screen_height:
Default value:
1080
The screen height in pixels on which the data is played. This is the full-screen height.
- screen_offset_x:
Default value:
0
When there are multiple monitors, the monitor on which the experiment is shown in full-screen mode is controlled by the x-position of the displayed window. E.g. to show it on the right monitor of two monitors each 1920 pixel wide, and with the main monitor being on the left. Then the
screen_offset_x
should be set to1920
.- screen_width:
Default value:
1920
The screen width in pixels on which the data is played. This is the full-screen width.
- skip_estimated_missed_frames:
Default value:
true
Whether to drop frames to compensate when we detect that a previous frame was displayed for longer than a single GPU frame duration. Then, we may want to drop an equivalent number of frames, rather than displaying all the subsequent frames at a delay. See
FrameEstimation
andTeensyFrameEstimation
for how we detect these long frames. UseTeensyFrameEstimation.use_teensy
to control which estimator is used.- use_software_frame_rate:
Default value:
false
Depending on the CPU/GPU, the software may be unable to render faster than the GPU refresh rate. In that case, the GPU limits us to the GPU frame rate and
frame_rate
should be set to match the GPU refresh rate and this should be False. If the GPU isn’t forcing a frame rate. Then this should be True andframe_rate
should be the desired frame rate. That will restrict us the given frame rate. However, the actual frame rate will be wildly inaccurate in this mode, so it’s only useful for testing. One can tell whether the GPU is forcing a frame rate by settingframe_rate
to a large value and settinguse_software_frame_rate
to False and seeing what the resultant frame rate is. If it isn’t capped at some value constant, e.g. 120Hz, it means that the GPU isn’t forcing a rate.- video_mode:
Default value:
RGB
The current video mode from among the
video_modes
. See also Video mode.
teensy_frame_estimation
- usb_product_id:
Default value:
1158
The Teensy product ID. This is how we find the attached Teensy on the bus. If there’s more than one, this needs to be modified.
- usb_vendor_id:
Default value:
5824
The Teensy vendor ID. This is how we find the attached Teensy on the bus. If there’s more than one, this needs to be modified.
- use_teensy:
Default value:
true
Whether to use the Teensy. If it’s not attached, set this to False. When False, it falls back on
FrameEstimation
.
frame_estimation
- skip_detection_smoothing_n_frames:
Default value:
4
How many frames ot average to detect when a frame needs to be skipped. See class description.
serializer
- clock_idx:
Default value:
2
The bit index to use for the clock. A number between 0-23, inclusive.
- count_indices:
Default value:
- 19 - 20
A list of bit indices to use for the long counter as explained in
DataSerializerBase
. Each item is a number between 0-23, inclusive. Their order is the order of the counter bit pattern. The first index is for the first (least significant) bit of the counter etc. If the length ofcount_indices
doesn’t dividecounter_bit_width
exactly, the ends are padded with zeros for those bits.- counter_bit_width:
Default value:
32
The number of bits in the long counter, as described in
DataSerializerBase
. Must be a multiple of 8 (to align with a byte).- projector_to_aquisition_map:
Default value:
2: 0 3: 1 4: 2 10: 3 11: 4 12: 5 18: 6 19: 7 20: 8
Maps the bit indices used by Ceed to the corresponding bit indices used by MCS. It is required to be able to align the two systems. I.e. if port zero of the projector is connected to port 3 of the MCS controller, then this would be
{0: 3}
.- short_count_indices:
Default value:
- 3 - 4 - 10 - 11 - 12 - 18
A list of bit indices to use for the short counter as explained in
DataSerializerBase
. Each item is a number between 0-23, inclusive. Their order is the order of the counter bit pattern. E.g. if it was[1, 3]
, the the bit pattern for just the counter would look like: 0b0000, 0b0010, 0b1000, 0b1010, 0b0000, 0b0010, 0b1000…
player
- player_name:
Default value:
ffmpeg
The name of the currently selected video player. It is one of “ffmpeg”, “thor”, “flir”, or “client”.
video_recorder
- estimate_record_rate:
Default value:
false
Whether to use
cpl_media.player.BasePlayer.real_rate
for the recorder frame rate, as opposed to the one initially provided by the player.- metadata_record:
Default value:
null
(internal) Describes the video metadata of the recorder. This is the requested format, or best guess of the metadata. Read only.
- record_directory:
Default value:
/home/runner
The directory into which videos should be saved.
- record_fname:
Default value:
video{}.mkv
The filename to be used to record the next video. If
{}
is present in the filename, it’ll be replaced with the value ofrecord_fname_count
which auto increments after every video, when used. We use Python’sformat
machinery for this.- record_fname_count:
Default value:
0
A counter that auto increments by one after every recorded video. Used to give unique filenames for each video file. See
record_fname
.- requested_record_duration:
Default value:
0
The total duration that we should record. If zero, duration was not set.
thor
- binning_x:
Default value:
0
The x binning value to use.
- binning_x_range:
Default value:
- 0 - 0
The supported exposure range.
- binning_y:
Default value:
0
The y binning value to use.
- binning_y_range:
Default value:
- 0 - 0
The supported exposure range.
- black_level:
Default value:
0
The black level value to use.
- black_level_range:
Default value:
- 0 - 100
The supported exposure range.
- color_gain:
Default value:
- 1 - 1 - 1
The color gain for each red, green, and blue channel.
- exposure_ms:
Default value:
0
The exposure value in ms to use.
- exposure_range:
Default value:
- 0 - 100
The supported exposure range in ms.
- frame_queue_size:
Default value:
1
The max number of image frames to be allowed on the camera’s hardware queue. Once exceeded, the frames are dropped.
- freq:
Default value:
20 MHz
The frequency to use.
- gain:
Default value:
0
The gain value to use.
- gain_range:
Default value:
- 0 - 100
The supported exposure range.
- metadata_play:
Default value:
null
(internal) Describes the video metadata of the video player. This is the requested format, or best guess of the metadata. Read only.
- metadata_play_used:
Default value:
null
(internal) Describes the video metadata of the video player that is actually used by the player. This must be set before recorders may allow recording the player. Depending on the metadata needed by the recorder, it may refuse to record until the needed metadata is given. Read only.
- num_queued_frames:
Default value:
0
The number of image frames currently on the camera’s hardware queue.
- roi_height:
Default value:
0
The height after the y start position of the ROI in pixels, to use.
- roi_width:
Default value:
0
The width after the x start position of the ROI in pixels, to use.
- roi_x:
Default value:
0
The x start position of the ROI in pixels.
- roi_y:
Default value:
0
The y start position of the ROI in pixels.
- sensor_size:
Default value:
- 0 - 0
The size of the sensor in pixels.
- serial:
Default value:
''
The serial number of the camera that will be opened.
- serials:
Default value:
[]
The list of serial numbers representing the cameras available.
- supported_freqs:
Default value:
- 20 MHz
The supported frequencies.
- supported_taps:
Default value:
- '1'
The supported taps.
- supported_triggers:
Default value:
- SW Trigger - HW Trigger
The trigger types supported by the camera.
- supports_color:
Default value:
false
Whether the camera supports color.
- taps:
Default value:
'1'
The tap to use.
- trigger_count:
Default value:
0
The number of frames to capture in response to the trigger.
- trigger_type:
Default value:
SW Trigger
The trigger type of the camera to use.
network_client
- metadata_play:
Default value:
null
(internal) Describes the video metadata of the video player. This is the requested format, or best guess of the metadata. Read only.
- metadata_play_used:
Default value:
null
(internal) Describes the video metadata of the video player that is actually used by the player. This must be set before recorders may allow recording the player. Depending on the metadata needed by the recorder, it may refuse to record until the needed metadata is given. Read only.
- port:
Default value:
0
The server port that broadcasts the data.
- server:
Default value:
''
The server address that broadcasts the data.
- timeout:
Default value:
0.01
How long to wait before timing out when reading data before checking the queue for other requests.
image_file_recorder
- compression:
Default value:
raw
Whether to compress when
extension
is tiff. Can be one of'raw', 'lzw', 'zip'
.- extension:
Default value:
tiff
The extension of the images being saved.
- metadata_record:
Default value:
null
(internal) Describes the video metadata of the recorder. This is the requested format, or best guess of the metadata. Read only.
- record_directory:
Default value:
/home/runner
The directory into which videos should be saved.
- record_prefix:
Default value:
image_
The prefix to the filename of the images being saved.
- requested_record_duration:
Default value:
0
The total duration that we should record. If zero, duration was not set.
flir
- metadata_play:
Default value:
null
(internal) Describes the video metadata of the video player. This is the requested format, or best guess of the metadata. Read only.
- metadata_play_used:
Default value:
null
(internal) Describes the video metadata of the video player that is actually used by the player. This must be set before recorders may allow recording the player. Depending on the metadata needed by the recorder, it may refuse to record until the needed metadata is given. Read only.
- saved_nodes:
Default value:
{}
- serial:
Default value:
''
The serial number of the camera to open.
ffmpeg
- dshow_filename:
Default value:
''
The name of the dshow camera to open.
- dshow_opt:
Default value:
''
The camera options associated with
dshow_true_filename
when dshow is used.- dshow_rate:
Default value:
0
The frame rate to request from the dshow camera.
- dshow_true_filename:
Default value:
''
The real and complete filename of the direct show (webcam) device.
- file_fmt:
Default value:
''
The format used to play the video. Can be empty or a format e.g.
mjpeg
for webcams.- icodec:
Default value:
''
The codec used to open the video stream with if it needs to be specified for the camera.
- metadata_play:
Default value:
null
(internal) Describes the video metadata of the video player. This is the requested format, or best guess of the metadata. Read only.
- metadata_play_used:
Default value:
null
(internal) Describes the video metadata of the video player that is actually used by the player. This must be set before recorders may allow recording the player. Depending on the metadata needed by the recorder, it may refuse to record until the needed metadata is given. Read only.
- play_filename:
Default value:
''
The filename of the media being played. Can be e.g. a filename etc.
- use_dshow:
Default value:
true
Whether we use dshow - i.e. USB webcams, or normal media sources.
function
data
- backup_interval:
Default value:
5.0
How frequently the backup file is flushed to disk. The backup file is the one into which all new data is written to until saved explicitly in the GUI to the current data file. Until that happens, we write date to the backup file.
- compression:
Default value:
Auto
Whether the h5 data file should internally compress the data that it writes. This is handled internally by the H5 library, with no external difference in how the file is loaded/saved/accessed, except that the file size may be smaller when compressed. Additionally, it may take a little more CPU when saving experiment data if compressions is enabled. Valid values are
"ZIP"
,"None"
, or"Auto"
.- root_path:
Default value:
''
The directory part of the path where the data is saved.