Example #1
0
	def analyzeLoop(self):
		respDelay=self.params['respDelay']
		res=int(self.params['res'])
		pre=int(self.params['pre'])
		dur=int(self.params['dur'])
		rep=self.repCounter
		step=self.stepCounter-1

		cn=int(self.params['box_order'][step])
		lineNum=cn
		'''
		if mod(res,2)==0:
			lineNum=cn-(res**2/2+1)
		else:
			lineNum=cn-(res**2/2.-res/2.+1)
		'''
		
		if self.params['analysis']=='spike' or self.params['analysis']=='spikes':
			reload(spikeAnalysis)
			spt=spikeAnalysis.findspikes(self.dataIn[1],slope=self.params['slope'])
			if len(spt)>0 or True:
				spt=spt*DT
				preAmp=len(nonzero(spt<pre+respDelay)[0])
				durAmp=len(intersect1d(nonzero(spt>pre+respDelay)[0],nonzero(spt<pre+dur+respDelay)[0]))
				postAmp=len(intersect1d(nonzero(spt>pre+dur+respDelay)[0],nonzero(spt<pre+dur+respDelay+500)[0]))

				newValues=((float(durAmp)/dur-float(preAmp)/(pre+respDelay))*1e3,1e3*(float(postAmp)/500-float(preAmp)/(pre+respDelay)))
				
				self.analysisDict['bgf']=1e3*float(preAmp)/(pre+respDelay)
				durFR=1e3*float(durAmp)/dur
				postFR=1e3*float(postAmp)/500
				
				print 'spike rate (pre,dur,post): (%1.0f, %1.0f, %1.0f,)' % (self.analysisDict['bgf'],durFR,postFR)
			else:
				newValues=(0,0)
		else:
			d=self.dataIn[1]
			preAmp=d[0:int(pre/DT)].mean()
			durAmp=d[int((pre+respDelay)/DT):int((pre+dur+respDelay)/DT)].mean()
			postAmp=d[int((pre+dur+respDelay)/DT):int((pre+dur+respDelay+500)/DT)].mean()
			newValues=(durAmp-preAmp,postAmp-preAmp)
		self.RFLineDur[rep-1][lineNum]=newValues[0]
		self.RFLinePost[rep-1][lineNum]=newValues[1]
Example #2
0
	def analyzeLoop(self):
		respDelay=self.params['respDelay']
		pre=int(self.params['pre'])
		dur=int(self.params['dur'])
		step=int(mod(self.repCounter-1,len(self.params['box_order'])))
		cn=int(self.params['box_order'][step])
		res=int(self.params['res'])
		[xi,yi]=meshgrid(arange(res),arange(res))
		self.visParams['step']=step+1
		self.visParams['squarenum']=cn

		if self.params['analysis']=='spike':
			reload(spikeAnalysis)
			spt=spikeAnalysis.findspikes(self.dataIn[1],slope=self.params['slope'])
			
			spt=spt*DT
			preAmp=len(nonzero(spt<pre+respDelay)[0])
			durAmp=len(intersect1d(nonzero(spt>pre+respDelay)[0],nonzero(spt<pre+dur+respDelay)[0]))
			postAmp=len(intersect1d(nonzero(spt>pre+dur+respDelay)[0],nonzero(spt<pre+dur+respDelay+500)[0]))

			newValues=((float(durAmp)/dur-float(preAmp)/(pre+respDelay))*1e3,1e3*(float(postAmp)/500-float(preAmp)/(pre+respDelay)))
			
			self.analysisDict['bgf']=1e3*float(preAmp)/(pre+respDelay)
			durFR=1e3*float(durAmp)/dur
			postFR=1e3*float(postAmp)/500
			
			print 'spike rate (pre,dur,post): (%1.0f, %1.0f, %1.0f,)' % (self.analysisDict['bgf'],durFR,postFR)
		else:
			d=self.dataIn[1]
			preAmp=d[0:int(pre/DT)].mean()
			durAmp=d[int((pre+respDelay)/DT):int((pre+dur+respDelay)/DT)].mean()
			postAmp=d[int((pre+dur+respDelay)/DT):int((pre+dur+respDelay+500)/DT)].mean()
			newValues=(durAmp-preAmp,postAmp-preAmp)

		curX=floor((cn-1)/res)
		curY=mod(cn-1,res)
		for i in range(2):
			self.RFmap[i][curX][curY]=newValues[i]
			self.RFvec[i][cn]=newValues[i]
		self.curX=curX
		self.curY=curY