// $Id: makepopspikenq.hoc,v 1.6 2010/10/11 14:16:47 samn Exp $
// uses batch data to make nqs with population spike info
{colW=colH=3 mytstop=1e3}
strdef strrcs
strrcs="nqsnet.hoc,65,network.hoc,125,params.hoc,112,run.hoc,53,nload.hoc,182"
rcsopen(strrcs) // load sim from RCS
mytstop=htmax=tstop=20e3
rcsopen("load.hoc",87)
objref nqspk
nqspk=new NQS("sidx","SIMTYP","DISCONCOL","col","spks","binsz","avgE","spkth")
objref vspkth,vbinsz
{vspkth=new Vector() vspkth.append(0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5)}
vbinsz=new Vector()
vbinsz.append(10,15,20,25,30,35,40,45,50)
objref nqtmp
nqtmp=new NQS(1)
nqtmp.s[0].s="E"
nqtmp.verbose=0
proc myrspks () { local i,j,k,l,Espks,th,spkth
for i=0,nqbatch.v.size-1 {
print "sidx " , i
{myloadone(i) SIMTYP=nqbatch.get("SIMTY",i).x DISCONCOL=nqbatch.get("DISCONCOL",i).x}
for vtr(&binsz,vbinsz) {
print "sidx " , i , " binsz " , binsz
initAllMyNQs()
nqtmp.v.resize(nqCTY.v[E2].size)
for vtr(&spkth,vspkth) { th=int(spkth*col.ecells)
for j=0,numcols-1 { nqtmp.v.fill(0)
for col.ctt(&k) if(!ice(k)) nqtmp.v.add(nqCTY[j].v[k])
Espks=nqtmp.select("E",">=",th)
if(Espks>0) print Espks
nqspk.append(i,SIMTYP,DISCONCOL,j,Espks,binsz,nqtmp.v.mean,spkth)
}
}
}
}
nqspk.sv("/u/samn/intfcol/data/10oct10_E_SPKS_D.nqs")
}
//* prit - print stats
proc prit () { local i,bsz,th,a localobj vec
nqspk.verbose=0 bsz=$1 th=$2 a=allocvecs(vec)
print "totals"
for case(&SIMTYP,0,E2,I2,-E2,&i) for DISCONCOL=0,1 {
if(nqspk.select("SIMTYP",SIMTYP,"DISCONCOL",DISCONCOL,"spkth",th,"binsz",bsz)) {
print "SIMTYP ",SIMTYP,"DISCONCOL ",DISCONCOL,nqspk.getcol("spks").sum
}
}
print "\nper minute:"
for case(&SIMTYP,0,E2,I2,-E2,-I2,&i) for DISCONCOL=0,1 {
if(nqspk.select("SIMTYP",SIMTYP,"DISCONCOL",DISCONCOL,"spkth",th,"binsz",bsz)) {
vec.resize(0) vec.copy(nqspk.getcol("spks"))
print "SIMTYP ",SIMTYP,"DISCONCOL ",DISCONCOL,"E:",3*vec.mean,"per minute"
}
}
dealloc(a)
nqspk.verbose=1
}
// time("myrspks()") // 24.090833 m