[Pybrainsim-activity] SF.net SVN: pybrainsim:[96] trunk/src/Experiment.py
Status: Planning
Brought to you by:
rgoj
From: <rg...@us...> - 2009-08-07 10:21:28
|
Revision: 96 http://pybrainsim.svn.sourceforge.net/pybrainsim/?rev=96&view=rev Author: rgoj Date: 2009-08-07 10:21:20 +0000 (Fri, 07 Aug 2009) Log Message: ----------- * getRecordingSlice now needs only stimulus time as input * Changed the way start and end indices are calculated in getRecordingSlice * Added a warning to getERP that prints out a message if epochs are of different length * Corrected a mistake that caused the average to not be an average, but just a sum Modified Paths: -------------- trunk/src/Experiment.py Modified: trunk/src/Experiment.py =================================================================== --- trunk/src/Experiment.py 2009-08-07 10:16:59 UTC (rev 95) +++ trunk/src/Experiment.py 2009-08-07 10:21:20 UTC (rev 96) @@ -82,22 +82,31 @@ if timePoint > self.timePoints[i-1]: return i - def getRecordingSlice(self, sliceStart, sliceDuration, sliceChannel=0): - startIndex = self.findNearestTimeIndex(sliceStart) - endIndex = self.findNearestTimeIndex(sliceStart + sliceDuration) + def getRecordingSlice(self, stimulus, sliceChannel=0): + stimulusIndex = self.findNearestTimeIndex(stimulus) + timeStep = 1.0 / self.samplingFrequency + startIndex = int(stimulusIndex - (self.baseline // timeStep)) + endIndex = int(stimulusIndex + 1 + ((self.epochDuration - self.baseline) // timeStep)) + return self.recording[sliceChannel][startIndex:endIndex] def getERP(self, stimulusNumber=0): stimuli = self.stimulusTimes[stimulusNumber] epochs = [] for i in range(len(stimuli)): - epochs.append(self.getRecordingSlice(stimuli[i] - self.baseline, self.epochDuration)) + epochs.append(self.getRecordingSlice(stimuli[i])) + for i in range(len(epochs)): + if i == 0: + continue + elif (len(epochs[i]) != len(epochs[i-1])): + print str(len(epochs[i])) + " " + str(len(epochs[i-1])) + print "EPOCHS OF DIFFERENT LENGTHS!!!" + average = list(zeros(len(epochs[0]))) for i in range(len(epochs)): for j in range(len(epochs[i])): - average[j] += epochs[i][j] - + average[j] += epochs[i][j] / len(epochs) return average def plotRecording(self): This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |