Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Composing NodeCollections with spatial metadata #1992

Open
ackurth opened this issue Mar 24, 2021 · 8 comments
Open

Composing NodeCollections with spatial metadata #1992

ackurth opened this issue Mar 24, 2021 · 8 comments
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority stale Automatic marker for inactivity, please have another look here T: Discussion Still searching for the right way to proceed / suggestions welcome
Projects

Comments

@ackurth
Copy link
Contributor

ackurth commented Mar 24, 2021

Is your feature request related to a problem? Please describe.
In our work (@jasperalbers), we want to compose multiple non-overlapping NodeCollections that have spatial metadata, i.e. they are distributed in 2D space and 'tile' it. Each 'tile-collection' has a specific neuroscientific meaning and a particular shape, therefore they are generated independently in the same physical space. To establish - among others - connections that do not discriminate different tiles but are isotropic in space we want to define one large NodeCollection containing all 'tile-collections'.
Adding the NodeCollections naively is not possible. Converting the NodeCollections to lists removes all spatial metadata.

Describe the solution you'd like
We would like to be able to compose non-overlapping NodeCollections with spatial locations.

Describe alternatives you've considered
One can loop over the 'tile-collections' to connect them with each other. This necessitates many loops and does not seem to be a 'pythonic' solution. We assume that the resulting large number of connect calls ( ~ 5000 in our case) have a negative impact on the performance of the network creation.
Moreover, one cannot use a connections scheme with a fixed number of synapses (e.g. 'fixed_outdegree').

@stinebuu stinebuu added I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority T: Discussion Still searching for the right way to proceed / suggestions welcome labels Apr 7, 2021
@stinebuu stinebuu added this to To do in Kernel via automation Apr 7, 2021
@hakonsbm
Copy link
Contributor

hakonsbm commented Apr 7, 2021

When planning the implementation for NodeCollections (then called GIDCollections) it was decided that it should not be possible to join collections containing different metadata (see this comment). Joining two NodeCollections containing spatial data is also not as straightforward as one might think, because of the underlying layer-implementation for the spatial data. However, I do think that this could be a useful feature and might be worth some effort to implement. @heplesser @stinebuu @jougs @terhorstd Do you have any thoughts on this?

@jougs
Copy link
Contributor

jougs commented Apr 12, 2021

I agree that it would be useful to allow joining Node Collections with spatial metadata to support use cases as the one described above. @hakonsbm: can you give us a rough estimate of how much some effort to implement would be?

@hakonsbm
Copy link
Contributor

@jougs Positions from spatial metadata of the two NodeCollections would have to be extracted, and a new spatial metadata object containing positions corresponding to the nodes in the joined NodeCollection would have to be created. The metadata object would then have to be assigned to the joined NodeCollection.

There is already an example of how to extract positions and create a new metadata object in the slice function, which can be used as a reference.

One complication is how we should handle composite NodeCollections. Currently, metadata in a composite NodeCollection is defined as the same (pointer equal) metadata for all primitives it contains. This would have to change if we implement joining of metadata.

@github-actions
Copy link

github-actions bot commented Sep 3, 2021

Issue automatically marked stale!

@github-actions github-actions bot added the stale Automatic marker for inactivity, please have another look here label Sep 3, 2021
@hakonsbm
Copy link
Contributor

@github-actions github-actions bot removed the stale Automatic marker for inactivity, please have another look here label Mar 23, 2022
@github-actions
Copy link

Issue automatically marked stale!

@github-actions github-actions bot added the stale Automatic marker for inactivity, please have another look here label May 22, 2022
@heplesser
Copy link
Contributor

@hakonsbm Ping!

@heplesser heplesser assigned med-ayssar and unassigned jougs Nov 25, 2022
@github-actions github-actions bot removed the stale Automatic marker for inactivity, please have another look here label Nov 29, 2022
@hakonsbm hakonsbm removed their assignment Jan 27, 2023
@github-actions
Copy link

github-actions bot commented Apr 5, 2023

Issue automatically marked stale!

@github-actions github-actions bot added the stale Automatic marker for inactivity, please have another look here label Apr 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I: No breaking change Previously written code will work as before, no one should note anything changing (aside the fix) S: Normal Handle this with default priority stale Automatic marker for inactivity, please have another look here T: Discussion Still searching for the right way to proceed / suggestions welcome
Projects
Kernel
  
To do (open issues)
Development

No branches or pull requests

6 participants