# This sample script is written for a mild shock aversion learning assay. # Users need to ensure that the correct assets are used in the script and saved to the unit's Media directory. # The metal shocking plates should be plugged in and placed at the ends of the tank. # 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 UNIT_TIME 300 DEFINE PROBE_TIME 300 # settings for tracking (dependent on organism size) SET(TARGET_SIZE,15) SET(DETECTOR_THRESHOLD,5) # settings for autoreference SET(AUTOREF_MODE,MOVEMENT) SET(AUTOREF_TIMEOUT,30) DEFINE X_DRAWTRACKS 30011 # enables track drawing DEFINE X_TRACKTIME 30016 # enables track length (time) edit # loads the voltage level for the shocking plates SET(VOLTAGE_LEVEL,9000) # sets counters for data output to start at 0 SET(COUNTER1,COUNTER_ZERO) SET(COUNTER2,COUNTER_ZERO) SET(COUNTER3,COUNTER_ZERO) ACTION MAIN LIGHTS(ALL,OFF) AUTOREFERENCE() SET(X_DRAWTRACKS, 1) INVOKE(HABITUATION,1) # loads tracking assets LOAD(ARENAS,"LENGTH_4.bmp") LOAD(ZONES,"WIDTH_2.bmp") # writes headings for data export LOGCREATE("RUNTIME|TEXT:PHASE|TEXT:TIME_BIN") LOGAPPEND("TEXT:A1|TEXT:A2|TEXT:A3|TEXT:A4") #whole arena LOGAPPEND("TEXT:A1.Z1.D|TEXT:A1.Z2.D|TEXT:A2.Z1.D|TEXT:A2.Z2.D") #arena&zone D = distance travelled in zone LOGAPPEND("TEXT:A3.Z1.D|TEXT:A3.Z2.D|TEXT:A4.Z1.D|TEXT:A4.Z2.D") LOGAPPEND("TEXT:A1.Z1.T|TEXT:A1.Z2.T|TEXT:A2.Z1.T|TEXT:A2.Z2.T") #arena&zone T = time spent in zone LOGAPPEND("TEXT:A3.Z1.T|TEXT:A3.Z2.T|TEXT:A4.Z1.T|TEXT:A4.Z2.T") LOGAPPEND("TEXT:A1.Z1.C|TEXT:A1.Z2.C|TEXT:A2.Z1.C|TEXT:A2.Z2.C") #arena&zone C = count/entires into zone LOGAPPEND("TEXT:A3.Z1.C|TEXT:A3.Z2.C|TEXT:A4.Z1.C|TEXT:A4.Z2.C") LOGRUN() LOGDATA(DATA_SNAPSHOT,"begin") INVOKE(BASELINE_SEQ,3) INVOKE(SHOCK_SEQ,2) INVOKE(PROBE_SEQ,1) LOGDATA(DATA_SNAPSHOT,"after") LOGDATA(DATA_SELECT,"begin") LOGDATA(DATA_DELTA,"after") LOGCREATE("RUNTIME|TEXT:TOTAL|TEXT:|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION HABITUATION INVOKE(LT1CHECKLT2GREY,1) WAIT(UNIT_TIME) INVOKE(LT1GREYLT2CHECK,1) WAIT(UNIT_TIME) LIGHTS(ALL,OFF) COMPLETE ACTION BASELINE_SEQ VIDEO(1800,"baseline") INVOKE(BASELINE,1) INVOKE(BASELINE_SWITCH,1) COMPLETE ACTION BASELINE SET(COUNTER1,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"BEGIN1") INVOKE(LT1CHECKLT2GREY,1) LOGDATA(DATA_SNAPSHOT,"BEGIN") WAIT(UNIT_TIME) LOGDATA(DATA_SNAPSHOT,"AFTER1") LOGDATA(DATA_SELECT,"BEGIN1") LOGDATA(DATA_DELTA,"AFTER1") LOGCREATE("RUNTIME|TEXT:BASELINE|COUNTER1|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-2 Z1-4|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION BASELINE_SWITCH SET(COUNTER1,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"BEGIN2") INVOKE(LT1GREYLT2CHECK,1) WAIT(UNIT_TIME) LOGDATA(DATA_SNAPSHOT,"AFTER2") LOGDATA(DATA_SELECT,"BEGIN2") LOGDATA(DATA_DELTA,"AFTER2") LOGCREATE("RUNTIME|TEXT:BASELINE|COUNTER1|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION SHOCK_SEQ VIDEO(20,"SHOCK") INVOKE(SHOCK,1) INVOKE(AFTER_SHOCK,1) COMPLETE ACTION SHOCK SET(COUNTER2,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"SHOCK") INVOKE(LT1CHECKLT2CHECK,1) WAIT(1.5) ZCOMMAND("V3#1 P70 V3#0") LOGDATA(DATA_SNAPSHOT,"AFTERSHOCK") LOGDATA(DATA_SELECT,"SHOCK") LOGDATA(DATA_DELTA,"AFTERSHOCK") LOGCREATE("RUNTIME|TEXT:SHOCK|COUNTER2|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION AFTER_SHOCK SET(COUNTER2,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"SHOCK") INVOKE(LT1GREYLT2GREY,1) WAIT(8.5) LOGDATA(DATA_SNAPSHOT,"AFTERSHOCK2") LOGDATA(DATA_SELECT,"SHOCK") LOGDATA(DATA_DELTA,"AFTERSHOCK2") LOGCREATE("RUNTIME|TEXT:AFTER_SHOCK|COUNTER2|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION PROBE_SEQ VIDEO(120,"PROBE") INVOKE(PROBE,1) INVOKE(PROBE_SWITCH,1) COMPLETE ACTION PROBE VIDEO(120,"PROBE") SET(COUNTER3,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"BEGINPROBE") INVOKE(LT1CHECKLT2GREY,1) WAIT(PROBE_TIME) LOGDATA(DATA_SNAPSHOT,"AFTERPROBE") LOGDATA(DATA_SELECT,"BEGINPROBE") LOGDATA(DATA_DELTA,"AFTERPROBE") LOGCREATE("RUNTIME|TEXT:PROBE|COUNTER3|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() COMPLETE ACTION PROBE_SWITCH SET(COUNTER3,COUNTER_INC) LOGDATA(DATA_SNAPSHOT,"BEGINPROBE2") INVOKE(LT1GREYLT2CHECK,1) WAIT(PROBE_TIME) LOGDATA(DATA_SNAPSHOT,"AFTER2PROBE") LOGDATA(DATA_SELECT,"BEGINPROBE2") LOGDATA(DATA_DELTA,"AFTER2PROBE") LOGCREATE("RUNTIME|TEXT:PROBE|COUNTER3|ARENA_DISTANCES:A1-4") LOGAPPEND("ZONE_DISTANCES:A1-4 Z1-2|ZONE_TIMERS:A1-4 Z1-2|ZONE_COUNTERS:A1-4 Z1-2") LOGRUN() LIGHTS(ALL,OFF) COMPLETE ######### actions defining screen lights ########## #################################################### ACTION LT1GREYLT2CHECK SETLIGHT(LIGHT1,SPRITE,30,73,146) SETLIGHT(LIGHT2,SPRITE,176,73,146) LOAD(SPRITE_FILE,"1:grey128x128") LOAD(SPRITE_FILE,"2:check640x640") LIGHTS(LIGHT1,ON) LIGHTS(LIGHT2,ON) COMPLETE ACTION LT1CHECKLT2GREY SETLIGHT(LIGHT1,SPRITE,30,73,146) SETLIGHT(LIGHT2,SPRITE,176,73,146) LOAD(SPRITE_FILE,"1:check640x640") LOAD(SPRITE_FILE,"2:grey128x128") LIGHTS(LIGHT1,ON) LIGHTS(LIGHT2,ON) COMPLETE ACTION LT1GREYLT2GREY SETLIGHT(LIGHT1,SPRITE,30,73,146) SETLIGHT(LIGHT2,SPRITE,176,73,146) LOAD(SPRITE_FILE,"1:grey128x128") LOAD(SPRITE_FILE,"2:grey128x128") LIGHTS(LIGHT1,ON) LIGHTS(LIGHT2,ON) COMPLETE ACTION LT1CHECKLT2CHECK SETLIGHT(LIGHT1,SPRITE,30,73,146) SETLIGHT(LIGHT2,SPRITE,176,73,146) LOAD(SPRITE_FILE,"1:check640x640") LOAD(SPRITE_FILE,"2:check640x640") LIGHTS(LIGHT1,ON) LIGHTS(LIGHT2,ON) COMPLETE