Go/no-go task program?

256 views
Skip to first unread message

Kristen Delevich PhD

unread,
Oct 20, 2021, 3:27:32 PM10/20/21
to FEDforum
Hi FEDers (FEDies?)!

I saw that Lex mentioned in an earlier post that poke duration could be used for behavioral control to program a go/no-go type task, and I was curious if anyone has written this type of program/is running go/no-go or inhibitory control type task on FED3. If not, we'll be working on this soon and I'll be happy to share what we come up with!

Cheers,
Kristen

Lex Kravitz

unread,
Oct 20, 2021, 5:17:28 PM10/20/21
to FEDforum
Hi Kristen!
I did write a go/nogo script but never had a chance to test it with mice.  It is included as an example in the FED3 library, you can find it under "Beta_Programs" and try it out, see screenshot below for where it's hiding.  The program logic is:

  When mouse pokes on Left poke, either a high or low frequency tone occurs.
  If it is a high tone the mouse must remove his nose within 500ms to get the pellet (GO trial)
  If it is low tone the mouse must hold the poke for at least 1000ms before removing to get the pellet (No-GO trial)
  Incorrect responses are met with a time-out (10 seconds by default). 
  Right pokes are logged but nothing else happens.

I am really curious if you try it, let me know if you need help modifying it too.  -Lex 


GONOGO.png

Ross Rudolph

unread,
Apr 5, 2022, 12:49:17 PM4/5/22
to FEDforum
Hello all!

I recently tried out the Go/No-Go program, and it seems to work fine! I ran it overnight with 3 mice (5pm-11am). It is possible that the mice learned the difference between the go and no-go frequencies, since all of them received an appropriate amount of pellets (compared to their free feeding and fixed ratio trials!) and none lost weight. However, I checked the .csv files today and it did not record which trials were Go or No-Go, and instead has the same info columns as FR1. Would it be possible to add some lines to the code to record trial type and time spent in nose poke? Let me know your thoughts!! Thanks very much!

- Kate
Ross Lab
Albert Einstein College of Medicine

Ross Rudolph

unread,
Apr 5, 2022, 2:19:05 PM4/5/22
to FEDforum
Update - I just found the poke_time column! I didn't see it since the title was cut off when I opened the file in Excel at first. My bad!

Lex Kravitz

unread,
Apr 5, 2022, 6:01:57 PM4/5/22
to FEDforum
Cool thanks for sharing!  I still haven't tested this program with mice so I am curious how mice do with it.  Can you share the datafile you recorded by chance?  It's possible they were getting enough pellets but not really doing the task, ie: if they initiated 2x as many trials and always chose "Go" that would result in their needed pellets without them learning the task.  It may require adjusting gotime and nogotime incrementally to train them.

And just to check, do you still need the Trial Type info updated in the logfile to note if the trial is Go or No-Go? 

Lex Kravitz

unread,
Apr 5, 2022, 10:27:48 PM4/5/22
to FEDforum
Hi again Kate!
I took a quick look at this program and made a minor modification so FED3 will note whether it is a "Go" or "No-Go" trial in the data file.  One of the columns in the log file is "FR" which is often set to 1, and only really changes in PR tasks.  You can set FR to a different value with fed3.FR.  So adding the line in yellow below fed3.run() will set "FR" equal to the variable highOrLow, which is either a 1 (Go trial) or 0 (No-Go trial) in this code. Full Arduino code attached, but just adding this line will help you determine if each trial is a Go (FR=1) or No-Go (FR=0) trial. 

1.png
I noticed the code defaults to a 200ms cut-off for both the go (leave poke <200ms) and the no-go (stay in poke for >200ms) requirements.  My hunch is that you want to change the Go time requirement, 200ms may be too short for starting out. I would start with the gotime at 500ms (meaning mice will get a pellet if they leave the poke within 500ms of the high tone on Go trials, which should be pretty easy for them), and slowly decrease this time each day as they successfully complete Go trials.  I would decrease it over a few days to try to get them down to ~200ms on Go trials.  Similarly, for No-Go trials you can start at 200ms (this should also be easy, they just have to stay in the poke for >200ms to get a pellet) and slowly increase this time until you get their No-Go times up to ~500ms.

Hope this helps, post back if you are able to get good behavior from your mice! -Lex
GoNoGo_update040522.ino

Ross Rudolph

unread,
Apr 14, 2022, 12:04:05 PM4/14/22
to FEDforum
Hi Lex!
Thank you so much for doing that. The update works just fine, but I've only had the opportunity to try it out once. I started them out with a Go time of 500ms and a No-Go time of 200ms, and - as you'll see - they didn't get a single No-Go trial. I will run it with them again, though. I was also wondering what units the poke_time column is in? Some of my data seems a little small (is it possible to nose poke for 0 seconds?), so I figured I was looking at it wrong. Let me know what you think!
best,
kate

FED000_041322_02_newGoNoGoTest.xlsx

Lex Kravitz

