1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- #include "sys.hpp" // for libcwd
- #include "debug.hpp" // for libcwd
- #include <iostream>
- #include "activityanalyzer.hpp"
- #include "spiketrain.hpp"
- ActivityAnalyzer::ActivityAnalyzer(SpikeTrain *SpikeTrain)
- {
- if (SpikeTrain) {
- SpikeTrain->MeanSpikeRate(20, &mTimeScale, &mSpikeRate);
- /*
- for (vector<double>::iterator it=mTimeScale.begin();it!=mTimeScale.end();++it) {
- cout << "t=" << (*it) << " ";
- }
- */
- meanActivityParameters();
- }
- }
- ActivityAnalyzer::~ActivityAnalyzer()
- {
- // std::cout << " ActivityAnalyzer::~ActivityAnalyzer() \n"; fflush(stdout);
-
- }
- /** calculate statistical parameters of mean neural activity (psth)
- */
- void ActivityAnalyzer::meanActivityParameters()
- {
- int nTimeSteps = mSpikeRate.size();
- int TimeScaleSize=mTimeScale.size();
- if ((nTimeSteps<=1) || nTimeSteps!= mSpikeRate.size()) {
- return;
- }
- double totalTime = mTimeScale.back() - mTimeScale.front();
- mDeltaT = totalTime / (nTimeSteps-1); // -1, denn Zahl der Intervalle = Zahl der Schritte -1
- mTotalNoSpikeTime=0;
- mMaxNoSpikeTime=0;
- int curNoSpikeTime=0;
- //std::cout << "TimeScalesize=" << TimeScaleSize << " totalTime=" << totalTime << " mDeltaT=" <<mDeltaT << "\n"; fflush(stdout);
- for (int tStep=0; tStep<nTimeSteps; ++tStep) {
- if (mSpikeRate[tStep]==0) {
- ++curNoSpikeTime;
- ++mTotalNoSpikeTime;
- if (mMaxNoSpikeTime < curNoSpikeTime) {
- ++mMaxNoSpikeTime;
- }
- } else {
- curNoSpikeTime=0;
- }
- }
- }
|