def generateGao09e1(vpn): ''' Experiment 1 from Gao et al. (2009) Gao, T., Newman, G. E., & Scholl, B. J. (2009). The psychophysics of chasing: A case study in the perception of animacy. Cognitive psychology, 59(2), 154-179. vpn - tuple of ints, each value gives the subject id ''' # gao09e1 settings # TODO move settings to Settings.py nrtrials=15 maze=EmptyMaze((1,1),dispSize=(32,24),lw2cwRatio=0) chs=[0,60,120,180,240,300] Q.setTrialDur(10);Q.phiRange=(120,120) Q.setpDirChange([5.9,5.9,5.9]) block=0 #os.chdir('..') os.chdir('..') os.chdir('input/') for vp in vpn: vpname='vp%03d' % vp os.mkdir(vpname) os.chdir(vpname) i=0 r=np.zeros((2*6*nrtrials,2)) r[:,0]=np.random.permutation(2*6*nrtrials) for cond in range(6): for trial in range(nrtrials): Q.phiRange=(Q.phiRange[0],chs[cond]) trajectories=None while trajectories ==None: trajectories=generateTrial(5,maze=maze, rejectionDistance=5.0) #target present trial r[i,1]=cond fn='gao09e1%sb%dtrial%03d'% (vpname,block,i); np.save(fn,trajectories[:,:-1,:]);i+=1 #target absent trial r[i,1]=cond+6 fn='gao09e1%sb%dtrial%03d'% (vpname,block,i); np.save(fn,trajectories[:,1:,:]);i+=1 np.save('gao09e1order%sb%d'% (vpname,block),r) Q.save('SettingsTraj.pkl') os.chdir('..') os.chdir('..')
def generateBabyExperiment(vpn,nrtrials=10,blocks=1,conditions=[6,8],rd=0,pdch=None, dispSize=29,maze=None): '''my work in progress, baby experiment''' #os.chdir('..') if not pdch is None: Q.setpDirChange(pdch) os.chdir(Q.inputPath) mazes=[] Q.nrframes+= Q.refreshRate *5 print 'Generating Trajectories' for vp in vpn: vpname='vp%03d' % vp os.mkdir(vpname) os.chdir(vpname) r=[] phase=[0,1,1,2] for i in range((len(conditions)*nrtrials-len(phase))/2): if np.random.rand()>0.5: phase.extend([1,2]) else: phase.extend([2,1]) print 'phase', phase for block in range(blocks): i=0 for condition in conditions: for trial in range(nrtrials): if condition==conditions[0]: if np.random.rand()>0.5: r.extend([trial, trial+nrtrials]) else: r.extend([trial+nrtrials,trial]) trajectories=None while trajectories ==None: trajectories=generateTrial(condition, maze=EmptyMaze((1,1),dispSize=(dispSize,dispSize)),rejectionDistance=rd) #fn='%str%03dcond%02d'% (vpname,trial,conditions[order[trial]]) #fn = 'trial%03d' % trial trajectories=trajectories[(Q.refreshRate*5):] #print trajectories.shape fn='%sb%dtrial%03d'% (vpname,block,i) i+=1 print fn np.save(fn,trajectories) #r=np.random.permutation(nrtrials*len(conditions)) r=np.array(r) print r np.save('order%sb%d'% (vpname,block),r) np.save('phase%sb%d'% (vpname,block),phase) Q.save('SettingsTraj.pkl') os.chdir('..') os.chdir('..')