Skip to content

Add SONATA point-process cell support#51

Draft
ilkilic wants to merge 10 commits intomainfrom
point-process
Draft

Add SONATA point-process cell support#51
ilkilic wants to merge 10 commits intomainfrom
point-process

Conversation

@ilkilic
Copy link
Copy Markdown
Collaborator

@ilkilic ilkilic commented Jan 9, 2026

This PR adds support for SONATA point-process cells.

Point-process cells are instantiated from SONATA model_type = "point_process" and model_template, mapping directly to NEURON point mechanisms defined in HOC/MOD files.

What is included

  • New HocPointProcessCell for SONATA point-process populations
  • Mechanism instantiation driven by model_template (e.g. nrn:IntFire1, hoc:)
  • Integration with CircuitSimulation (instantiate_gids, callbacks, deletion)
  • Spike detection and recording compatible with existing simulation flow
  • Support for SONATA inputs and SynapseReplay via _add_stimuli
  • Compatibility with SONATA edge loading through existing SonataCircuitAccess

@codecov
Copy link
Copy Markdown

codecov Bot commented Jan 9, 2026

Codecov Report

❌ Patch coverage is 30.92369% with 172 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
bluecellulab/cell/point_process.py 31.34% 92 Missing ⚠️
bluecellulab/point/point_connection.py 0.00% 36 Missing ⚠️
bluecellulab/synapse/synapse_types.py 17.24% 24 Missing ⚠️
bluecellulab/point/connection_params.py 0.00% 7 Missing ⚠️
bluecellulab/circuit_simulation.py 75.00% 6 Missing ⚠️
bluecellulab/synapse/synapse_factory.py 50.00% 5 Missing ⚠️
...ab/circuit/circuit_access/sonata_circuit_access.py 60.00% 2 Missing ⚠️
Files with missing lines Coverage Δ
bluecellulab/circuit/synapse_properties.py 69.23% <100.00%> (+1.23%) ⬆️
bluecellulab/synapse/__init__.py 100.00% <100.00%> (ø)
...ab/circuit/circuit_access/sonata_circuit_access.py 95.00% <60.00%> (-0.82%) ⬇️
bluecellulab/synapse/synapse_factory.py 85.26% <50.00%> (-5.55%) ⬇️
bluecellulab/circuit_simulation.py 83.69% <75.00%> (-1.07%) ⬇️
bluecellulab/point/connection_params.py 0.00% <0.00%> (ø)
bluecellulab/synapse/synapse_types.py 75.30% <17.24%> (-7.73%) ⬇️
bluecellulab/point/point_connection.py 0.00% <0.00%> (ø)
bluecellulab/cell/point_process.py 31.34% <31.34%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@jamesgking jamesgking self-assigned this Mar 9, 2026
The logic for loading from sonata files is to swap out the list of parameters if the BBP TYPE is not present

Likewise, when instantiating a synapse object, if no TYPE field is present, assume it is for allen and
create a Exp2Syn synapse
…e instantiated.

The reporting adds try/except since these don't have a soma
… target point neurons

and deliver replay spikes to the proper netcon
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants