The human splenic microcirculation is entirely open as shown by 3D models in virtual reality


Specimens and sections

A specimen of a 22-year-old male accident victim obtained in the year 2000 was fixed in 3.7% formaldehyde in tap water for 24 h at 4 °C, embedded in paraffin and used for cutting 21 serial sections in 2020. The acquisition was in accordance with the ethical regulations (implying patient´s informed consent) at the time the sample was obtained. In 2000 an ethics vote was not obligatory for work with human materials at the medical faculty of Marburg University. This practice was retrospectively approved by the ethics committee of the medical faculty of Marburg University.

The serial sections were cut with a N35 blade (Feather Safety Razor Co. Ltd., Osaka, Japan) in a Leica RM2255 microtome with a blade inclination angle of 2.5° using silanized slides. The average section thickness was 7 µm. High temperature antigen retrieval was used for immunostaining of CD34 and CD271, but not for CD141.

Triple staining procedure

The sections were triple stained using the antibodies and methods described in Steiniger et al.7. One difference was that instead of smooth muscle alpha-actin, CD141 was detected first in sinus and other endothelia (excluding capillaries) using mAb TM 1009 (Pharmingen/DAKO, Hamburg, Germany, No. M0617) at a dilution of 1: 800 by an avidin-biotinylated peroxidase complex technique. Then the sections were autoclaved and CD34 was revealed in capillary endothelia applying mAb QBend 10 (Dianova, Hamburg, Germany, No. DLN-09135) at 1:1000 final dilution mixed with mAb EP1039Y (GeneTex via Biozol, Eching, Germany, No. GTX61425) at 1:2000 for capillary sheaths. Finally, Bright Vision anti-mouse IgG was revealed with Enzo High Def Blue for AP followed by Bright Vision anti-rabbit IgG with Perma Red chromogen (Diagnostic Biosystems, Pleasanton, USA via Zytomed Systems, Berlin, Germany, No. ZUC 001-125 ). This chromogen also differed from the method used before. The Perma Red chromogen solution was always freshly prepared according to the manufacturer’s recommendation by adding 4 µl of chromogen solution to 250 µl of buffer. Incubation lasted for 30 min at room temperature with one change of the staining solution. All slides were covered in Mowiol (Sigma Aldrich, No. 324590).

All antibodies had been carefully titrated for use in triple-staining procedures. Omission of each of the antibodies had previously shown that non-specific background staining by the detection systems did not occur. We did, however, accept a faint blue color for better orientation in the red pulp.

Visualization (Supplementary Fig. S2)


The sections were acquired with a Zeiss AxioScan.Z1 optical scanning microscope (Carl Zeiss Microscopy GmbH, Jena, Germany) with a ×20 lens at 0.22 µm/pixel. The files originating from the scanner were extracted as full-scale TIFF images with BioFormats (version 6.4.0)16.

Registration and normalization

The general processing pipeline follows the outline of Lobachev17, however, there were multiple issues and extensions of the procedure, as detailed below. In general, biological processing and image acquisition is followed by coarse registration, selection of ROIs, normalization, fine-grain registration, interpolation, volume filtering, mesh construction, mesh filtering, visualization in VR, visual analytics and mesh painting and, finally, visualization of the final result for 2D representation.

Coarse registration with our usual approach18.19 was impossible with entire sections. The image size exceeded the size limits of the OpenCV20.21 library, and thus feature detection at the full scale was impossible on the available hardware.

A solution was adapted to read the initial image, resize it for feature detection, process the features on the resized images to establish rigid correspondence in the sense of Lobachev et al.22. The transformations were scaled up to the original size and applied to the full-section images using CImg (version 2.9.8)23 and ITK (version 5.2.0)24.25 libraries.

Next, 20 k × 20 k regions corresponding to larger parts of the section, but small enough for processing in OpenCV, were roughly delineated. We applied our usual method21. After the initial non-rigid registration, smaller ROIs could be defined. To arrive at 4545 × 4545 pixels (corresponding to 1 mm2), larger regions, typically 8 k × 8 k pixels were selected. As no section-wide non-rigid registration was possible, the elimination of larger inter-section distortions was quite problematic, even after the initial non-rigid run on the 20 k regions. We used a feature-based method21 and also Gauss–Seidel-based registration26 in especially challenging regions of ROI 1 and ROI 3. After the final fine-grain registration, smaller regions (about 6 k × 6 k) were used for further processing. Cropping to the final size (4545 × 4545) did not happen before the next steps.

Before the fine-grain registration, all sections were normalized to a single specimen. We used the implementation of Khan et al.27 and the method of Reinhard et al.28. Normalization supported fine-grain registration. With respect to normalization, the color deconvolution coefficients were defined. Still, in the resulting images it was hard to discern blue (CD34+ capillaries) and brown-blue (CD141+CD34+ sinuses in the proximity of follicles). The detection of red (CD271+ capillary sheaths) was complicated by weakly positive ubiquitous fibroblasts. After the registration, the resulting images were normalized again, using a different single section specimen to amend the above problems. In the following, we call the initial normalization the “processing normalization” and the second normalization the “final” normalization.

Color separation and interpolation

