Closed tfardet closed 3 years ago
The ROIs were created to define neuropil compartments, so they explicitly exclude the soma. (Here's a neuroglancer view for illustration.) So the soma positions will not generally reside within any ROI, primary or otherwise.
Ah, I missed that information, thank you! Let me reformulate my question then: given a parcellation of the connectome into regions such as OL, CX, MB, etc, is there a way to get only neurons that have their soma within CX? Is it also possible to do this on a smaller scale (somas within AB(R) or LA)? Basically I am simply looking for a way to associate each neuron to the label of the region in which its soma is located.
I’m afraid I don’t understand the question. The CX is in the interior of the volume. The soma are all on the outside. There is no neuron whose soma resides within the CX. Likewise for the AB(R) and the LA.
Using the link I posted above, can you find an example neuron that illustrates the sort of thing you’re hoping to programmatically obtain?
OK, this probably comes from my lack of knowledge regarding the drosophila connectome. Let me explain my goal instead, hopefully that will help: I would like to build a mesoscale representation of this connectome, meaning that I want to group neurons into meaningful populations (what I thought the ROIs were) and look at projections between populations.
In mammalian brains, that would be something like "neurons from GPe are projecting to STN" for instance.
Is this something that can also make sense for drosophila? If so, how would I group neurons (somas) into regions/populations?
how would I group neurons (somas) into regions/populations?
That question does not have a simple or settled answer. It very much depends on how you're attempting to subdivide the populations, and with what granularity. It may not be fruitful to explore this question without more background on drosophila neuroanatomy. (I'm not an expert, either.)
One option you could consider is to look at the cellBodyFiber
field for each neuron. Not all neurons in the database have that field set, but it's the first natural grouping to use for those neurons which do have it set.
In [27]: from neuprint import Client, fetch_neurons, NeuronCriteria as NC
In [28]: c = Client('neuprint.janelia.org', 'hemibrain:v1.2')
In [29]: neurons, weights = fetch_neurons(NC(status='Traced'))
In [31]: neurons.eval('not cellBodyFiber.isnull()').sum()
Out[31]: 15653
In [32]: neurons['cellBodyFiber'].nunique()
Out[32]: 192
For further assistance on research questions (rather than code questions), I recommend asking for help on the neuprint mailing list: https://groups.google.com/g/neuprint
OK, will do that! Thanks a lot for your help, I'll close this issue then.
Using neuprint or some other method, is it possible to associate a precise ROI (especially a non-primary one) to the soma of each neuron? I found this mention of an h5 file which should enable me to do it for the primary ROIs but, for regions like MB or CX, it would be nice to be able to do this at a more detailed level.
EDIT: actually, using the h5 file and associated script does not seem to work for the positions associated to the somas (at least not with an expected volumic scale of 5 corresponding to the 8nm to 256nm change in scaling)