{ "metadata": {}, "nbformat": 3, "nbformat_minor": 0, "worksheets": [ { "cells": [ { "cell_type": "code", "collapsed": false, "input": [ "from architecture_further_formulas import *" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
timePeriodAndRefractoryCalcs
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def timePeriodAndRefractoryCalcs(timeAndRefrac):\n", "\ttimeAndRefrac.time = timeAndRefrac.time + timeAndRefrac.timeStepInterval\n", "\ttimeAndRefrac.refractoryPointCounter = timeAndRefrac.refractoryPointCounter + timeAndRefrac.timeStepInterval\t\n", "\ttT = (Decimal(format(timeAndRefrac.time, '.1f')))\n", "\tsIU = (Decimal(format(timeAndRefrac.spikeIntervalUnformatted, '.1f')))\n", "\ttimeAndRefrac.spikeIntervalCounter = int(tT/sIU)\n", "\n", "\t# if statement below corrects for offset of spiketimes starting at .1 sec.\n", "\tif timeAndRefrac.time >= .1:\n", "\t\ttimeAndRefrac.neuronIndexCounter = timeAndRefrac.neuronIndexCounter + timeAndRefrac.timeStepInterval\n", "\n", "\ttimeAndRefrac.refractoryPointSwitch = False\n", "\tif timeAndRefrac.refractoryPointCounter >= timeAndRefrac.spikeIntervalUnformatted:\n", "\t\ttimeAndRefrac.refractoryPointCounter = 0.000\n", "\t\ttimeAndRefrac.refractoryPointSwitch = True\n", "\t\ttimeAndRefrac.lastSpikeInterval = timeAndRefrac.time-timeAndRefrac.timeStepInterval\n", "\n", "\treturn timeAndRefrac" ], "language": "python", "metadata": {}, "outputs": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
checkForResets
" ] }, { "cell_type": "code", "collapsed": false, "input": [ "def checkForResets(neuronIndex, ADDSObj, dendObj, somaDirectObj, timeAndRefrac):\n", "\tif ADDSObj.v2[neuronIndex] == 10*mV:\n", "\t\tADDSObj.v2[neuronIndex] = 0*mV\t\t\t\t\t\t\n", "\n", "\telif ADDSObj.v[neuronIndex] != -0.002 * mV:\n", "\t\tADDSObj.v2[neuronIndex] = ADDSObj.v[neuronIndex]\n", "\n", "\t#if somaDirectObj.v2[neuronIndex] == 10*mV:\n", "\t#\tsomaDirectObj.v2[neuronIndex] = 0*mV\t\n", "\n", "\tif (timeAndRefrac.beginRefrac[neuronIndex] == 1*mV) and (timeAndRefrac.relRefracTimeActivated[neuronIndex] == False):\n", "\t\ttimeAndRefrac.beginRefrac[neuronIndex] = 0*mV\n", "\t\ttimeAndRefrac.absRefracTime[neuronIndex] = timeAndRefrac.time\n", "\t\ttimeAndRefrac.relRefracTime[neuronIndex] = timeAndRefrac.time\n", "\t\ttimeAndRefrac.absRefracTimeActivated[neuronIndex] = True\n", "\t\ttimeAndRefrac.relRefracTimeActivated[neuronIndex] = True\n", "\t# Absolute refrac\n", "\tif timeAndRefrac.absRefracTimeActivated[neuronIndex] == True:\n", "\t\tif timeAndRefrac.time >= (timeAndRefrac.absRefracTime[neuronIndex] + timeAndRefrac.absRefracTimeDuration):\n", "\t\t\ttimeAndRefrac.absRefracTimeActivated[neuronIndex] = False\n", "\t# Relative refrac\n", "\tif timeAndRefrac.relRefracTimeActivated[neuronIndex] == True:\n", "\t\tif timeAndRefrac.time >= (timeAndRefrac.relRefracTime[neuronIndex] + timeAndRefrac.relRefracTimeDuration):\n", "\t\t\ttimeAndRefrac.relRefracTimeActivated[neuronIndex] = False\n", "\n", "\treturn ADDSObj.v2, somaDirectObj.v2, timeAndRefrac" ], "language": "python", "metadata": {}, "outputs": [] } ], "metadata": {} } ] }