Group: Forum Members
Posts: 13,
Visits: 79
|
Dear all,
Currently I have an experiment that shows 8 stimuli on the screen per trial and that counterbalances for 16 different groups, however, the way it is programmed has a lot of redundancy: for every different stimulus list a different trial is created, (and also for every different block order a different block type is created, but this is less relevant). I was wondering if there might be an easy way to create a variable 'stimulus_list_name' and set this variable to a different value for each subject, this way I can keep the structure of the trials exactly the same but change the stimulus list per subject. Any suggestions would be welcome,
Roelof
A coarse way of how it is structured here (full experiment is attached, without additional stimuli pictures):
#weighted hpos list for target: <list hposition_list_set8_1> /items =(50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,50.0,28.79,20.01,28.791,71.21,80.0,71.211,50.01,28.79,20.01,28.791,71.21,80.0,71.211,50.01,28.79,20.01,28.791,71.21,80.0,71.211,50.01,28.79,20.01,28.791,71.21,80.0,71.211,50.01,28.79,20.01,28.791,71.21,80.0,71.211,50.01,28.79,20.01,28.791,71.21,80.0,71.211,50.01) /selectionrate = always </list> <list hposition_list_set8_2> /items =(71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,71.21,28.79,20.01,28.791,50.0,80.0,71.211,50.01,28.79,20.01,28.791,50.0,80.0,71.211,50.01,28.79,20.01,28.791,50.0,80.0,71.211,50.01,28.79,20.01,28.791,50.0,80.0,71.211,50.01,28.79,20.01,28.791,50.0,80.0,71.211,50.01,28.79,20.01,28.791,50.0,80.0,71.211,50.01) /selectionrate = always </list> <list hposition_list_set8_3> /items =(80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,80.0,28.79,20.01,28.791,50.0,71.21,71.211,50.01,28.79,20.01,28.791,50.0,71.21,71.211,50.01,28.79,20.01,28.791,50.0,71.21,71.211,50.01,28.79,20.01,28.791,50.0,71.21,71.211,50.01,28.79,20.01,28.791,50.0,71.21,71.211,50.01,28.79,20.01,28.791,50.0,71.21,71.211,50.01) /selectionrate = always </list> etc, up to 8 lists, 1 per stimulus location
#-----------------#TRIAL TYPES:: ------------------------------------------------- LOC1_LOC1_LOC1_LOC1_LOC1_LOC1_LOC1_LOC1_LOC1_LOC1 <trial set8_target_diamond_dis_form_loc1> /ontrialbegin = [values.listnumber = 1; values.hpos1 = list.hposition_list_set8_1.nextvalue; values.vpos1 = list.vposition_list_set8_1.nextvalue; values.distractor_position_random = floor(rand(1,8)); values.filler_position1 = list.hpos_filler.nextvalue; values.filler_position1_v = list.vposition_list_set8_filler.nextvalue; values.filler_position2 = list.hpos_filler.nextvalue; values.filler_position2_v = list.vposition_list_set8_filler.nextvalue; values.filler_position3 = list.hpos_filler.nextvalue; values.filler_position3_v = list.vposition_list_set8_filler.nextvalue; values.filler_position4 = list.hpos_filler.nextvalue; values.filler_position4_v = list.vposition_list_set8_filler.nextvalue; values.filler_position5 = list.hpos_filler.nextvalue;values.filler_position5_v = list.vposition_list_set8_filler.nextvalue; values.filler_position6 = list.hpos_filler.nextvalue;values.filler_position6_v = list.vposition_list_set8_filler.nextvalue; values.filler_position7 = list.hpos_filler.nextvalue;values.filler_position7_v = list.vposition_list_set8_filler.nextvalue]
/ontrialbegin = [values.line_ori_target = floor(rand(1,3)); values.line_ori_filler1 = floor(rand(1,5)); values.line_ori_filler2 = floor(rand(1,5)); values.line_ori_filler3 = floor(rand(1,5));values.line_ori_filler4 = floor(rand(1,5)); values.line_ori_filler5 = floor(rand(1,5)); values.line_ori_filler6 = floor(rand(1,5)); values.line_ori_filler7 = floor(rand(1,5))] /ontrialbegin = [if(values.line_ori_target==1)values.correct_response=(44) else values.correct_response =(50)] /stimulusframes = [1=target_shape, horizontal_line1, vertical_line1,filler_1, filler_2, filler_3, filler_4, filler_5, filler_6, filler_7, filler_8, distractor_1, horizontal_line_slanted_up_left1, horizontal_line_slanted_up_right1, vertical_line_slanted_left1, vertical_line_slanted_right1,vertical_line_slanted_right2,vertical_line_slanted_left2,horizontal_line_slanted_up_left2,horizontal_line_slanted_up_right2,vertical_line_slanted_right3,vertical_line_slanted_left3,horizontal_line_slanted_up_left3,horizontal_line_slanted_up_right3,vertical_line_slanted_right4,vertical_line_slanted_left4,horizontal_line_slanted_up_left4,horizontal_line_slanted_up_right4,vertical_line_slanted_right5,vertical_line_slanted_left5,horizontal_line_slanted_up_left5,horizontal_line_slanted_up_right5,vertical_line_slanted_right6,vertical_line_slanted_left6,horizontal_line_slanted_up_left6,horizontal_line_slanted_up_right6, vertical_line_slanted_right7,vertical_line_slanted_left7,horizontal_line_slanted_up_left7,horizontal_line_slanted_up_right7,vertical_line_slanted_right8,vertical_line_slanted_left8,horizontal_line_slanted_up_left8,horizontal_line_slanted_up_right8,cover_picture] /validresponse = ("z","m") /iscorrectresponse = [trial.set8_target_diamond_dis_form_loc1.response == values.correct_response] /timeout = values.time_out /posttrialpause = values.post_trial_pause /pretrialpause = floor(rand(values.jitter_low,values.jitter_high)) /ontrialend= [list.vposition_list_set8_filler.reset();] /ontrialend= [list.hpos_filler.reset();] </trial>
<trial set8_target_diamond_no_dis_form_loc1> /ontrialbegin = [values.listnumber = 1; values.hpos1 = list.hposition_list_set8_1.nextvalue; values.vpos1 = list.vposition_list_set8_1.nextvalue; values.filler_position1 = list.hpos_filler.nextvalue; values.filler_position1_v = list.vposition_list_set8_filler.nextvalue; values.filler_position2 = list.hpos_filler.nextvalue; values.filler_position2_v = list.vposition_list_set8_filler.nextvalue; values.filler_position3 = list.hpos_filler.nextvalue; values.filler_position3_v = list.vposition_list_set8_filler.nextvalue; values.filler_position4 = list.hpos_filler.nextvalue; values.filler_position4_v = list.vposition_list_set8_filler.nextvalue; values.filler_position5 = list.hpos_filler.nextvalue;values.filler_position5_v = list.vposition_list_set8_filler.nextvalue; values.filler_position6 = list.hpos_filler.nextvalue;values.filler_position6_v = list.vposition_list_set8_filler.nextvalue; values.filler_position7 = list.hpos_filler.nextvalue;values.filler_position7_v = list.vposition_list_set8_filler.nextvalue] /ontrialbegin = [values.line_ori_target = floor(rand(1,3)); values.line_ori_filler1 = floor(rand(1,5)); values.line_ori_filler2 = floor(rand(1,5)); values.line_ori_filler3 = floor(rand(1,5));values.line_ori_filler4 = floor(rand(1,5)); values.line_ori_filler5 = floor(rand(1,5)); values.line_ori_filler6 = floor(rand(1,5)); values.line_ori_filler7 = floor(rand(1,5))] /ontrialbegin = [if(values.line_ori_target==1)values.correct_response=(44) else values.correct_response =(50)] /stimulusframes = [1=target_shape, horizontal_line1, vertical_line1,filler_1 , filler_2, filler_3, filler_4, filler_5, filler_6, filler_7, filler_8, distractor_1, horizontal_line_slanted_up_left1, horizontal_line_slanted_up_right1, vertical_line_slanted_left1, vertical_line_slanted_right1,vertical_line_slanted_right2,vertical_line_slanted_left2,horizontal_line_slanted_up_left2,horizontal_line_slanted_up_right2,vertical_line_slanted_right3,vertical_line_slanted_left3,horizontal_line_slanted_up_left3,horizontal_line_slanted_up_right3,vertical_line_slanted_right4,vertical_line_slanted_left4,horizontal_line_slanted_up_left4,horizontal_line_slanted_up_right4,vertical_line_slanted_right5,vertical_line_slanted_left5,horizontal_line_slanted_up_left5,horizontal_line_slanted_up_right5,vertical_line_slanted_right6,vertical_line_slanted_left6,horizontal_line_slanted_up_left6,horizontal_line_slanted_up_right6, vertical_line_slanted_right7,vertical_line_slanted_left7,horizontal_line_slanted_up_left7,horizontal_line_slanted_up_right7,vertical_line_slanted_right8,vertical_line_slanted_left8,horizontal_line_slanted_up_left8,horizontal_line_slanted_up_right8,cover_picture, sometext] /validresponse = ("z","m") /iscorrectresponse = [trial.set8_target_diamond_no_dis_form_loc1.response == values.correct_response] /timeout = values.time_out /posttrialpause = values.post_trial_pause /pretrialpause = floor(rand(values.jitter_low,values.jitter_high)) /ontrialend= [list.vposition_list_set8_filler.reset();] /ontrialend= [list.hpos_filler.reset();] </trial>
LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_LOC2_ <trial set8_target_diamond_dis_form_loc2> /ontrialbegin = [values.listnumber = 1; values.hpos1 = list.hposition_list_set8_2.nextvalue; values.vpos1 = list.vposition_list_set8_2.nextvalue; values.distractor_position_random = floor(rand(1,8)); values.filler_position1 = list.hpos_filler.nextvalue; values.filler_position1_v = list.vposition_list_set8_filler.nextvalue; values.filler_position2 = list.hpos_filler.nextvalue; values.filler_position2_v = list.vposition_list_set8_filler.nextvalue; values.filler_position3 = list.hpos_filler.nextvalue; values.filler_position3_v = list.vposition_list_set8_filler.nextvalue; values.filler_position4 = list.hpos_filler.nextvalue; values.filler_position4_v = list.vposition_list_set8_filler.nextvalue; values.filler_position5 = list.hpos_filler.nextvalue;values.filler_position5_v = list.vposition_list_set8_filler.nextvalue; values.filler_position6 = list.hpos_filler.nextvalue;values.filler_position6_v = list.vposition_list_set8_filler.nextvalue; values.filler_position7 = list.hpos_filler.nextvalue;values.filler_position7_v = list.vposition_list_set8_filler.nextvalue]
/ontrialbegin = [values.line_ori_target = floor(rand(1,3)); values.line_ori_filler1 = floor(rand(1,5)); values.line_ori_filler2 = floor(rand(1,5)); values.line_ori_filler3 = floor(rand(1,5));values.line_ori_filler4 = floor(rand(1,5)); values.line_ori_filler5 = floor(rand(1,5)); values.line_ori_filler6 = floor(rand(1,5)); values.line_ori_filler7 = floor(rand(1,5))] /ontrialbegin = [if(values.line_ori_target==1)values.correct_response=(44) else values.correct_response =(50)] /stimulusframes = [1=target_shape, horizontal_line1, vertical_line1,filler_1, filler_2, filler_3, filler_4, filler_5, filler_6, filler_7, filler_8, distractor_1, horizontal_line_slanted_up_left1, horizontal_line_slanted_up_right1, vertical_line_slanted_left1, vertical_line_slanted_right1,vertical_line_slanted_right2,vertical_line_slanted_left2,horizontal_line_slanted_up_left2,horizontal_line_slanted_up_right2,vertical_line_slanted_right3,vertical_line_slanted_left3,horizontal_line_slanted_up_left3,horizontal_line_slanted_up_right3,vertical_line_slanted_right4,vertical_line_slanted_left4,horizontal_line_slanted_up_left4,horizontal_line_slanted_up_right4,vertical_line_slanted_right5,vertical_line_slanted_left5,horizontal_line_slanted_up_left5,horizontal_line_slanted_up_right5,vertical_line_slanted_right6,vertical_line_slanted_left6,horizontal_line_slanted_up_left6,horizontal_line_slanted_up_right6, vertical_line_slanted_right7,vertical_line_slanted_left7,horizontal_line_slanted_up_left7,horizontal_line_slanted_up_right7,vertical_line_slanted_right8,vertical_line_slanted_left8,horizontal_line_slanted_up_left8,horizontal_line_slanted_up_right8,cover_picture] /validresponse = ("z","m") /iscorrectresponse = [trial.set8_target_diamond_dis_form_loc2.response == values.correct_response] /timeout = values.time_out /posttrialpause = values.post_trial_pause /pretrialpause = floor(rand(values.jitter_low,values.jitter_high)) /ontrialend= [list.vposition_list_set8_filler.reset();] /ontrialend= [list.hpos_filler.reset();] </trial>
<trial set8_target_diamond_no_dis_form_loc2> /ontrialbegin = [values.listnumber = 1; values.hpos1 = list.hposition_list_set8_2.nextvalue; values.vpos1 = list.vposition_list_set8_2.nextvalue; values.filler_position1 = list.hpos_filler.nextvalue; values.filler_position1_v = list.vposition_list_set8_filler.nextvalue; values.filler_position2 = list.hpos_filler.nextvalue; values.filler_position2_v = list.vposition_list_set8_filler.nextvalue; values.filler_position3 = list.hpos_filler.nextvalue; values.filler_position3_v = list.vposition_list_set8_filler.nextvalue; values.filler_position4 = list.hpos_filler.nextvalue; values.filler_position4_v = list.vposition_list_set8_filler.nextvalue; values.filler_position5 = list.hpos_filler.nextvalue;values.filler_position5_v = list.vposition_list_set8_filler.nextvalue; values.filler_position6 = list.hpos_filler.nextvalue;values.filler_position6_v = list.vposition_list_set8_filler.nextvalue; values.filler_position7 = list.hpos_filler.nextvalue;values.filler_position7_v = list.vposition_list_set8_filler.nextvalue] /ontrialbegin = [values.line_ori_target = floor(rand(1,3)); values.line_ori_filler1 = floor(rand(1,5)); values.line_ori_filler2 = floor(rand(1,5)); values.line_ori_filler3 = floor(rand(1,5));values.line_ori_filler4 = floor(rand(1,5)); values.line_ori_filler5 = floor(rand(1,5)); values.line_ori_filler6 = floor(rand(1,5)); values.line_ori_filler7 = floor(rand(1,5))] /ontrialbegin = [if(values.line_ori_target==1)values.correct_response=(44) else values.correct_response =(50)] /stimulusframes = [1=target_shape, horizontal_line1, vertical_line1,filler_1 , filler_2, filler_3, filler_4, filler_5, filler_6, filler_7, filler_8, distractor_1, horizontal_line_slanted_up_left1, horizontal_line_slanted_up_right1, vertical_line_slanted_left1, vertical_line_slanted_right1,vertical_line_slanted_right2,vertical_line_slanted_left2,horizontal_line_slanted_up_left2,horizontal_line_slanted_up_right2,vertical_line_slanted_right3,vertical_line_slanted_left3,horizontal_line_slanted_up_left3,horizontal_line_slanted_up_right3,vertical_line_slanted_right4,vertical_line_slanted_left4,horizontal_line_slanted_up_left4,horizontal_line_slanted_up_right4,vertical_line_slanted_right5,vertical_line_slanted_left5,horizontal_line_slanted_up_left5,horizontal_line_slanted_up_right5,vertical_line_slanted_right6,vertical_line_slanted_left6,horizontal_line_slanted_up_left6,horizontal_line_slanted_up_right6, vertical_line_slanted_right7,vertical_line_slanted_left7,horizontal_line_slanted_up_left7,horizontal_line_slanted_up_right7,vertical_line_slanted_right8,vertical_line_slanted_left8,horizontal_line_slanted_up_left8,horizontal_line_slanted_up_right8,cover_picture, sometext] /validresponse = ("z","m") /iscorrectresponse = [trial.set8_target_diamond_no_dis_form_loc2.response == values.correct_response] /timeout = values.time_out /posttrialpause = values.post_trial_pause /pretrialpause = floor(rand(values.jitter_low,values.jitter_high)) /ontrialend= [list.vposition_list_set8_filler.reset();] /ontrialend= [list.hpos_filler.reset();] </trial>
LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_LOC3_ trial set8_target_diamond_dis_form_loc3> etc etc
#blocks:::::::::::::: #LOC_1__#LOC_1__#LOC_1__#LOC_1__#LOC_1__ <block dis1> /bgstim = (reminder_text_2, reminder_text, fix_cross_picture) /preinstructions = (reminder_instructions) /trials= [1-120=noreplace(set8_target_diamond_dis_form_loc1)] /blockfeedback = (latency, correct) /screencolor = black </block> <block no_dis1> /bgstim = (reminder_text_2, reminder_text, fix_cross_picture) /preinstructions = (reminder_instructions) /trials= [1-120=noreplace(set8_target_diamond_no_dis_form_loc1)] /blockfeedback = (latency, correct) /screencolor = black </block> etc
######## execution of the experiment:::::::::::::::::::::::: #subjects starting WITH distractor LOCATION 1LOCATION 1LOCATION 1LOCATION 1 <expt> / subjects = (1 of 16) / preinstructions = (intro,intro_2, intro_3) / postinstructions = (end_of_experiment) / blocks = [1= begin_questions, practice, dis1, no_dis1, dis1, no_dis1, end_questions, code] </expt> <expt> / subjects = (2 of 16) / preinstructions = (intro,intro_2, intro_3) / postinstructions = (end_of_experiment) / blocks = [1= begin_questions, practice, no_dis1, dis1, no_dis1, dis1, end_questions, code] </expt>
LOCATION 2LOCATION 2LOCATION 2LOCATION 2 333 -- 44444444 <expt> / subjects = (3 of 16) / preinstructions = (intro,intro_2, intro_3) / postinstructions = (end_of_experiment) / blocks = [1= begin_questions, practice, no_dis2, dis2, no_dis2, dis2, end_questions code] </expt> <expt> / subjects = (4 of 16) / preinstructions = (intro,intro_2, intro_3) / postinstructions = (end_of_experiment) / blocks = [1= begin_questions, practice, no_dis2, dis2, no_dis2, dis2, end_questions code] </expt>
LOCATION 3 ETC ETC
|