Auerbach-Lab/Behavior-autoanalysis

New 'catch' vs. 'probe' Oddball file naming

Closed this issue · 5 comments

Issue

The canonical filename generated by the import process is wrong for the new type of file.

Background

We are adding a new class of file names for type Oddball that need to be distinguished from the current 'catch' files.
This is a naming change and should not affect analysis_type.

We currently have 2 types of files that get the _catch tag in Oddball naming. This hasn't been a problem previously since they were made and run on different groups. However, that is now changing. Thus, we want to differentiate the file types with one being _catch and the other being _probe

Right now (8/10/23) we only have rats planning to run on catch so its not a priority but this may change.

⚠️ We are not going back and renaming old files. Use the 'detail' to tell those apart. ⚠️

Catch and Probe example files.zip
If the no go trial (Type 0) has no lockout (i.e. 0s) then it is a _probe file.
If the no go trial (Type 0) has a lockout (i.e. 8s) then it is a _catch file.

Expected Behavior

The file_name computed by import accurately reflects _probe or _catch.

Steps to reproduce

RP3 file on 20230525 is a probe file, although the file name says _catch (as it is an older file)
RP3 file on 20230809 is a catch file in agreement with its name. (Note: file to be uploaded later today)

Code notes

I believe we will need to modify what is stored in run_summary as well as Oddball_Filename as it looks like there is no record of the lockout timeout on the catch files. I don't know if this is a potentially breaking change. Right now we only appear to save a boolean on if there are no_go trials (catch)

I believe that there is no need to add a new analysis type because as far as analysis goes it should undergo the same steps as the current Oddball (Catch). It is only a naming difference.

Once we have the lockout time out a simple check in Oddball_Filename to determine if its catch or probe should do the trick.

tofof commented

Very well written, thank you.
How quickly may you need this rolled out?

Well we have our 1st rat on a 'probe' file today. It will simply give a wrong file name warning and we can hold that way for now. I would have liked to give more advanced notice but it was decided last night to run on probe.

tofof commented

Untitled-1

tofof commented

Ok. The import's computed_file_name now uses _probe for the appropriate files. Additionally, within main, run_properties$nogo_lockout stores the time out setting.

The nogo lockout does not get written into the run archive, however, because we do not simply write run_properties to the archive - we unroll it for speed and convenience later, but that means we can only include columns that are guaranteed to be present, and adding new columns is a breaking change. Once stored in the run archive, nogo_lockout is lost - but in this case, whether it was 0, at least, is preserved by the filename containing _probe rather than _catch.

tofof commented

that commit is wrong, that commit closed 74.