Computational workflow for membrane thickness analysis from cryo-electron tomograms. (1) Membrane segmentation. Reconstructed cryo-electron tomograms are processed with MemBrain-seg (Lamm et al., 2025, Preprint) to generate instance segmentations of different membranes in a given volume. (2) Surface point reconstruction. The coordinates and orientations of surface points are extracted with the marching cubes algorithm (Walt et al., 2014). A convolutional kernel is applied to retain only points lying on the segmentation boundaries. Surface point coverage can be increased through interpolation. Normal vectors (black arrows) are refined through local weighted neighbor averaging. The two surfaces are separated using principal component analysis (PCA) of normal orientations (surface points marked with purple and orange). (3) Point-pair thickness measurements. For each point on one surface, a ray is projected along its normal vector. A parallelized cone search identifies nearest neighbor candidates on the opposite surface. Points are paired one-to-one by a greedy search algorithm. Membrane thickness is calculated as the Euclidean distance between paired point coordinates. (4) Intensity profile-based filtering (recommended). Individual membrane intensity profiles are extracted for each thickness measurement by sampling the original tomogram in 3D along vectors extending from the coordinates of the paired points (in orange and purple). The intensity profile features can be used for automated filtering of the thickness measurements, e.g., by requiring that each profile have two minima positioned between (or close to) the paired measurement points (P1 and P2), the minima are separated by a central maximum, and they have a certain signal-to-noise ratio relative to the baseline. (5) Analysis and visualization of results. Output files include: .csv files with point coordinates, normal vectors, and surface assignments; .pkl files with intensity profiles for each point pair; .csv files with membrane thickness values (before and after filtering), including the coordinates of the paired points that generated each measurement. These latter files can be used to plot membrane thickness distributions or to output membrane thickness maps, where color intensity represents local membrane thickness (see tutorial).