# This sample script is written for the 3rd stage of a 5CSRTT assay. # Initiator light needs to be triggered in order for all 5 stimulus lights # to be presented. Food reward can be obtained by entering any of the 5 stimulus # locations. # Users need to ensure that the correct asset is used in the script and saved # to the unit's Media directory. # Zantiks Ltd cannot guarantee this is how you want to run your experiments, # this script is offered only to demonstrate the capabilities of the system # and assist you in learning how to script for your research. # define experiment requirements DEFINE TRIALS 30 DEFINE HABITUATION_TIME 300 DEFINE INTERTRIAL_TIME 20 DEFINE INITIATION_TIME 20 DEFINE LIGHT_TIME 20 DEFINE FEED_TIME 20 # define variables DEFINE TRIAL_NUMBER 101 DEFINE TOT_NUM_INIT_CORRECT 102 DEFINE TOT_NUM_INIT_OMISSIONS 103 DEFINE TOT_NUM_FEEDER_CORRECT 104 DEFINE TOT_NUM_FEEDER_OMISSIONS 105 DEFINE TOT_NUM_STIM_CORRECT 106 DEFINE TOT_NUM_STIM_OMISSIONS 107 DEFINE INIT_RESPONSE 400 DEFINE FEEDER_RESPONSE 401 DEFINE STIMULUS_RESPONSE 402 DEFINE TRIAL 403 @101=0 # TRIAL NUMBER @102=0 # NUMBER OF INITIATION RESPONSES @103=0 # NUMBER OF INITIATION OMISSIONS @104=0 # NUMBER OF FEEDER RESPONSES @105=0 # NUMBER OF FEEDER OMISSIONS @TRIAL=0 # define the animal model tracking requirments (dependent on animal size) SET(TARGET_SIZE,15) SET(DETECTOR_THRESHOLD,5) # takes an autoreference required for tracking SET(AUTOREF_MODE,MOVEMENT) SET(AUTOREF_TIMEOUT,3) # load detector asset LOAD(ZONES,"5_CHOICE.bmp") # load light location via asset LOAD(LIGHTING,"5_CHOICE.bmp") SET(COUNTER1,COUNTER_ZERO) ACTION MAIN LIGHTS(ALL,OFF) LOGCREATE("RUNTIME|TEXT:|TEXT:TRIAL|TEXT:INITIATOR_RESPONSE_TYPE") LOGAPPEND("TEXT:INITIATOR_RESPONSE_TIME|TEXT:STIMULUS_RESPONSE_TYPE") LOGAPPEND("TEXT:STIMULUS_RESPONSE_TIME|TEXT:FEEDER_RESPONSE_TYPE") LOGAPPEND("TEXT:FEEDER_RESPONSE_TIME") LOGRUN() LOAD(OVERLAY_TEXT,"16,1:5CSRTT-Init & Stim training") AUTOREFERENCE() WAIT(HABITUATION_TIME) INVOKE(STIMULUSLIGHTTRAINING,TRIALS) LIGHTS(ALL,OFF) LOGCREATE("RUNTIME|TEXT:TOTAL_TRIALS|@101") LOGAPPEND("TEXT:NUMB_OF_INITIATIONS|@102") LOGAPPEND("TEXT:NUMB_OF_INIT_OMISSIONS|@103") LOGAPPEND("TEXT:NUMB_OF_STIMULUS_CORRECTS|@106") LOGAPPEND("TEXT:NUMB_OF_STIMULUS_OMISSIONS|@107") LOGAPPEND("TEXT:NUMB_OF_FEEDER_VISITS|@104") LOGAPPEND("TEXT:NUMB_OF_FEEDER_OMISSIONS|@105") LOGRUN() COMPLETE ACTION STIMULUSLIGHTTRAINING @INIT_RESPONSE=0 @FEEDER_RESPONSE=0 @STIMULUS_RESPONSE=0 IF @TRIAL = 0 @TRIAL_NUMBER = @TRIAL_NUMBER + 1 LOAD(OVERLAY_TEXT,"2,1:Trial @101") ENDIF SET(COUNTER1,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"INIbegin") LOGFIELD(1,COUNTER1) LOGFIELD(2,"INI_OMISSION") LIGHTS(LIGHT6,WHITE) DETECTOR(DETECTOR6,INITIATOR_CORRECT) WAIT(INITIATION_TIME) LIGHTS(LIGHT6,OFF) IF @INIT_RESPONSE=1 @TOT_NUM_INIT_CORRECT = @TOT_NUM_INIT_CORRECT + 1 LOAD(OVERLAY_TEXT,"1,1:Init @102") LOAD(OVERLAY_TEXT,"2,1:Trial @101") ELSE @TOT_NUM_INIT_OMISSIONS = @TOT_NUM_INIT_OMISSIONS + 1 LOAD(OVERLAY_TEXT,"1,1:Init @102") LOAD(OVERLAY_TEXT,"2,1:Trial @101") ENDIF WAIT(INTERTRIAL_TIME) LOGFIELD(COMMIT) COMPLETE ACTION INITIATOR_CORRECT @INIT_RESPONSE=1 LOGDATA(DATA_SNAPSHOT,"INIend") LOGDATA(DATA_SELECT,"INIbegin") LOGDATA(DATA_DELTA,"INIend") LIGHTS(LIGHT6,OFF) LOGFIELD(2,"INITIATED") LOGFIELD(3,TIME_DELTA) LOGFIELD(4,"OMISSION") LOGDATA(DATA_SNAPSHOT,"STIM_begin") LIGHTS(LIGHT1,WHITE) LIGHTS(LIGHT2,WHITE) LIGHTS(LIGHT3,WHITE) LIGHTS(LIGHT4,WHITE) LIGHTS(LIGHT5,WHITE) DETECTOR(DETECTOR1,CORRECT) DETECTOR(DETECTOR2,CORRECT) DETECTOR(DETECTOR3,CORRECT) DETECTOR(DETECTOR4,CORRECT) DETECTOR(DETECTOR5,CORRECT) WAIT(LIGHT_TIME) IF @STIMULUS_RESPONSE=1 @TOT_NUM_STIM_CORRECT = @TOT_NUM_STIM_CORRECT + 1 LOAD(OVERLAY_TEXT,"1,1:Init @102 Corr @106 Omiss @107") LOAD(OVERLAY_TEXT,"2,1:Trial @101") ELSE @TOT_NUM_STIM_OMISSIONS = @TOT_NUM_STIM_OMISSIONS + 1 LOAD(OVERLAY_TEXT,"1,1:Init @102 Corr @106 Omiss @107") LOAD(OVERLAY_TEXT,"2,1:Trial @101") ENDIF LOGFIELD(COMMIT) LIGHTS(ALL,OFF) COMPLETE ACTION CORRECT @STIMULUS_RESPONSE=1 LOGDATA(DATA_SNAPSHOT,"STIM_end") LOGDATA(DATA_SELECT,"STIM_begin") LOGDATA(DATA_DELTA,"STIM_end") LIGHTS(LIGHT6,OFF) LOGFIELD(4,"CORRECT") LOGFIELD(5,TIME_DELTA) LOGFIELD(6,"FEED_OMISSION") LOGDATA(DATA_SNAPSHOT,"FEED_begin") LIGHTS(LIGHT7,WHITE) FEEDER(1) DETECTOR(DETECTOR7,AT_FEEDER) WAIT(FEED_TIME) IF @FEEDER_RESPONSE=1 @TOT_NUM_FEEDER_CORRECT = @TOT_NUM_FEEDER_CORRECT + 1 ELSE @TOT_NUM_FEEDER_OMISSIONS = @TOT_NUM_FEEDER_OMISSIONS + 1 ENDIF LIGHTS(ALL,OFF) COMPLETE ACTION AT_FEEDER @FEEDER_RESPONSE=1 LOGDATA(DATA_SNAPSHOT,"FEED_end") LOGDATA(DATA_SELECT,"FEED_begin") LOGDATA(DATA_DELTA,"FEED_end") LOGFIELD(6,"FEED_TRIGGERED") LOGFIELD(7,TIME_DELTA) WAIT(FEED_TIME) LIGHTS(ALL,OFF) COMPLETE