{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import os\n", "from pprint import pprint\n", "import matplotlib.pyplot as plt\n", "import sciunit\n", "import sciunit.scores\n", "import neuronunit\n", "from neuronunit.models.reduced import ReducedModel\n", "from neuronunit.capabilities import ProducesSpikes" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Assumes imported neuronunit is from source, e.g. pip install -e\n", "path = os.path.join(neuronunit.__path__[0],'models/NeuroML2/LEMS_2007One.xml')\n", "# Instantiate three identical models\n", "models = [ReducedModel(path, name='Izhikevich', backend='jNeuroML') for i in range(2)]" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Change the parameters of the second model\n", "models[1].set_attrs(izhikevich2007Cell={'a': '0.04 per_ms'})\n", "models[1].name = 'Izhikevich_new'" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pyNeuroML >>> Reloading data specified in LEMS file: /var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmpw4nxbjl4/Izhikevich.xml (/private/var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmpw4nxbjl4/Izhikevich.xml), base_dir: /var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmp1hr8cang, cwd: /Users/rgerkin/Dropbox/dev/scidash/neuronunit/neuronunit/unit_test\n", "pyNeuroML >>> Reloading data specified in LEMS file: /var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmpddw73r6n/Izhikevich.xml (/private/var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmpddw73r6n/Izhikevich.xml), base_dir: /var/folders/_j/vg2m860n23d_9ty1h2z9_2880000gn/T/tmp8bwyo0o8, cwd: /Users/rgerkin/Dropbox/dev/scidash/neuronunit/neuronunit/unit_test\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "for model in models:\n", " plt.plot(model.get_membrane_potential(),label=model)\n", "plt.legend();" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "# A new M2M test which will compare the equality of spike counts across models\n", "class MyTest(sciunit.Test):\n", " required_capabilities = (ProducesSpikes,)\n", " score_type = sciunit.scores.ZScore\n", " def generate_prediction(self,model):\n", " count = model.get_spike_count()\n", " return count" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "test = MyTest(observation={'mean':8, 'std':3, 'url':'http://somewhere.thathasdata.com'})" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Executing test MyTest on model Izhikevich... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = -0.33\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Executing test MyTest on model Izhikevich_new... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = 0.00\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "s = test.judge(models)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "
MyTest
IzhikevichZ = -0.33
Izhikevich_newZ = 0.00
\n", "
" ], "text/plain": [ " MyTest\n", "Izhikevich Z = -0.33\n", "Izhikevich_new Z = 0.00" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# The score matrix\n", "s" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'description': None,\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'unpicklable': [],\n", " 'verbose': 1}\n" ] } ], "source": [ "x = test.json(string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "def check_url(x):\n", " if not x.json(add_props=True,string=False).get('url'):\n", " print(\"Model has no associated url; please set the url attribute of the model\")\n", "check_url(models[0])" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "# How do you want your GitHub URLs? \n", "lems_url = (\"https://github.com/scidash/neuronunit/blob/master/neuronunit/\"\n", " \"models/NeuroML2/LEMS_2007One.xml\")\n", "models[0]._url = lems_url\n", "models[1]._url = lems_url" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "models[0].url" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "check_url(models[0])" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'name': 'Izhikevich',\n", " 'run_params': {'default_java_max_memory': '400M', 'nogui': True, 'v': False}}\n" ] } ], "source": [ "# Has fewer attributes because most of them came from the LEMS file so those are assumed\n", "# to still be the values in memory. If we need to extract these then I need to find a\n", "# way to read them from the file; however, there may be no general way to do so for all\n", "# LEMS files, and certainly not for all possible models. \n", "x = models[0].json(string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'attrs': {'izhikevich2007Cell': {'a': '0.04 per_ms'}},\n", " 'backend': 'jNeuroML',\n", " 'name': 'Izhikevich_new',\n", " 'run_params': {'default_java_max_memory': '400M', 'nogui': True, 'v': False}}\n" ] } ], "source": [ "# Has more attributes because some of the original attributes from the LEMS file \n", "# were replaced with new ones in this session\n", "x = models[1].json(string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'model': {'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'name': 'Izhikevich',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False}},\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'prediction': 7,\n", " 'related_data': {},\n", " 'score': -0.3333333333333333,\n", " 'test': {'description': None,\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'unpicklable': [],\n", " 'verbose': 1},\n", " 'unpicklable': []}\n" ] } ], "source": [ "# Select one score from the score matrix\n", "score = s['Izhikevich','MyTest']\n", "x = score.json(string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'_class': {'name': 'ZScore', 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4574572840,\n", " 'hash': '370f8d0e9b6a87ae568560b0cedb4cfc567e0e097ff2dce7fe123281',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4564190320,\n", " 'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '04433628b02110a59660c84bc268c68fab32cd033f4da5edaf7a18ac',\n", " 'name': 'Izhikevich',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'prediction': 7,\n", " 'raw': '-0.3333',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': -0.3333333333333333,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 0.7388826803635273,\n", " 'summary': \"=== Model Izhikevich achieved score Z = -0.33 on test 'MyTest'. \"\n", " '===',\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'}\n" ] } ], "source": [ "# Add additional properties to the JSON output\n", "x = score.json(add_props=True,string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'_class': {'name': 'ZScore', 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4574572840,\n", " 'hash': '370f8d0e9b6a87ae568560b0cedb4cfc567e0e097ff2dce7fe123281',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4564190320,\n", " 'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '04433628b02110a59660c84bc268c68fab32cd033f4da5edaf7a18ac',\n", " 'name': 'Izhikevich',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'prediction': 7,\n", " 'raw': '-0.3333',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': -0.3333333333333333,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 0.7388826803635273,\n", " 'summary': \"=== Model Izhikevich achieved score Z = -0.33 on test 'MyTest'. \"\n", " '===',\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'}\n" ] } ], "source": [ "# Nicer formatting for the output\n", "x = score.json(add_props=True,string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'_class': {'name': 'TestSuite', 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4646233592,\n", " 'hash': '2a162712298f803f30e097fef52c44f42104feede9500e6a76299098',\n", " 'hooks': None,\n", " 'include_models': [],\n", " 'name': 'My Suite',\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'skip_models': [],\n", " 'tests': [{'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4646233984,\n", " 'description': None,\n", " 'hash': '1a7b9374f4ee0c3e01680316dacf2ecaed63cb27af2f1e3973d9ad5a',\n", " 'name': 'Second Test',\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None}],\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*',\n", " 'weights': [0.5, 0.5],\n", " 'weights_': []}\n" ] } ], "source": [ "test2 = MyTest(observation={'mean':7, 'std':3.8, 'url':'http://somewhereelse.thathasdata.com'},name='Second Test')\n", "suite = sciunit.TestSuite([test,test2],name='My Suite')\n", "x = suite.json(add_props=True,string=False)\n", "pprint(x)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "text/html": [ "Executing test MyTest on model Izhikevich... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = -0.33\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Executing test Second Test on model Izhikevich... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = 0.00\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Executing test MyTest on model Izhikevich_new... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = 0.00\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Executing test Second Test on model Izhikevich_new... " ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/html": [ "Score is Z = 0.26\n" ], "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "score_matrix = suite.judge(models)" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'models': [{'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4564190320,\n", " 'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '04433628b02110a59660c84bc268c68fab32cd033f4da5edaf7a18ac',\n", " 'name': 'Izhikevich',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4301722344,\n", " 'attrs': {'izhikevich2007Cell': {'a': '0.04 per_ms'}},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '640c67dede0892f857f37332a7dbb9e4fd6bb6f21a48f7b22c059fab',\n", " 'name': 'Izhikevich_new',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'}],\n", " 'scores': [[{'_class': {'name': 'ZScore',\n", " 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4410766840,\n", " 'hash': '370f8d0e9b6a87ae568560b0cedb4cfc567e0e097ff2dce7fe123281',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4564190320,\n", " 'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '04433628b02110a59660c84bc268c68fab32cd033f4da5edaf7a18ac',\n", " 'name': 'Izhikevich',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'prediction': 7,\n", " 'raw': '-0.3333',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': -0.3333333333333333,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 0.7388826803635273,\n", " 'summary': '=== Model Izhikevich achieved score Z = -0.33 on '\n", " \"test 'MyTest'. ===\",\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'},\n", " {'_class': {'name': 'ZScore',\n", " 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4646232304,\n", " 'hash': '66ea475bc3bc615f2629b2f42f4d4266f65b1ea572a2a303b1836b1a',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4564190320,\n", " 'attrs': {},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '04433628b02110a59660c84bc268c68fab32cd033f4da5edaf7a18ac',\n", " 'name': 'Izhikevich',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'prediction': 7,\n", " 'raw': '0',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': 0.0,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 1.0,\n", " 'summary': '=== Model Izhikevich achieved score Z = 0.00 on test '\n", " \"'Second Test'. ===\",\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4646233984,\n", " 'description': None,\n", " 'hash': '1a7b9374f4ee0c3e01680316dacf2ecaed63cb27af2f1e3973d9ad5a',\n", " 'name': 'Second Test',\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'}],\n", " [{'_class': {'name': 'ZScore',\n", " 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4646232584,\n", " 'hash': '9baf52a5280631a2372af96162c57a447582445fc293d899f6791855',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4301722344,\n", " 'attrs': {'izhikevich2007Cell': {'a': '0.04 per_ms'}},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '640c67dede0892f857f37332a7dbb9e4fd6bb6f21a48f7b22c059fab',\n", " 'name': 'Izhikevich_new',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'prediction': 8,\n", " 'raw': '0',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': 0.0,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 1.0,\n", " 'summary': '=== Model Izhikevich_new achieved score Z = 0.00 on '\n", " \"test 'MyTest'. ===\",\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'},\n", " {'_class': {'name': 'ZScore',\n", " 'url': 'http://github.com/scidash/sciunit'},\n", " '_id': 4646234152,\n", " 'hash': '39695c4093b1fe19fd7a13770c0823ddfeee9c2a62f12454b894003b',\n", " 'model': {'_class': {'name': 'ReducedModel',\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml'},\n", " '_id': 4301722344,\n", " 'attrs': {'izhikevich2007Cell': {'a': '0.04 per_ms'}},\n", " 'backend': 'jNeuroML',\n", " 'capabilities': ['Runnable',\n", " 'ReceivesSquareCurrent',\n", " 'ProducesActionPotentials',\n", " 'ProducesSpikes',\n", " 'ProducesMembranePotential'],\n", " 'hash': '640c67dede0892f857f37332a7dbb9e4fd6bb6f21a48f7b22c059fab',\n", " 'name': 'Izhikevich_new',\n", " 'remote_url': 'https://github.com/scidash/neuronunit',\n", " 'run_params': {'default_java_max_memory': '400M',\n", " 'nogui': True,\n", " 'v': False},\n", " 'url': 'https://github.com/scidash/neuronunit/blob/master/neuronunit/models/NeuroML2/LEMS_2007One.xml',\n", " 'version': '52528e5f1d49c5e607a9e567a493b7a634658200*'},\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'prediction': 8,\n", " 'raw': '0.2632',\n", " 'related_data': {},\n", " 'remote_url': 'http://github.com/scidash/sciunit',\n", " 'score': 0.2631578947368421,\n", " 'score_type': 'ZScore',\n", " 'norm_score': 0.7924288824046,\n", " 'summary': '=== Model Izhikevich_new achieved score Z = 0.26 on '\n", " \"test 'Second Test'. ===\",\n", " 'test': {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4646233984,\n", " 'description': None,\n", " 'hash': '1a7b9374f4ee0c3e01680316dacf2ecaed63cb27af2f1e3973d9ad5a',\n", " 'name': 'Second Test',\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " 'unpicklable': [],\n", " 'url': 'http://github.com/scidash/sciunit',\n", " 'version': 'eb5469103f510c12b4897180db7551ccbae7cc0f*'}]],\n", " 'tests': [{'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4574574576,\n", " 'description': None,\n", " 'hash': 'a525227bebc09871767c6e3bf0414556820727f7095437f2c58356ab',\n", " 'name': 'MyTest',\n", " 'observation': {'mean': 8,\n", " 'std': 3,\n", " 'url': 'http://somewhere.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None},\n", " {'_class': {'name': 'MyTest', 'url': ''},\n", " '_id': 4646233984,\n", " 'description': None,\n", " 'hash': '1a7b9374f4ee0c3e01680316dacf2ecaed63cb27af2f1e3973d9ad5a',\n", " 'name': 'Second Test',\n", " 'observation': {'mean': 7,\n", " 'std': 3.8,\n", " 'url': 'http://somewhereelse.thathasdata.com'},\n", " 'remote_url': None,\n", " 'unpicklable': [],\n", " 'url': None,\n", " 'verbose': 1,\n", " 'version': None}]}\n" ] } ], "source": [ "x = score_matrix.json(add_props=True,string=False)\n", "pprint(x)" ] } ], "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 }