Gavin-Perry / OdorChoice

Pico Odor Choice for Camillo & Ale at WUSTL
0 stars 0 forks source link

Licking to get reward vs licking up the reward drop #17

Open Gavin-Perry opened 1 week ago

Gavin-Perry commented 1 week ago

There are 2 reasons the animal licks. 1 To complete a trial and signal that he has made a choice 2 To lick up the juice that is the reward. Do both kinds of licks count (keep logging licks during the reward period?) -Yes we want all the licks even during reward delivery to be listed in the lick list There are a couple of situations where this gets complicated including reward every lick option. How do we space out licks/rewards to keep from flooding all at once? Need a minimum time between rewards during this training, which BTW could slowly increase to make this initial training easier to manage. Let's discuss.

Gavin-Perry commented 5 days ago

Reward every lick needs new management

Reward every lick is for initial training only. It's so get the animal to associate licking with getting juice. IRL (In Real Life) One wants to force it to lick on both sides, alternating after some number of trials.

To manage this the easiest way without changing Pico Code we want to be able to present a table of alternating trials e.g. 0 5 ; 05; . . . 5 0; 5 0 in a prepared list that is NOT to be reordered.

New feature

Allow inserting a Stim list into Rand trials (with repeats of the whole list) that will not be sorted or randomized. First line of the file is TRAINING to ID it as distinct from a normal stim list, is the number of times the entire list will be repeated in the presentation (RandomTrials) list. The normal repeat number is the consecutive repeats for that trial example: TRAINING 10 5 4 0 5 0 4 will generate a list of 100 trials starting 4 0 4 0 4 0 4 0 4 0 0 4 0 4 0 4 0 4 0 4 repeating 10 times

Gavin-Perry commented 5 days ago

Got the table heading working RepCnt for repeats loaded. Need to think about L and R vs A and B I'm guessing that during this training there need not be A and B juices just load up As and go. Verify this and I'll finish writing the training part (seems to me that's the first thing you will actually need to use so might a well get that working.)

alessli commented 18 hours ago

I just tested Reward every lick while software was running trials, but it doesn't work. Four issues specifically:

  1. Reward was delivered erratically. Not every time I touched a spout the software was delivering a reward. And I think the interval between touches was more than 150 ms.
  2. When the reward was delivered, it was delivered always twice.
  3. I had 20<ITI<30, but when i was touching one of the two port, that was entering the trial list as a result
  4. The control of rewards every lick is not instantaneous. If I have it on for one trial, in the middle of it I turn it off, I need to wait until the end of the trial before the control effectively goes off.
Gavin-Perry commented 16 hours ago

1 changed 500 to 20 between REvL rewards 2 Need to replicate 3 Need to let MatLab know not in CWT so don't update the response in trials table. 4 Need to shut off REvL as switch is pressed, don't wait until end of trial. Pico? Send lc command to get Pico to change state of RewEvery