Clarify and unify add_projections semantics for SONATA circuits #50
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
add_projectionspreviously had ambiguous semantics and mixed node- andedge-level concepts. This PR clarifies the behavior by defining projection
handling strictly in terms of SONATA edge populations.
Changes & compatibility
Projection selection is now edge-population–based (SONATA edges),
not node populations.
Clarified semantics of
add_projections(SONATA):False(default): intrinsic connectivity onlyNone: treated asFalsefor backward compatibilityTrue: intrinsic connectivity plus all projection(virtual-source) edge populations
str/list[str]: intrinsic connectivity plus the specifiedidentifiers (edge population names, with limited legacy support for
source node population names)
get_all_projection_names()now returns edge population names.Tests and docstrings have been updated accordingly.
Backward compatibility
This PR intentionally changes behavior to remove ambiguity:
add_projections=Truechanges semanticsadd_projections=Falsenow consistently means intrinsic connectivity only.add_projections=Noneis supported as a legacy alias forFalse.add_projections=str/list[str]remains supported, but identifiersnow primarily refer to edge population names.
This change aligns Bluecellulab more closely with Neurodamus semantics by
making intrinsic connectivity and projections explicit, without reproducing
Neurodamus-specific heuristics.