Source code for bmtk.tests.simulator.pointnet.test_glif_utils

import pytest
import os
import json
import numpy as np

nest = pytest.importorskip('nest')
from bmtk.simulator.pointnet.glif_utils import convert_aibs2nest
from bmtk.simulator.pointnet.nest_utils import NEST_SPIKE_DETECTOR

try:
    nest.Install('glifmodule')
except Exception as e:
    pass


[docs]@pytest.mark.parametrize('model_name,dynamics_params,expected', [ ('nest:glif_lif_psc', 'glif_models/637930677_lif.json', [14.77547828]), ('nest:glif_lif_r_psc', 'glif_models/637930677_lif_r.json', [14.95315601, 26.00083926]), ('nest:glif_lif_asc_psc', 'glif_models/637930677_lif_asc.json', [14.46548367]), ('nest:glif_lif_r_asc_psc', 'glif_models/637930677_lif_r_asc.json', [14.52419554]), ('nest:glif_lif_r_asc_a_psc', 'glif_models/637930677_lif_r_asc_a.json', [13.70442843]) ]) def test_converter_psc(model_name, dynamics_params, expected): nest.ResetKernel() nest.SetKernelStatus({"resolution": 0.001}) dyn_params_path = os.path.join(os.path.dirname(__file__), dynamics_params) aibs_params = json.load(open(dyn_params_path, 'r')) model_name, model_params = convert_aibs2nest(model_name, aibs_params) model_name = model_name.split(':')[-1] nrn = nest.Create(model_name, 1, model_params) sr = nest.Create(NEST_SPIKE_DETECTOR) espikes = nest.Create( 'spike_generator', params={'spike_times': [5.0, 7.0, 8.0, 9.0, 10.0, 12.0], 'spike_weights': [100.0]*6} ) nest.Connect(espikes, nrn, syn_spec={"receptor_type": 1}) nest.Connect(nrn, sr) nest.Simulate(50.0) spikes = nest.GetStatus(sr, 'events')[0]['times'] assert(len(spikes) == len(expected)) assert(np.allclose(spikes, expected, atol=1.0, equal_nan=True))
if __name__ == '__main__': test_converter_psc(model_name='nest:glif_lif_psc', dynamics_params='glif_models/637930677_lif.json', expected=[14.77547828]) test_converter_psc(model_name='nest:glif_lif_r_psc', dynamics_params='glif_models/637930677_lif_r.json', expected=[14.95315601, 26.00083926]) test_converter_psc(model_name='nest:glif_lif_asc_psc', dynamics_params='glif_models/637930677_lif_asc.json', expected=[14.46548367]) test_converter_psc(model_name='nest:glif_lif_r_asc_psc', dynamics_params='glif_models/637930677_lif_r_asc.json', expected=[14.52419554]) test_converter_psc(model_name='nest:glif_lif_r_asc_a_psc', dynamics_params='glif_models/637930677_lif_r_asc_a.json', expected=[13.70442843]) print('passed all')