# This sample script is written for the 5th stage of a 2 choice discrimination assay. # Initiator light needs to be entered in order for both colour stimulus lights are to be presented. # Food reward can be obtained by entering the correct light location. # You can change the stimuli colours on lines 21 and 22. Colour1 is the rewarded colour. # 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 COLOUR1 BLUE DEFINE COLOUR2 GREEN DEFINE FEED_TIME 20 DEFINE LIGHT_TIME 20 DEFINE INTERTRIAL_TIME 60 DEFINE HABITUATION_TIME 0 DEFINE CHOICE_TIME 20 DEFINE TRIALS 30 # 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,30) # set light stimuli coordinates on the screen SETLIGHT(LIGHT2,SQUARE,1475,300,140) SETLIGHT(LIGHT4,SQUARE,1475,700,140) SETLIGHT(LIGHT6,SQUARE,325,500,140) SETLIGHT(LIGHT7,SQUARE,150,500,140) # loads tracking assets LOAD(ZONES,"5_CHOICE.bmp") # sets the counters for throughout the script SET(COUNTER1,COUNTER_ZERO) # COUNTER1 is the number of trials. SET(COUNTER2,COUNTER_ZERO) # COUNTER2 is the number of initiated trials while the initiator light is on. SET(COUNTER3,COUNTER_ZERO) # COUNTER3 is the number of total correct choices made. SET(COUNTER4,COUNTER_ZERO) # COUNTER4 is the number of correct choices on the left side. SET(COUNTER5,COUNTER_ZERO) # COUNTER5 is the number of correct choices on the right side. SET(COUNTER6,COUNTER_ZERO) # COUNTER6 is the number of total incorrect choices. SET(COUNTER7,COUNTER_ZERO) # COUNTER7 is the number of incorrect choices on the left side. SET(COUNTER8,COUNTER_ZERO) # COUNTER8 is the number of incorrect choices on the right side. SET(COUNTER9,COUNTER_ZERO) # COUNTER9 is the number of feeder visits. SET(COUNTER10,COUNTER_ZERO) # COUNTER10 is the number of times the rewarded stimulus displayed on the left side. SET(COUNTER11,COUNTER_ZERO) # COUNTER11 is the number of times the rewarded stimulus displayed on the right side. ACTION MAIN LIGHTS(ALL,OFF) LOGCREATE("RUNTIME|TEXT:|TEXT:|TEXT:TRIAL|TEXT:INITIATOR_VISIT") LOGAPPEND("TEXT:TIME_INITIATOR_ON|TEXT:REWARDED_COLOUR") LOGAPPEND("TEXT:TIME_OF_INI_VISIT|TEXT:CHOICE ACCURACY") LOGAPPEND("TEXT:TIME_OF_STIM_VISIT|TEXT:FEEDER_VISIT") LOGAPPEND("TEXT:TIME_OF_FIRST_FEEDER_VISIT|TEXT:FEEDER_ENTRIES") LOGAPPEND("TEXT:TOTAL_TIME_AT_FEEDER|TEXT:REWARDED_SIDE|TEXT:LEFT_CORRECT") LOGAPPEND("TEXT:LEFT_INCORRECT|TEXT:RIGHT_CORRECT|TEXT:RIGHT_INCORRECT") LOGRUN() AUTOREFERENCE() WAIT(HABITUATION_TIME) VIDEO(3000,"2choice_discrimination") LOGDATA(DATA_SNAPSHOT,"BEGIN") INVOKE(TWO_CHOICE_DISCRIMINATION,TRIALS) LOGDATA(DATA_SNAPSHOT,"AFTER") LOGDATA(DATA_SELECT,"BEGIN") LOGDATA(DATA_DELTA,"AFTER") LIGHTS(ALL,OFF) LOGCREATE("TEXT:|TEXT:|TEXT:|TEXT:---SUMMARY---") LOGRUN() LOGCREATE("RUNTIME:|TEXT:|TEXT:|TEXT:TOTAL_TRIALS") LOGAPPEND("TEXT:TOTAL_OF_INITIATOR_VISITS|TEXT:|TEXT:|TEXT:") LOGAPPEND("TEXT:TOTAL_CORRECT|TEXT:TOTAL_INCORRECT") LOGAPPEND("TEXT:TOTAL_FEEDER_TRIGGERS|TEXT:|TEXT:") LOGAPPEND("TEXT:TOTAL_STIM_ON_LEFT|TEXT:TOTAL_STIM_ON_RIGHT") LOGAPPEND("TEXT:TOTAL_LEFT_CORRECT|TEXT:TOTAL_LEFT_INCORRECT") LOGAPPEND("TEXT:TOTAL_RIGHT_CORRECT|TEXT:TOTAL_RIGHT_INCORRECT") LOGAPPEND("TEXT:TOTAL_ARENA_DISTANCE") LOGRUN() LOGCREATE("RUNTIME|TEXT:|TEXT:|COUNTER1") LOGAPPEND("COUNTER2|TEXT:|TEXT:|TEXT:|COUNTER3|COUNTER6") LOGAPPEND("COUNTER9|TEXT:|TEXT:|COUNTER10|COUNTER11") LOGAPPEND("COUNTER4|COUNTER7|COUNTER5|COUNTER8|ARENA_DISTANCES:A1") LOGRUN() COMPLETE ACTION TWO_CHOICE_DISCRIMINATION SET(COUNTER1,COUNTER_INC) LIGHTS(LIGHT6,WHITE) LOGFIELD(1," ") LOGFIELD(2,COUNTER1) LOGFIELD(3,"OMISSION") LOGFIELD(4,RUNTIME) #LOGFIELD(5,"OMISSION") LOGFIELD(7,"OMISSION") LOGDATA(DATA_SNAPSHOT,"BEGINdiscrimination") DETECTOR(DETECTOR6,CHOOSE_LOCATION) WAIT(LIGHT_TIME) LOGDATA(DATA_SNAPSHOT,"AFTERdiscrimination") LOGDATA(DATA_SELECT,"BEGINdiscrimination") LOGDATA(DATA_DELTA,"AFTERdiscrimination") LOGFIELD(COMMIT) LOGCREATE("TEXT:|TEXT:|TEXT:|COUNTER1|TEXT:") LOGAPPEND("TEXT:|TEXT:|TEXT:|TEXT:|TEXT:|TEXT:") LOGAPPEND("TEXT:|ZONE_COUNTERS:Z7|ZONE_TIMERS:Z7") LOGRUN() LIGHTS(LIGHT6,OFF) WAIT(INTERTRIAL_TIME) COMPLETE ACTION CHOOSE_LOCATION LIGHTS(LIGHT6,OFF) SELECT(CORRECT_STIM_LEFT,CORRECT_STIM_RIGHT) COMPLETE ACTION CORRECT_STIM_LEFT LIGHTS(ALL,OFF) LOGFIELD(6,RUNTIME) LOGFIELD(3,"TRIGGERED") SET(COUNTER2,COUNTER_INC) LOGFIELD(5,"COLOUR1") LOGFIELD(13,"LEFT") SET(COUNTER10,COUNTER_INC) INVOKE(LT2COLOUR1_LT4COLOUR2,1) DETECTOR(DETECTOR2,COLOUR1_LEFT_CORRECT) DETECTOR(DETECTOR4,COLOUR2_RIGHT_INCORRECT) WAIT(CHOICE_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION CORRECT_STIM_RIGHT LIGHTS(ALL,OFF) LOGFIELD(6,RUNTIME) LOGFIELD(3,"TRIGGERED") SET(COUNTER2,COUNTER_INC) LOGFIELD(5,"COLOUR1") LOGFIELD(13,"RIGHT") SET(COUNTER11,COUNTER_INC) INVOKE(LT2COLOUR2_LT4COLOUR1,1) DETECTOR(DETECTOR2,COLOUR2_LEFT_INCORRECT) DETECTOR(DETECTOR4,COLOUR1_RIGHT_CORRECT) WAIT(CHOICE_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION COLOUR1_LEFT_CORRECT SET(COUNTER3,COUNTER_INC) SET(COUNTER4,COUNTER_INC) LIGHTS(ALL,OFF) LOGFIELD(8,RUNTIME) LOGFIELD(7,"CORRECT") LOGFIELD(9,"OMISSION") LOGFIELD(14,"1") LIGHTS(LIGHT7,WHITE) FEEDER(1) DETECTOR(DETECTOR7,ATFEEDER) WAIT(FEED_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION COLOUR1_RIGHT_CORRECT SET(COUNTER3,COUNTER_INC) SET(COUNTER5,COUNTER_INC) LIGHTS(ALL,OFF) LOGFIELD(8,RUNTIME) LOGFIELD(7,"CORRECT") LOGFIELD(9,"OMISSION") LOGFIELD(16,"1") LIGHTS(LIGHT7,WHITE) FEEDER(1) DETECTOR(DETECTOR7,ATFEEDER) WAIT(FEED_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION COLOUR2_LEFT_INCORRECT SET(COUNTER6,COUNTER_INC) SET(COUNTER7,COUNTER_INC) LIGHTS(ALL,OFF) LOGFIELD(8,RUNTIME) LOGFIELD(7,"INCORRECT") LOGFIELD(15,"1") WAIT(FEED_TIME) COMPLETE ACTION COLOUR2_RIGHT_INCORRECT SET(COUNTER6,COUNTER_INC) SET(COUNTER8,COUNTER_INC) LIGHTS(ALL,OFF) LOGFIELD(8,RUNTIME) LOGFIELD(7,"INCORRECT") LOGFIELD(17,"1") WAIT(FEED_TIME) COMPLETE ACTION ATFEEDER SET(COUNTER9,COUNTER_INC) LIGHTS(LIGHT7,WHITE) LOGFIELD(10,RUNTIME) LOGFIELD(9,"TRIGGERED") WAIT(FEED_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION LT2COLOUR1_LT4COLOUR2 LIGHTS(LIGHT2,COLOUR1) LIGHTS(LIGHT4,COLOUR2) COMPLETE ACTION LT2COLOUR2_LT4COLOUR1 LIGHTS(LIGHT2,COLOUR2) LIGHTS(LIGHT4,COLOUR1) COMPLETE