AllenInstitute / AllenInstitute/bmtk
Allow BMTK to load spike input times with higher temporal resolution than dt
Open
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 335
- Forks
- 102
- Avg merge
- 1d 5h
- Merged PRs (30d)
- 6
Description
e.g. if this value for dt:
https://github.com/AllenInstitute/sonata/blob/ad1d46a97029749aea835f9f016bfa1ccba1f258/examples/300_pointneurons/simulation_config.json#L10
is changed to a more realistic 0.01 ms, the following error occurs:
...
2019-04-29 19:27:47,332 [INFO] Setting up output directory
2019-04-29 19:27:47,332 [INFO] Building cells.
2019-04-29 19:27:47,343 [INFO] Building recurrent connections
2019-04-29 19:27:47,468 [INFO] Build virtual cell stimulations for external_spike_trains
Traceback (most recent call last):
File "run_pointnet.py", line 18, in <module>
main('config.json')
File "run_pointnet.py", line 11, in main
sim = pointnet.PointSimulator.from_config(configure, graph)
File "/home/padraig/anaconda2/lib/python2.7/site-packages/bmtk-0.0.7-py2.7.egg/bmtk/simulator/pointnet/pointsimulator.py", line 230, in from_config
graph.add_spike_trains(spikes, node_set)
File "/home/padraig/anaconda2/lib/python2.7/site-packages/bmtk-0.0.7-py2.7.egg/bmtk/simulator/pointnet/pointnetwork.py", line 155, in add_spike_trains
nest.SetStatus([nest_id], {'spike_times': np.array(spike_trains.get_spikes(node_id))})
File "/home/padraig/opt/nest/lib/python2.7/site-packages/nest/lib/hl_api_helper.py", line 230, in stack_checker_func
return f(*args, **kwargs)
File "/home/padraig/opt/nest/lib/python2.7/site-packages/nest/lib/hl_api_info.py", line 199, in SetStatus
sr('Transpose { arrayload pop SetStatus } forall')
File "/home/padraig/opt/nest/lib/python2.7/site-packages/nest/__init__.py", line 117, in catching_sli_run
raise _kernel.NESTError(encode(errorstring))
pynestkernel.NESTError: BadProperty in SetStatus_id: Setting status of a 'spike_generator' with GID 301: spike_generator: Time point 0.384322 is not representable in current resolution.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with the example simulation_config.json using dt=0.01 ms, then inspect bmtk/simulator/pointnet/pointsimulator.py and pointnetwork.py around add_spike_trains and the NEST SetStatus call. Done means spike input times with finer temporal resolution load without the reported representability error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100