The colors of the staining were separated using the color deconvolution method available in Fiji29. The channels for CD34+ and CD141+ (blue and brown immunostaining) were obtained from the processing normalization. After initial experiments, the channel for CD271+ cells (blue immunostaining) was obtained from the final normalization.

The separated channels were converted to 8-bit grayscale images in the following manner. CD271 staining was interpreted as the magenta channel of the CMYK colorspace. The channel for CD34 was the negative red channel, and the CD141 channel was the negative blue channel of the default RGB colorspace. This conversion was done with ImageMagick (version 6.9.7)30.

Next, the separated 8-bit images were subjected to a custom interpolation19, performed separately for each staining. The serial sections are quite anisotropic. The resolution of the acquired images was 0.22 µm/pixel in the xy-plane of the volume, whereas the resolution along the z-axis of the volume was assumed to be 7 µm. We amended this anisotropy with an interpolation method based on dense optical flow31, as implemented in OpenCV. The interpolation resulted in slightly anisotropic volumes with the resolution 0.22 × 0.22 × 1 µm/voxel.

Volume filtering and mesh filtering

Next, the image series representing the volumes was cropped to 1 mm2 face side (4545 × 4545 pixels) and converted to a single volume file using Fiji. From now on, the volumes were processed in 3D Slicer (version 4.10.2)32.33, performed individually for each ROI and each staining channel. Automatic extraction of the sinuses did not yield satisfactory results for two reasons. First, the large diameter of the sinuses resulted in double contours of the surface models, as the wall of the sinus is transitioned by the marching cubes algorithm first from outside to the wall and then from the wall to the inside. Second, usual automatic segmentation methods, such as watershed, were not expected to succeed, because the walls of the sinus have multiple unstained or poorly stained regions that appear as interruptions. Hence, we abandoned the automatic processing and used manual segmentation of the sinuses in ITK-SNAP34. The volumes resulting from the annotations were processed as detailed below to result in mesh representations.

The following procedures were applied for:

CD141+ sinus endothelia (brown immunostaining, ITK-SNAP annotations).

  • “upper” threshold to remove the auxiliary markings

  • binary fill hole filter from ITK

  • intensity normalization to 0–255

  • intersection interpolation19

  • Gaussian blur with sigma value of 1.

CD34+ capillaries (blue immunostaining):

  • grayscale closing operation with kernel size 14-14-3

  • Gaussian blur with sigma = 1.

    For a detailed view of CD34+ capillaries, no volume filtering was applied.

CD271+ capillary sheaths (red immunostaining):

  • grayscale closing operation with kernel size 10-10-2

  • grayscale dilation with kernel size 20-20-5, shaped as a ball

  • Gaussian blur with sigma value of 2.

For capillary sheaths and capillaries, 3D Slicer was used for mesh construction. The iso-values ​​were 205 (out of 255) for the sheaths, 100 for capillaries, 80 for capillaries wirh venus walls walls, 117 for capillary details and 180 for sinuses. The resulting meshes were too large for practical use and they were also open at the volume boundaries. Hence, we used PolyMender35 for mesh repair. The PolyMender variant “qd” was used, as biological structures have no straight lines and square angles. The quad tree depth of 9 was used for sinuses and capillaries. For sheaths we used depth 8.

All meshes, except capillary details, were smoothed using Taubin smooth36 with default 10 iterations, as implemented in MeshLab (version 1.3.2 under Linux, version 2021.10 under Windows)37. We also applied the removal of small unconnected components, ie the typical “rubbish” from mesh construction and unstained erythrocytes in the background of our sections.

In capillary sheaths we removed components smaller than 3% of the main diagonal (43 µm). In capillaries this value was 2% (28 µm). In sinuses we removed 3% of the small components.

This step finishes the usual mesh processing steps, and the resulting meshes are applicable for inspection in VR. Some meshes were further modified in a more specific manner, as detailed below.


In VR, we used mesh painting (see below), to highlight various parts of the models. Differently colored parts of the meshes were separated using custom software, based on the VCG library37 and PyMesh38.

Meshes (triangle-networks, forming surface models) were crucial for further processing. As we used VR, we needed a representation of our data that could be easily displayed on a virtual reality headset in real time using commodity graphics hardware. Volume-based rendering for VR was avoided because it is rather resource-consuming and may negatively impact the frame rate.

Virtual reality

For inspection of the mesh models in virtual reality, we used our custom visualization software1. Concisely, it allows for display of the reconstructions in combination with the original sections. The user can annotate the models or paint parts of the models in various colors. A classification of objects (eg, capillary sheaths) is also possible.

With user input, the 3D models of capillary ends (Fig. 4a–d, supplementary files S1, S2, S3, S4) were painted in VR and controlled for potential connections to sinuses. Especially informative capillary ends in the red pulp were marked in a second run for separate display together with the surrounding sinuses (Fig. 5a–f, Supplementary videos S3, S4). Those capillary ends were sourced from the “detailed” 3D reconstruction without additional mesh filtering. Finally, all open ends in ROI 3 were visualized in this way (Supplementary file S5). In addition, the perifollicular capillary network was manually highlighted (Fig. 9a,b, supplementary files S6, S7).

Leave a Comment

Your email address will not be published. Required fields are marked *