Closed jthermiz closed 3 years ago
There's actually a field in the experiment notes called 'Clean recording?' that's imported in the metadata. Perhaps, by default nsds_nwb processes only blocks where Clean recording = True. And if the user really wants to convert a bad block, then can pass an keyword arguments in generate_nwb to force the conversion?
Hi @jthermiz , just trying to understand --- what's the nature of bad recording, for example in the case of RVG16_B09
?
We can easily add a switch to check the clean_recording
metadata and raise an error or warning if its value is False. But if might actually be useful to convert all available blocks to NWB systematically (if the bad recording is not technically prohibiting this) and simply choose to not analyze later...
PR #85 adds a feature that stops processing when the stimulus information is missing - this applies to RVG16_B09
. The builder doesn't use the clean_recording
switch at this point.
@jthermiz How should I interpret clean_block
(bool) and stim_response
(str) flags in the metadata?
Should we always skip a block when either clean_block
is false or stim_response
says "bad"? Basically need a logical operation of the two flags to determine when we should quit nwb_build.
@jihyunbak Sorry for the delay in responding to this. clean_block
is whether the recording could be useful. If it doesn't look usable by the experimentalist they will note False for this field. Examples of clean_block=False
are when the measurements are overwhelmed with artifact, the stimulus was not executed, a failure in recording equipment, etc...
It would be convenient if the there was a switch that when clean_block=False
, nwb conversion is not completed. Otherwise the experimentalist can change clean_block=True
if they want to convert it.
When user doesn't specify a stimulus, then perhaps there should be warning message to the user about this unexpected behavior to force the end user to provide one. If no stimulus was given, then there is a baseline option they can select.
@jthermiz Thanks, this makes things clear to me!
How should we handle bad blocks like
RVG16_B09
? Should we convert them as is or force the user to indicate a stimulus which is what triggered the error. Or should we not convert it?I think
nsds_nwb
should still be able to convert 'bad' recording if the user wants to. I think either forcing the user to indicate a stimulus or having a catch all stimulus when it's not provided (such as 'Unknown') are good options.