Behavior Controller for Associative Learning and Memory (B-CALM): Software and Hardware Introduction
This readme file briefly introduces the supplementary files for the Behavior controller system for assoctiative learning and memory (B-CALM). You can access the paper for free here
- This file contains the circuit schematic, building instructions and parts purchase list for our electronic system used in B-CALM.
- This file contains the MATLAB code and GUI setup instructions, task running instructions, the graphical user interface (GUI) parameters full explanation, and possible future tasks and parameter setting explanation.
The first part of this folder contains the MATLAB GUI code--headfix_GUI.m, the actual GUI figure file made in GUIDE--headfix_GUI.fig, and the data saving and plotting file for current experiment--conditioning_prog.m.
We have also developed a programmatic GUI, running code with the plotting function in the programmatic GUI folder to adapt to MATLAB's future versions which will discontinue GUIDE.
The second part of this folder contains five Arduino task scripts for running five different experiments. Task parameters and instructions of running each one are documented in the Task running overview.
- Namlab_behavior_cues.ino - This is experiment mode one in the GUI setting. This is for cue triggered experiments (both Pavlovian and cue-action-reward).
- Namlab_behavior_randomrewards.ino - This is experiment mode two in the GUI, for lick training animals with a poission distribution of rewards.
- Namlab_behavior_lickforreward.ino - This is experiment mode three in the GUI, for operant/instrumental action-reward associated tasks.
- Namlab_behavior_decisionmaking.ino - This is experiment mode four in the GUI, mainly for decision making tasks with the possible implentation of different cues, reward magnitudes, and delays for either choices.
- Namlab_behavior_ramptiming.ino - This is experiment mode six in the GUI, for studying a ramp timing task with reward magnitude varying based on the ramp (not part of the B-CALM paper).
(These five experiments include nearly all possible task combinations and setups for running common associative learning and memory tasks. Other experiment mode task files beyond the scope of the paper are not included here currently since they are being validated.
This folder contains five MATLAB data analysis codes for analyzing the five different tasks we've demonstrated in the paper. All analysis codes are documented to guide users to understand the logic behind our analysis.
- cueactionrewardtask.m - This file is for analyzing and plotting the Cue-action-reward task in the paper.
- desisionmakingtask.m - This file is for analyzing the decision-making task in the paper.
- operanttask.m This is for analyzing the operant conditioning task demonstrated in the paper.
- pavloviantask.m - This file is for analyzing the Pavlovian conditioning file shown in the paper.
- timingtask.m - This file is for analyzing the interval timing task demonstrated in the paper.
This folder contains:
- head_fixed stage setup overview - this file explains the instructions for building our current head_fixed stage and the reward delivery system. It also contains the overview pictures for our 3D printing parts, lick tube positioning instructions and the head-fixed stage parts purchase information index.
- CAD files folder - this folder contains the head-fixed stage base design, the head-fixed holder top piece, and the head-fixed holder bottom piece. All three items were custom made through eMachineShop. (Orders require submiting quotes with those CAD files through the eMachineShop website. Please note that this is not to endorse eMachineShop. Any machine shop should be able to make these parts)
- 3D printing files - this folder contains all the 3D printing files we utilized in the head-fixed stage setup.
- Final_2_lick_tube_holder_levelholes.stl - this is the middle two lick tube holder piece.
- Final_retraction_solenoid_wing_holder.stl - this is the two retraction solenoid wing holder.
- Final_left_retraction_solenoid_attachment.stl - this is the left side retraction solenoid attachment piece. Left is relative to the mouse snout.
- Final_right_retraction_solenoid_attachment_30mm.stl - this is the right side retraction solenoid attachment piece.