I’m automating the process by which we translate spike times to PSTH and package them as BrainIO Data Assemblies. I need to label each stimulus presentation event with the stimulus ID of the image file within the associated BrainIO Stimulus Set. I’ve already got a mapping from presentation event to “stimulus_presented” from the .mwk2 file, so all I need to figure out now is how to map from “stimulus_presented” in the .mwk2 to “stimulus_id” in the BrainIO Stimulus Set.
I’m able to use the mwel Python package from the MWorks repo to parse a .mwel file and get an AST, so that’s convenient.
I’m looking at a few example experiments, trying to write something that will work on any of them. In the Oasis900 experiment, I’ve found the “stimulus_group” in the associated .mwel file. It contains a “range_replicator” which contains an “image_file” which acts as a template for the group. To get each file name, it does substitution of a variable called “RSVP_stim_counter” which is the counter defined by the range_replicator. If the counter defined by the range_replicator corresponds to stimulus_presented in the .mwk2 file, this is pretty straightforward, because the file names match the ones in the Oasis900 BrainIO Stimulus Set and that completes the mapping.
However, in the Objectome experiment, the file names used in the Stimulus Set don’t match the ones in the .mwel. So using RSVP_stim_counter doesn’t generalize.
Do you know how “stimulus_presented” in the .mwk2 file gets populated? Is that done by the MWorks application, or does it come from user input?