Fig 1.
(A) UML activity diagram of the PyCurv workflow. If the input segmentation (in e.g. MRC format) is filled, the surface is generated using the compartment segmentation, otherwise using the membrane segmentation algorithm. This step is omitted if the input is a surface (in e.g. VTP format). From the surface, a graph is generated. If the graph has surface borders, they are removed. Then, surface normals are estimated at each triangle center. Finally, principle directions and curvatures are estimated and different combined curvature measures calculated using one of the tensor voting-based algorithms: RVV (Regular Vector Voting), NVV (Normal Vector Voting, only for evaluation), AVV (Augmented Vector Voting, default algorithm) or SSVV (Surface Sampling Vector Voting). The output is a surface with all the calculated values stored as triangle properties (VTP format). All the processing steps (rounded rectangles) are implemented in PyCurv. (B) Voxels of a segmentation of a vesicle from a cryo-electron tomogram of a human HeLa cell [17]. (C) A surface (triangle mesh) generated from the membrane segmentation shown in (A). (D) Surface graph generated from the surface shown in (B); the inset shows a magnified region of the graph mapped on top of the triangle mesh (triangles: yellow, graph vertices: black dots, strong edges: red lines, weak edges: light blue lines). (E) The output surface with estimated normals, principal directions and curvatures as well as several combined curvature measures. Here, curvedness is shown. See also the video in S1 Video.
Fig 2.
Surface generation from membrane and compartment segmentations.
(A) A filtered tomographic slice showing the cortical endoplasmic reticulum (cER) and plasma membrane (PM) of a yeast cell (scale bar: 100 nm). Panels (B-C) show the same slice as in (A) with (B) the membrane segmentation of the cER and (C) the compartment segmentation of the cER; the insets show 3D renderings of the full segmentations (including all tomographic slices). Panels (D-F) show a surface generated from the cER membrane segmentation shown in (B): (D) The unmasked artefactual surface is shown in transparent white. The masked but uncleaned surface is shown in yellow with normals (every 100th) as red arrows. Some of the normals erroneously point outside the cER lumen (see right inset). (E) A different view of the uncleaned surface shown in (D), magnified. The red line marks an artifact. (F) The same magnified view as in (E) showing the cleaned surface in blue with a hole resulting from removing the artifact shown in (E). Panels (G-L) show surfaces generated using the compartment segmentation shown in (C), (G-I) without and (J-L) with Gaussian smoothing; the views are the same as in panels (D-F) column-wise: (G, J) Using the compartment segmentation, all normals point inside the cER lumen (see the insets). (H) Without smoothing, triangles sticking out (red circle) in the uncleaned surface lead to a hole in the cleaned surface shown in (I). (K-L) The cleaned smoothed surface is free from artifacts. The tomogram and segmentation are deposited in EM Data Bank (EMD-10767). See also the video in S1 Video.
Fig 3.
Neighborhood parameters and voting geometry.
(A) Schematic illustrating the rh and gmax parameters. gmax is one quarter of the circle perimeter with radius equal to rh. gmax defines the maximum geodesic distance from a surface triangle center to the centers of its neighboring triangles, approximated by the shortest path along the edges of the surface graph. (B) Collection of normal votes in all proposed algorithms based on [33]. The rectangle denotes the plane containing the circular arc (dashed line) between the neighboring triangle centers v and ci, the normal vector at ci and the normal vote
at v. (C) Collection of curvature votes for the NVV, RVV and AVV algorithms based on [33]. The rectangle denotes the arc plane containing the triangle center v, its estimated normal
, its tangent
towards neighboring triangle center vi and the projection
of the estimated normal
at vi. (D) Collection of curvature votes in the SSVV algorithm based on [40]. The rectangle denotes the plane containing the tangent vector
at v of length = rh, ending with the point vt, and the normal vector
at v. The line l, crossing vt and parallel to
, intersects the surface (dashed) at point c.
Fig 4.
Estimation of normals on a noisy plane.
(A) True normals (black arrows) on a smooth plane surface (yellow). (B) Normals on a noisy plane, where each triangle vertex in the original plane shown in (A) was moved in the direction of its normal vector with Gaussian variance equal to 10% of the average triangle edge. Panels (C-D) show normals on the noisy plane corrected by VV with rh of (C) 4 or (D) 8 voxels. The neighborhoods of a central triangle are shown in a darker yellow. (E) Cumulative relative frequency histogram of normal orientation error for the 10% noisy plane, for initial (uncorrected) normals and those corrected by VV with rh of 4 or 8 voxels. (F) Area under the curve of cumulative relative frequency histograms of normal orientation errors, as shown in (E), for planes with different noise levels. Initial normals and those corrected by VV with rh of 4 or 8 voxels are shown. Curve colors in (E-F) correspond to the colors of the normals in (B-D).
Fig 5.
(A) A central slice of a synthetic segmentation of a sphere with radius = 10 voxels. Panels (B-D) show cumulative frequency histograms of the κ1 and κ2 errors on the surface extracted from the segmentation shown in (A), using different rh (5-10 voxels) and algorithms: (B) AVV, (C) SSVV and (D) RVV.
Table 1.
rh parameter choice.
Fig 6.
Curvature sign, principal direction and curvature estimation accuracy for a torus.
Panels (A-D) show visualizations of κ2 (voxel-1, triangles are color-coded by curvature, see color bar on the right) and (every fourth vector is shown as an arrow from a triangle center): (A) true values calculated analytically for a smooth torus surface with ring radius (rr) = 25 voxels and cross-section radius (csr) = 10 voxels, (B) estimated values using NVV, (C) RVV (both with rh = 8 voxels) and (D) Mindboggle (MB, with n = 4 voxels). Panels (E-G) show cumulative relative frequency histograms of the principal direction and curvature errors: (E)
, (F) κ1, (G) κ2 on the torus surface using different algorithms: RVV, AVV, SSVV, VTK, MB and FreeSurfer (FS); the latter three algorithms only for curvatures in (F-G), since they do not estimate principle directions; the optimal rh or n (in voxels) were used for each algorithm and are indicated in the legends.
Fig 7.
Accuracy of curvature estimation on a smooth spherical surface.
Panels (A-D) show visualizations of κ2 (voxel-1) estimated by (A) VTK, (B) FreeSurfer (FS), (C) RVV or (D) AVV on a smooth sphere with radius = 10 voxels, using rh = 10 voxels for RVV and AVV. Panels (E-F) show cumulative relative frequency histograms of the principal curvature (κ1 and κ2) errors on a smooth sphere with radius = 10 (E) or 20 voxels (F) using different algorithms: RVV, AVV, SSVV, VTK, Mindboggle (MB) and FS; the values of rh or n (in voxels) used for each algorithm are indicated in the legends.
Fig 8.
Accuracy of curvature estimation on a spherical surface with quantization noise.
Panels (A-D) show visualizations of κ2 (voxel-1) estimated by (A) VTK, (B) FreeSurfer (FS), (C) AVV using the optimal rh = 10 voxels or (D) SSVV using the optimal rh = 8 voxels on a sphere with quantization noise and radius = 10 voxels. Panels (E-G) show cumulative relative frequency histograms of the principal curvature (κ1 and κ2) errors on a spherical surface with quantization noise and (E) radius = 10 or (F-G) 30 voxels using RVV, AVV, SSVV, VTK, Mindboggle (MB) and FS; latter three algorithms only in (E-F). The values of rh or n (in voxels) used for each algorithm are indicated in the legends.
Fig 9.
Estimation accuracy on a cylindrical surface.
Panels (A-D) show principal curvatures on a smooth cylinder with radius = 10 and height = 25 voxels estimated by different algorithms: (A) AVV using the optimal rh = 5 voxels, (B) SSVV using the optimal rh = 6 voxels, (C) VTK and (D) Mindboggle (MB) using the optimal n = 2 voxels; the estimated κ1 and κ2 are shown in their original ranges; true κ1 = 0.1, true κ2 = 0 voxel-1. Panels (E-H) show cumulative relative frequency histograms of the errors (E, G) and κ1 errors (F, H) on the cylinder using different algorithms: AVV, SSVV, VTK and MB; latter two algorithms only for κ1 in (F, H); the optimal rh or n (in voxels) were used for each algorithm and are indicated in the legends. In panels (G-H), values within 5 voxels to the graph border were excluded.
Fig 10.
Algorithms and parameters comparison using a small cER membrane feature from cryo-ET.
Surface of a cER membrane region with maximum base radius ∼10 nm (from the same tomogram of a yeast cell as the cER in Fig 11) was generated using the compartment segmentation. Panels (A-B) show relative frequency histograms of κ1 estimated by (A) AVV or (B) SSVV using rh = 2, 5, 10, 15 and 20 nm. Panels (C-D) show visualizations of the estimated κ1 and κ2 (color scale was set to the value range of [-0.1, 0.1] nm-1 in both panels) and the corresponding principal directions (black arrows, sampled for every forth triangle) by (C) AVV or (D) SSVV using rh = 10 nm (scale bar: 20 nm, applies for both panels).
Fig 11.
Application of curvature estimation algorithms to a cER membrane from cryo-ET.
Analysis of yeast cER membrane curvature on a surface generated using the compartment segmentation. (A) Visualizations of the curvatures: κ1, κ2 and curvedness, estimated by AVV with rh of 10 nm (scale bar: 40 nm). The insets show the peak feature from Fig 10 (scale bar: 20 nm). Color scale was set to the value range of [-0.1, 0.1] nm-1 for κ1 and κ2 and of [0, 0.1] nm-1 for curvedness. (B) Relative frequency histograms of the curvatures estimated by AVV shown in (A). (C) Visualizations of curvedness on the same surface as in (A) calculated by VTK (top) and Mindboggle (MB; using n = 2 nm; bottom), scale bar as in the main panel (A). Since curvedness ranges were larger for these algorithms, color scales were set to the value range of [0, 0.5] nm-1 for VTK and [0, 1] nm-1 for Mindboggle. The tomogram and segmentation are deposited in EM Data Bank (EMD-10765).
Fig 12.
Application of AVV to Golgi and vesicles from cryo-ET.
(A) Two different views of surfaces of Golgi and vesicles (from a primary mouse neuron) generated using the compartment segmentation showing curvedness estimated by AVV with rh of 10 nm. Color scale was set to the value range of [0, 0.1] nm-1 (scale bar: 100 nm). (B) Relative exceedance frequency histograms (reversed cululative histograms with frequency normalized to the total surface area of each compartment) of the curvedness of cER (shown in Fig 11A and 11B), Golgi and vesicles (shown in panel A of this figure), excluding values within 1 nm to surface border. The tomogram and segmentations are deposited in EM Data Bank (EMD-10766).
Fig 13.
Application of curvature estimation algorithms to other data types.
(A) Surfaces of C. elegans embryo cells imaged by confocal light microscopy and segmented by LimeSeg [22], colored by Gaussian curvature (μm-2) estimated by AVV using rh = 3 μm (scale bar: 5 μm). (B) Cortical pial surfaces of both human brain hemispheres imaged by MRI and segmented by FreeSurfer [52], colored by mean curvature (mm-1) estimated by AVV using rh = 2 mm (scale bar: 20 mm). Panels (C-D) show the same brain surface colored by mean curvature (mm-1) with the same color scale as in (B) estimated by (C) Mindboggle (MB; using n = 2 mm) and (D) FreeSurfer (FS).