{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OrderedDict([('RS', {'d': 100, 'a': 0.03, 'b': -2, 'k': 0.7, 'c': -50, 'C': 100, 'vPeak': 35, 'vr': -60, 'vt': -40}), ('IB', {'d': 130, 'a': 0.01, 'b': 5, 'k': 1.2, 'c': -56, 'C': 150, 'vPeak': 50, 'vr': -75, 'vt': -45}), ('LTS', {'d': 20, 'a': 0.03, 'b': 8, 'k': 1.0, 'c': -53, 'C': 100, 'vPeak': 40, 'vr': -56, 'vt': -42}), ('TC', {'d': 10, 'a': 0.01, 'b': 15, 'k': 1.6, 'c': -60, 'C': 200, 'vPeak': 35, 'vr': -60, 'vt': -50}), ('TC_burst', {'d': 10, 'a': 0.01, 'b': 15, 'k': 1.6, 'c': -60, 'C': 200, 'vPeak': 35, 'vr': -60, 'vt': -50})])\n" ] } ], "source": [ "# http://www.physics.usyd.edu.au/teach_res/mp/mscripts/\n", "# ns_izh002.m\n", "import collections\n", "from collections import OrderedDict\n", "import numpy as np\n", "\n", "# Fast spiking cannot be reproduced as it requires modifications to the standard Izhi equation,\n", "# which are expressed in this mod file.\n", "# https://github.com/OpenSourceBrain/IzhikevichModel/blob/master/NEURON/izhi2007b.mod\n", "\n", "\n", "reduced2007 = collections.OrderedDict([\n", " # C k vr vt vpeak a b c d celltype\n", " ('RS', (100, 0.7, -60, -40, 35, 0.03, -2, -50, 100, 1)),\n", " ('IB', (150, 1.2, -75, -45, 50, 0.01, 5, -56, 130, 2)),\n", " ('LTS', (100, 1.0, -56, -42, 40, 0.03, 8, -53, 20, 4)),\n", " ('TC', (200, 1.6, -60, -50, 35, 0.01, 15, -60, 10, 6)),\n", " ('TC_burst', (200, 1.6, -60, -50, 35, 0.01, 15, -60, 10, 6))])\n", "\n", "\n", "type2007 = collections.OrderedDict([\n", " # C k vr vt vpeak a b c d celltype\n", " ('RS', (100, 0.7, -60, -40, 35, 0.03, -2, -50, 100, 1)),\n", " ('IB', (150, 1.2, -75, -45, 50, 0.01, 5, -56, 130, 2)),\n", " ('LTS', (100, 1.0, -56, -42, 40, 0.03, 8, -53, 20, 4)),\n", " ('TC', (200, 1.6, -60, -50, 35, 0.01, 15, -60, 10, 6)),\n", " ('TC_burst', (200, 1.6, -60, -50, 35, 0.01, 15, -60, 10, 6)),\n", " ('RTN', (40, 0.25, -65, -45, 0, 0.015, 10, -55, 50, 7)),\n", " ('RTN_burst', (40, 0.25, -65, -45, 0, 0.015, 10, -55, 50, 7)),\n", " ('CH', (50, 1.5, -60, -40, 25, 0.03, 1, -40, 150, 3)),\n", " ('FS', (20, 1.0, -55, -40, 25, 0.2, -2, -45, -55, 5))])\n", "\n", "reduced_dict = OrderedDict([(k,[]) for k in ['C','k','vr','vt','vPeak','a','b','c','d']])\n", "\n", "#OrderedDict\n", "for i,k in enumerate(reduced_dict.keys()):\n", " for v in type2007.values():\n", " reduced_dict[k].append(v[i])\n", "\n", "explore_param = {k:(np.min(v),np.max(v)) for k,v in reduced_dict.items()}\n", "param_ranges = OrderedDict(explore_param)\n", "\n", "\n", "RS = {}\n", "IB = {}\n", "TC = {}\n", "CH = {}\n", "RTN_burst = {}\n", "cells = OrderedDict([(k,[]) for k in ['RS','IB','CH','LTS','FS','TC','TC_burst','RTN','RTN_busrt']])\n", "reduced_cells = OrderedDict([(k,[]) for k in ['RS','IB','LTS','TC','TC_burst']])\n", "\n", "for index,key in enumerate(reduced_cells.keys()):\n", " reduced_cells[key] = {}\n", " for k,v in reduced_dict.items():\n", " reduced_cells[key][k] = v[index]\n", "\n", "print(reduced_cells)\n", "cells = reduced_cells" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [], "source": [ "model = None\n", "from neuronunit.models.reduced import ReducedModel\n", "from neuronunit.optimization import get_neab\n", "\n", "from neuronunit.optimization.model_parameters import model_params, path_params\n", "LEMS_MODEL_PATH = path_params['model_path']\n", "\n", "model = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", "model.set_attrs(cells['TC'])\n", "\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'value': array(75.53061224489795) * pA}\n" ] } ], "source": [ "\n", "tests_,all_tests, observation,suite = get_neab.get_tests()\n", "\n", "rheobase = all_tests[0].generate_prediction(model)\n", "print(rheobase)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "\n", "\n", "import pickle\n", "import copy\n", "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "\n", "from neuronunit.models.reduced import ReducedModel\n", "from neuronunit.optimization.model_parameters import model_params, path_params\n", "LEMS_MODEL_PATH = path_params['model_path']\n", "import neuronunit.optimization as opt\n", "import quantities as pq\n", "\n", "from neuronunit.optimization.data_transport_container import DataTC\n", "model = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", "model.set_attrs(cells['TC'])\n", "\n", "iparams = {}\n", "iparams['injected_square_current'] = {}\n", "iparams['injected_square_current']['amplitude'] =75.36800000000001*pq.pA\n", "#['amplitude'] = dtc.vtest[k]['injected_square_current']['amplitude']\n", "DELAY = 100.0*pq.ms\n", "DURATION = 1000.0*pq.ms\n", "iparams['injected_square_current']['delay'] = DELAY\n", "iparams['injected_square_current']['duration'] = int(DURATION)\n", "\n", "model.inject_square_current(iparams)\n", "\n", "plt.plot(model.get_membrane_potential().times,model.get_membrane_potential(),label='RAW')\n", "plt.legend()\n", "plt.show()\n" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [], "source": [ "\n", "cnt = 0\n", "scores = []\n", "tests_,all_tests, observation,suite = opt.get_neab.get_tests()\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[array(75.53061224489795) * pA, array(75.53061224489795) * pA, array(75.53061224489795) * pA]\n", "[array(75.53061224489795) * pA, array(-10.0) * pA, array(-10.0) * pA, array(-10.0) * pA, array(-10.0) * pA]\n" ] } ], "source": [ "\n", "\n", "\n", "def format_iparams(all_tests,rheobase):\n", "\n", " for t in all_tests[1:5]:\n", " DURATION = 500.0*pq.ms\n", " DELAY = 200.0*pq.ms\n", "\n", " obs = t.observation\n", " t.params = {}\n", " t.params['injected_square_current'] = {}\n", " t.params['injected_square_current']['delay']= DELAY\n", " t.params['injected_square_current']['duration'] = DURATION\n", " t.params['injected_square_current']['amplitude'] = -10*pq.pA\n", " \n", " \n", " for t in all_tests[-3::]: \n", " t.params = {}\n", " DURATION = 1000.0*pq.ms\n", " DELAY = 100.0*pq.ms\n", "\n", " t.params['injected_square_current'] = {}\n", " t.params['injected_square_current']['delay']= DELAY\n", " t.params['injected_square_current']['duration'] = DURATION\n", " t.params['injected_square_current']['amplitude'] = rheobase['value']\n", " \n", " all_tests[0].params = all_tests[-1].params\n", " \n", " return all_tests\n", "\n", "pt = format_iparams(all_tests,rheobase)\n", "print([t.params['injected_square_current']['amplitude'] for t in pt[-3::] ])\n", "print([t.params['injected_square_current']['amplitude'] for t in pt[0:5] ])\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "##\n", "# * Get predictions from models.\n", "## * Fake NeuroElectro Observations\n", "## * Do roundtrip testing\n", "##" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "[{'value': array(75.53061224489795) * pA}, {'value': array(31739282.99824782) * kg*m**2/(s**3*A**2)}, {'value': array(0.0034631849083750876) * s}, {'value': array(1.0911352057216523e-10) * s**4*A**2/(kg*m**2)}, {'std': array(0.00019622743842309925) * V, 'mean': array(-0.060317405613048956) * V}, {'std': array(0.0) * s, 'n': 1, 'mean': array(0.0006500000000000001) * s}, {'std': array(0.0) * V, 'n': 1, 'mean': array(0.056127191359642024) * V}, {'std': array(0.0) * V, 'n': 1, 'mean': array(-0.02112719135964202) * V}]\n" ] } ], "source": [ "predictions = []\n", "import dask.bag as db\n", "# The rheobase has been obtained seperately and cannot be db mapped.\n", "# Nested DB mappings dont work.\n", "ptbag = db.from_sequence(pt[1::])\n", "\n", "def obtain_predictions(t): \n", " model = None\n", " model = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", " model.set_attrs(cells['TC'])\n", " return t.generate_prediction(model)\n", "predictions = list(ptbag.map(obtain_predictions).compute())\n", "predictions.insert(0,rheobase)\n", "print(predictions) \n" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[{'value': array(75.53061224489795) * pA}, {'value': array(31739282.99824782) * kg*m**2/(s**3*A**2)}, {'value': array(0.0034631849083750876) * s}, {'value': array(1.0911352057216523e-10) * s**4*A**2/(kg*m**2)}, {'std': array(0.00019622743842309925) * V, 'value': array(-0.060317405613048956) * V}, {'std': array(0.0) * s, 'n': 1, 'value': array(0.0006500000000000001) * s}, {'std': array(0.0) * V, 'n': 1, 'value': array(0.056127191359642024) * V}, {'std': array(0.0) * V, 'n': 1, 'value': array(-0.02112719135964202) * V}]\n" ] } ], "source": [ "# having both means and values in dictionary makes it very irritating to iterate over.\n", "# It's more harmless to demote means to values, than to elevate values to means.\n", "# Simply swap key names: means, for values.\n", "for p in predictions:\n", " if 'mean' in p.keys():\n", " p['value'] = p.pop('mean')\n", "print(predictions)\n" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "75.53061224489795 pA\n", "31.73928299824782 Mohm\n", "3.4631849083750876 ms\n", "1.0911352057216523e-10 s**4*A**2/(kg*m**2)\n", "-60.317405613048955 mV\n", "0.6500000000000001 ms\n", "56.127191359642026 mV\n", "-21.127191359642023 mV\n" ] } ], "source": [ "# make some new tests based on internally generated data \n", "# as opposed to experimental data.\n", "\n", "\n", "TC_tests = copy.copy(all_tests)\n", "for ind,t in enumerate(TC_tests):\n", " if 'mean' in t.observation.keys():\n", " t.observation['value'] = t.observation.pop('mean')\n", " pred = predictions[ind]['value']\n", " try:\n", " pred = pred.rescale(t.units)\n", " t.observation['value'] = pred\n", " except: \n", " t.observation['value'] = pred\n", " t.observation['mean'] = t.observation['value']\n", " \n", " print(t.observation['value'])\n", " \n", "pickle.dump(TC_tests,open('thalamo_cortical_tests.p','wb')) \n", " \n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'d': 10, 'k': 1.6, 'c': -60, 'C': 200, 'vPeak': 35, 'vt': -50}\n", "not even to test runner getting\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/opt/conda/lib/python3.5/site-packages/sklearn/cross_validation.py:41: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.\n", " \"This module will be removed in 0.20.\", DeprecationWarning)\n", "/opt/conda/lib/python3.5/site-packages/sklearn/grid_search.py:42: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. This module will be removed in 0.20.\n", " DeprecationWarning)\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[array(227.1326530612245) * pA, array(6.928571428571429) * pA, array(319.9708454810496) * pA, array(32.33673469387755) * pA, array(226.28571428571428) * pA, array(6.081632653061225) * pA, array(473.7609329446064) * pA, array(83.15306122448979) * pA]\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(227.1326530612245) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(6.928571428571429) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(32.33673469387755) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(319.9708454810496) * pA}\n", "input resistance score: Z = 3.30\n", "input resistance score: Z = 0.47\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = -0.11\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.22\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(226.28571428571428) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 1.07\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(473.7609329446064) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(6.081632653061225) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.06\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(83.15306122448979) * pA}\n", "input resistance score: Z = 3.26\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.65\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "[, , , , , , , ]\n", "tests, completed, now gene computations\n", "not even to test runner getting\n", "[array(227.1326530612245) * pA, array(260.2040816326531) * pA, array(67.90816326530613) * pA, array(219.51020408163265) * pA, array(98.39795918367346) * pA, array(420.5539358600583) * pA]\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(227.1326530612245) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(260.2040816326531) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(67.90816326530613) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(98.39795918367346) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(219.51020408163265) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(420.5539358600583) * pA}\n", "input resistance score: Z = -0.09\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.47\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 1.86\n", "input resistance score: Z = 1.22\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.16\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.08\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/jovyan/neuronunit/neuronunit/tests/passive.py:83: RuntimeWarning: overflow encountered in exp\n", " vm_fit[offset:,0] = a * np.exp(-t[offset:]/b) + c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/jovyan/neuronunit/neuronunit/tests/passive.py:83: RuntimeWarning: overflow encountered in multiply\n", " vm_fit[offset:,0] = a * np.exp(-t[offset:]/b) + c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:__main__:gen\tnevals\tavg \tstd \tmin \tmax \n", "1 \t8 \t3.89399\t0.918618\t2.38982\t5.21792\n", "2 \t6 \t3.82178\t1.18981 \t1.16878\t5.21792\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[, , , , , ]\n", "tests, completed, now gene computations\n", "[[0.01, -2.0, -75.0], [0.01, -2, -55], [0.01, 15.0, -72.162359315819316], [0.019842752401015011, 15, -57.837640684180677], [0.20000000000000001, -2, -74.652924436008334], [0.20000000000000001, -2, -55], [0.20000000000000001, 15, -56.279875816303409], [0.20000000000000001, 13.919119365130545, -73.720124183696583]]\n", "not even to test runner getting\n", "[array(93.31632653061224) * pA, array(397.23032069970844) * pA, array(416.1807580174927) * pA]\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(93.31632653061224) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(397.23032069970844) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(416.1807580174927) * pA}\n", "input resistance score: Z = 1.25\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.10\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.68\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/home/jovyan/neuronunit/neuronunit/tests/passive.py:83: RuntimeWarning: overflow encountered in exp\n", " vm_fit[offset:,0] = a * np.exp(-t[offset:]/b) + c\n", "/home/jovyan/neuronunit/neuronunit/tests/passive.py:83: RuntimeWarning: overflow encountered in multiply\n", " vm_fit[offset:,0] = a * np.exp(-t[offset:]/b) + c\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:__main__:3 \t3 \t3.44631\t0.539488\t2.54048\t3.93815\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[, , ]\n", "tests, completed, now gene computations\n", "not even to test runner getting\n", "[array(93.31632653061224) * pA, array(93.31632653061224) * pA, array(83.15306122448979) * pA, array(101.78571428571428) * pA]\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(93.31632653061224) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(93.31632653061224) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(83.15306122448979) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(101.78571428571428) * pA}\n", "input resistance score: Z = 0.65\n", "input resistance score: Z = 0.55\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 1.25\n", "input resistance score: Z = 0.19\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:__main__:4 \t4 \t2.52815\t0.260893\t2.24113\t2.94118\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[, , , ]\n", "tests, completed, now gene computations\n", "[[0.17283487762003827, 13.821996424655216, -56.602532543393217], [0.20000000000000001, 13.821996424655216, -56.602532543393217], [0.20000000000000001, 15.0, -55.0], [0.20000000000000001, 13.002091326490282, -57.788628990542293]]\n", "not even to test runner getting\n", "[array(83.15306122448979) * pA, array(95.01020408163265) * pA, array(93.31632653061224) * pA, array(135.66326530612244) * pA]\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(83.15306122448979) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(95.01020408163265) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(93.31632653061224) * pA}\n", "injected current seen: {'duration': array(1000.0) * ms, 'delay': array(100.0) * ms, 'amplitude': array(135.66326530612244) * pA}\n", "input resistance score: Z = 0.65\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.61\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.08\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.64\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "INFO:__main__:5 \t4 \t2.47542\t0.34641 \t2.07671\t3.03096\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "[, , , ]\n", "tests, completed, now gene computations\n", "[[0.20000000000000001, 15.0, -55], [0.20000000000000001, 13.05819718288449, -57.193440475374892], [0.17283487762003827, 13.813518137336468, -56.602532543393217], [0.20000000000000001, 11.735821400014721, -61.046405670263503]]\n" ] } ], "source": [ "from neuronunit.optimization import optimization_management as om\n", "free_params = ['a','b','vr']#,'k','vt'] # this can only be odd numbers.\n", "\n", "#\n", "hc = {}\n", "for k,v in cells['TC'].items():\n", " if k not in free_params:\n", " hc[k] = v\n", "print(hc)\n", "import pickle\n", "TC_tests = pickle.load(open('thalamo_cortical_tests.p','rb')) \n", "ga_out, DO = om.run_ga(explore_param,5,TC_tests,free_params=free_params,hc = hc)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'a': 0.019842752401015011, 'b': 15, 'vr': -57.837640684180677}\n", "{'d': 10, 'a': 0.01, 'b': 15, 'k': 1.6, 'c': -60, 'C': 200, 'vPeak': 35, 'vr': -60, 'vt': -50}\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "print(ga_out['dhof'][0].attrs)\n", "print(cells['TC'])\n", "\n", "\n", "model1 = None\n", "model1 = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", "model1.set_attrs(ga_out['dhof'][0].attrs)\n", "model1.inject_square_current(iparams)\n", "\n", "model2 = None\n", "model2 = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", "#vanilla = translate(mparams,m2m)\n", "model2.set_attrs(cells['TC'])\n", "model2.inject_square_current(iparams)\n", "\n", "\n", "plt.plot(model1.get_membrane_potential().times,model1.get_membrane_potential(),label='optimizer result')\n", "plt.plot(model2.get_membrane_potential().times,model2.get_membrane_potential(),label='ground truth')\n", "plt.legend()" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "75.53061224489795 pA 75.53061224489795 pA\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.00\n", "31.73928299824782 Mohm 31739282.99824782 kg*m**2/(s**3*A**2)\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "3.4631849083750876 ms 0.0034631849083750876 s\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "1.0911352057216523e-10 s**4*A**2/(kg*m**2) 1.0911352057216523e-10 s**4*A**2/(kg*m**2)\n", "-60.317405613048955 mV -0.060317405613048956 V\n", "0.6500000000000001 ms 0.0006500000000000001 s\n", "56.127191359642026 mV 0.056127191359642024 V\n", "-21.127191359642023 mV -0.02112719135964202 V\n", "1.0\n", "Z = 0.00\n" ] } ], "source": [ "def hack_judge(test_and_models):\n", " (test, attrs) = test_and_models\n", " model = None\n", " obs = test.observation\n", " model = ReducedModel(LEMS_MODEL_PATH,name = str('vanilla'),backend = ('RAW'))\n", " model.set_attrs(attrs)\n", " test.generate_prediction(model)\n", " pred = test.generate_prediction(model)\n", " score = test.compute_score(obs,pred)\n", " try:\n", " print(obs['value'],pred['value'])\n", " except:\n", " print(obs['mean'],pred['mean'])\n", " \n", " return score\n", "\n", "scores = []\n", "for i,t in enumerate(TC_tests):\n", " test_and_models = (t,cells['TC'])\n", " score = hack_judge(test_and_models)\n", " scores.append(score)\n", "print(scores[0].sort_key) \n", "print(scores[0]) \n", "\n" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "{'CapacitanceTest': 0.3941135778347633,\n", " 'InjectedCurrentAPAmplitudeTest': 0.056286812623258964,\n", " 'InjectedCurrentAPThresholdTest': 0.1301810981679412,\n", " 'InjectedCurrentAPWidthTest': 0.07455112037761191,\n", " 'InputResistanceTest': 0.12468893958387861,\n", " 'RestingPotentialTest': 0.2550425415991806,\n", " 'RheobaseTestP': 0.1269862366342951,\n", " 'TimeConstantTest': 0.006927779205798235}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "\n", "ga_out.keys()\n", "ga_out['dhof'][0].scores\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.0, 1.0, 1.0, 1.0, 1.0, 0.9999999999999999, 1.0, 0.9999999999999996]\n", "[0.0, 0.0, 0.0, 0.0, 0.0, -2.029026769368064e-16, 0.0, 6.317017647578838e-16]\n", "0.6500000000000001 ms 0.0006500000000000001 s\n", "Z = -0.00\n" ] } ], "source": [ "print([s.sort_key for s in scores])\n", "print([s.score for s in scores])\n", "\n", "score = hack_judge((TC_tests[-3],cells['TC']))\n", "print(score)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "75.53061224489795 pA 51.81632653061225 pA\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.62\n", "31.73928299824782 Mohm 79634016.52239381 kg*m**2/(s**3*A**2)\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "3.4631849083750876 ms 0.009810667396493434 s\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "1.0911352057216523e-10 s**4*A**2/(kg*m**2) 1.231969430266598e-10 s**4*A**2/(kg*m**2)\n", "-60.317405613048955 mV -0.06075346627665097 V\n", "0.6500000000000001 ms 0.0007750000000000001 s\n", "56.127191359642026 mV 0.05357660263743405 V\n", "-21.127191359642023 mV -0.018576602637434048 V\n", "0.6190101302868543\n", "Z = -0.50\n", "[0.6190101302868543, 0.5372765850958718, 0.4696921520174828, 0.45016300791078434, 0.946777506200236, 0.81503865531969, 0.841429780079807, 0.6423611420888804]\n" ] } ], "source": [ "scores = []\n", "for t in TC_tests:\n", " test_and_models = (t,cells['RS'])\n", " score = hack_judge(test_and_models)\n", " scores.append(score)\n", "print(scores[0].sort_key) \n", "print(scores[0])\n", "print([s.sort_key for s in scores])\n" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "input resistance score: Z = 0.62\n", "31.73928299824782 Mohm 79634016.52239381 kg*m**2/(s**3*A**2)\n", "3.4631849083750876 ms 0.009810667396493434 s\n", "injected current seen: {'duration': array(500.0) * ms, 'delay': array(200.0) * ms, 'amplitude': array(-10.0) * pA}\n", "-21.127191359642023 mV -0.018576602637434048 V\n", "0.6500000000000001 ms 0.0007750000000000001 s\n", "56.127191359642026 mV 0.05357660263743405 V\n", "1.0911352057216523e-10 s**4*A**2/(kg*m**2) 1.231969430266598e-10 s**4*A**2/(kg*m**2)\n", "-60.317405613048955 mV -0.06075346627665097 V\n", "[{'value': array(75.53061224489795) * pA}, , , , , , , ]\n" ] } ], "source": [ "import dask.bag as db\n", "# The rheobase has been obtained seperately and cannot be db mapped.\n", "# Nested DB mappings dont work.\n", "from itertools import repeat\n", "test_a_models = zip(TC_tests[1::],repeat(cells['RS']))\n", "tc_bag = db.from_sequence(test_a_models)\n", "\n", "scores = list(tc_bag.map(hack_judge).compute())\n", "scores.insert(0,rheobase)\n", "print(scores) " ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "collapsed": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'value': array(75.53061224489795) * pA}\n" ] } ], "source": [ "score = TC_tests[0].judge(model,stop_on_error = False, deep_error = True)\n", "print(score.prediction)\n", "#print(model.get_spike_count())" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": false }, "outputs": [ { "ename": "ImportError", "evalue": "cannot import name 'ReducedModel'", "output_type": "error", "traceback": [ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", "\u001b[0;31mImportError\u001b[0m Traceback (most recent call last)", "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0mneuronunit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0moptimization\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0moptimization_management\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0mopt\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0;32mfrom\u001b[0m \u001b[0mneuronunit\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodels\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mReducedModel\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", "\u001b[0;31mImportError\u001b[0m: cannot import name 'ReducedModel'" ] } ], "source": [ "from neuronunit.optimization import optimization_management as opt\n", "from neuronunit.models import ReducedModel" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": false }, "outputs": [], "source": [] }, { "cell_type": "raw", "metadata": { "collapsed": true }, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.5.2" } }, "nbformat": 4, "nbformat_minor": 2 }