unread,
Apr 14, 2022, 11:26:04 PM4/14/22
to FEDforum
Hi Kate, thanks for sharing your data! I can see that in this file you have very few pokes >200ms!  So if you run it again I might suggest starting with a No-Go time of 100ms?  And dropping the Go-time to ~200ms?
KateData.png

The Poke_Time column is recorded in seconds.  When it reports 0 seconds that means that it was so fast that it was not able to be measured - this can occur for poke duration <10ms.  Your mice are fast!

There is also a variable called minPokeTime that might be helpful.  You can use this to set a minimum poke duration for a poke to be counted.  This could be used to teach the mice to hold their noses in the port longer.  You can see an example of how to use it in Examples>FED3>Beta_Programs>FixedRatio1_MinPokeTime.

Looking forward to seeing how this turns out!

Ross Rudolph

unread,
May 6, 2022, 2:30:42 PM5/6/22
to FEDforum
Hi Lex!

So we tried to train the mice using those parameters, and we had them run for about a week with no sign of learning. It seems they weren't particularly motivated to learn the No-Go response since they were getting pellets around half of the time anyway with the Go trials, so it's likely they poked a bunch just to make up for that. We decided to train them on just No-Go (still 100ms) so that they would have more motivation to learn the response, but this did not pan out. I ran them for 8 days, and they still have not learned to remain in the nose poke to get a pellet (correct responses stay between 10-40%). Again, they seemed to nose poke excessively and remain in the nose poke long enough to receive a pellet at random.

If anyone else has tried and had any luck using this task, do let me know any tips you've learned - I would love to try them out. It was worth a shot!

Thanks for all the help along the way!

Best,
Kate

Lex

unread,
May 7, 2022, 6:46:06 PM5/7/22
to Ross Rudolph, FEDforum
Hi Kate! Thanks for the update, I like your idea of just training them on NoGo, but the results sound pretty conclusive that it did not work.  My only idea might be to try a shorter NoGo period and see if you can gradually shape them to get it longer.  Thanks for sharing the final result, even if it's disappointing!

--
You received this message because you are subscribed to the Google Groups "FEDforum" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fedforum+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/fedforum/b83692ed-e52a-411b-b11b-5684974d1081n%40googlegroups.com.

Caitlin Ottaway

unread,
May 11, 2022, 1:15:25 PM5/11/22
to FEDforum

Hi all,

I am currently working on a task that involves keeping a nose poke light on until the mouse pokes the port with the light on. This is the second out of four tasks that are being used to train mice to work up to eventually interacting with a go/no-go task, hence why I am posting it here.  The side is randomized each time the light comes on. This task is only active between the hours of 9-11 am, which we have done using the fed3.currentHour function.  I have run into one main issue with this that I have been unable to solve.

The first is regarding the nose poke light. It will stay on after 11 am, even though the device does not register pokes or deliver pellets. I am unsure if this has to do with an issue of the RTC not updating, as I have noticed that sometimes the time seems to be frozen on the screen of the FED3.1 device. In order to fix this, we have tried to use: 

 if fed3.currentHour < 11 {

 ( fed3.pixelsOff(); 

     break; }  //we have also tried to use exit; here

in a few different places. However, this has not solved the issue.

I have attached the code to this post and appreciate any insight you might have.

Best,

Caitlin Ottaway

Delevich Lab

lightonuntilpokerandomized.ino

Lex Kravitz

unread,
May 12, 2022, 11:00:51 AM5/12/22
to FEDforum
Hi Caitlin!  Thanks for posting your code! I looked at it quickly and I think the issue is that you're only calling fed3.pixelsOff() after a mouse pokes (within if (fed3.Left) and if (fed3.Right)), and you are only monitoring if they poke between 9-11.  So the pixels are on and we go >11am the code can never reach the instruction to turn the pixels off.

Your idea with an if statement to always turn pixels off after fed3.currentHour < 11 was correct but the syntax for your if statement was wrong which might be why it didn't work.  Can you add this after fed3.run() and see if that does it? 
if (fed3.currentHour < 11) {
  fed3.pixelsOff();
}

Best, -Lex

Caitlin Ottaway

unread,
May 31, 2022, 1:33:43 PM5/31/22
to FEDforum
Hi Lex,

Thank you for your suggestion! I took a look at the code compared to other tasks I had written, and noticed that the syntax for the time started with a while statement, instead of an if statement. I ended up changing the code to an if statement, and also added your suggestion of putting the current hour statement after the fed3 run. After running this updated program I believe that it is working now.

Best,
Caitlin

lightonuntilpokerandomized.ino

Ross Rudolph

unread,
Jun 10, 2022, 12:29:22 PM6/10/22
to FEDforum
Hi Caitlin!

I wanted to ask you how this training schedule that leads up to go/no-go has been working out for you, and also if the go/no-go task is the same one I was testing out before. I'm still hoping to get a go/no-go task going on our FED3s, so I'd love to hear how it's going for you if possible. Thank you!

Feel free to email me at kathryn....@einsteinmed.edu if you'd like! Thanks!

Best,
Kate
Reply all
Reply to author
Forward
0 new messages