# 200 e and 50 I integrate & fire # random applied current, random conductances # # prevent tables from being recomputed each time params change @ autoeval=0 table wee % 40000 0 39999 ran(1)/100 table wei % 10000 0 9999 ran(1)/100 table wie % 10000 0 9999 ran(1)/25 table wii % 2500 0 2499 ran(1)/25 # multiply by the synapses special see=mmult(200,200,wee,se0) special sei=mmult(200,50,wei,se0) special sie=mmult(50,200,wie,si0) special sii=mmult(50,50,wii,si0) # random currents table r_e % 200 0 199 ran(1)-.5 table r_i % 50 0 49 ran(1)-.5 # parameters par tau_e=20,tau_i=20,ele=-65,eli=-65 par vte=-50,vti=-50 par ver=-60,vir=-70 par taue=4,taui=10 # ODEs ve[0..199]'=(-(ve[j]-ele) + ie0+ie1*r_e([j])-gee*see([j])*(ve[j]-eex)-gie*sie([j])*(ve[j]-ein))/tau_e vi[0..49]'=(-(vi[j]-eli) + ii0+ii1*r_i([j])-gei*sei([j])*(vi[j]-eex)-gii*sii([j])*(ve[j]-ein))/tau_i se[0..199]'=-se[j]/taue si[0..49]'=-si[j]/taui # each time votlage crosses threshold, reset and set synapse to 1 global 1 ve[0..199]-vte {se[j]=1;ve[j]=ver} global 1 vi[0..49]-vti {si[j]=1;vi[j]=vir} # more parameters par ie0=10,ie1=.5 par ii0=10,ii1=.5 par gee=.02,gie=.05,gii=.02,gei=.02 par eex=0,ein=-75 # initial data init ve[0..199]=-65 init vi[0..49]=-65 # numerical stuff @ total=200,meth=euler,nout=10,dt=.01 done