Note
Go to the end to download the full example code.
Cortical cell body distributions
Another regional data feature are cortical distributions of cell bodies. The distributions are measured crom cortical image patches that have been extracted from the original cell-body stained histological sections of the Bigbrain (Amunts et al., 2013), scanned at 1 micrometer resolution. These patches come together with manual annotations of cortical layers. The cell segmentations have been performed using the recently proposed Contour Proposal Networks (CPN; E. Upschulte et al.; https://arxiv.org/abs/2104.03393; https://github.com/FZJ-INM1-BDA/celldetection).
import siibra
import matplotlib.pyplot as plt
from nilearn import plotting
Find cell density features for V1
10 cell density profiles found for region Area hOc1 (V1, 17, CalcS)
Look at the default visualization the first of them, this time using plotly backend. This will actually fetch the image and cell segmentation data.
features[0].plot(backend="plotly")
The segmented cells are stored in each feature as a numpy array with named columns.
Number of segmented cells: 6298
We can, for example, plot the 2D distribution of the cell locations colored by layers:
plt.scatter(c.x, c.y, c=c.layer, s=0.2)
plt.title(f"Cell distributions in {v1.name}")
plt.grid(True)
plt.axis("equal")
plt.tight_layout()

Having the data in data frame format allows further flexibility such as:
layer1_cells = c.query('layer == 1')
plt.scatter(
layer1_cells.x, layer1_cells.y,
s=layer1_cells["area(micron**2)"], c=layer1_cells.label
)
area_layer1 = layer1_cells["area(micron**2)"]
plt.title(f"Mean cell area in layer 1: {area_layer1.mean()}")

Text(0.5, 1.0, 'Mean cell area in layer 1: 32.322404371584696')
The features also have location information. We can plot their location in BigBrain space:
location = features[0].anchor.location
print(location)
# fetch the template of the location's space
template = location.space.get_template().fetch()
view = plotting.plot_anat(anat_img=template, cut_coords=tuple(location))
view.add_markers([tuple(location)])

Point in BigBrain microscopic template (histology) [13.238324165344238,-65.80000305175781,8.006086349487305]
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/nilearn/plotting/img_plotting.py:555: RuntimeWarning: overflow encountered in scalar add
if background > 0.5 * (vmin + vmax):
/opt/hostedtoolcache/Python/3.8.18/x64/lib/python3.8/site-packages/nilearn/plotting/img_plotting.py:565: RuntimeWarning: overflow encountered in scalar add
vmean = 0.5 * (vmin + vmax)
Total running time of the script: (1 minutes 7.843 seconds)